Split constant handling out of fold_builtin_fma
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * builtins.c (fold_builtin_fma): Remove constant handling.
4         (fold_builtin_3): Handle constant fma arguments here.
5
6 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
7
8         * builtins.c (fold_builtin_fabs): Remove constant handling.
9         (fold_builtin_abs): Likewise.
10
11 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
12
13         * builtins.c (fold_builtin_copysign): Delete.
14         (fold_builtin_2): Handle constant copysign arguments here.
15         * match.pd: Add rules previously handled by fold_builtin_copysign.
16
17 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
18
19         * builtins.c (fold_builtin_signbit): Delete.
20         (fold_builtin_2): Handle constant signbit arguments here.
21         * match.pd: Add rules previously handled by fold_builtin_signbit.
22
23 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
24
25         * match.pd: Handle sqrt(x) cmp 0 specially.
26
27 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
28
29         * tree-vect-generic.c (expand_vector_operations_1): Check
30         optab type before using it.
31
32 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33
34         * config/aarch64/aarch64-protos.h
35         (struct tune_params): Add autoprefetcher_model field.
36         * config/aarch64/aarch64.c: Include params.h
37         (generic_tunings): Specify autoprefetcher_model value.
38         (cortexa53_tunings): Likewise.
39         (cortexa57_tunings): Likewise.
40         (cortexa72_tunings): Likewise.
41         (thunderx_tunings): Likewise.
42         (xgene1_tunings): Likewise.
43         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
44         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
45         (aarch64_override_options_internal): Set
46         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
47
48 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
49
50         * builtins.c (fold_builtin_exponent): Delete.
51         (fold_builtin_2): Handle constant expN arguments here.
52         * match.pd: Fold expN(logN(x)) -> x.
53
54 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
55
56         * builtins.c (fold_builtin_powi): Delete.
57         (fold_builtin_2): Handle constant powi arguments here.
58         * match.pd: Add rules previously handled by fold_builtin_powi.
59
60 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
61
62         * builtins.c (fold_builtin_pow): Delete in favor of...
63         (fold_const_builtin_pow): ...this new function.  Only handle constant
64         arguments.
65         (fold_builtin_2): Update accordingly.
66         * match.pd: Add rules previously handled by fold_builtin_pow.
67
68 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
69
70         * builtins.c (fold_builtin_hypot): Delete.
71         (fold_builtin_2): Handle constant hypot arguments here.
72         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
73         hypot(x, x) to fabs(x)*sqrt(2).
74
75 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
76
77         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
78         instead of make_ssa_name if not yet in SSA form.
79
80 2015-10-27  Richard Biener  <rguenther@suse.de>
81
82         * cfg.c (free_edge): Add function argument and use it instead of cfun.
83         (clear_edges): Likewise.
84         * cfg.h (clear_edges): Adjust prototype.
85         * cfgexpand.c (pass_expand::execute): Adjust.
86         * cfgloop.c (release_recorded_exits): Add function argument and use
87         it instead of cfun.
88         * cfgloop.h (release_recorded_exits): Adjust prototype.
89         (loops_state_satisfies_p): Add overload with function argument.
90         (loops_state_set): Likewise.
91         (loops_state_clear): Likewise.
92         (struct loop_iterator): Add function argument to constructor
93         and iterator and use it instead of cfun.
94         (FOR_EACH_LOOP_FN): New macro.
95         (loop_optimizer_finalize): Add overload with function argument.
96         * loop-init.c (loop_optimizer_init): Adjust.
97         (fix_loop_structure): Likewise.
98         (loop_optimizer_finaliz): Add function argument and use it
99         instead of cfun.
100         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
101         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
102         * cgraph.c (release_function_body): Do not push/pop cfun.
103         * final.c (rest_of_clean_state): Adjust.
104         * graphite.c (graphite_finalize): Likewise.
105         * tree-ssa-copy.c (fini_copy_prop): Likewise.
106         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
107         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
108         (tree_unroll_loops_completely): Likewise.
109         (pass_complete_unrolli::execute): Likewise.
110         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
111         Add function argument and use it instead of cfun.
112         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
113         Adjust prototype.
114         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
115         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
116         instead of cfun.
117         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
118         * tree-ssanames.c (fini_ssanames): Add function argument and use it
119         instead of cfun.
120         * tree-ssanames.c (fini_ssanames): Adjust prototype.
121         * tree-vrp.c (execute_vrp): Adjust.
122         * value-prof.c (free_histograms): Add function argument and use it
123         instead of cfun.
124         * value-prof.h (free_histograms): Adjust prototype.
125
126 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
127
128         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
129         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
130         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
131
132 2015-10-27  Tom de Vries  <tom@codesourcery.com>
133
134         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
135         field_type.
136
137 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
138
139         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
140         (inv_can_prop_to_addr_use): New function.
141         (record_use): Call can_prop_to_addr_uses, set the new field.
142         (get_inv_cost): Count cost if inv can't be propagated into its
143         address uses.
144
145 2015-10-26  Doug Evans  <dje@google.com>
146
147         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
148
149 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
150
151         * match.pd (fold_widened_comparison): Apply simplifications to all
152         integral types.
153
154 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
155
156         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
157         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
158         * doc/tm.texi: Regenerated.
159         * reorg.c (dbr_schedule): Use new hook.
160         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
161
162 2015-10-26  Jeff Law  <law@redhat.com>
163
164         PR tree-optimization/68013
165         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
166         Make sure the first block in the path is in VISITED_BBs.
167
168 2015-10-26  Richard Biener  <rguenther@suse.de>
169         Dominik Vogt  <vogt@linux.vnet.ibm.com>
170
171         PR middle-end/67443
172         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
173         Properly prune ref->ref for accesses outside of ref.
174
175 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
176
177         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
178         new statements to be inserted if inplace.  Allow calls to have
179         nonempty sequences.
180
181 2015-10-26  Richard Biener  <rguenther@suse.de>
182
183         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
184         (do_valueize): New function.
185         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
186         replace_uses_by.
187         * tree-ssa-threadedge.c: Remove builtins.h include, include
188         gimple-fold.h
189         (fold_assignment_stmt): Remove.
190         (threadedge_valueize): New function.
191         (record_temporary_equivalences_from_stmts): Use
192         gimple_fold_stmt_to_constant_1, note additional cleanup
193         opportunities.
194
195 2015-10-26  Richard Biener  <rguenther@suse.de>
196
197         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
198         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
199
200 2015-10-26  Alan Hayward <alan.hayward@arm.com>
201
202         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
203         VEC_COND_EXPR types.
204
205 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
206
207         * auto-inc-dec.c (insert_move_insn_before): Delete.
208         (attempt_change): Remember to cost the simple move in the
209         FORM_PRE_ADD and FORM_POST_ADD cases.
210
211 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
212
213         PR target/68091
214         * config/sh/sh.c (sh_vector_mode_supported_p): Use
215         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
216
217 2015-10-26  Tom de Vries  <tom@codesourcery.com>
218
219         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
220         factored out of ...
221         (intra_create_variable_infos): ... here.
222
223 2015-10-26  Tom de Vries  <tom@codesourcery.com>
224
225         * tree-ssa-structalias.c (intra_create_variable_infos): Add
226         restrict_pointer_p and recursive_restrict_p variables.
227
228 2015-10-26  Tom de Vries  <tom@codesourcery.com>
229
230         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
231         get_vi_for_tree call.
232
233 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
234
235         PR middle-end/67989
236         * optabs.c (expand_atomic_compare_and_swap): Handle case when
237         ptarget_oval or ptarget_bool are const0_rtx.
238
239 2015-10-26  Christian Bruel  <christian.bruel@st.com>
240
241         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
242         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
243         * cp/method.c (implicitly_declare_fn): Likewise.
244         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
245         * java/class.c (add_method_1): Likewise.
246
247 2015-10-26  Richard Biener  <rguenther@suse.de>
248
249         * alloc-pool.h (base_pool_allocator): Use placement new.
250         (base_pool_allocator::remove): Likewise.  Compute size outside of
251         flag_checking.
252
253 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
254
255         * builtins.c (do_real_to_int_conversion): New function.
256         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
257         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
258         arguments here.
259         * match.pd: Add rules previously handled by fold_fixed_mathfn
260         and fold_builtin_int_roundingfn.
261
262 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
263
264         * match.pd: Use macros to define built-in operator lists.
265
266 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
267             Richard Biener  <rguenther@suse.de>
268
269         * genmatch.c (dt_simplify::gen): Skip captures that are
270         part of the result.
271         (parser::parse_expr): Allow captures in results too.
272         * builtins.c (fold_builtin_cexp): Delete.
273         (fold_builtin_1): Handle constant cexp arguments here.
274         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
275
276 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
277
278         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
279         conditional compilation.
280         (base_pool_allocator::remove): Use flag_checking.
281
282 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
283
284         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
285
286         PR middle-end/68079
287         * dojump.c (do_compare_and_jump): Canonicalize both function and
288         method types.
289
290 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
291
292         PR target/68084
293         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
294         for =@ccae.
295
296 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
297
298         PR ipa/pr67600
299         * ipa-polymorphic-call.c
300         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
301         instance offset with offset of outer type.
302
303 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
304
305         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
306
307 2015-10-23  Caroline Tice  <cmtice@google.com>
308
309         (from Richard Biener
310         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
311         call to iterative_hash_host_wide_int.
312
313 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
314
315         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
316         Define as yes.
317
318 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
319
320         * tree-vect-generic.c (expand_vector_operations_1): Check
321         optab exists before use it.
322
323 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
324
325         * tree-vect-generic.c (expand_vector_condition): Avoid
326         uninitialized variable warning.
327
328 2015-10-23  Jeff Law  <law@redhat.com>
329
330         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
331         here.  Instead...
332         (execute_todo): Call it here.
333         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
334         statistics
335         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
336
337 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
338             Szabolcs Nagy  <szabolcs.nagy@arm.com>
339
340         * config.gcc (enable_secureplt): Add *-linux*-musl*.
341
342 2015-10-23  Jeff Law  <law@redhat.com>
343
344         PR tree-optimization/67830
345         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
346         Explicitly verify the mask has no bits outside the type of
347         the innermost operands.
348
349 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
350             Szabolcs Nagy  <szabolcs.nagy@arm.com>
351
352         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
353         (MUSL_DYNAMIC_LINKER64): Define.
354         (GNU_USER_DYNAMIC_LINKER32): Update.
355         (GNU_USER_DYNAMIC_LINKER64): Update.
356         (CHOOSE_DYNAMIC_LINKER): Update.
357
358         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
359         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
360         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
361         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
362         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
363         (CHOOSE_DYNAMIC_LINKER): Update.
364         (INCLUDE_DEFAULTS): Redefine.
365
366         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
367
368 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
369
370         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
371         comparing addresses.
372
373 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
374
375         * fold-const.c (operand_equal_p): Handle matching of vector
376         constructors.
377
378 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
379
380         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
381
382 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
383             Andrew Pinski  <apinski@cavium.com>
384
385         PR rtl-optimization/67736
386         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
387         of gen_lowpart.
388
389 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
390
391         PR middle-end/68066
392         * tree.c (build_truth_vector_type): Support BLK mode
393         returned for boolean vector.
394
395 2015-10-23  Alan Hayward <alan.hayward@arm.com>
396
397         PR tree-optimization/65947
398         * tree-vect-loop.c
399         (vect_is_simple_reduction_1): Find condition reductions.
400         (vect_model_reduction_cost): Add condition reduction costs.
401         (get_initial_def_for_reduction): Add condition reduction initial var.
402         (vect_create_epilog_for_reduction): Add condition reduction epilog.
403         (vectorizable_reduction): Condition reduction support.
404         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
405         * doc/sourcebuild.texi (Vector-specific attributes): Document
406         vect_max_reduc
407
408 2015-10-23  Richard Biener  <rguenther@suse.de>
409
410         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
411         and builtins.def.
412
413 2015-10-23  Richard Biener  <rguenther@suse.de>
414             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
415
416         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
417         into (A ^ B) - B to match.pd
418         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
419
420         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
421         New simplifier.
422         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
423         New simplifier.
424         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
425         New simplifier.
426         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
427         New simplifier.
428         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
429         INTEGER_CST@1)): New simplifier.
430
431 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
432
433         * builtins.c (integer_valued_real_p): Move to fold-const.c.
434         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
435         (fold_builtin_ceil, fold_builtin_round): Delete.
436         (fold_builtin_1): Handle constant trunc, floor, ceil and round
437         arguments here.
438         * convert.c (convert_to_real): Remove narrowing of rounding
439         functions.
440         * fold-const.h (integer_valued_real_unary_p)
441         (integer_valued_real_binary_p, integer_valued_real_call_p)
442         (integer_valued_real_single_p, integer_valued_real_p): Declare.
443         * fold-const.c (tree_single_nonnegative_warnv_p): Move
444         name_registered_for_update_p check to SSA_NAME case statement.
445         Don't call tree_simple_nonnegative_warnv_p for SSA names.
446         (integer_valued_real_unary_p, integer_valued_real_binary_p)
447         (integer_valued_real_call_p, integer_valued_real_single_p)
448         (integer_valued_real_invalid_p): New functions.
449         (integer_valued_real_p): Move from fold-const.c and rework
450         to call the functions above.  Handle SSA names.
451         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
452         * gimple-fold.c (gimple_assign_integer_valued_real_p)
453         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
454         (gimple_stmt_integer_valued_real_p): New functions.
455         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
456         Fold f(x)->x for the same f if x is known to be integer-valued.
457         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
458         the result.  Canonicalize floor(x) as trunc(x) if x is
459         nonnegative.
460
461 2015-10-23  Tom de Vries  <tom@codesourcery.com>
462
463         * tree-ssa-structalias.c (intra_create_variable_infos): Use
464         make_constraint_from.
465
466 2015-10-23  Tom de Vries  <tom@codesourcery.com>
467
468         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
469         setting of is_full_var in case of a single field.
470
471 2015-10-22  Martin Sebor  <msebor@redhat.com>
472
473         PR driver/68043
474         * config/i386/i386.opt: Add missing periods to the ends of sentences.
475         * config/msp430/msp430.opt: Same.
476
477 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
478
479         * doc/extend.exp (Global Register Variables): Rewrite.
480
481 2015-10-22  Jeff Law  <law@redhat.com>
482
483         * genattrtab.c (main): If we do not have any annul-true or annul-false
484         slots, then write out a dummy eligible_for_annul_true or
485         eligible_for_annul_false as needed.
486
487 2015-10-22  Nick Clifton  <nickc@redhat.com>
488
489         * config/msp430/msp430.opt: Add -msilicon-errata and
490         -msilicon-errata-warn.
491         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
492         assembler.
493         * doc/invoke.texi: Document new options.
494
495 2015-10-22  Richard Biener  <rguenther@suse.de>
496
497         PR tree-optimization/58497
498         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
499         (expand_vector_operations_1): Use it.  Lower operations on
500         all uniform vectors to scalar operations if the HW supports it.
501
502 2015-10-22  Richard Biener  <rguenther@suse.de>
503
504         PR tree-optimization/19049
505         PR tree-optimization/65962
506         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
507         to strided accesses if single-element interleaving doesn't work.
508
509 2015-10-22  Richard Biener  <rguenther@suse.de>
510
511         PR middle-end/68046
512         PR middle-end/61893
513         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
514         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
515         (expand_unop): Likewise.
516
517 2015-10-22  Richard Biener  <rguenther@suse.de>
518
519         * fold-const.c (fold_addr_of_array_ref_difference): Properly
520         convert operands before folding a MINUS_EXPR.
521         (fold_binary_loc): Move simplification of MINUS_EXPR on
522         converted POINTER_PLUS_EXPRs ...
523         * match.pd: ... here.
524
525 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
526
527         * builtins.c (fold_builtin_tan): Delete.
528         (fold_builtin_1): Handle constant tan arguments here.
529         * match.pd: Simplify (tan (atan x)) to x.
530
531 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
532
533         * builtins.c (fold_builtin_cproj): Delete.
534         (fold_builtin_1): Handle constant arguments here.
535         (build_complex_cproj): Move and rename to...
536         * tree.c: (build_complex_inf): ...this.
537         * tree.h (build_complex_inf): Declare.
538         * match.pd: Fold cproj(x)->x if x has no infinity.
539         Use build_complex_inf for existing cproj rules.
540
541 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
542
543         PR target/68015
544         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
545         already have a comparison result.
546
547 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
548
549         PR target/63304
550         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
551         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
552         (aarch64_classify_address): Likewise.
553         (aarch64_secondary_reload): Likewise.
554         (aarch64_override_options_after_change_1): Adjust.
555         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
556         Use aarch64_nopcrelative_literal_loads.
557         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
558         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
559         Declare.
560
561 2015-10-21  Martin Sebor  <msebor@redhat.com>
562
563         PR driver/68043
564         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
565         (print_filtered_help): Reference aliased option's name and encourage
566         readers to use it in preference to the alias if the former is not
567         documented.  Mention when using an option is diagnosed.
568         * gcc.c (display_help): End each sentence with a period.
569
570         * common.opt: End each sentence that describes an option with
571         a period.
572         * config/aarch64/aarch64.opt: Same.
573         * config/alpha/alpha.opt: Same.
574         * config/arc/arc.opt: Same.
575         * config/arm/arm.opt: Same.
576         * config/avr/avr.opt: Same.
577         * config/bfin/bfin.opt: Same.
578         * config/c6x/c6x.opt: Same.
579         * config/cr16/cr16.opt: Same.
580         * config/cris/cris.opt: Same.
581         * config/cris/linux.opt: Same.
582         * config/darwin.opt: Same.
583         * config/epiphany/epiphany.opt: Same.
584         * config/fr30/fr30.opt: Same.
585         * config/frv/frv.opt: Same.
586         * config/ft32/ft32.opt: Same.
587         * config/g.opt: Same.
588         * config/h8300/h8300.opt: Same.
589         * config/i386/cygming.opt: Same.
590         * config/i386/djgpp.opt: Same.
591         * config/i386/i386.opt: Same.
592         * config/i386/interix.opt: Same.
593         * config/i386/mingw-w64.opt: Same.
594         * config/i386/mingw.opt: Same.
595         * config/ia64/ia64.opt: Same.
596         * config/ia64/ilp32.opt: Same.
597         * config/iq2000/iq2000.opt: Same.
598         * config/linux.opt: Same.
599         * config/lm32/lm32.opt: Same.
600         * config/lynx.opt: Same.
601         * config/m32c/m32c.opt: Same.
602         * config/m32r/m32r.opt: Same.
603         * config/m68k/ieee.opt: Same.
604         * config/m68k/m68k.opt: Same.
605         * config/mcore/mcore.opt: Same.
606         * config/mep/mep.opt: Same.
607         * config/microblaze/microblaze.opt: Same.
608         * config/mips/mips.opt: Same.
609         * config/mmix/mmix.opt: Same.
610         * config/mn10300/mn10300.opt: Same.
611         * config/moxie/moxie.opt: Same.
612         * config/msp430/msp430.opt: Same.
613         * config/nios2/elf.opt: Same.
614         * config/nios2/nios2.opt: Same.
615         * config/nvptx/nvptx.opt: Same.
616         * config/pa/pa-hpux.opt: Same.
617         * config/pa/pa-hpux1010.opt: Same.
618         * config/pa/pa-hpux1111.opt: Same.
619         * config/pa/pa-hpux1131.opt: Same.
620         * config/pa/pa.opt: Same.
621         * config/pa/pa64-hpux.opt: Same.
622         * config/pdp11/pdp11.opt: Same.
623         * config/rl78/rl78.opt: Same.
624         * config/rs6000/476.opt: Same.
625         * config/rs6000/aix64.opt: Same.
626         * config/rs6000/darwin.opt: Same.
627         * config/rs6000/linux64.opt: Same.
628         * config/rs6000/rs6000.opt: Same.
629         * config/rs6000/sysv4.opt: Same.
630         * config/s390/s390.opt: Same.
631         * config/s390/tpf.opt: Same.
632         * config/sh/sh.opt: Same.
633         * config/sol2.opt: Same.
634         * config/sparc/long-double-switch.opt: Same.
635         * config/sparc/sparc.opt: Same.
636         * config/spu/spu.opt: Same.
637         * config/stormy16/stormy16.opt: Same.
638         * config/tilegx/tilegx.opt: Same.
639         * config/tilepro/tilepro.opt: Same.
640         * config/v850/v850.opt: Same.
641         * config/vax/vax.opt: Same.
642         * config/visium/visium.opt: Same.
643         * config/vms/vms.opt: Same.
644         * config/vxworks.opt: Same.
645         * config/xtensa/xtensa.opt: Same.
646
647 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
648             Sebastian Pop  <s.pop@samsung.com>
649
650         * graphite-scop-detection.c (parameter_index_in_region): Update call to
651         invariant_in_sese_p_rec.
652         * graphite-sese-to-poly.c (extract_affine): Same.
653         * sese.c (invariant_in_sese_p_rec): Pass in an extra
654         parameter has_vdefs.
655         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
656         variable depends on virtual definitions in the current region.
657         * sese.h (invariant_in_sese_p_rec): Update declaration.
658
659 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
660             Sebastian Pop  <s.pop@samsung.com>
661
662         * graphite-scop-detection.c (build_scops): Do not handle scops
663         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
664         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
665
666 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
667
668         * config.in: Regenerate.
669         * configure: Regenerate.
670         * configure.ac (CHECKING_P): Define.
671         * system.h: Use CHECKING_P.
672
673 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
674
675         PR ipa/67056
676         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
677         is negative we don't know the type.
678         (check_stmt_for_type_change): Skip constructors of non-polymorphic
679         types as those won't help devirutalization.
680
681 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
682
683         * fold-const.c (operand_equal_p): Add code matching empty constructors.
684
685 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
686
687         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
688         comments.
689         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
690         Add comments on sign of the result.
691         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
692         Recurse on operand #1 instead of operand #0.
693         <CEIL_MOD_EXPR>: Do not recurse.
694         <ROUND_MOD_EXPR>: Likewise.
695
696 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
697
698         * cfgrtl.c (pass_free_cfg::execute): Adjust.
699         * final.c (dbr_sequence_length): Always define.
700         (shorten_branches): Adjust.
701         * genattr-common.c (main): Always define DELAY_SLOTS.
702         * genattr.c (main): Unconditionally declare functions and define
703         macros related to delay slots.
704         * genattrtab.c (write_eligible_delay): Adjust.
705         (main): Always write out delay slot functions.
706         * opts.c (default_options_table): Adjust.
707         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
708         (redirect_with_delay_list_safe_p): Likewise.
709         (fill_simple_delay_slots): Likewise.
710         (fill_slots_from_thread): Likewise.
711         (make_return_insns): Likewise.
712         (dbr_schedule): Likewise.
713         (rest_of_handle_delay_slots): Likewise.
714         (pass_delay_slots::gate): Likewise.
715         * toplev.c (process_options): Likewise.
716
717 2015-10-21  Richard Henderson  <rth@redhat.com>
718
719         * targhooks.c (default_addr_space_pointer_mode): Remove check
720         for generic address space.
721         (default_addr_space_address_mode): Likewise.
722         (default_addr_space_valid_pointer_mode): Likewise.
723         (default_addr_space_legitimate_address_p): Likewise.
724         (default_addr_space_legitimize_address): Likewise.
725         * target.def (addr_space.pointer_mode): Update documentation
726         of default behavior.
727         (addr_space.address_mode): Likewise.
728         * tm.texi: Update.
729
730         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
731         address spaces.
732
733 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
734
735         * builtins.c (fold_builtin_cabs): Delete.
736         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
737         * match.pd: Add rules previously handled by fold_builtin_cabs.
738
739 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
740
741         * fold-const.h (fold_strip_sign_ops): Delete.
742         * fold-const.c (fold_strip_sign_ops): Likewise.
743         (fold_unary_loc, fold_binary_loc): Remove calls to it.
744         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
745         (fold_builtin_ccos): Delete.
746         (fold_builtin_pow): Don't call fold_strip_sign_ops.
747         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
748         Remove fndecl argument.
749         (fold_builtin_1): Update calls accordingly.  Handle constant
750         cos, cosh, ccos and ccosh here.
751
752 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
753
754         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
755         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
756         * common.opt (fssa-backprop): New option.
757         * fold-const.h (negate_mathfn_p): Declare.
758         * fold-const.c (negate_mathfn_p): Make public.
759         * timevar.def (TV_TREE_BACKPROP): New.
760         * tree-pass.h (make_pass_backprop): Declare.
761         * passes.def (pass_backprop): Add.
762         * gimple-ssa-backprop.c: New file.
763
764 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
765             Sebastian Pop  <s.pop@samsung.com>
766
767         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
768         Do not call create_empty_if_region_on_edge when cond_expr is true.
769         (translate_isl_ast_node_for): Check whether a guard has been generated.
770
771 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
772
773         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
774         (operator=): Removed.
775         (dr_info): Make alias_set number the last argument with default
776         value of invalid_alias_set.
777         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
778         of dr_info.
779         (rewrite_reductions_out_of_ssa): Iterate only through the
780         basic blocks which are inside region.
781         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
782         * sese.h (struct sese_l): Removed assignment operator.
783         (split_region_for_bb): Removed dead code.
784
785 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
786
787         * graphite-poly.h (struct dr_info): Removed conversion constructor.
788         (struct scop): Renamed scop::region to scop::scop_info
789         (scop_set_region): Same.
790         (SCOP_REGION): Removed
791         (SCOP_CONTEXT): Removed.
792         (POLY_SCOP_P): Removed.
793         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
794         Rename scop->region to scop->scop_info.
795         (add_parameters_to_ivs_params): Same.
796         (graphite_regenerate_ast_isl): Same.
797         * graphite-poly.c (new_scop): Same.
798         (free_scop): Same.
799         (print_scop_params): Same.
800         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
801         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
802         (dot_all_scops_1): Rename scop->region to scop->scop_info.
803         (scop_detection::nb_pbbs_in_loops): Same.
804         (find_scop_parameters): Same.
805         (try_generate_gimple_bb): Same.
806         (gather_bbs::before_dom_children): Same.
807         (gather_bbs::after_dom_children): Same.
808         (build_scops): Same.
809         * graphite-sese-to-poly.c (build_scop_scattering): Same.
810         (extract_affine_chrec): Same.
811         (extract_affine): Same.
812         (set_scop_parameter_dim): Same.
813         (build_loop_iteration_domains): Same.
814         (create_pw_aff_from_tree): Same.
815         (add_param_constraints): Same.
816         (build_scop_iteration_domain): Same.
817         (build_scop_drs): Same.
818         (analyze_drs_in_stmts): Same.
819         (insert_out_of_ssa_copy_on_edge): Same.
820         (rewrite_close_phi_out_of_ssa):Same.
821         (rewrite_reductions_out_of_ssa):Same.
822         (handle_scalar_deps_crossing_scop_limits):Same.
823         (rewrite_cross_bb_scalar_deps):Same.
824         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
825         (build_poly_scop):Same.
826         (build_alias_set): Use pointer to dr_info.
827         * graphite.c (print_graphite_scop_statistics):
828         (graphite_transform_loops):
829         * sese.h (struct sese_l): Remove conversion constructor.
830
831 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
832
833         PR middle-end/67966
834         * tree.c (verify_type): Verify that TYPE_MODE match
835         between TYPE_CANONICAL and type.
836         * expr.c (store_expr_with_bounds): Revert my previous change.
837         * expmed.c (store_bit_field_1): Revert prevoius change.
838         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
839         to match for all types.
840
841 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
842
843         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
844         nesting.
845
846 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
847
848         * doc/tm.texi: Regenerated.
849         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
850         * stor-layout.c (layout_type): Use mode to get vector mask size.
851         * target.def (get_mask_mode): New.
852         * targhooks.c (default_get_mask_mode): New.
853         * targhooks.h (default_get_mask_mode): New.
854         * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
855         for boolean vector.
856         * tree.c (MAX_BOOL_CACHED_PREC): New.
857         (nonstandard_boolean_type_cache): New.
858         (build_nonstandard_boolean_type): New.
859         (make_vector_type): Vector mask has no canonical type.
860         (build_truth_vector_type): New.
861         (build_same_sized_truth_vector_type): New.
862         (truth_type_for): Support vector masks.
863         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
864         (build_truth_vector_type): New.
865         (build_same_sized_truth_vector_type): New.
866         (build_nonstandard_boolean_type): New.
867         * tree-cfg.c (verify_gimple_comparison) Require boolean
868         vector type for vector comparison.
869         (verify_gimple_assign_ternary): Likewise.
870         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
871         condition operand.
872         * tree-vect-stmts.c (vectorizable_condition): Use boolean
873         vector type for vector comparison.
874         * tree-vect-generic.c (elem_op_func): Add new operand to hold
875         vector type.
876         (do_unop): Adjust to modified function type.
877         (do_binop): Likewise.
878         (do_plus_minus): Likewise.
879         (do_negate); Likewise.
880         (expand_vector_piecewise): Likewise.
881         (do_cond): Likewise.
882         (do_compare): Use comparison instead of condition.
883         (expand_vector_divmod): Use boolean vector type for comparison.
884         (expand_vector_operations_1): Skip scalar mask operations.
885
886 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
887
888         * omp-low.c (simd_clone_create): Set in_other_partition
889         for created clones.
890
891 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
892
893         * doc/extend.exp (Local Register Variables): Rewrite.
894
895 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
896
897         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
898         and x*x in cases where the operands are sign ops.  Extend these
899         rules to handle copysign as a sign op (including for cos, cosh
900         and pow, which already treated negate and abs as sign ops).
901
902 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
903
904         PR target/68018
905         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
906         for 64-bit MS_ABI targets also when default incoming stack boundary
907         is overriden.
908
909 2015-10-21  Richard Biener  <rguenther@suse.de>
910
911         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
912         cond stmts, enhanced and split out from ...
913         (vn_phi_eq): ... here.
914
915 2015-10-21  Richard Biener  <rguenther@suse.de>
916
917         PR middle-end/68031
918         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
919         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
920         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
921         make sure they are not registered for update.
922
923 2015-10-21  Richard Biener  <rguenther@suse.de>
924
925         PR tree-optimization/68026
926         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
927         unsigned VARYING values.
928
929 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
930
931         * asan.c (asan_emit_stack_protection): Don't pass local stack to
932         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
933         NULL and use local stack than.
934         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
935         in addition to __asan_init.
936         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
937         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
938         * asan.h (asan_intercepted_p): Handle new string builtins.
939         * ubsan.c (ubsan_use_new_style_p): New function.
940         (ubsan_instrument_float_cast): If location is unknown, assign
941         input_location to loc. Propagate loc to ubsan_create_data if
942         ubsan_use_new_style_p returned true.
943
944 2015-10-21  Jeff Law  <law@redhat.com>
945
946         * Makefile.in (OBJS): Remove sched-vis.c
947         * sched-vis.c: Removed.  Code moved into...
948         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
949         * rtl.h: Remove prototypes for functions now living in print-rtl.c
950         * print-rtl.h Add prototypes for new functions in print-rtl.c.
951         * auto-inc-dec.c: Include print-rtl.h
952         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
953         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
954
955         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
956         ATTRIBUTE_UNUSED.
957
958 2015-10-21  Richard Biener  <rguenther@suse.de>
959             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
960
961         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
962         to match.pd.
963         Move (a * (1 << b)) is (a << b) to match.pd.
964         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
965         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
966         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
967
968         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
969         New simplifier.
970         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
971         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
972         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
973         : New simplifier.
974         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
975         New simplifier.
976         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
977
978 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
979             Szabolcs Nagy  <szabolcs.nagy@arm.com>
980             Alan Modra  <amodra@gmail.com>
981
982         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
983         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
984         (LINK_SPEC): Add %(link_secure_plt).
985         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
986         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
987
988 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
989             Szabolcs Nagy  <szabolcs.nagy@arm.com>
990
991         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
992         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
993
994 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
995
996         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
997         New function.
998         (fusion_load_store): Use it.
999         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
1000         ldp and stp in VD modes.
1001         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
1002         (store_pair<mode>, VD): Likewise.
1003
1004 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
1005
1006         PR rtl-optimization/67609
1007         * lra-splill.c (lra_final_code_change): Don't remove all
1008         sub-registers.
1009
1010 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1011
1012         * simplify-rtx.c (simplify_binary_operation): If either operand was
1013         a constant pool reference use them if all other simplifications failed.
1014
1015 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1016
1017         * config/aarch64/aarch64.md
1018         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
1019         * config/aarch64/aarch64-simd.md
1020         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
1021         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
1022         (aarch64_fpconst_pow_of_2): New function.
1023         (aarch64_vec_fpconst_pow_of_2): Likewise.
1024         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
1025         prototype.
1026         (aarch64_vec_fpconst_pow_of_2): Likewise.
1027         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
1028         (aarch64_fp_vec_pow2): Likewise.
1029
1030 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
1031
1032         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
1033         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
1034         * config/alpha/alpha.c (alpha_function_arg_advance): Update
1035         ALPHA_ARG_SIZE usage.
1036         (alpha_arg_partial_bytes): Ditto.
1037
1038 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1039
1040         PR target/66810
1041         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
1042         error_mark_node decls.
1043
1044 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1045
1046         PR target/67963
1047         PR target/67985
1048         * common/config/i386/i386-common.c (ix86_handle_option): Remove
1049         OPT_miamcu handling.
1050         * config/i386/i386.c (PTA_NO_80387): New macro.
1051         (processor_alias_table): Add PTA_NO_80387 to lakemont.
1052         (ix86_option_override_internal): Update MASK_80387 from
1053         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
1054         SSE math only if 80387 is supported.  Don't change
1055         MASK_FLOAT_RETURNS.
1056         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
1057         80387 is supported.
1058         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
1059         if TARGET_80387 is true and TARGET_IAMCU is false.
1060         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
1061         is true and TARGET_IAMCU_P is false.
1062
1063 2015-10-20  Richard Biener  <rguenther@suse.de>
1064
1065         PR tree-optimization/68017
1066         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
1067
1068 2015-10-20  Martin Liska  <mliska@suse.cz>
1069
1070         * cgraphclones.c (cgraph_node::create_virtual_clone):
1071         Verify cgraph_node.local.versionable instead of calling
1072         tree_versionable_function_p.
1073         * ipa-cp.c (determine_versionability): Save the information
1074         to ipa_node_params summary.
1075         (ipcp_versionable_function_p): Use it.
1076         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
1077         (ipcp_generate_summary): Do not compute cgraph_node
1078         versionability.
1079         * ipa-inline-analysis.c (inline_generate_summary): Compute
1080         versionability for all cgraph nodes.
1081         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
1082         ipa_node_params::versionability.
1083         * ipa-prop.h (struct ipa_node_params): Declare it.
1084
1085 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1086
1087         PR other/67868
1088         * varasm.c (assemble_variable): Move special vtv handling to..
1089         (handle_vtv_comdat_sections): .. here. New function.
1090         (output_object_block): Handle vtv sections.
1091
1092 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1093
1094         PR target/66912
1095         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
1096
1097 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
1098
1099         * doc/extend.texi: Update documentation WRT inline functions.
1100
1101 2015-10-20  Alan Modra  <amodra@gmail.com>
1102
1103         PR go/66870
1104         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
1105         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
1106         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
1107
1108 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
1109
1110         PR rtl-optimization/66790
1111         * df.h (DF_MIR): New macro.
1112         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
1113         (DF_MIR_INFO_BB): New macro.
1114         (DF_MIR_IN, DF_MIR_OUT): New macros.
1115         (struct df_mir_bb_info): New.
1116         (df_mir): New macro.
1117         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
1118         declarations.
1119         (df_mir_get_bb_info): New.
1120         * df-problems.c (struct df_mir_problem_data): New.
1121         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
1122         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
1123         df_mir_confluence_0, df_mir_confluence_n,
1124         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
1125         df_mir_bottom_dump, df_mir_verify_solution_start,
1126         df_mir_verify_solution_end): New.
1127         (problem_MIR): New.
1128         (df_mir_add_problem, df_mir_simulate_one_insn): New.
1129         * timevar.def (TV_DF_MIR): New.
1130         * ree.c: Include bitmap.h
1131         (add_removable_extension): Add an INIT_REGS parameter.  Use it
1132         to skip zero-extensions that may get an uninitialized register.
1133         (find_removable_extensions): Compute must-initialized registers
1134         using the MIR dataflow problem. Update the call to
1135         add_removable_extension.
1136         (find_and_remove_re): Call df_mir_add_problem.
1137
1138 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
1139
1140         * common/config/mn10300/mn10300-common.c
1141         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
1142         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
1143
1144 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
1145
1146         * doc/extend.texi (Explicit Register Variables): Simplify and
1147         avoid unnecessary and confusion abbreviations.  Update cross
1148         references.
1149         doc/implement-c.tex: Update cross reference.
1150
1151 2015-10-19  Jeff Law  <law@redhat.com>
1152
1153         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
1154         that create irreducible loops unless the path elimiantes a multiway
1155         branch.
1156
1157 2015-10-19  Richard Biener  <rguenther@suse.de>
1158
1159         PR tree-optimization/67975
1160         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
1161         * tree-cfg.c (extract_true_false_controlled_edges): Split out
1162         core worker from ...
1163         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
1164         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
1165         instead of block number for PHIs with two or one args.
1166         (vn_phi_eq): Compare edge predicates of PHIs that are in different
1167         blocks.
1168
1169 2015-10-19  Richard Biener  <rguenther@suse.de>
1170
1171         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
1172         (gimple_stmt_nonnegative_warnv_p): Use it.
1173         * match.pd (CPROJ): New operator list.
1174         (cproj (complex ...)): Move simplifications from ...
1175         * builtins.c (fold_builtin_cproj): ... here.
1176
1177 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1178
1179         * config/i386/i386.c (ix86_expand_vector_move): Use
1180         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
1181         alignment.
1182
1183 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1184
1185         * doc/invoke.texi: Replace @optindex with @opindex.
1186
1187 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1188
1189         PR target/67995
1190         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
1191         arch= is set,  clear all bits in x_ix86_isa_flags, except for
1192         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
1193
1194 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
1195
1196         PR middle-end/68002
1197         * common.opt (fkeep-static-functions): New option.
1198         * doc/invoke.texi: Document it.
1199         * cgraphunit.c (cgraph_node::finalize_function): Use it.
1200
1201 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1202
1203         * sched-int.h (struct autopref_multipass_data_): Remove offset
1204         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
1205         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
1206         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
1207         (autopref_rank_data): New function.
1208         (autopref_rank_for_schedule): Use it.
1209         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
1210
1211 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
1212
1213         PR other/65800
1214         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
1215
1216 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1217
1218         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
1219         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
1220         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
1221         (STANDARD_STARTFILE_PREFIX_1): New.
1222         (STANDARD_STARTFILE_PREFIX_2): New.
1223
1224 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1225
1226         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
1227         (darwin_driver_init): Note a version-min when provided on the c/l.
1228         * config/darwin.h (%darwin_minversion): Remove.
1229         * config/i386/darwin.h: Likewise.
1230         * config/rs6000/darwin.h: Likewise.
1231         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
1232         rather than an arbitrary constant.
1233
1234 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1235
1236         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
1237         PPC, detect conflicts between -arch and multilib settings.  Detect
1238         and warn about conflicts between multiple -arch definitions.
1239
1240 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1241
1242         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
1243
1244 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1245
1246         * lra-constraints.c (add_next_usage_insn): Change argument type
1247         from rtx to rtx_insn *.
1248
1249 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
1250
1251         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
1252         for Lakemont.
1253
1254 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
1255
1256         * config/tilepro/gen-mul-tables.cc: Adjust include files.
1257         * config/tilegx/mul-tables.c: Regenerate.
1258         * config/tilepro/mul-tables.c: Regenerate.
1259
1260         * config/tilegx/tilegx-c.c: Adjust include files.
1261         * config/tilegx/tilegx.c: Likewise.
1262         * config/tilepro/tilepro-c.c: Likewise.
1263         * config/tilepro/tilepro.c: Likewise.
1264         * config/aarch64/aarch64-builtins.c: Likewise.
1265         * config/aarch64/aarch64.c: Likewise.
1266         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1267         * config/alpha/alpha.c: Likewise.
1268         * config/arc/arc.c: Likewise.
1269         * config/arm/aarch-common.c: Likewise.
1270         * config/arm/arm-builtins.c: Likewise.
1271         * config/arm/arm-c.c: Likewise.
1272         * config/arm/arm.c: Likewise.
1273         * config/avr/avr-c.c: Likewise.
1274         * config/avr/avr-devices.c: Likewise.
1275         * config/avr/avr-log.c: Likewise.
1276         * config/avr/avr.c: Likewise.
1277         * config/bfin/bfin.c: Likewise.
1278         * config/c6x/c6x.c: Likewise.
1279         * config/cr16/cr16.c: Likewise.
1280         * config/cris/cris.c: Likewise.
1281         * config/darwin-c.c: Likewise.
1282         * config/darwin-driver.c: Likewise.
1283         * config/darwin.c: Likewise.
1284         * config/default-c.c: Likewise.
1285         * config/epiphany/epiphany.c: Likewise.
1286         * config/epiphany/mode-switch-use.c: Likewise.
1287         * config/epiphany/resolve-sw-modes.c: Likewise.
1288         * config/fr30/fr30.c: Likewise.
1289         * config/frv/frv.c: Likewise.
1290         * config/ft32/ft32.c: Likewise.
1291         * config/glibc-c.c: Likewise.
1292         * config/h8300/h8300.c: Likewise.
1293         * config/i386/host-cygwin.c: Likewise.
1294         * config/i386/host-mingw32.c: Likewise.
1295         * config/i386/i386-c.c: Likewise.
1296         * config/i386/i386.c: Likewise.
1297         * config/i386/msformat-c.c: Likewise.
1298         * config/i386/winnt-cxx.c: Likewise.
1299         * config/i386/winnt-stubs.c: Likewise.
1300         * config/i386/winnt.c: Likewise.
1301         * config/ia64/ia64-c.c: Likewise.
1302         * config/ia64/ia64.c: Likewise.
1303         * config/iq2000/iq2000.c: Likewise.
1304         * config/lm32/lm32.c: Likewise.
1305         * config/m32c/m32c-pragma.c: Likewise.
1306         * config/m32c/m32c.c: Likewise.
1307         * config/m32r/m32r.c: Likewise.
1308         * config/mcore/mcore.c: Likewise.
1309         * config/mep/mep-pragma.c: Likewise.
1310         * config/mep/mep.c: Likewise.
1311         * config/microblaze/microblaze-c.c: Likewise.
1312         * config/microblaze/microblaze.c: Likewise.
1313         * config/mips/mips-tables.opt
1314         * config/mips/mips.c: Likewise.
1315         * config/mmix/mmix.c: Likewise.
1316         * config/mn10300/mn10300.c: Likewise.
1317         * config/moxie/moxie.c: Likewise.
1318         * config/msp430/msp430-c.c: Likewise.
1319         * config/msp430/msp430.c: Likewise.
1320         * config/nds32/nds32-cost.c: Likewise.
1321         * config/nds32/nds32-fp-as-gp.c: Likewise.
1322         * config/nds32/nds32-intrinsic.c: Likewise.
1323         * config/nds32/nds32-isr.c: Likewise.
1324         * config/nds32/nds32-md-auxiliary.c: Likewise.
1325         * config/nds32/nds32-memory-manipulation.c: Likewise.
1326         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1327         * config/nds32/nds32-predicates.c: Likewise.
1328         * config/nds32/nds32.c: Likewise.
1329         * config/nios2/nios2.c: Likewise.
1330         * config/nvptx/mkoffload.c: Likewise.
1331         * config/nvptx/nvptx.c: Likewise.
1332         * config/pa/pa.c: Likewise.
1333         * config/pdp11/pdp11.c: Likewise.
1334         * config/rl78/rl78-c.c: Likewise.
1335         * config/rl78/rl78.c: Likewise.
1336         * config/rs6000/host-darwin.c: Likewise.
1337         * config/rs6000/rs6000-c.c: Likewise.
1338         * config/rs6000/rs6000-linux.c: Likewise.
1339         * config/rs6000/rs6000.c: Likewise.
1340         * config/rx/rx.c: Likewise.
1341         * config/s390/s390-c.c: Likewise.
1342         * config/s390/s390.c: Likewise.
1343         * config/sh/sh-c.c: Likewise.
1344         * config/sh/sh-mem.cc: Likewise.
1345         * config/sh/sh.c: Likewise.
1346         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1347         * config/sh/sh_treg_combine.cc: Likewise.
1348         * config/sol2-c.c: Likewise.
1349         * config/sol2-cxx.c: Likewise.
1350         * config/sol2-stubs.c: Likewise.
1351         * config/sol2.c: Likewise.
1352         * config/sparc/sparc-c.c: Likewise.
1353         * config/sparc/sparc.c: Likewise.
1354         * config/spu/spu-c.c: Likewise.
1355         * config/spu/spu.c: Likewise.
1356         * config/stormy16/stormy16.c: Likewise.
1357         * config/v850/v850-c.c: Likewise.
1358         * config/v850/v850.c: Likewise.
1359         * config/vax/vax.c: Likewise.
1360         * config/visium/visium.c: Likewise.
1361         * config/vms/vms-c.c: Likewise.
1362         * config/vms/vms.c: Likewise.
1363         * config/vxworks.c: Likewise.
1364         * config/winnt-c.c: Likewise.
1365         * config/xtensa/xtensa.c: Likewise.
1366
1367 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1368
1369         PR target/67745
1370         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
1371         (FUNCTION_BOUNDARY_P): New macro:
1372         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
1373         New hook.
1374         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
1375         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
1376         * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
1377         * gcc/function.c (allocate_struct_function): Call
1378         relayout_function hook.
1379         * gcc/passes.c (rest_of_decl_compilation): Likewise.
1380
1381 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1382
1383         PR target/67745
1384         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
1385         * config/arm/arm.c (arm_option_override_internal): Call
1386         arm_override_options_after_change_1.
1387         (arm_override_options_after_change): New function.
1388         (arm_override_options_after_change_1): Likewise.
1389         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
1390
1391 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1392
1393         Revert:
1394         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1395         empty constructors.
1396
1397 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1398
1399         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
1400         argument is an ADDR_EXPR.
1401
1402 2015-10-16  Richard Biener  <rguenther@suse.de>
1403
1404         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
1405         and get rid of force_gimple_operand_gsi.
1406         (gimple_fold_builtin_memory_chk): Likewise.
1407         (gimple_fold_builtin_stxcpy_chk): Likewise.
1408         (rewrite_to_defined_overflow): Likewise.
1409         (gimple_convert_to_ptrofftype): New function.
1410         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
1411
1412 2015-10-16  Richard Biener  <rguenther@suse.de>
1413
1414         * tree-nested.h (build_addr): Adjust prototype.
1415         * tree-nested.c (build_addr): Remove context argument and use
1416         mark_addressable.
1417         (get_static_chain): Adjust calls to build_addr.
1418         (convert_nl_goto_reference): Likewise.
1419         (convert_tramp_reference_op): Likewise.
1420         (finalize_nesting_tree_1): Likewise.
1421         * value-prof.c (gimple_ic): Likewise.
1422         * gimple-low.c (lower_builtin_setjmp): Likewise.
1423         * tree-parloops.c (take_address_of): Likewise.
1424         (create_call_for_reduction_1): Likewise.
1425         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
1426         (gimple_gen_ic_func_profiler): Likewise.
1427
1428 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1429
1430         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1431         empty constructors.
1432
1433 2015-10-16  Michael Collison  <michael.collison@linaro.org>
1434             Andrew Pinski <andrew.pinski@caviumnetworks.com>
1435
1436         * match.pd ((x < y) && (x < z) -> x < min (y,z),
1437         (x > y) and (x > z) -> x > max (y,z))
1438
1439 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
1440             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1441
1442         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
1443         (DYNAMIC_LINKER): Renamed to ...
1444         (GLIBC_DYNAMIC_LINKER): This.
1445         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
1446
1447 2015-10-15  Marek Polacek  <polacek@redhat.com>
1448
1449         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
1450         gimple_call_builtin instead of is_gimple_call.
1451
1452 2015-10-15  Richard Biener  <rguenther@suse.de>
1453
1454         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
1455
1456 2015-10-15  Richard Biener  <rguenther@suse.de>
1457
1458         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
1459         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
1460         * tree-vect-loop.c (get_initial_def_for_induction): Drop
1461         use of force_gimple_operand in favor of gimple_build.
1462         Use vect_get_new_ssa_name.
1463         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
1464         (vectorizable_mask_load_store): Likewise.
1465         (vectorizable_call): Likewise.
1466         (vectorizable_store): Likewise.
1467         (vectorizable_load): Likewise.
1468         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
1469
1470 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
1471
1472         PR tree-optimization/67945
1473         * tree-pass.h (PROP_gimple_opt_math): New property flag.
1474         * generic-match-head.c (canonicalize_math_p): New function.
1475         * gimple-match-head.c: Include tree-pass.h.
1476         (canonicalize_math_p): New function.
1477         * match.pd: Group math built-in rules into simplifications
1478         and canonicalizations.  Guard the latter with canonicalize_math_p.
1479         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
1480         PROP_gimple_opt_math property.
1481
1482 2015-10-15  Marek Polacek  <polacek@redhat.com>
1483
1484         PR tree-optimization/67953
1485         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
1486
1487 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
1488
1489         * config.gcc: Recognize "." in architecture base name for AArch64.
1490
1491 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1492
1493         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
1494         ROUND_UP macro.
1495         * config/mips/mips.c (mips_setup_incoming_varargs): Use
1496         ROUND_DOWN to calculate off.
1497         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
1498         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
1499         rounded_size.
1500
1501 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1502
1503         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
1504
1505 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
1506             Torvald Riegel  <triegel@redhat.com>
1507
1508         PR target/67281
1509         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
1510         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1511         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
1512         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
1513         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
1514         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1515         trechkpt, treclaim, tsr, ttest): New define_expands.
1516         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1517         __TM_FENCE__ for htm.
1518         * doc/extend.texi: Update documentation for htm builtins.
1519
1520 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1521
1522         PR target/67967
1523         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
1524         REG_CFA_EXPRESSION to aligned SSE stores.
1525
1526 2015-10-14  Jeff Law  <law@redhat.com>
1527
1528         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
1529         num_threaded_edges for successful FSM threads too.
1530
1531 2015-10-14  Richard Biener  <rguenther@suse.de>
1532
1533         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
1534         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
1535         (vect_get_vec_def_for_operand): Remove unused parameter.
1536         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
1537         (vect_create_epilog_for_reduction): Likewise.
1538         (vectorizable_reduction): Likewise.
1539         (vectorizable_live_operation): Likewise.
1540         * tree-vect-patterns.c (type_conversion_p): Likewise.
1541         (vect_recog_vector_vector_shift_pattern): Likewise.
1542         (check_bool_pattern): Likewise.
1543         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1544         (vect_analyze_slp_cost_1): Likewise.
1545         * tree-vect-stmts.c (process_use): Likewise.
1546         (vect_get_vec_def_for_operand): Do not handle reductions.
1547         (vect_get_vec_defs): Adjust.
1548         (vectorizable_mask_load_store): Likewise.
1549         (vectorizable_call): Likewise.
1550         (vectorizable_simd_clone_call): Likewise.
1551         (vect_get_loop_based_defs): Likewise.
1552         (vectorizable_conversion): Likewise.
1553         (vectorizable_assignment): Likewise.
1554         (vectorizable_shift): Likewise.
1555         (vectorizable_operation): Likewise.
1556         (vectorizable_store): Likewise.
1557         (vectorizable_load): Likewise.
1558         (vect_is_simple_cond): Likewise.
1559         (vectorizable_condition): Likewise.
1560         (vect_is_simple_use): Remove unused parameters.
1561         (vect_is_simple_use_1): Adjust and rename.
1562
1563 2015-10-14  Richard Biener  <rguenther@suse.de>
1564
1565         PR tree-optimization/67915
1566         * match.pd: Handle comparisons of addresses of STRING_CSTs.
1567         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
1568         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
1569         stmt folding in favor of GIMPLE one.
1570
1571 2015-10-14  Marek Polacek  <polacek@redhat.com>
1572
1573         PR tree-optimization/67815
1574         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
1575         (reassociate_bb): Call it.
1576
1577 2015-10-14  Richard Biener  <rguenther@suse.de>
1578
1579         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1580         Reset info at start.
1581         (vect_analyze_group_access_1): Add debug print.
1582         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
1583         (vect_compute_single_scalar_iteration_cost): ... to this.
1584         (vect_analyze_loop_2): Adjust.
1585         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
1586         * tree-vectorizer.h: ... here.
1587         (add_stmt_info_to_vec): Remove.
1588         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
1589
1590 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1591
1592         * targhooks.c (default_target_option_pragma_parse): Do not warn if
1593         called on behalf of "#pragma GCC pop_options".
1594
1595 2015-10-14  Tom de Vries  <tom@codesourcery.com>
1596
1597         * cfganal.c (verify_no_unreachable_blocks): New function.
1598         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
1599         verify_no_unreachable_blocks.
1600         cfganal.h (verify_no_unreachable_blocks): Declare.
1601
1602 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
1603
1604         * common.opt: Add flag_checking.
1605         * system.h (CHECKING_P): Define.
1606
1607 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1608             Aldy Hernandez  <aldyh@redhat.com>
1609             Ilya Verbin  <ilya.verbin@intel.com>
1610
1611         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
1612         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
1613         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
1614         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
1615         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
1616         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
1617         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
1618         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
1619         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
1620         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
1621         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1622         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1623         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
1624         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
1625         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
1626         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
1627         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
1628         (struct cgraph_simd_clone_arg): Adjust comment.
1629         * coretypes.h (struct gomp_ordered): New forward decl.
1630         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
1631         set critical clauses to it.
1632         (gimple_build_omp_ordered): Return gomp_ordered * instead of
1633         gimple *.  Add CLAUSES argument, set ordered clauses to it.
1634         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
1635         GIMPLE_OMP_ORDERED.
1636         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
1637         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
1638         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
1639         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
1640         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
1641         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
1642         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
1643         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
1644         renumber
1645         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
1646         (gomp_critical): Add clauses field.
1647         (gomp_ordered): New struct.
1648         (is_a_helper <gomp_ordered *>::test): New inline.
1649         (gimple_build_omp_critical): Add CLAUSES argument.
1650         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
1651         instead of gimple *.
1652         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
1653         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
1654         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
1655         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
1656         inline functions.
1657         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
1658         (dump_gimple_omp_target): Handle enter data and exit data.
1659         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
1660         (dump_gimple_omp_critical): Print clauses.
1661         (dump_gimple_omp_ordered): New function.
1662         (dump_gimple_omp_task): Handle taskloop.
1663         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
1664         GIMPLE_OMP_ORDERED.
1665         * gimple-walk.c (walk_gimple_op): Walk clauses on
1666         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
1667         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
1668         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
1669         (struct gimplify_omp_ctx): Add loop_iter_var,
1670         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
1671         and target_firstprivatize_array_bases fields.
1672         (delete_omp_context): Release loop_iter_var.
1673         (gimplify_bind_expr): Handle ORT_NONE.
1674         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
1675         ORT_COMBINED_TARGET.
1676         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
1677         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
1678         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
1679         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
1680         ctx->target_map_scalars_firstprivate.
1681         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
1682         data sharing clauses.  For data sharing clause with VLA decl
1683         on omp target/target data don't add firstprivate for the pointer.
1684         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
1685         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
1686         the addition of ORT_COMBINED_TARGET.
1687         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
1688         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
1689         pointers as zero length array sections and
1690         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
1691         data sharing.
1692         (omp_check_private): Handle omp_member_access_dummy_var vars.
1693         (find_decl_expr): New function.
1694         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
1695         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
1696         Handle OMP_CLAUSE_GANG separately.  Handle
1697         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1698         clauses.  Diagnose linear clause on combined
1699         distribute {, parallel for} simd construct, unless it is the loop
1700         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
1701         Handle map clauses with COMPONENT_REF.  Initialize
1702         ctx->target_map_scalars_firstprivate,
1703         ctx->target_firstprivatize_array_bases and
1704         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
1705         linear clause even to target region if combined.  Remove
1706         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
1707         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
1708         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
1709         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
1710         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
1711         For linear clause on worksharing loop combined with parallel add
1712         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
1713         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
1714         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
1715         taskloop if needed.
1716         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
1717         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
1718         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
1719         GOMP_MAP_POINTER.
1720         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
1721         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
1722         in target body.  Handle removal of struct mapping if struct is not
1723         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
1724         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
1725         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
1726         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
1727         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
1728         clause appear together.  Handle
1729         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
1730         clause if it has map-type-modifier always.  Handle
1731         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1732         clauses.
1733         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
1734         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
1735         callers.
1736         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
1737         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
1738         iterators in doacross loops.
1739         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
1740         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
1741         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
1742         for the addition of ORT_COMBINED_TARGET.
1743         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
1744         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
1745         and OMP_TARGET_EXIT_DATA.
1746         (gimplify_omp_ordered): New function.
1747         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
1748         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
1749         Gimplify clauses on OMP_CRITICAL.
1750         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
1751         expand_GOMP_SIMD_ORDERED_END): New functions.
1752         * internal-fn.def (GOMP_SIMD_ORDERED_START,
1753         GOMP_SIMD_ORDERED_END): New internal functions.
1754         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
1755         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
1756         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
1757         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
1758         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
1759         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
1760         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
1761         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
1762         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
1763         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
1764         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
1765         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
1766         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
1767         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
1768         adjust type.
1769         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
1770         GOMP_target_data_41, adjust type.
1771         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
1772         GOMP_target_update_41, adjust type.
1773         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
1774         field.
1775         (struct omp_for_data): Add ordered and simd_schedule fields.
1776         (omp_member_access_dummy_var, unshare_and_remap_1,
1777         unshare_and_remap, is_taskloop_ctx): New functions.
1778         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
1779         (extract_omp_for_data): Handle taskloops and doacross loops
1780         and simd schedule modifier.
1781         (omp_adjust_chunk_size): New function.
1782         (get_ws_args_for): Use it.
1783         (lookup_sfield): Change first argument to splay_tree_key,
1784         add overload with first argument tree.
1785         (maybe_lookup_field): Likewise.
1786         (use_pointer_for_field): Handle omp_member_access_dummy_var.
1787         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
1788         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
1789         (build_outer_var_ref): Add LASTPRIVATE argument, handle
1790         taskloops and omp_member_access_dummy_var vars.
1791         (build_sender_ref): Change first argument to splay_tree_key,
1792         add overload with first argument tree.
1793         (install_var_field): For mask & 8 use &DECL_UID as key instead
1794         of the tree itself.
1795         (fixup_child_record_type): Const qualify *.omp_data_i.
1796         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
1797         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
1798         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
1799         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
1800         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
1801         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
1802         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
1803         kinds.
1804         (add_taskreg_looptemp_clauses): New function.
1805         (scan_omp_parallel): Use it.
1806         (scan_omp_task): Likewise.
1807         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1808         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
1809         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1810         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
1811         sandwiched taskloop constructs.  Type check
1812         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
1813         region.  Diagnose depend(source) or depend(sink:...) on
1814         target constructs or task/taskloop.
1815         (handle_simd_reference): Use get_name.
1816         (lower_rec_input_clauses): Likewise.  Ignore all
1817         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
1818         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
1819         before passing it to omp_clause_{default,copy}_ctor.  Handle
1820         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
1821         lastprivate_firstprivate flag for linear that needs copyin and
1822         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
1823         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
1824         on taskloop lookup decl in outer context.  Pass true to
1825         build_outer_var_ref lastprivate argument.  Handle
1826         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
1827         outside of outer taskloop for.
1828         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
1829         OMP_CLAUSE_DECL.
1830         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
1831         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
1832         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
1833         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
1834         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
1835         abstract origin.  Handle omp_member_access_dummy_var vars.
1836         (expand_parallel_call): Use expand_omp_build_assign.
1837         (expand_task_call): Handle taskloop construct expansion.  Add
1838         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
1839         integers.  Add priority argument to GOMP_task* calls.  Or in
1840         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
1841         GOMP_task call.
1842         (expand_omp_build_assign): Add prototype.  Add AFTER
1843         argument, if true emit statements after *GSI_P and continue linking.
1844         (expand_omp_taskreg): Adjust expand_task_call caller.
1845         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
1846         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
1847         zero_iter2_bb and first_zero_iter2 arguments, handle computation
1848         of counts even for ordered loops.
1849         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
1850         (expand_omp_ordered_source, expand_omp_ordered_sink,
1851         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
1852         functions.
1853         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
1854         clauses on worksharing loop.  Handle DOACROSS loop expansion.
1855         (expand_omp_for_static_nochunk): Handle linear clauses on
1856         worksharing loop.  Adjust expand_omp_for_init_counts
1857         callers.
1858         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
1859         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
1860         expand_omp_for_init_counts callers.
1861         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
1862         functions.
1863         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
1864         Handle doacross loops.
1865         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1866         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
1867         GOMP_target_{41,update_41,enter_exit_data} libcalls.
1868         (expand_omp): Don't expand ordered depend constructs here, record
1869         ord_stmt instead for later expand_omp_for_generic.
1870         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1871         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1872         clause as stand-alone directive.
1873         (lower_omp_ordered_clauses): New function.
1874         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
1875         don't lower anything.
1876         (lower_omp_for_lastprivate): Use last _looptemp_ clause
1877         on taskloop for comparison.
1878         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
1879         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
1880         expansion for linear adjustments.
1881         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1882         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
1883         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
1884         to tree * pointing to the stmt's clauses.
1885         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
1886         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1887         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
1888         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
1889         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
1890         clauses.  Always use short kind and 8-bit align shift.
1891         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
1892         (struct lower_omp_regimplify_operands_data): New type.
1893         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
1894         New functions.
1895         (lower_omp_1): Use lower_omp_regimplify_operands instead of
1896         gimple_regimplify_operands.
1897         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1898         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1899         clause as stand-alone directive.
1900         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
1901         (simd_clone_mangle): Mangle the various linear kinds
1902         per the new ABI.
1903         (simd_clone_adjust_argument_types): Handle
1904         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
1905         (simd_clone_init_simd_arrays): Don't do anything for uval.
1906         (simd_clone_adjust): Handle
1907         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1908         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
1909         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
1910         * omp-low.h (omp_member_access_dummy_var): New prototype.
1911         * passes.def (pass_simduid_cleanup): Schedule another copy of the
1912         pass after all optimizations.
1913         * tree.c (omp_clause_code_name): Add entries for
1914         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1915         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1916         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
1917         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
1918         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
1919         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
1920         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1921         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
1922         clauses.
1923         * tree-core.h (enum omp_clause_linear_kind): New.
1924         (struct tree_omp_clause): Change type of map_kind
1925         from unsigned char to unsigned int.  Add subcode.if_modifier
1926         and subcode.linear_kind fields.
1927         (enum omp_clause_code): Add
1928         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1929         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1930         (OMP_CLAUSE_REDUCTION): Document
1931         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1932         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
1933         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
1934         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
1935         operand.
1936         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
1937         operand.
1938         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
1939         codes.
1940         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
1941         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
1942         char.
1943         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
1944         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
1945         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
1946         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
1947         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
1948         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
1949         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
1950         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
1951         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
1952         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
1953         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
1954         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
1955         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
1956         * tree-inline.c (remap_gimple_stmt): Handle clauses on
1957         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
1958         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
1959         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
1960         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1961         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1962         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1963         (convert_local_omp_clauses): Likewise.
1964         * tree-pretty-print.c (dump_omp_clause): Handle
1965         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1966         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1967         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
1968         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
1969         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
1970         GOMP_MAP_FORCE_DEALLOC.  Handle
1971         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
1972         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
1973         and clauses on OMP_ORDERED and OMP_CRITICAL.
1974         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
1975         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
1976         (vectorize_loops): Adjust comments.
1977         (pass_simduid_cleanup::execute): Likewise.
1978         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1979         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
1980         * wide-int.h (wi::gcd): New.
1981
1982 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1983
1984         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
1985         (ix86_function_arg_advance): Ditto.
1986         (ix86_function_arg): Ditto.
1987         (ix86_gimplify_va_arg): Ditto.
1988         (ix86_class_max_nregs): Ditto.
1989         (inline_memory_move_cost): Ditto.
1990         (ix86_set_reg_reg_cost): Ditto.
1991         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
1992
1993 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
1994
1995         PR middle-end/67912
1996         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
1997
1998 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1999
2000         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
2001         ROUND_UP macro and UNITS_PER_WORD * 2.
2002         * config/sparc/sparc.c (sparc_compute_frame_size):
2003         Use ROUND_UP and ROUND_DOWN macros where applicable.
2004         (function_arg_record_value, function_arg_record_value_1)
2005         (function_arg_record_value_1): Ditto.
2006         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
2007         alignment to double-word.
2008         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
2009         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
2010         rounded_size.
2011
2012 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
2013
2014         * gcc/rtl.h (print_insn): Fix prototype.
2015
2016 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2017
2018         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
2019         -1.  Add assert that returned entry matches phi argument.
2020         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
2021         free_stmt_vec_info_vec ...
2022         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
2023         with -1.
2024
2025 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
2026
2027         PR tree-optimization/67909, 67947
2028         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
2029         really skip the inner loop.
2030
2031 2015-10-13  Jeff Law  <law@redhat.com>
2032
2033         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
2034         Allow single block jump threading paths.
2035
2036 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2037
2038         PR tree-optimization/67476
2039         * doc/invoke.texi (@item parloops-schedule): New item.
2040         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
2041         * tree-parloops.c: Include params-enum.h.
2042         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
2043
2044 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2045
2046         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
2047         * params-enum.h: New file.
2048         * opts.c (handle_param): Handle case that param arg is a string.
2049         * params-list.h: Handle DEFPARAMENUM5 in params.def.
2050         * params.c (find_param): New function, factored out of ...
2051         (set_param_value): ... here.
2052         (param_string_value_p): New function.
2053         * params.h (struct param_info): Add value_names field.
2054         (find_param, param_string_value_p): Declare.
2055
2056 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2057
2058         PR tree-optimization/67476
2059         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
2060
2061 2015-10-13  Richard Biener  <rguenther@suse.de>
2062
2063         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
2064         the data dependence vector.
2065         (vect_peeling_hash_insert): Get the peeling hash table as argument.
2066         (vect_peeling_hash_get_lowest_cost): Likewise.
2067         (vect_enhance_data_refs_alignment): Adjust.
2068         (struct _vect_peel_info, struct _vect_peel_extended_info,
2069         struct peel_info_hasher): Move from ...
2070         * tree-vectorizer.h: ... here.
2071         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
2072         (LOOP_VINFO_PEELING_HTAB): Likewise.
2073         (struct _loop_vec_info): Remove min_profitable_iters and
2074         peeling_htab members.
2075         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
2076         here.
2077         (destroy_loop_vec_info): Adjust.
2078         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
2079         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
2080         to estimate alias versioning cost.
2081         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
2082
2083 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2084
2085         * real.h (real_isinteger): Declare.
2086         * real.c (real_isinteger): New function.
2087         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
2088         if y is an even integer.
2089
2090 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2091
2092         revert:
2093         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2094         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
2095         counts when these are more informative.
2096
2097 2015-10-12  Jeff Law  <law@redhat.com>
2098
2099         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
2100         (fsm_find_control_stmt_paths): Change name of first argument to
2101         more accurately relfect what it really is.  Handle simplification
2102         of GIMPLE_COND after finding a thread path for NAME.
2103         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
2104         nontrivial conditions to be handled by FSM threader.
2105         (thread_through_normal_block): Extract the name to looup via
2106         FSM threader from COND_EXPR.
2107
2108         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
2109         restriction that traced SSA_NAME is a user variable.
2110
2111 2015-10-12  Tom de Vries  <tom@codesourcery.com>
2112
2113         PR tree-optimization/67476
2114         * omp-low.c (expand_omp_for_generic): Add missing phis.
2115
2116 2015-10-12  Tom de Vries  <tom@codesourcery.com>
2117
2118         PR tree-optimization/67476
2119         * omp-low.c (expand_omp_for_generic): Handle simple latch.
2120
2121 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
2122
2123         * config/aarch64/aarch64-simd-builtins.def: Update builtins
2124         tables: add tbl3 and tbx4.
2125         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
2126         (aarch64_tbx4v8qi): New.
2127         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
2128         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
2129         Rewrite using builtin functions.
2130         * config/aarch64/iterators.md (UNSPEC_TBX): New.
2131
2132 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
2133
2134         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
2135         ROUND_UP macro.
2136         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
2137         Use ROUND_UP and ROUND_DOWN macros where applicable.
2138         (rs6000_darwin64_record_arg_flush): Ditto.
2139         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
2140         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
2141         rounded_size.
2142
2143 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
2144
2145         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
2146         (AARCH64_ROUND_DOWN): Ditto.
2147         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
2148
2149 2015-10-12  Richard Biener  <rguenther@suse.de>
2150
2151         PR ipa/67783
2152         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
2153         code that analyzes IVs on each stmt but in a cheaper way avoiding
2154         quadratic behavior.
2155
2156 2015-10-12  Nick Clifton  <nickc@redhat.com>
2157
2158         * config/msp430/msp430.c (msp430_mcu_names): Rename to
2159         msp430_mcu_data, add fields for ISA and hardware multiply
2160         support.  Import latest data from the devices.csv file.
2161         (msp430_override_option): Use the data from the new array.
2162         (msp430_use_f5_series_hwmult): Likewise.
2163         (use_32bit_hwmult): Likewise.
2164         (msp430_no_hwmult): Likewise.
2165         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
2166         MCU names.
2167         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
2168         not recognised then no hardware multiply support is assumed and
2169         that only the MSP430 ISA is allowed.
2170
2171 2015-10-12  Richard Biener  <rguenther@suse.de>
2172
2173         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
2174         related code ...
2175         (vect_analyze_loop_2): ... here.
2176
2177 2015-10-11  Jason Merrill  <jason@redhat.com>
2178
2179         PR c++/67557
2180         * expr.c (store_field): Call store_constructor directly when
2181         storing a CONSTRUCTOR into a target smaller than its type.
2182         Guard against unsafe bitwise copy.
2183
2184 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2185
2186         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
2187         counts when these are more informative.
2188
2189 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2190
2191         * tree-profile.c (tree_profiling): Do not clear
2192         pure/const when not instrumenting.
2193         (pass tree_profile): Add dump of symtab.
2194
2195 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2196
2197         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
2198         addresses.
2199         (fold_addr_of_array_ref_difference): Likewise.
2200
2201 2015-10-11  Jeff Law  <law@redhat.com>
2202
2203         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
2204         tree-ssa-threadbackward.c.
2205         (fsm_find_control_statement_thread_paths): Likewise.
2206         (thread_through_normal_block): Break out FSM bits and move them
2207         into a new function in tree-ssa-threadbackward.c.  Call new function
2208         instead.
2209         Minimize header file usage.
2210         * tree-ssa-threadbackward.h: New file.
2211         * tree-ssa-threadbackward.c: Likewise.
2212         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
2213
2214 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
2215
2216         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
2217
2218 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
2219
2220         PR rtl-optimization/67864
2221         * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
2222         fallthrough edges for conditional jumps.  Don't sort candidate
2223         edges if not optimizing for speed.
2224
2225 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2226
2227         * defaults.h (REVERSE_CONDITION): New default definition.
2228         * jump.c (reversed_comparison_code_parts): Adjust.
2229
2230 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2231
2232         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
2233         check HARD_FRAME_POINTER_IS_ARG_POINTER.
2234
2235 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2236
2237         * defaults.h (FRAME_ADDR_RTX): New default definition.
2238         * builtins.c (expand_builtin_return_addr): Adjust.
2239
2240 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2241
2242         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
2243         * builtins.c (expand_builtin_return_addr): Adjust.
2244
2245 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2246
2247         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
2248         * builtins.c (expand_builtin_return_addr): Adjust.
2249         * doc/tm.texi: Likewise.
2250         * doc/tm.texi.in: Likewise.
2251         * except.c (expand_builtin_unwind_init): Likewise.
2252
2253 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2254
2255         * builtins.c (expand_builtin_return_addr): Adjust.
2256         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
2257
2258 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2259
2260         * tree.c (type_with_interoperable_signedness): New.
2261         (gimple_canonical_types_compatible_p): Use it.
2262         * tree.h (type_with_interoperable_signedness): Declare
2263
2264 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2265
2266         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
2267         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
2268         when OEP_ADDRESS_OF is se.
2269
2270 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2271             Sebastian Pop  <s.pop@samsung.com>
2272
2273         * graphite-dependences.c (scop_get_dependences): Add dump of the
2274         data dependence graph.
2275         * graphite-poly.c (print_isl_union_map): New.
2276         (debug_isl_union_map): New.
2277         * graphite-poly.h (print_isl_union_map): Declare.
2278         (debug_isl_union_map): Declare.
2279
2280 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2281             Sebastian Pop  <s.pop@samsung.com>
2282
2283         * graphite-poly.c (print_iteration_domain): Remove verbosity.
2284         Remove OpenScop formatting.
2285         (print_iteration_domains): Same.
2286         (debug_iteration_domain): Same.
2287         (debug_iteration_domains): Same.
2288         (print_pdr): Same.
2289         (debug_pdr): Same.
2290         (dump_gbb_cases): Same.
2291         (dump_gbb_conditions): Same.
2292         (print_pdrs): Same.
2293         (debug_pdrs): Same.
2294         (print_pbb_body): Same.
2295         (print_pbb): Same.
2296         (print_scop_params): Same.
2297         (print_scop_context): Same.
2298         (print_scop): Same.
2299         (debug_pbb_domain): Same.
2300         (debug_pbb): Same.
2301         (debug_scop_context): Same.
2302         (debug_scop): Same.
2303         (debug_scop_params): Same.
2304         * graphite-poly.h: Same.
2305         * graphite.c (graphite_transform_loops): Same.
2306
2307 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2308
2309         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
2310         call that isn't needed.
2311
2312 2015-10-09  Jeff Law  <law@redhat.com>
2313
2314         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
2315         rather than moving each name to the freelist individually.
2316
2317 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
2318
2319         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
2320         * frame-header-opt.c: New file.
2321         * config/mips/mips-proto.h (mips_register_frame_header_opt):
2322         Add prototype.
2323         * config/mips/mips.c (mips_compute_frame_info): Check
2324         optimize_call_stack flag.
2325         (mips_option_override): Register new frame_header_opt pass.
2326         (mips_frame_info, mips_int_mask, mips_shadow_set,
2327         machine_function): Move these types to...
2328         * config/mips/mips.h: here.
2329         (machine_function): Add does_not_use_frame_header and
2330         optimize_call_stack fields.
2331         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
2332         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
2333         Document new flags.
2334         * config/mips/mips.opt (mframe-header-opt): Add new option.
2335
2336 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
2337
2338         * config/i386/i386.c
2339         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
2340         ROUND_DOWN where applicable.
2341
2342 2015-10-09  Jeff Law  <law@redhat.com>
2343
2344         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
2345         correct statement.
2346
2347 2015-10-09  Renlin Li  <renlin.li@arm.com>
2348
2349         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
2350         operands[0] and operands[2].
2351         (neon_vtrn<mode>_insn): Likewise.
2352         (neon_vzip<mode>_insn): Likewise.
2353
2354 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2355
2356         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
2357         ((X & C2) << C1): Expand to...
2358         (X {&,^,|} C2 << C1): ...This.
2359         ((X & C2) >> C1): Expand to...
2360         (X {&,^,|} C2 >> C1): ...This.
2361
2362 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
2363
2364         PR target/67895
2365         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
2366         Adjust embedded rounding/SAE specifier position.
2367         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
2368         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
2369         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
2370         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
2371         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
2372         Likewise.
2373         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
2374
2375 2015-10-09  Martin Jambor  <mjambor@suse.cz>
2376
2377         tree-optimization/67794
2378         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
2379         between types of state,ents but accept original definitions as a
2380         parameter.
2381         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
2382         iterate over definitions.
2383
2384 2015-10-09  James Norris  <jnorris@codesourcery.com>
2385
2386         * config/rs6000/rs6000.c (rs6000_offload_options): New.
2387         (TARGET_OFFLOAD_OPTIONS): New.
2388
2389 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
2390
2391         PR middle-end/67891
2392         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
2393
2394         PR middle-end/67766
2395         * function.c (expand_function_end): Move return value
2396         promotion past the handling of PARALLELs and CONCATs.
2397
2398         PR rtl-optimization/67828
2399         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
2400         (tree_may_unswitch_on): Don't unswitch on expressions
2401         involving undefined values.
2402
2403 2015-10-09  Richard Biener  <rguenther@suse.de>
2404
2405         * genmatch.c (print_operand): Fix formatting.
2406         (dt_node::append_simplify): Warn for multiple simplifiers
2407         that match the same pattern.
2408         * match.pd (log (exp @0)): Remove duplicates.
2409
2410 2015-10-09  Richard Biener  <rguenth@suse.de>
2411
2412         PR target/67366
2413         * gimple-fold.c (optabs-query.h): Include
2414         (gimple_fold_builtin_memory_op): Allow unaligned stores
2415         when movmisalign_optabs are available.
2416
2417 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2418
2419         PR target/67366
2420         * config/arm/arm.md (movmisalign<mode>): New.
2421         * config/arm/iterators.md (HSI): New.
2422
2423 2015-10-09  Richard Biener  <rguenther@suse.de>
2424
2425         PR tree-optimization/67891
2426         * gimple-match.h (gimple_simplified_result_is_gimple_val):
2427         New helper.
2428         (gimple_resimplify1): Declare.
2429         (gimple_resimplify2): Likewise.
2430         (gimple_resimplify3): Likewise.
2431         * gimple-match-head.c (gimple_resimplify1): Export.
2432         (gimple_resimplify2): Likewise.
2433         (gimple_resimplify3): Likewise.
2434         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
2435         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
2436         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
2437         to avoid creating stmts without VN info.
2438
2439 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
2440
2441         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
2442         of availability.
2443
2444 2015-10-08  Jeff Law  <law@redhat.com>
2445
2446         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
2447         and release_ssa_name in two places.
2448         (gimple_stringop_fixed_value): Similarly.
2449
2450         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
2451         release_defs.
2452
2453         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
2454         unlink_stmt_vdef and release_ssa_name_fn.
2455
2456         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
2457         release_defs.
2458
2459 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2460
2461         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
2462         SSE register save area to 16 bytes only if the incoming stack
2463         boundary is no less than 16 bytes.
2464
2465 2015-10-08  Jeff Law  <law@redhat.com>
2466
2467         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
2468         release_ssa_name.  Fix typo in comment.
2469
2470 2015-10-08  Nathan Sidwell  <nathan@acm.org>
2471
2472         * config/nvptx/nvptx.h (struct machine_function): Add comment.
2473         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
2474         may return pointer as well as in memory.
2475         (nvptx_output_return): Likewise.
2476
2477 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2478
2479         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
2480         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
2481         * match.pd: Add rules previously handled by fold_builtin_sqrt
2482         and fold_builtin_cbrt.
2483
2484 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2485
2486         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
2487         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
2488         * fold-const.h (tree_unary_nonnegative_warnv_p)
2489         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2490         (tree_expr_nonnegative_warnv_p): Add depth parameters.
2491         * fold-const.c: Include gimple-fold.h and params.h.
2492         (tree_ssa_name_nonnegative_warnv_p): New function.
2493         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
2494         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2495         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
2496         Add a depth parameter and increment it for recursive calls to
2497         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
2498         to handle SSA names.
2499         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
2500         (gimple_stmt_nonnegative_warnv_p): Declare.
2501         * tree-vrp.c (remove_range_assertions): Remove assert that condition
2502         cannot be proven false.
2503         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
2504         (gimple_stmt_nonnegative_warnv_p): Move to...
2505         * gimple-fold.c: ...here.  Add depth parameters and pass them
2506         down to the tree routines.  Accept statements that aren't
2507         assignments or calls but just return false for them.
2508         (gimple_val_nonnegative_real_p): Delete.
2509         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
2510         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
2511         Check HONOR_NANs first.
2512
2513 2015-10-08  Martin Jambor  <mjambor@suse.cz>
2514
2515         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
2516         unnecessary MIN.
2517
2518 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2519
2520         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
2521         in the tail of outer-loop.
2522
2523 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
2524
2525         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
2526         return UI_NONE.
2527
2528 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2529
2530         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
2531         "cfghooks.h", add prototypes for introduced new functions.
2532         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
2533         checks on ability of loop unswitching to tree_unswitch_single_loop;
2534         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
2535         on innermost loop check.
2536         (tree_unswitch_single_loop): Add all required checks on ability of
2537         loop unswitching under zero recursive level guard.
2538         (tree_unswitch_outer_loop): New function.
2539         (find_loop_guard): Likewise.
2540         (empty_bb_without_guard_p): Likewise.
2541         (used_outside_loop_p): Likewise.
2542         (get_vop_from_header): Likewise.
2543         (hoist_guard): Likewise.
2544         (check_exit_phi): Likewise.
2545
2546 2015-10-08  Marek Polacek  <polacek@redhat.com>
2547
2548         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
2549         ops element.
2550
2551 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2552
2553         PR c/65345
2554         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
2555         create_tmp_var_raw instead of create_tmp_var.
2556
2557 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
2558
2559         * expr.c (store_expr_with_bounds): Handle aggregate moves from
2560         BLKmode.
2561         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
2562         to define gimple type system; compare aggregates only by size.
2563
2564 2015-10-07  Jeff Law  <law@redhat.com>
2565
2566         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
2567         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
2568         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
2569         unnecessarily.
2570
2571 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2572             Sebastian Pop  <s.pop@samsung.com>
2573
2574         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
2575         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
2576         (generate_isl_schedule): Same.
2577         * graphite-optimize-isl.c (scop_get_domains): Same.
2578         (apply_schedule_map_to_scop): Same.
2579         * graphite-poly.c (print_iteration_domains): Same.
2580         (remove_gbbs_in_scop): Same.
2581         (new_scop): Same.
2582         (free_scop): Same.
2583         (print_scop): Same.
2584         * graphite-poly.h (struct scop): Rename bbs to pbbs.
2585         (SCOP_BBS): Remove.
2586         * graphite-scop-detection.c (compare_bb_depths): Remove.
2587         (graphite_sort_dominated_info): Remove.
2588         (try_generate_gimple_bb): Move out of scop_detection.
2589         (all_non_dominated_preds_marked_p): Remove.
2590         (build_scop_bbs_1): Remove.
2591         (build_scop_bbs): Remove.
2592         (nb_pbbs_in_loops): Do not use SCOP_BBS.
2593         (find_scop_parameters): Same.
2594         (sese_dom_walker): Rename gather_bbs.
2595         (before_dom_children): Call try_generate_gimple_bb and collect gbb
2596         and pbb.
2597         (build_scops): Call gather_bbs.
2598         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
2599         (add_conditions_to_constraints): Same.
2600         (build_scop_iteration_domain): Same.
2601         (build_scop_drs): Same.
2602         (new_pbb_from_pbb): Same.
2603         * sese.c (new_sese_info): Create bbs.
2604         * sese.h (struct sese_info_t): Add bbs.
2605
2606 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
2607
2608         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
2609         encoding in 64-bit mode.
2610
2611 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
2612
2613         PR target/66697
2614         * config/i386/i386.c (ix86_option_override_internal): Always use
2615         8-byte minimum stack boundary in 64-bit mode.
2616         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
2617         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
2618         Add a REG_CFA_EXPRESSION note if needed.
2619         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
2620         (ix86_handle_force_align_arg_pointer_attribute): New.
2621         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
2622         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
2623         with ix86_handle_force_align_arg_pointer_attribute.
2624         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
2625
2626 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2627             Sebastian Pop  <s.pop@samsung.com>
2628
2629         * graphite-scop-detection.c (parameter_index_in_region): Remove
2630         use of SESE_ADD_PARAMS.
2631         (find_scop_parameters): Same.
2632         * sese.c (new_sese_info): Same.
2633         * sese.h (struct sese_info_t): Remove add_params.
2634         (SESE_ADD_PARAMS): Remove.
2635
2636 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2637             Sebastian Pop  <s.pop@samsung.com>
2638
2639         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
2640         an sese_info_p.
2641         (copy_def): Same.
2642         (copy_internal_parameters): Same.
2643         (translate_isl_ast_to_gimple): Use an sese_l.
2644         (build_iv_mapping): Same.
2645         * graphite-poly.c (new_sese): Rename new_sese_info.
2646         (free_sese): Rename free_sese_info.
2647         * graphite-poly.h (struct scop): Use an sese_info_p.
2648         (scop_set_region): Same.
2649         * graphite-scop-detection.c (struct sese_l): Moved...
2650         (get_entry_bb): Moved...
2651         (get_exit_bb): Moved...
2652         (parameter_index_in_region_1): Use an sese_info_p.
2653         (parameter_index_in_region): Same.
2654         (scan_tree_for_params): Same.
2655         (find_params_in_bb): Same.
2656         (sese_dom_walker): Use an sese_l.
2657         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
2658         (reduction_phi_p): Same.
2659         (parameter_index_in_region_1): Use an sese_info_p.
2660         (propagate_expr_outside_region): Use an sese_l.
2661         * graphite.c: Replace uses of SCOP_REGION.
2662         * sese.c (sese_record_loop): Use an sese_info_p.
2663         (build_sese_loop_nests): Same.
2664         (sese_build_liveouts_use): Same.
2665         (sese_build_liveouts_bb): Same.
2666         (sese_build_liveouts_bb): Same.
2667         (sese_bad_liveouts_use): Same.
2668         (sese_reset_debug_liveouts_bb): Same.
2669         (sese_build_liveouts): Same.
2670         (new_sese): Renamed new_sese_info.
2671         (free_sese): Renamed free_sese_info.
2672         (set_rename): Use an sese_info_p.
2673         (graphite_copy_stmts_from_block): Same.
2674         (copy_bb_and_scalar_dependences): Same.
2675         (outermost_loop_in_sese_1): Use an sese_l.
2676         (outermost_loop_in_sese): Same.
2677         (if_region_set_false_region): Use an sese_info_p.
2678         (move_sese_in_condition): Same.
2679         (scalar_evolution_in_region): Use an sese_l.
2680         * sese.h (struct sese_l): ... here.
2681         (SESE_ENTRY): Remove.
2682         (SESE_ENTRY_BB): Remove.
2683         (SESE_EXIT): Remove.
2684         (SESE_EXIT_BB): Remove.
2685         (sese_contains_loop): Use an sese_info_p.
2686         (sese_nb_params): Same.
2687         (bb_in_sese_p): Use an sese_l.
2688         (stmt_in_sese_p): Same.
2689         (defined_in_sese_p): Same.
2690         (loop_in_sese_p): Same.
2691         (sese_loop_depth): Same.
2692         (struct ifsese_s): Use an sese_info_p.
2693         (gbb_loop_at_index): Use an sese_l.
2694         (nb_common_loops): Same.
2695         (scev_analyzable_p): Same.
2696
2697 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2698
2699         * config/i386/i386.c (ix86_conditional_register_usage): Use
2700         CALL_USED_REGISTERS_MASK.
2701         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
2702
2703 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2704
2705         PR bootstrap/67385
2706         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
2707         * configure: Regenerated.
2708
2709 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2710
2711         PR target/67850
2712         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
2713         (ix86_set_current_function): This.
2714         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
2715
2716 2015-10-07  Richard Biener  <rguenther@suse.de>
2717
2718         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2719         (vinfo_for_stmt): Adjust.
2720         (set_vinfo_for_stmt): Likewise.
2721         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
2722         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
2723         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
2724         of inner loop.
2725         (vect_analyze_loop_1): Remove.
2726         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
2727         inner loop when vectorizing an outer loop by splitting out from ...
2728         (vect_analyze_loop_form): ... here.
2729
2730 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2731
2732         PR c/65345
2733         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
2734         Use create_tmp_var_raw instead of create_tmp_var.
2735
2736 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
2737
2738         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
2739         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
2740         * real.c (CACHED_FRACTION): New helper macro.
2741         (dconst_third_ptr): Use it.
2742         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
2743         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
2744         dconst_sixth.
2745         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
2746
2747 2015-10-06  Jeff Law  <law@redhat.com>
2748
2749         PR tree-optimization/67816
2750         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
2751         from remove_jump_threads_starting_at.  Accept an edge rather than
2752         a basic block.
2753         * tree-ssa-threadupdate.c (removed_edges): New hash table.
2754         (remove_jump_threads_including): Note edges that get removed from
2755         the CFG for later pruning of jump threading paths including them.
2756         (thread_through_all_blocks): Remove paths which include edges that
2757         have been removed.
2758         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
2759         on each outgoing edges when optimizing away a control statement.
2760
2761 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2762
2763         * reorg.c (emit_delay_sequence): Store list of delay slot insns
2764         in a vector instead of rtx_insn_list.
2765         (add_to_delay_list): Likewise.
2766         (delete_from_delay_slot): Likewise.
2767         (optimize_skip): Likewise.
2768         (redirect_with_delay_list_safe_p): Likewise.
2769         (check_annul_list_true_false): Likewise.
2770         (steal_delay_list_from_target): Likewise.
2771         (steal_delay_list_from_fallthrough): Likewise.
2772         (redundant_insn): Likewise.
2773         (fill_simple_delay_slots): Likewise.
2774         (fill_slots_from_thread): Likewise.
2775         (fill_eager_delay_slots): Likewise.
2776         (relax_delay_slots): Likewise.
2777
2778 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
2779
2780         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
2781         For -mgpopt=local, also exclude unintialized common symbols.
2782         * doc/invoke.texi (Nios II Options): Document the change.
2783
2784 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2785
2786         * config/aarch64/iterators.md (vwcore): Add missing cases for
2787          V4HF/V8HF modes.
2788
2789 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2790             Sebastian Pop  <s.pop@samsung.com>
2791
2792         * graphite-poly.c (new_scop): Initialize drs.
2793         * graphite-poly.h (struct dr_info): New.
2794         (struct scop): Add drs.
2795         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
2796         (pdr_add_memory_accesses): Same.
2797         (build_poly_dr): Same.
2798         (build_alias_set): Same.
2799         (build_scop_drs): Same.
2800         (build_pbb_drs): Remove.
2801         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
2802         * tree-data-ref.h (data_reference): Remove alias_set.
2803
2804 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2805             Sebastian Pop  <s.pop@samsung.com>
2806
2807         * graphite-poly.c (free_data_refs_aux): Remove.
2808         (free_gimple_poly_bb): Do not call free_data_refs_aux.
2809         * graphite-poly.h (struct base_alias_pair): Remove.
2810         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
2811         base_alias_pair and dr->aux.
2812         (build_alias_set): Same.
2813         * tree-data-ref.c (create_data_ref): Initialize alias_set.
2814         * tree-data-ref.h (data_reference): Add alias_set.
2815
2816 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2817             Sebastian Pop  <s.pop@samsung.com>
2818
2819         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
2820         Do not set PDR_BASE_OBJECT_SET.
2821         * graphite-poly.h (poly_dr): Same.
2822         (PDR_BASE_OBJECT_SET): Remove.
2823         (new_poly_dr): Update decl.
2824         * graphite-sese-to-poly.c (build_poly_dr): Update call to
2825         new_poly_dr.
2826         (write_alias_graph_to_ascii_dimacs): Remove.
2827         (write_alias_graph_to_ascii_dot): Remove.
2828         (write_alias_graph_to_ascii_ecc): Remove.
2829         (dr_same_base_object_p): Remove.
2830         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
2831         code.
2832         (build_base_obj_set_for_drs): Remove.
2833         (dump_alias_graphs): Remove.
2834         (build_scop_drs): Remove dead code.
2835
2836 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2837             Peter Bergner  <bergner@vnet.ibm.com>
2838
2839         PR target/67808
2840         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
2841         allow registers, but provide insns for the combiner to create for
2842         loads from memory. Separate VSX code from non-VSX code. For
2843         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
2844         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
2845         so that registers come before memory operations. Drop support from
2846         converting DFmode to TFmode, if the DFmode value is in a GPR
2847         register.
2848         (extenddftf2_fprs): Likewise.
2849         (extenddftf2_internal): Likewise.
2850         (extenddftf2_vsx): Likewise.
2851         (extendsftf2): In the expander, only allow registers, but provide
2852         insns for the combiner to create for stores and loads.
2853
2854 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2855
2856         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
2857         from the decl parameter.
2858
2859 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
2860
2861         PR 67861
2862         * gimple-fold.c (gimple_fold_builtin): Add break after
2863         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
2864
2865 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
2866
2867         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
2868         to scop->isl_context.
2869
2870 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2871
2872         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
2873         (output_probe_stack_range): Rotate the loop and simplify.
2874         (thumb1_expand_prologue): Tweak sorry message.
2875         * config/arm/arm.md (probe_stack): Use bare string.
2876
2877 2015-10-06  Nick Clifton  <nickc@redhat.com>
2878
2879         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
2880
2881 2015-10-06  Nick Clifton  <nickc@redhat.com>
2882
2883         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
2884         (ATTR_PERSIST): New constant.
2885         (msp430_data_attr): New function - verifies an attribute that only
2886         applies to variables.
2887         (msp430_attributes): Add noinit and persistent attributes.
2888         (noinit_section): New variable.
2889         (presis_section): New variable.
2890         (TARGET_ASM_INIT_SECTIONS): Define.
2891         (msp430_init_sections): New function - initialises the noinit and
2892         persist section variables.
2893         (msp430_select_section): Add support for noinit and persist
2894         attributes.
2895         (msp430_section_type_flags): Likewise.
2896         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
2897         and persistent attributes.
2898
2899 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2900             Sebastian Pop  <s.pop@samsung.com>
2901
2902         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
2903         (no_violations): Remove.
2904         (subtract_commutative_associative_deps): Remove.
2905         (compute_deps): Do not call subtract_commutative_associative_deps.
2906         (transform_is_safe): Remove.
2907         (graphite_legal_transform): Remove.
2908         * graphite-poly.h (graphite_legal_transform): Remove.
2909
2910 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
2911
2912         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
2913         which are in this region are passed so gcc_assert and remove redundant
2914         computation.
2915         * sese.c (sese_build_liveouts): Pass only those bbs which are not
2916         in region.
2917         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
2918         gcc_assert on that and remove unnecessary computation.
2919         (sese_build_liveouts_use): Same.
2920
2921 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2922
2923         * graphite-dependences.c (scop_get_reads): Renamed scop->context
2924         to scop->param_context.
2925         (scop_get_must_writes): Same.
2926         (scop_get_may_writes): Same.
2927         (scop_get_original_schedule): Same.
2928         (scop_get_transformed_schedule): Same.
2929         (subtract_commutative_associative_deps): Same.
2930         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
2931         (generate_isl_context): Same.
2932         (generate_isl_schedule): Same.
2933         (scop_to_isl_ast): Same.
2934         (graphite_regenerate_ast_isl): Same.
2935         * graphite-optimize-isl.c (scop_get_domains): Same.
2936         (optimize_isl): Renamed scop->context to scop->param_context.
2937         * graphite-poly.c (new_poly_bb): Change the type of argument to
2938         gimple_poly_bb_p.
2939         (new_scop): Renamed scop->context to scop->param_context.
2940         (free_scop): Same.
2941         (print_scop_context): Same.
2942         * graphite-poly.h (new_poly_dr): Change the type of argument from
2943         void* to data_reference_p.
2944         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
2945         (new_poly_bb): Change the type of argument from void* to
2946         gimple_poly_bb_p.
2947         (pbb_set_black_box): Same.
2948         (struct scop): Rename context to param_context, ctx to isl_context.
2949         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
2950         Move declarations closer to assignment.
2951         (find_params_in_bb): Same.
2952         (find_scop_parameters): Same.
2953         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
2954         Global to be used for statement IDs.
2955         (isl_id_for_pbb): Use ssa_name_version_typesize.
2956         (simple_copy_phi_p): Move declarations closer to assignment.
2957         (build_pbb_scattering_polyhedrons): Same.
2958         (build_scop_scattering): Same.
2959         (isl_id_for_ssa_name): Same.
2960         (extract_affine_name): Same.
2961         (extract_affine_int): Same.
2962         (extract_affine): Same.
2963         (set_scop_parameter_dim): Use renamed member.
2964         (build_loop_iteration_domains): Same.
2965         (add_param_constraints): Same.
2966         (build_scop_iteration_domain): Same.
2967         (pdr_add_data_dimensions): Same.
2968         (build_poly_dr): Same.
2969         (build_scop_drs): Move declarations closer to assignment.
2970         (analyze_drs_in_stmts): Same.
2971         (insert_out_of_ssa_copy): Same.
2972         (insert_out_of_ssa_copy_on_edge): Same.
2973         (propagate_expr_outside_region): Same.
2974         (rewrite_phi_out_of_ssa): Same.
2975         (rewrite_degenerate_phi): Same.
2976         (rewrite_reductions_out_of_ssa): Same.
2977         (rewrite_cross_bb_scalar_dependence): Same.
2978         (handle_scalar_deps_crossing_scop_limits): Same.
2979         (rewrite_cross_bb_scalar_deps): Same.
2980         * graphite.c (graphite_transform_loops): Use renamed member.
2981
2982 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
2983
2984         PR c/65345
2985         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
2986         create_tmp_var_raw instead of create_tmp_var.
2987
2988 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2989
2990         PR c/65345
2991         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
2992         Use create_tmp_var_raw instead of create_tmp_var.
2993
2994 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
2995
2996         PR target/67849
2997         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
2998         split for upper-bank registers when target does not support
2999         AVX512VL.
3000         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
3001         split when target does not support AVX512VL.
3002
3003 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
3004
3005         PR c/65345
3006         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
3007         Adjust to use create_tmp_var_raw instead of create_tmp_var.
3008
3009 2015-10-06  Nick Clifton  <nickc@redhat.com>
3010
3011         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
3012         multiplication.
3013
3014 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
3015
3016         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
3017         (case ${target}): Add znver1.
3018         * config/i386/cpuid.h(bit_CLZERO):  Define.
3019         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
3020         -march=native recognize znver1 processors.
3021         * config/i386/i386-c.c (ix86_target_macros_internal): Add
3022         znver1, clzero def_and_undef.
3023         * config/i386/i386.c (struct processor_costs znver1_cost): New.
3024         (m_znver1): New definition.
3025         (m_AMD_MULTIPLE): Includes m_znver1.
3026         (processor_target_table): Add znver1 entry.
3027         (ix86_target_string) : Add clzero entry.
3028         (static const char *const cpu_names): Add znver1 entry.
3029         (ix86_option_override_internal): Add znver1 instruction sets.
3030         (PTA_CLZERO) :  New definition.
3031         (ix86_option_override_internal): Handle new clzerooption.
3032         (ix86_issue_rate): Add znver1.
3033         (ix86_adjust_cost): Add znver1.
3034         (ia32_multipass_dfa_lookahead): Add znver1.
3035         (has_dispatch): Add znver1.
3036         * config/i386/i386.h (TARGET_znver1): New definition.
3037         (TARGET_CLZERO): Define.
3038         (TARGET_CLZERO_P): Define.
3039         (struct ix86_size_cost): Add TARGET_ZNVER1.
3040         (enum processor_type): Add PROCESSOR_znver1.
3041         * config/i386/i386.md (define_attr "cpu"): Add znver1.
3042         (set_attr znver1_decode): New definitions for znver1.
3043         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
3044         (mclzero): New.
3045         * config/i386/mmx.md (set_attr znver1_decode): New definitions
3046         for znver1.
3047         * config/i386/sse.md (set_attr znver1_decode): Likewise.
3048         * config/i386/x86-tune.def:  Add znver1 tunings.
3049         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
3050         * gcc/doc/invoke.texi: Add details about znver1
3051
3052 2015-10-06  Richard Biener  <rguenther@suse.de>
3053
3054         PR tree-optimization/67859
3055         * tree-ssa-pre.c (create_expression_by_pieces): Properly
3056         discard not inserted stmts.
3057
3058 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
3059
3060         * doc/extend.texi (Template Instantiation): Reorder options and
3061         de-emphasize -frepo.
3062         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
3063         example instead of -frepo.
3064
3065 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3066
3067         PR c/65345
3068         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
3069         use create_tmp_var_raw rather than create_tmp_var.
3070
3071 2015-10-06  Richard Biener  <rguenther@suse.de>
3072
3073         * tree-vectorizer.h (vec_info): New base class for...
3074         (_loop_vec_info): ... this and ...
3075         (_bb_vec_info): ... this.
3076         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
3077         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3078         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3079         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
3080         vect_destroy_datarefs): Adjust interface to take a vec_info *
3081         rather than both a loop_vec_info and a bb_vec_info argument.
3082         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
3083         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
3084         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
3085         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
3086         accordingly.
3087         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
3088         (destroy_loop_vec_info, vect_analyze_loop_2,
3089         vect_is_simple_reduction_1, get_initial_def_for_induction,
3090         vect_create_epilog_for_reduction, vectorizable_reduction,
3091         vectorizable_live_operation, vect_transform_loop): Adjust.
3092         * tree-vect-patterns.c (type_conversion_p,
3093         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
3094         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
3095         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
3096         check_bool_pattern, vect_recog_bool_pattern,
3097         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
3098         * tree-vect-slp.c (vect_get_and_check_slp_defs,
3099         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
3100         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
3101         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
3102         (new_bb_vec_info): Initialize base classs.
3103         * tree-vect-stmts.c (record_stmt_cost, process_use,
3104         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
3105         vectorizable_mask_load_store, vectorizable_call,
3106         vectorizable_simd_clone_call, vectorizable_conversion,
3107         vectorizable_assignment, vectorizable_shift,
3108         vectorizable_operation, vectorizable_store,
3109         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
3110         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
3111         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
3112
3113 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3114
3115         PR c/65345
3116         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
3117         create_tmp_var_raw rather than create_tmp_var.
3118
3119 2015-10-05  Marek Polacek  <polacek@redhat.com>
3120
3121         * tree-ssa-loop-im.c
3122         (move_computations_dom_walker::before_dom_children): Don't set
3123         SSA_NAME_ANTI_RANGE_P.
3124         * tree-ssa-phiopt.c (value_replacement): Likewise.
3125
3126 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3127             Sebastian Pop  <s.pop@samsung.com>
3128
3129         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
3130
3131 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3132             Sebastian Pop  <s.pop@samsung.com>
3133
3134         * graphite-poly.c (new_gimple_poly_bb): ... here.
3135         (free_data_refs_aux): ... here.
3136         (free_gimple_poly_bb): ... here.
3137         (remove_gbbs_in_scop): ... here.
3138         (new_scop): Call new_sese.
3139         (free_scop): Call remove_gbbs_in_scop and free_sese.
3140         * graphite-poly.h (base_alias_pair): ... here.
3141         (new_gimple_poly_bb): Declare.
3142         (free_gimple_poly_bb): Declare.
3143         * graphite-scop-detection.c (parameter_index_in_region_1):
3144         (parameter_index_in_region): ... here.
3145         (scan_tree_for_params): ... here.
3146         (find_params_in_bb): ... here.
3147         (find_scop_parameters): ... here.
3148         (build_scops): Call find_scop_parameters.
3149         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
3150         (free_scops): Move...
3151         (single_pred_cond_non_loop_exit): Move...
3152         (sese_dom_walker::before_dom_children): Move...
3153         (sese_dom_walker::after_dom_children): Move...
3154         (build_poly_scop): Move...
3155         * graphite-sese-to-poly.h (base_alias_pair): Move...
3156         * graphite.c (free_scops): ... here.
3157
3158 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3159             Sebastian Pop  <s.pop@samsung.com>
3160
3161         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
3162         (trivially_empty_bb_p): Move...
3163         (same_close_phi_node): Move...
3164         (new_gimple_poly_bb): Move...
3165         (compare_bb_depths): Move...
3166         (graphite_sort_dominated_info): Move...
3167         (remove_duplicate_close_phi): Move...
3168         (make_close_phi_nodes_unique): Move...
3169         (canonicalize_loop_closed_ssa): Move...
3170         (canonicalize_loop_closed_ssa_form): Move...
3171         (loop_ivs_can_be_represented): Move...
3172         (single_pred_cond_non_loop_exit): Move...
3173         (graphite_can_represent_init): Move...
3174         (graphite_can_represent_scev): Move...
3175         (stmt_has_simple_data_refs_p): Move...
3176         (stmt_has_side_effects):  Move...
3177         (graphite_can_represent_stmt): Move...
3178         (scop_detection): ... here.
3179         (sese_dom_walker): ... and here.
3180         (build_scops): Call all moved functions.
3181         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
3182         (all_non_dominated_preds_marked_p): Move...
3183         (build_scop_bbs_1): Move...
3184         (build_scop_bbs): Move...
3185         (set_scop_parameter_dim): Move...
3186         (nb_pbbs_in_loops): Move...
3187         (build_poly_scop): Do not call all the moved functions.
3188
3189 2015-10-05  Martin Jambor  <mjambor@suse.cz>
3190             Jan Hubicka  <hubicka@ucw.cz>
3191
3192         * ipa-cp.c (ipcp_alignment_lattice): New type.
3193         (ipcp_param_lattices): Use the above to represent alignment.
3194         (ipcp_alignment_lattice::print): New function.
3195         (print_all_lattices): Use it to print alignment information.
3196         (ipcp_alignment_lattice::top_p): New function.
3197         (ipcp_alignment_lattice::bottom_p): Likewise.
3198         (ipcp_alignment_lattice::set_to_bottom): Likewise.
3199         (ipcp_alignment_lattice::meet_with_1): Likewise.
3200         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
3201         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
3202         (initialize_node_lattices): Likewise.
3203         (propagate_alignment_accross_jump_function): Work with the new class
3204         for alignment lattices.
3205         (propagate_constants_accross_call): Pass only the alignment lattice to
3206         propagate_alignment_accross_jump_function.
3207         (ipcp_store_alignment_results): Work with the new class for alignment
3208         lattices.
3209
3210 2015-10-05  Marek Polacek  <polacek@redhat.com>
3211
3212         PR tree-optimization/67821
3213         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
3214
3215 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
3216
3217         PR other/65021
3218         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
3219         function to...
3220         (mkoffload_cleanup): ... this.  Adjust all users.
3221         (maybe_unlink): Look at save_temps and verbose flags instead of
3222         debug flag.
3223         (main): Parse "-save-temps" flag.
3224         (generate_target_descr_file, generate_target_offloadend_file)
3225         (generate_host_descr_file, prepare_target_image): Pass it on.
3226         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
3227         (mkoffload_cleanup): New function.
3228         (maybe_unlink): Look at save_temps and verbose flags instead of
3229         debug flag.
3230         (main): Instead of calling utils_cleanup, register atexit handler
3231         for mkoffload_cleanup.
3232         (main): Parse "-save-temps" flag.
3233         (compile_native, main): Pass it on.
3234         * lto-wrapper.c (compile_offload_image): Likewise.
3235
3236 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3237
3238         * gimple.h (gimple_op_ptr): Require a non const gimple *.
3239         (gimple_assign_lhs_ptr): Likewise.
3240         (gimple_assign_rhs1_ptr): Likewise.
3241         (gimple_assign_rhs2_ptr): Likewise.
3242         (gimple_assign_rhs3_ptr): Likewise.
3243         (gimple_call_lhs_ptr): Likewise.
3244         (gimple_call_fn_ptr): Likewise.
3245         (gimple_call_chain_ptr): Likewise.
3246                 (gimple_call_arg_ptr): Likewise.
3247                 (gimple_cond_lhs_ptr): Likewise.
3248         (gimple_cond_rhs_ptr): Likewise.
3249         (gimple_switch_index_ptr): Likewise.
3250         (gimple_return_retval_ptr): Likewise.
3251
3252 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3253
3254         * gimple.h (gimple_asm_input_op_ptr): Remove.
3255         (gimple_asm_output_op_ptr): Likewise.
3256
3257 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3258
3259         * gimple.h (gimple_location_ptr): Remove.
3260         * tree-vrp.c (check_all_array_refs): Adjust.
3261
3262 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3263
3264         * tree-ssa-operands.c (build_uses): store tree * instead of
3265         tree.
3266         (finalize_ssa_uses): Adjust.
3267         (append_use): Likewise.
3268         (verify_ssa_operands): Likewise.
3269
3270 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3271
3272         * real.h (build_real_truncate): Declare.
3273         * tree.c (build_real_truncate): New function.
3274         (strip_float_extensions): Use it.
3275         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
3276         (fold_builtin_hypot, fold_builtin_pow): Likewise.
3277         * match.pd: Likewise.
3278
3279 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
3280            Jiong Wang  <jiong.wang@arm.com>
3281
3282         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
3283
3284 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3285
3286         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
3287         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
3288         (aarch64_print_operand, aarch64_float_const_representable_p)
3289         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
3290         instead of REAL_VALUE_FROM_CONST_DOUBLE.
3291         * config/arc/arc.c (arc_print_operand): Likewise.
3292         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
3293         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
3294         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
3295         Likewise.
3296         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
3297         (consttable_16): Likewise.
3298         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
3299         * config/avr/avr.c (avr_print_operand): Likewise.
3300         * config/bfin/bfin.md: Likewise (in a define_split).
3301         * config/c6x/c6x.md: Likewise (in a define_split).
3302         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
3303         (cr16_print_operand): Likewise.
3304         * config/cris/cris.c (cris_print_operand): Likewise.
3305         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
3306         * config/fr30/fr30.c (fr30_print_operand): Likewise.
3307         (fr30_const_double_is_zero): Likewise.
3308         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
3309         * config/frv/frv.md: Likewise (in a define_split).
3310         * config/frv/predicates.md (int_2word_operand): Likewise.
3311         * config/h8300/h8300.c (h8300_print_operand): Likewise.
3312         * config/i386/i386.c (standard_80387_constant_p): Likewise.
3313         (ix86_print_operand, ix86_split_to_parts): Likewise.
3314         * config/i386/i386.md: Likewise (in a define_split).
3315         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
3316         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
3317         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
3318         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
3319         (print_operand): Likewise.
3320         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
3321         * config/mep/mep.md: Likewise (in define_split).
3322         * config/microblaze/microblaze.c (microblaze_const_double_ok)
3323         (print_operand): Likewise.
3324         * config/mips/mips.md (consttable_float): Likewise.
3325         * config/mmix/mmix.c (mmix_intval): Likewise.
3326         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
3327         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
3328         * config/pa/pa.c (pa_singlemove_string): Likewise.
3329         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
3330         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
3331         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
3332         (output_toc): Likewise.
3333         * config/rs6000/rs6000.md: Likewise (in define_splits).
3334         * config/rx/rx.c (rx_print_operand): Likewise.
3335         * config/s390/s390.c (s390_output_pool_entry): Likewise.
3336         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3337         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
3338         (and also in define_splits).
3339         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
3340         (fp_high_losum_p): Likewise.
3341         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
3342         (*movsf_high): Likewise.
3343         * config/spu/spu.c (const_double_to_hwint): Likewise.
3344         * config/v850/v850.c (const_double_split): Likewise.
3345         * config/vax/vax.c (vax_float_literal): Likewise.
3346         * config/visium/visium.c (visium_expand_copysign): Likewise.
3347         * config/visium/visium.md: Likewise (in define_split).
3348         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3349         * config/xtensa/xtensa.c (print_operand): Likewise.
3350         (xtensa_output_literal): Likewise.
3351         * cprop.c (implicit_set_cond_p): Likewise.
3352         * dwarf2out.c (insert_float): Likewise.
3353         * expmed.c (expand_mult, make_tree): Likewise.
3354         * expr.c (compress_float_constant): Likewise.
3355         * rtlanal.c (split_double): Likewise.
3356         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3357         (simplify_const_unary_operation, simplify_binary_operation_1)
3358         (simplify_const_binary_operation): Likewise.
3359         (simplify_const_relational_operation): Likewise.
3360         * varasm.c (output_constant_pool_2): Likewise.
3361
3362 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3363
3364         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
3365         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3366         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
3367         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
3368         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3369         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
3370         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
3371         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
3372         (ix86_emit_swsqrtsf): Likewise.
3373         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
3374         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
3375         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3376         * config/pa/pa.c (pa_expand_builtin): Likewise.
3377         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
3378         (rs6000_scale_v2df): Likewise.
3379         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
3380         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
3381         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
3382         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
3383         (vec_ctul): Likewise.
3384         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
3385         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
3386         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
3387         * cse.c (fold_rtx): Likewise.
3388         * emit-rtl.c (immed_double_const): Likewise (in comments).
3389         (init_emit_once): Likewise.
3390         * expr.c (compress_float_constant, expand_expr_real_1)
3391         (const_vector_from_tree): Likewise.
3392         * optabs.c (expand_float, expand_fix): Likewise.
3393         * reg-stack.c (reg_to_stack): Likewise.
3394         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3395         (simplify_const_unary_operation, simplify_binary_operation_1)
3396         (simplify_const_binary_operation, simplify_relational_operation)
3397         (simplify_immed_subreg): Likewise.
3398
3399 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3400
3401         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
3402         * doc/tm.texi: Regenerate.
3403         * real.h (REAL_ARITHMETIC): Delete.
3404         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
3405         (ix86_expand_round_sse4): Use real_arithmetic instead of
3406         REAL_ARITHMETIC.
3407         * config/i386/sse.md (round<mode>2): Likewise.
3408         * rtl.h (rtx_to_tree_code): Likewise (in comment).
3409         * explow.c (rtx_to_tree_code): Likewise (in comment).
3410         * match.pd: Likewise.
3411         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3412         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3413         (expand_pow_as_sqrts): Likewise.
3414         * tree-pretty-print.c (dump_generic_node): Remove code that
3415         was conditional on REAL_ARITHMETIC being undefined.
3416
3417 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3418
3419         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
3420         * doc/tm.texi: Regenerate.
3421         * real.h (real_less): Declare.
3422         (REAL_VALUES_LESS): Delete.
3423         * real.c (real_less): New function.
3424         (real_compare): Use it.
3425         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
3426         of REAL_VALUES_LESS.
3427         * config/microblaze/microblaze.c (microblaze_const_double_ok):
3428         Likewise.
3429         * fold-const.c (fold_convert_const_int_from_real): Likewise.
3430         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3431         (simplify_const_relational_operation): Likewise.
3432         * tree-call-cdce.c (check_pow): Likewise.
3433         (gen_conditions_for_pow_cst_base): Likewise.
3434
3435 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3436
3437         * real.h (REAL_VALUES_IDENTICAL): Delete.
3438         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
3439         instead of REAL_VALUES_IDENTICAL.
3440         * fold-const.c (operand_equal_p): Likewise.
3441         * ipa-icf.c (sem_variable::equals): Likewise.
3442         * tree-complex.c (some_nonzerop): Likewise.
3443         (expand_complex_multiplication): Likewise.
3444         * tree.c (simple_cst_equal): Likewise.
3445         * varasm.c (compare_constant): Likewise.
3446
3447 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3448
3449         * real.h (real_equal): Declare.
3450         (REAL_VALUES_EQUAL): Delete.
3451         * real.c (real_equal): New function.
3452         (real_compare): Use it.
3453         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
3454         * doc/tm.texi: Regenerate.
3455         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
3456         real_equal instead of REAL_VALUES_EQUAL.
3457         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
3458         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
3459         (fp_const_from_val): Likewise.
3460         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
3461         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
3462         (floating_exact_log2): Likewise.
3463         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3464         * config/vax/vax.c (vax_float_literal): Likewise.
3465         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3466         * cprop.c (implicit_set_cond_p): Likewise.
3467         * expmed.c (expand_mult): Likewise.
3468         * fold-const.c (const_binop): Likewise.
3469         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3470         (simplify_const_binary_operation): Likewise.
3471         (simplify_const_relational_operation): Likewise.
3472         * tree-call-cdce.c (check_pow): Likewise.
3473         (gen_conditions_for_pow_cst_base): Likewise.
3474         * tree-inline.c (estimate_num_insns): Likewise.
3475         * tree-ssa-dom.c (record_equality): Likewise.
3476         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3477         (gimple_expand_builtin_pow): Likewise.
3478         (pass_optimize_widening_mul::execute): Likewise.
3479         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
3480         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
3481         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
3482
3483 2015-10-05  Richard Biener  <rguenther@suse.de>
3484
3485         PR ipa/67783
3486         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
3487         consider loop header PHI defs as IVs.
3488
3489 2015-10-05  Richard Biener  <rguenther@suse.de>
3490
3491         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
3492         call handling ...
3493         (create_expression_by_pieces): ... here and build GIMPLE
3494         calls directly.  Use gimple_build API and avoid force_gimple_operand.
3495         (insert_into_preds_of_block): Simplify.
3496         (do_regular_insertion): Add comment.
3497
3498 2015-10-04  Jason Merrill  <jason@redhat.com>
3499
3500         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
3501
3502 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
3503
3504         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
3505         check for general register.
3506         (ix86_emit_save_regs): Ditto.
3507         (ix86_emit_save_regs_using_mov): Ditto.
3508         (ix86_emit_restore_regs_using_pop): Ditto.
3509         (ix86_emit_restore_regs_using_mov): Ditto.
3510
3511 2015-10-03  Marek Polacek  <polacek@redhat.com>
3512
3513         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
3514         (insn-dfatab.o): Likewise.
3515
3516 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
3517
3518         * config.gcc (xtensa*-*-uclinux*): New configuration.
3519         * config/xtensa/uclinux.h: New file.
3520         * config/xtensa/uclinux.opt: New file.
3521
3522 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
3523
3524         * doc/cpp.texi (Standard Predefined Macros): Document value of
3525         __cplusplus for C++14.
3526
3527 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
3528
3529         * gcc.c (process_command): Use spec_machine rather than
3530         spec_host_machine to build tooldir_prefix2.
3531
3532 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3533             Bernd Schmidt  <bernds@codesourcery.com>
3534
3535         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
3536         (Token, Stmt): Remove structs.
3537         (decls, vars, fns): Remove variables.
3538         (alloc_comment, append_stmt, is_keyword): Remove macros.
3539         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
3540         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
3541         (parse_init, parse_file): Remove functions.
3542         (read_file): Accept a pointer to a length and store into it.
3543         (process): Don't try to parse the input file, just write it out as
3544         a string, but looking for maps.  Also write out the length.
3545         (main): Don't use "-S" to compile PTX code.
3546
3547 2015-10-02  Jeff Law  <law@redhat.com>
3548
3549         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
3550         fixups.
3551
3552 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3553
3554         PR target/67822
3555         * config/nvptx/mkoffload.c (main): Scan the argument vector for
3556         -fopenmp, and skip generating an offloading image if specified.
3557
3558 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
3559
3560         * system.h (ROUND_UP): New macro definition.
3561         (ROUND_DOWN): Ditto.
3562         * ggc-page.c (ROUND_UP): Remove local macro definition.
3563         (PAGE_ALIGN): Implement using ROUND_UP macro.
3564
3565         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
3566         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
3567         to align values.
3568         (ix86_compute_frame_layout): Ditto.
3569         (ix86_expand_prologue): Ditto.
3570         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
3571         to round down values.
3572         (expand_set_or_movmem_via_rep): Ditto.
3573
3574 2015-10-02  Marek Polacek  <polacek@redhat.com>
3575
3576         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
3577
3578 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
3579
3580         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
3581         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
3582         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
3583         (free_gimple_bb): Renamed free_gimple_poly_bb.
3584         (try_generate_gimple_bb): Hoist loop invariant code.
3585         (analyze_drs_in_stmts): Same.
3586         (build_scop_drs): Call renamed functions.
3587         (new_pbb_from_pbb): Same.
3588         (scop_ivs_can_be_represented): Delete as functionality now moved to
3589         graphite-scop-detection.c
3590         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
3591
3592 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
3593
3594         * graphite-scop-detection.c (stmt_has_side_effects): New function
3595           outlined from stmt_simple_for_scop_p.
3596         (graphite_can_represent_stmt): Same.
3597         (stmt_simple_for_scop_p): Moved code out of this function for better
3598         readability.
3599
3600 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3601
3602         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
3603         F_AVX512IFMA.
3604         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
3605
3606 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3607
3608         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
3609
3610 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
3611
3612         PR rtl-optimization/67756
3613         * lra-constraints.c (match_reload): Add a new parameter.  Use it
3614         for creating a pseudo with the same value.
3615         (curr_insn_transform): Pass a new argument to match_reload.
3616
3617 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3618
3619         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
3620         (expand_vec_perm_even_odd_1): Handle V64QImode.
3621         (ix86_expand_vec_perm_const_1): Try expansion with
3622         expand_vec_perm_even_odd_trunc as well.
3623         * config/i386/sse.md (VI124_AVX512F): Rename to ...
3624         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
3625         to V54QI.
3626         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
3627         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
3628         to V32HI and V16SI.
3629         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
3630         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
3631         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
3632         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
3633         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
3634         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
3635
3636 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3637
3638         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
3639         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
3640
3641 2015-10-02  Jason Merrill  <jason@redhat.com>
3642
3643         PR c/59218
3644         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
3645         (diagnose_tm_1_op): Also diagnose volatile accesses in
3646         transaction_safe function.
3647
3648 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
3649
3650         * system.h (malloc.h): Don't include obsolete header.
3651
3652 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3653
3654         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
3655         (TLS_SECTION_ASM_FLAG): Delete.
3656
3657 2015-10-02  Marek Polacek  <polacek@redhat.com>
3658
3659         PR c/64249
3660         * doc/invoke.texi: Document -Wduplicated-cond.
3661         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
3662         (insn-dfatab.o): Likewise.
3663         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
3664         warning.
3665
3666 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
3667
3668         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
3669         sequences.
3670
3671 2015-10-02  Renlin Li  <renlin.li@arm.com>
3672
3673         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
3674
3675 2015-10-02  Renlin Li  <renlin.li@arm.com>
3676
3677         PR target/66776
3678         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
3679
3680 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3681
3682         PR rtl-optimization/67786
3683         PR rtl-optimization/67787
3684         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
3685         it modifies a reg used in the condition calculation.
3686
3687 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
3688
3689         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
3690         alternatives for reads from memory and moves from general-purpose
3691         registers.
3692         (*aarch64_combinez_be<mode>): Likewise.
3693
3694 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
3695
3696         PR target/51726
3697         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
3698         selectany within this function without need to keep attribute.
3699         (i386_pe_encode_section_info): Remove selectany-code.
3700
3701 2015-10-02  Richard Biener  <rguenther@suse.de>
3702
3703         * tree-ssa-sccvn.c (has_VN_INFO): New function.
3704         (free_scc_vn): Use it.
3705         (visit_use): Remove dead code and refactor to use gassign
3706         and use less indentation.
3707
3708 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3709
3710         PR target/67788
3711         PR target/67789
3712         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
3713         (rs6000_cannot_copy_insn_p): New function.
3714         * config/rs6000/rs6000.md (cannot_copy): New attribute.
3715         (load_toc_v4_PIC_1_normal): Set cannot_copy.
3716         (load_toc_v4_PIC_1_476): Ditto.
3717
3718 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3719
3720         * graphite-scop-detection.c (struct sese_l): New conversion constructor
3721         so that this type can be pushed into a vec.
3722         (class scop_builder): use sese_l to collect scops.
3723         (get_scops): New getter function.
3724         (remove_intersecting_scops): Use sese_l instead of scops_p.
3725         (intersects): Same.
3726         (add_scop): Same.
3727         (subsumes): Same.
3728         (remove_subscops): Same.
3729         (build_scops): Add scops to vec<scops_p> once all the scops have been
3730         detected.
3731
3732 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3733
3734         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3735         Renamed type from gimple_bb_p to gimple_poly_bb_p.
3736         (translate_isl_ast_node_user): Same.
3737         * graphite-poly.c (new_poly_bb): Same.
3738         * graphite-poly.h (gbb_from_bb): Same.
3739         * sese.h: Same.
3740         * graphite-sese-to-poly.c (new_gimple_bb):
3741         gimple_bb_p -> gimple_poly_bb_p
3742         (build_scop_scattering): Same.
3743         (find_params_in_bb): Same.
3744         (add_conditions_to_domain): Same.
3745         (sese_dom_walker::before_dom_children): Same.
3746         (analyze_drs_in_stmts): Same.
3747         (new_pbb_from_pbb): Same.
3748         (free_data_refs_aux): New pointer to type base_alias_pair.
3749         * graphite-sese-to-poly.h: Same.
3750         * sese.c (if_region_set_false_region): Fixed Indentation.
3751         (move_sese_in_condition): Same.
3752
3753 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3754             Aditya Kumar  <aditya.k7@samsung.com>
3755
3756         PR tree-optimization/66980
3757         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
3758         when data reference analysis has failed.
3759
3760 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3761             Aditya Kumar  <aditya.k7@samsung.com>
3762
3763         PR tree-optimization/67754
3764         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
3765         scev analysis on the same loop nest as analyze_drs_in_stmts.
3766         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
3767         renamed...
3768         (try_generate_gimple_bb): Call outermost_loop_in_sese.
3769         (analyze_drs_in_stmts): Same.
3770         * sese.c (outermost_loop_in_sese): ...here.
3771
3772 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3773             Aditya Kumar  <aditya.k7@samsung.com>
3774
3775         PR tree-optimization/67754
3776         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
3777         recursion on the inner loops.
3778
3779 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3780
3781         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
3782         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
3783         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
3784         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
3785         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
3786
3787 2015-10-01  Marek Polacek  <polacek@redhat.com>
3788
3789         PR c/65345
3790         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
3791         create_tmp_var_raw rather than create_tmp_var.
3792
3793 2015-10-01  Marek Polacek  <polacek@redhat.com>
3794
3795         PR tree-optimization/67769
3796         * tree-ssa-phiopt.c (conditional_replacement): Call
3797         reset_flow_sensitive_info_in_bb.
3798         (minmax_replacement): Likewise.
3799         (abs_replacement): Likewise.
3800
3801 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
3802
3803         * builtins.c: Don't include gomp-constants.h.
3804         (fold_builtin_1): Don't fold acc_on_device here.
3805         * gimple-fold.c: Include gomp-constants.h.
3806         (gimple_fold_builtin_acc_on_device): New.
3807         (gimple_fold_builtin): Call it.
3808
3809 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
3810
3811         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
3812         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
3813
3814 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
3815
3816         * config/arm/aarch-common-protos.h
3817         (aarch_accumulator_forwarding): New.
3818         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3819         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
3820         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3821         * config/arm/cortex-a53.md: Rewrite.
3822
3823 2015-10-01  Richard Biener  <rguenther@suse.de>
3824
3825         * gimple-match.h (mprts_hook): Declare.
3826         * gimple-match.head.c (mprts_hook): Define.
3827         (maybe_push_res_to_seq): Use new hook.
3828         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3829         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
3830         (vn_ssa_aux::has_constants): Remove.
3831         * tree-ssa-sccvn.c: Include gimple-match.h.
3832         (VN_INFO_GET): Assert we don't re-use SSA names.
3833         (vn_get_expr_for): Remove.
3834         (expr_has_constants): Likewise.
3835         (stmt_has_constants): Likewise.
3836         (simplify_binary_expression): Likewise.
3837         (simplify_unary_expression): Likewise.
3838         (vn_lookup_simplify_result): New hook.
3839         (visit_copy): Adjust.
3840         (visit_reference_op_call): Likewise.
3841         (visit_phi): Likewise.
3842         (visit_use): Likewise.
3843         (process_scc): Likewise.
3844         (init_scc_vn): Likewise.
3845         (visit_reference_op_load): Likewise.  Use match-and-simplify and
3846         a gimple seq for inserted expressions.
3847         (try_to_simplify): Remove GENERIC stmt combining code.
3848         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
3849         * tree-ssa-pre.c (eliminate_insert): Adjust.
3850         (eliminate_dom_walker::before_dom_children): Likewise.
3851
3852 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3853
3854         * doc/invoke.texi (Optimization Options): Add
3855         -freorder-blocks-algorithm=.
3856         (Optimize Options) <-O>: Add -freorder-blocks.
3857         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
3858         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
3859         <-freorder-blocks>: Also enabled at levels -O and -Os.
3860         <-freorder-blocks-algorithm=>: Document new option.
3861
3862 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3863
3864         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
3865         with flag_reorder_blocks_algorithm.
3866         * common.opt (freorder-blocks-algorithm=): New flag.
3867         (reorder_blocks_algorithm): New enum.
3868         * flag-types.h (reorder_blocks_algorithm): New enum.
3869         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
3870         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
3871
3872 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3873
3874         * bb-reorder.c: Add intro comment.
3875         (reorder_basic_blocks_software_trace_cache): Print a header to
3876         the dump file.
3877         (edge_order): New function.
3878         (reorder_basic_blocks_simple): New function.
3879         (reorder_basic_blocks): Choose between the STC and the simple
3880         algorithms (always choose the former).
3881
3882 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3883
3884         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
3885         function, factored out from ...
3886         (reorder_basic_blocks): ... here.
3887
3888 2015-10-01  Tom de Vries  <tom@codesourcery.com>
3889
3890         * tree-cfg.c (dump_function_to_file): Dump function attributes using
3891         __attribute__(()) string.  Move dumping of function attributes to before
3892         function name.
3893
3894 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
3895
3896         PR target/66870
3897         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3898         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
3899         based on gold linker version.
3900         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
3901         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
3902         * configure, config.in: Regenerate.
3903
3904 2015-10-01  Alan Modra  <amodra@gmail.com>
3905
3906         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
3907         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
3908         (rs6000_output_mi_thunk): Likewise.
3909
3910 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3911
3912         * config/nvptx/mkoffload.c (process): Change offload data format.
3913
3914 2015-09-30  Jeff Law  <law@redhat.com>
3915
3916         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
3917         with constant conditions.
3918         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
3919         (remove_ctrl_stmt_and_useless_edges): No longer static.
3920         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
3921         (remove_ctrl_stmt_and_useless_edges): Likewise.
3922
3923 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3924             Cesar Philippidis  <cesar@codesourcery.com>
3925
3926         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
3927         (TARGET_GOACC_VALIDATE_DIMS): Override.
3928         * target.def (TARGET_GOACC): New target hook prefix.
3929         (validate_dims): New hook.
3930         * targhooks.h (default_goacc_validate_dims): New.
3931         * omp-low.c (oacc_validate_dims): New.
3932         (execute_oacc_device_lower): New.
3933         (default_goacc_validate_dims): New.
3934         (pass_data_oacc_device_lower): New.
3935         (pass_oacc_device_lower): New pass.
3936         (make_pass_oacc_device_lower): New.
3937         * tree-pass.h (make_pass_oacc_device_lower): Declare.
3938         * passes.def (pass_oacc_device_lower): Add it.
3939         * doc/tm.texi: Rebuilt.
3940         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
3941         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
3942
3943 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3944
3945         PR rtl-optimization/67037
3946         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
3947
3948 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
3949
3950         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
3951         * passes.c: Include tree-ssanames.h.
3952         (execute_function_todo): Flush the pending free SSA_NAMEs after
3953         eliminating unreachable basic blocks.
3954         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
3955         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
3956         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
3957         (flush_ssanames_freelist): New function.
3958         (release_ssaname_fn): Put released names on the queue.
3959         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
3960         * tree-ssanames.h (flush_ssanames_freelist): Declare.
3961
3962 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3963
3964         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
3965         (generate_target_descr_file, generate_target_offloadend_file)
3966         (generate_host_descr_file, prepare_target_image): Pass it on.
3967         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
3968         (compile_native, main): Pass it on.
3969         * lto-wrapper.c (compile_offload_image): Likewise.
3970
3971 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3972             Ilya Verbin  <ilya.verbin@intel.com>
3973             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3974
3975         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
3976         (prepare_target_image, main): Refactor argv building to use
3977         obstacks.
3978
3979 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3980
3981         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
3982         * config/spu/spu.c (spu_expand_atomic_op): New function.
3983         * config/spu/spu.md (AINT): New mode iterator.
3984         (ATOMIC): New code iterator.
3985         (atomic_name, atomic_pred): New code predicates.
3986         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
3987         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
3988         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
3989         "atomic_<atomic_name>_fetch<mode>"): Likewise.
3990
3991 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
3992
3993         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
3994         debug insns.
3995         (scalar_chain::convert_reg): Likewise.
3996
3997 2015-09-30  Richard Biener  <rguenther@suse.de>
3998
3999         * builtins.c: Add comment that no new simplifications should
4000         be added here.
4001
4002 2015-09-30  Marek Polacek  <polacek@redhat.com>
4003
4004         PR tree-optimization/67690
4005         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
4006         reset_flow_sensitive_info_in_bb.
4007         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
4008         * tree-ssanames.c: Include "gimple-iterator.h".
4009         (reset_flow_sensitive_info_in_bb): New function.
4010         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
4011
4012 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
4013
4014         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
4015         variable, replacing it with...
4016         (offload_abi): ... this new variable.  Adjust all users.
4017         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
4018
4019 2015-09-30  Matthias Klose  <doko@ubuntu.com>
4020
4021         * configure.ac: Remove extraneous ;;.
4022         * configure: Regenerate.
4023
4024 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
4025
4026         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
4027         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
4028         predicate, disallow register for operand 2.
4029
4030 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
4031
4032         * graphite-dependences.c (scop_get_dependences): Moved in down
4033         in order to be visible to its caller.
4034         * graphite-poly.h: Removed compute_deps, and extend_schedule.
4035
4036 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
4037             Aditya Kumar  <aditya.k7@samsung.com>
4038
4039         PR tree-optimization/67754
4040         * graphite-optimize-isl.c (optimize_isl): Call
4041         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
4042
4043 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4044
4045         * builtins.c (expand_builtin_acc_on_device): Delete.
4046         (expand_builtin): Don't call it.
4047         (fold_builtin_1): Fold acc_on_device.
4048
4049 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
4050
4051         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
4052         (ix86_nsaved_sseregs): Likewise.
4053
4054 2015-09-29  Jeff Law  <law@redhat.com>
4055
4056         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
4057         computation of unused value.
4058
4059         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
4060         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
4061         inline macro expansion.
4062
4063         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
4064
4065         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
4066         (gen_shl_sext): Likewise.
4067         * config/sh/sh.md (divsi3): Likewise.
4068         (imm->ext_dest_operand splitter): Likewise.
4069
4070 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
4071             Aditya Kumar  <aditya.k7@samsung.com>
4072
4073         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
4074         (nb_data_writes_in_bb): Remove.
4075         (split_pbb): Remove.
4076         (split_reduction_stmt): Remove.
4077         (is_reduction_operation_p): Remove.
4078         (phi_contains_arg): Remove.
4079         (follow_ssa_with_commutative_ops): Remove.
4080         (detect_commutative_reduction_arg): Remove.
4081         (detect_commutative_reduction_assign): Remove.
4082         (follow_inital_value_to_phi): Remove.
4083         (edge_initial_value_for_loop_phi): Remove.
4084         (initial_value_for_loop_phi): Remove.
4085         (used_outside_reduction): Remove.
4086         (detect_commutative_reduction): Remove.
4087         (translate_scalar_reduction_to_array_for_stmt): Remove.
4088         (remove_phi): Remove.
4089         (dr_indices_valid_in_loop): Remove.
4090         (close_phi_written_to_memory): Remove.
4091         (translate_scalar_reduction_to_array): Remove.
4092         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
4093         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
4094         (rewrite_commutative_reductions_out_of_ssa): Remove.
4095         (build_poly_scop): Remove call to
4096         rewrite_commutative_reductions_out_of_ssa.
4097
4098 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
4099
4100         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
4101         Add new insn types for vector load and store pairs.
4102         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
4103         types "neon_ldp{,_q}".
4104         * config/arm/cortex-a57.md (neon_load_c): Add insn types
4105         "neon_ldp{,_q}".
4106         (neon_store_complex): Add insn types "neon_stp{,_q}".
4107         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
4108         "neon_{ldp,stp}_q".
4109
4110 2015-09-29  Jeff Law  <law@redhat.com>
4111
4112         * config/rx/constraints.md (Int08): Fix undefined left shift
4113         behaviour.
4114         (Sint08, Sint16, Sint24): Likewise.
4115         * config/rx/rx.c (rx_get_stack_layout): Likewise.
4116
4117         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
4118         behaviour.
4119
4120         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
4121         left shift behaviour.
4122         * config/msp430/constraints.md ('L' constraint): Similarly.
4123         ('Ys' constraint): Similarly.
4124
4125 2015-09-29  Richard Biener  <rguenther@suse.de>
4126
4127         PR tree-optimization/67170
4128         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
4129         the translate function pointer parameter to get the
4130         bool whether to disambiguate only by reference.
4131         (walk_non_aliased_vuses): Likewise.
4132         * tree-ssa-alias.c (maybe_skip_until): Adjust.
4133         (get_continuation_for_phi_1): Likewise.
4134         (get_continuation_for_phi): Likewise.
4135         (walk_non_aliased_vuses): Likewise.
4136         * tree-ssa-sccvn.c (const_parms): New bitmap.
4137         (vn_reference_lookup_3): Adjust for interface change.
4138         Disambiguate parameters pointing to readonly memory.
4139         (free_scc_vn): Free const_parms.
4140         (run_scc_vn): Initialize const_parms from a fn spec attribute.
4141
4142 2015-09-29  Richard Biener  <rguenther@suse.de>
4143
4144         PR tree-optimization/67741
4145         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
4146         builtin calls with correct signature.
4147
4148 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
4149
4150         PR target/65105
4151         * config/i386/i386.c: Include dbgcnt.h.
4152         (has_non_address_hard_reg): New.
4153         (convertible_comparison_p): New.
4154         (scalar_to_vector_candidate_p): New.
4155         (remove_non_convertible_regs): New.
4156         (scalar_chain): New.
4157         (scalar_chain::scalar_chain): New.
4158         (scalar_chain::~scalar_chain): New.
4159         (scalar_chain::add_to_queue): New.
4160         (scalar_chain::mark_dual_mode_def): New.
4161         (scalar_chain::analyze_register_chain): New.
4162         (scalar_chain::add_insn): New.
4163         (scalar_chain::build): New.
4164         (scalar_chain::compute_convert_gain): New.
4165         (scalar_chain::replace_with_subreg): New.
4166         (scalar_chain::replace_with_subreg_in_insn): New.
4167         (scalar_chain::emit_conversion_insns): New.
4168         (scalar_chain::make_vector_copies): New.
4169         (scalar_chain::convert_reg): New.
4170         (scalar_chain::convert_op): New.
4171         (scalar_chain::convert_insn): New.
4172         (scalar_chain::convert): New.
4173         (convert_scalars_to_vector): New.
4174         (pass_data_stv): New.
4175         (pass_stv): New.
4176         (make_pass_stv): New.
4177         (ix86_option_override): Created and register stv pass.
4178         (flag_opts): Add -mstv.
4179         (ix86_option_override_internal): Likewise.
4180         * config/i386/i386.md (SWIM1248x): New.
4181         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
4182         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
4183         (*anddi3_doubleword): New.
4184         (*zext<mode>_doubleword): New.
4185         (*zextsi_doubleword): New.
4186         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
4187         (*<code>di3_doubleword): New.
4188         * config/i386/i386.opt (mstv): New.
4189         * dbgcnt.def (stv_conversion): New.
4190
4191 2015-09-29  Tom de Vries  <tom@codesourcery.com>
4192
4193         * tree-cfg.c (dump_function_to_file): Dump function attributes.
4194
4195 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4196
4197         PR target/67716
4198         * config/sh/sh.c (sh_override_options_after_change): New.
4199         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4200         (sh_option_override): Move align_loops, align_jumps and
4201         align_functions handling into sh_override_options_after_change.
4202
4203 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
4204
4205         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
4206         (nvptx_record_offload_symbol): Record function execution geometry.
4207         * config/nvptx/mkoffload.c (process): Include launch geometry in
4208         function data.
4209         * omp-low.c (oacc_launch_pack): New.
4210         (replace_oacc_fn_attrib): New.
4211         (set_oacc_fn_attrib): New.
4212         (get_oacc_fn_attrib): New.
4213         (expand_omp_target): Create keyed varargs for GOACC_parallel call
4214         generation.
4215         * omp-low.h (get_oacc_fn_attrib): Declare.
4216         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
4217         (DEF_FUNCTION_TYPE_VAR_11): Delete.
4218         * tree.h (OMP_CLAUSE_EXPR): New.
4219         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
4220
4221 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4222             Sebastian Pop  <s.pop@samsung.com>
4223
4224         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
4225
4226 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4227             Sebastian Pop  <s.pop@samsung.com>
4228
4229         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
4230         * graphite-scop-detection.c (struct sese_l): New type.
4231         (get_entry_bb): API for getting entry bb of SESE.
4232         (get_exit_bb): API for getting exit bb of SESE.
4233         (class debug_printer): New type.  Simple printer in debug mode.
4234         (trivially_empty_bb_p): New.  Return true when BB is empty or
4235         contains only debug instructions.
4236         (graphite_can_represent_expr): Call scalar_evoution_in_region
4237         instead of analyze_scalar_evolution.  Pass in scop instead of only
4238         the scop entry.
4239         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
4240         scop entry.
4241         (stmt_simple_for_scop_p): Same.
4242         (harmful_stmt_in_bb): Same.
4243         (graphite_can_represent_loop): Deleted.
4244         (struct scopdet_info): Deleted.
4245         (scopdet_basic_block_info): Deleted.
4246         (build_scops_1): Deleted.
4247         (bb_in_sd_region): Deleted.
4248         (find_single_entry_edge): Deleted.
4249         (find_single_exit_edge): Deleted.
4250         (create_single_entry_edge): Deleted.
4251         (sd_region_without_exit): Deleted.
4252         (create_single_exit_edge): Deleted.
4253         (unmark_exit_edges): Deleted.
4254         (mark_exit_edges): Deleted.
4255         (create_sese_edges): Deleted.
4256         (build_graphite_scops): Deleted.
4257         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
4258         (build_scops): Use the new scop_builder to build scops.
4259         (dot_all_scops_1): Use the new pretty printer.  Print loop father
4260         as well.
4261         (loop_body_is_valid_scop): New.  Return true if loop body is a
4262         valid scop.
4263         (class scop_builder): New.  Builds SCoPs for polyhedral
4264         optimizations.
4265         (scop_builder): New constructor.
4266         (static sese_l invalid_sese): sese_l with invalid edges.
4267         (get_sese): Get an sese (from a loop) if possible, invalid_sese
4268         otherwise.
4269         (get_nearest_dom_with_single_entry): Get nearest dominator of a
4270         basic_block with single entry.  Return NULL if we get to the
4271         beginning of a function.
4272         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
4273         a basic_block with single exit.  Return NULL if we get to the
4274         beginning of a function.
4275         (print_sese): Pretty-print SESE.
4276         (merge_sese): Merge two SESEs if possible and return the new SESE.
4277         (build_scop_depth): Start building the SCoP within a loop nest.
4278         (build_scop_breadth): Start building the SCoP at a single loop
4279         depth.  Merge adjacent SESEs if valid.
4280         (can_represent_loop_1): Returns true if Graphite can represent
4281         loop inside SCoP.  Helper for can_represent_loop.
4282         (can_represent_loop): Returns true if Graphite can represent LOOP
4283         and all its nested loops in SCoP.
4284         (loop_is_valid_scop): Returns true if LOOP and all its nests
4285         constitute a valid SCoP.
4286         (region_has_one_loop): Returns true of a region has only one loop.
4287         (add_scop): Add SCoP to the list of valid scops.  Removes an
4288         already existing scop if it intersects with or subsumed by this one.
4289         (harmful_stmt_in_region): Returns true if SCoP has any statment
4290         which cannot be represented by Graphite.
4291         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
4292         (remove_subscops): Remove any SCoP from the list of already found
4293         SCoPs, if subsumed by S1.
4294         (intersects): Return true if region bounded by SCoPs S1 and S2
4295         intersect.
4296         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
4297         * graphite.c (print_graphite_scop_statistics):
4298         (print_graphite_statistics): Print SCoP info while debugging.
4299         (graphite_initialize): Early exit in case number of loops in a
4300         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
4301         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4302         (graphite_finalize):
4303         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
4304         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
4305         (recompute_all_dominators): Recalculate POST_DOMINATORS.
4306         * tree-cfg.c (print_loops): Print the function name while printing
4307         loops.
4308
4309 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4310             Sebastian Pop  <s.pop@samsung.com>
4311
4312         PR tree-optimization/67700
4313         * graphite-sese-to-poly.c (parameter_index_in_region): Call
4314         invariant_in_sese_p_rec.
4315         (extract_affine): Same.
4316         (rewrite_cross_bb_scalar_deps): Call update_ssa.
4317         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
4318         * sese.h (invariant_in_sese_p_rec): Declare.
4319
4320 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
4321
4322         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
4323
4324 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
4325
4326         Revert:
4327         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4328                     Jiong Wang  <jiong.wang@arm.com>
4329
4330         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
4331         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
4332         (REG_CLASS_NAMES): Likewise.
4333         (REG_CLASS_CONTENTS): Likewise.
4334         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
4335         (aarch64_register_move_cost): Likewise.
4336         (aarch64_load_symref_appropriately): Invoke the new added pattern if
4337         possible.
4338         * config/aarch64/constraints.md (Uc0): New constraint.
4339
4340 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
4341
4342         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
4343
4344 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
4345
4346         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
4347         SECTION_EXCLUDE in XO mapping class.
4348
4349 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4350
4351         PR target/54236
4352         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
4353         and handle ne and eq codes.
4354         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
4355         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
4356         CONST_INT_P.  Use reverse_condition.
4357         (sh_split_treg_set_expr): Likewise.
4358
4359 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
4360
4361         * config/arm/types.md (type): Add rotate_imm.
4362         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
4363         ROR immediate case.
4364         (*rorsi3_insn_uxtw): Likewise.
4365         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
4366         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
4367         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
4368
4369 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4370
4371         PR rtl-optimization/67481
4372         * ifcvt.c (contains_ccmode_rtx_p): New function.
4373         (insn_valid_noce_process_p): Use it.
4374
4375 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4376
4377         PR rtl-optimization/67456
4378         PR rtl-optimization/67464
4379         PR rtl-optimization/67465
4380         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
4381         move in the mode of x.  Handle combination of complex and simple
4382         block pairs as well as the case when one is empty.
4383
4384 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4385
4386         * doc/gimple.texi: Update references to gimple_statement_base.
4387         * gdbhooks.py: Likewise.
4388         * gimple.h: Likewise.
4389
4390 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4391
4392         * config/sparc/driver-sparc.c: map LEON to leon3
4393
4394 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4395
4396         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
4397           and make it inverse to change default
4398         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
4399           supervisor mode
4400         * doc/invoke.texi: Document change of default
4401
4402 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4403
4404         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
4405         true on %f0 for a target without FPU.
4406         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
4407         without FPU.
4408         (untyped_return): Do not load %f0 for a target without FPU.
4409
4410 2015-09-28  Andrew Pinski  <apinski@cavium.com>
4411
4412         * config/aarch64/aarch64.md (prefetch):
4413         Change the predicate of operand 0 to register_operand.
4414
4415 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
4416
4417         * config/i386/predicates.md (register_sse4nonimm_operand): New
4418         predicate.
4419         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
4420         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
4421         Use register_sse4nonimm_operand as operand 0 predicate.
4422         (*vec_extractv8hi_sse2): Remove insn pattern.
4423         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
4424         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
4425
4426 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
4427             Kaz Kojima  <kkojima@gcc.gnu.org>
4428
4429         PR target/67391
4430         * config/sh/sh-protos.h (sh_lra_p): Declare.
4431         * config/sh/sh.c (sh_lra_p): Make non-static.
4432         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
4433         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
4434         Expand into addsi3_scr if operands[2] if needed.
4435         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
4436         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
4437         (addsi3_scr, *addsi3): New insn_and_split patterns.
4438
4439 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
4440
4441         PR rtl-optimization/64164
4442         PR tree-optimization/67312
4443         PR middle-end/67340
4444         PR middle-end/67490
4445         PR bootstrap/67597
4446         * cfgexpand.c (parm_in_stack_slot_p): Remove.
4447         (ssa_default_def_partition): Remove.
4448         (get_rtl_for_parm_ssa_default_def): Remove.
4449         (set_rtl): Check that RTL assignments match expectations.
4450         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
4451         default def location for params and results.  Record SSA names
4452         or types in REG and MEM attrs, respectively.
4453         (set_parm_rtl): New.
4454         (expand_one_ssa_partition): Drop logic that assigned MEMs with
4455         unassigned addresses.
4456         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
4457         deferred stack alloc vars.
4458         (expand_used_vars): Skip partitions holding parm default defs.
4459         Move adjust_one_expanded_partition_var loop...
4460         (pass_expand::execute): ... here.  Drop redundant assert.
4461         Adjust comments before the final loop over all ssa names.
4462         Require assigned rtl of parms and results to match exactly.
4463         Reset its attributes to match them, not any other variables in
4464         the same partition.
4465         (expand_debug_expr): Use entry value for PARM's default defs
4466         only iff they have zero nondebug uses.
4467         * cfgexpand.h (parm_in_stack_slot_p): Remove.
4468         (get_rtl_for_parm_ssa_default_def): Remove.
4469         (set_parm_rtl): Declare.
4470         * doc/invoke.texi: Improve wording.
4471         * explow.c (promote_decl_mode): Fix promote_function_mode for
4472         result decls not by reference.
4473         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
4474         bypass TYPE_MODE to get the actual vector mode.
4475         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
4476         2015-08-19's changes as follows.  Drop include of
4477         basic-block.h and df.h.
4478         (rtl_for_parm): Remove.
4479         (maybe_reset_rtl_for_parm): Remove.
4480         (parm_in_unassigned_mem_p): Remove.
4481         (use_register_for_decl): Add logic for RESULT_DECLs matching
4482         assign_parms' behavior.
4483         (split_complex_args): Revert.
4484         (assign_parms_augmented_arg_list): Revert.  Add comment
4485         referencing the logic above.
4486         (assign_parm_adjust_stack_rtl): Revert.
4487         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
4488         of SET_DECL_RTL.  Set up a REG if the parm demands so.
4489         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
4490         calls into a single set_parm_rtl.  Set up a temporary RTL
4491         temporarily for expand_assignment.
4492         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
4493         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
4494         (assign_bounds): Revert.
4495         (assign_parms): Revert.  Use set_parm_rtl.
4496         (allocate_struct_function): Relayout result and parms of
4497         non-abstruct functions.
4498         (expand_function_start): Revert.  Use set_parm_rtl.  If the
4499         result is not a hard reg, create a pseudo from the promoted
4500         mode of the default def.  Promote static chain mode.
4501         * tree-outof-ssa.c (remove_ssa_form): Drop unused
4502         partition_has_default_def.  Set up
4503         partitions_for_parm_default_defs.
4504         (finish_out_of_ssa): Remove partition_has_default_def.
4505         Release partitions_for_parm_default_defs.
4506         * tree-outof-ssa.h (struct ssaexpand): Remove
4507         partition_has_default_def.  Add
4508         partitions_for_parm_default_defs.
4509         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
4510         stor-layout.h.
4511         (build_ssa_conflict_graph): Fix conflict-detection of default
4512         defs of even unused default defs of params and results.
4513         (for_all_parms): New.
4514         (create_default_def): New.
4515         (register_default_def): New.
4516         (coalesce_with_default): New.
4517         (create_outofssa_var_map): Create default defs for all parms
4518         and results, and register their partitions.  Add GIMPLE_RETURN
4519         operands as coalesce candidates with results.  Add default
4520         defs of each parm or result as coalesce candidates with its
4521         other defs.  Mark each result def, and each default def of
4522         parms, as used_in_copy.
4523         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
4524         with the ssa names, even anonymous ones.  Drop
4525         parm_in_stack_slot_p calls.  Require same signedness and
4526         alignment.
4527         (coalesce_ssa_name): Add coalesce candidates for all defs of
4528         each parm and result, even unused ones.
4529         (parm_default_def_partition_arg): New type.
4530         (set_parm_default_def_partition): New.
4531         (get_parm_default_def_partitions): New.
4532         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
4533         * tree-ssa-live.c (partition_view_init): Regard unused defs of
4534         parms and results as used.
4535         (verify_live_on_entry): Don't error out just because they're
4536         not live.
4537
4538 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
4539
4540         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4541         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
4542         (output_fde): Don't output length for debug_frame on AIX.
4543         (output_call_frame_info): Don't output length for debug_frame on AIX.
4544         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
4545         HAVE_XCOFF_DWARF_EXTRAS.
4546         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
4547         HAVE_XCOFF_DWARF_EXTRAS.
4548         (output_compilation_unit_header): Don't output length on AIX.
4549         (output_pubnames): Don't output length on AIX.
4550         (output_aranges): Delete argument. Compute length locally. Don't
4551         output length on AIX.
4552         (output_line_info): Don't output length on AIX.
4553         (dwarf2out_finish): Don't compute aranges_length.
4554         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4555         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
4556         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
4557         symbol decoration for AIX.
4558         (rs6000_xcoff_debug_unwind_info): New.
4559         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
4560         for SECTION_DEBUG.
4561         (rs6000_xcoff_declare_function_name): Emit different
4562         .function pseudo-op when DWARF2_DEBUG. Don't call
4563         xcoffout_declare_function for DWARF2_DEBUG.
4564         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
4565         Redefine.
4566         * config/rs6000/aix71.h: New.
4567         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
4568         locations support.
4569         * configure: Regenerate.
4570         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
4571         DWARF support.
4572
4573 2015-09-26  Jeff Law  <law@redhat.com>
4574
4575         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
4576         behaviour.
4577         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
4578         behaviour.
4579
4580         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
4581         behaviour
4582
4583         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
4584         undefined behaviour.
4585
4586         * config/cris/cris.md (asrandb): Fix left shift undefined
4587         behaviour.
4588         (asrandw): Likewise.
4589
4590 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4591
4592         PR target/61578
4593         * lra-constarints.c (match_reload): Check presence of the input pseudo
4594         in the output operand.
4595
4596 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4597
4598         * doc/invoke.texi (-fsanitize): Minor wording tweak.
4599
4600 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4601
4602         * doc/invoke.texi (-fsanitize): Update URLs.
4603
4604 2015-09-25  Teresa Johnson  <tejohnson@google.com>
4605
4606         * opts.c (finish_options): Unset -freorder-blocks-and-partition
4607         if not using profile.
4608
4609 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4610
4611         PR pretty-print/67567
4612         * pretty-print.c (pp_string): Add gcc_checking_assert.
4613         * pretty-print.h (output_buffer_append_r): Likewise.
4614
4615 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4616
4617         PR target/67675
4618         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
4619         addr2 individually.  Don't emit logical or insn if one is known to
4620         be aligned approriately.
4621         (sh_expand_cmpnstr): Likewise.
4622
4623 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
4624
4625         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
4626         __builtin_aarch64_fp[sc]r arguments into a register.
4627
4628 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4629
4630         * config.gcc (x86_archs): Replace lakemount with lakemont.
4631         (with_cpu): Likewise.
4632         (with_arch): Likewise.
4633         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4634         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
4635         __tune_lakemount__ with __tune_lakemont__.
4636         * config/i386/i386.c (lakemount_cost): Renamed to ...
4637         (lakemont_cost): This.
4638         (m_LAKEMOUNT): Renamed to ...
4639         (m_LAKEMONT): This.
4640         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
4641         (processor_target_table): Replace "lakemount" with "lakemont".
4642         (processor_alias_table): Likewise.
4643         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
4644         PROCESSOR_LAKEMONT.
4645         (ix86_adjust_cost): Likewise.
4646         (ia32_multipass_dfa_lookahead): Likewise.
4647         * config/i386/i386.h (processor_type): Likewise.
4648         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
4649         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
4650         Lakemount with Lakemont.
4651
4652 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
4653
4654         * config.gcc (x86_archs): Replace iamcu with lakemount.
4655         (with_cpu): Likewise.
4656         (with_arch): Likewise.
4657         * doc/invoke.texi: Likewise.
4658         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4659         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
4660         __tune_iamcu__ with __tune_lakemount__.
4661         * config/i386/i386.c (iamcu_cost): Renamed to ...
4662         (lakemount_cost): This.
4663         (m_IAMCU): Renamed to ...
4664         (m_LAKEMOUNT): This.
4665         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
4666         (processor_target_table): Replace "iamcu" with "lakemount".
4667         (processor_alias_table): Likewise.
4668         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
4669         PROCESSOR_LAKEMOUNT.
4670         (ix86_adjust_cost): Likewise.
4671         (ia32_multipass_dfa_lookahead): Likewise.
4672         * config/i386/i386.h (processor_type): Likewise.
4673         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
4674
4675 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
4676
4677         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
4678         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
4679         Declare.
4680         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
4681         (pa_expand_compare_and_swap_loop): New.
4682         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
4683         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
4684         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
4685         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
4686         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
4687         Revise.
4688
4689 2015-09-24  Michael Collison  <michael.collison@linaro.org>
4690
4691         PR other/57195
4692         * read-md.c (read_name): Allow mode iterators inside angle
4693         brackets in rtl expressions.
4694
4695 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
4696
4697         PR target/61578
4698         * ira-color.c (update_allocno_cost): Add parameter.
4699         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
4700         parameter.
4701
4702 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4703
4704         PR driver/67640
4705         * opts-common.c (prune_options): Discard all -fdiagnostics-color
4706         but the last one, which is moved to the front to be processed
4707         first.
4708         * opts.c (enable_warning_as_error): Reject options that do not
4709         control warnings.
4710
4711 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4712
4713         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
4714
4715 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4716
4717         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
4718         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
4719         (aarch64_cannot_force_const_mem): Likewise.
4720         (aarch64_classify_address): Likewise.
4721         (aarch64_classify_symbolic_expression): Likewise.
4722         (aarch64_print_operand): Likewise.
4723         (aarch64_classify_symbol): Likewise.
4724         (aarch64_mov_operand_p): Likewise.
4725         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
4726         (aarch64_mov_operand): Likewise.
4727
4728 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
4729
4730         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
4731         for info->spe_gp_size.
4732
4733 2015-09-24  Richard Biener  <rguenther@suse.de>
4734
4735         PR lto/67699
4736         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
4737         abstract origins.
4738
4739 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
4740
4741         * tree-object-size.c (plus_stmt_object_size)
4742         (cond_expr_object_size): Change the formal parameters from gimple
4743         to gimple *.
4744         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
4745         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
4746         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
4747
4748 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4749
4750         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
4751         Check for ld -type pie on Solaris 11.x and 12.
4752         * configure: Regenerate.
4753         * config.in: Regenerate.
4754
4755         * gcc.c (LD_PIE_SPEC): Allow redefinition.
4756
4757         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
4758         (STARTFILE_SPEC): Use it.
4759         (ENDFILE_CRTEND_SPEC): Define.
4760         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
4761         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
4762         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
4763         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
4764         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
4765         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
4766         (ENDFILE_ARCH_SPEC): Define.
4767         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
4768
4769 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4770
4771         * configure.ac (gcc_cv_solaris_crts): New test.
4772         * configure. Regenerate.
4773         * config.in: Regenerate.
4774         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
4775         HAVE_SOLARIS_CRTS variant.
4776
4777 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4778
4779         * tree-inline.h (count_insns_seq): Delete prototype.
4780         (estimate_num_insns_seq): Define prototype.
4781         * tree-inline.c (count_insns_seq): Delete.
4782         (estimate_num_insns_seq): Remove static qualifier.
4783         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
4784         with estimate_num_insns_seq.
4785
4786 2015-09-24  Richard Biener  <rguenther@suse.de>
4787
4788         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
4789         members.
4790         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
4791         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
4792         offset.
4793         (ao_ref_init_from_vn_reference): Record clique and base in the
4794         built base.
4795         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
4796
4797 2015-09-24  Richard Biener  <rguenther@suse.de>
4798
4799         PR tree-optimization/48885
4800         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
4801         as not including any restrict tags from other pointers.
4802
4803 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4804
4805         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
4806         character when appending to offload_targets.
4807
4808         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
4809         offload targets by commas, not colons.
4810         * config.in: Regenerate.
4811         * configure: Likewise.
4812         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
4813         instead of setting up the default offload targets here...
4814         (process_command): ..., do it here.
4815         libgomp/
4816         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
4817         targets are separated by commas.
4818         * config.h.in: Regenerate.
4819
4820 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4821             Nathan Sidwell  <nathan@codesourcery.com>
4822
4823         * omp-low.h (omp_reduction_init_op): Declare.
4824         * omp-low.c (omp_reduction_init_op): New, broken out of ...
4825         (omp_reduction_init): ... here.  Call it.
4826         * tree-parloops.c (initialize_reductions): Use
4827         omp_reduction_init_op.
4828
4829 2015-09-23   Richard Biener  <rguenther@suse.de>
4830
4831         PR middle-end/67662
4832         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
4833         undefined overflow unless they will cancel out.
4834
4835 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4836
4837         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
4838         insn emit.
4839
4840 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4841
4842         PR c/49655
4843         * opts.h (write_langs): Declare.
4844         * opts-global.c (write_langs): Make it extern.
4845
4846 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
4847
4848         PR target/67391
4849         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
4850         overlapping regs when matching the pattern.
4851
4852 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
4853
4854         * config/aarch64/aarch64-simd.md
4855         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
4856         (aarch64_float_truncate_hi_v4sf_le): New.
4857         (aarch64_float_truncate_hi_v4sf_be): Likewise.
4858
4859 2015-09-23  Richard Biener  <rguenther@suse.de>
4860
4861         * tree-ssa-structalias.c (intra_create_variable_infos): Build
4862         representatives for all restrict qualified pointer destinations.
4863
4864 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4865
4866         * config/i386/i386.md (define_code_attr mshift): New.
4867         (define_mode_iterator SWI1248_AVX512BW): Rename ...
4868         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
4869         only.
4870         (define_insn "*k<logic><mode>"): Use new iterator name.
4871         (define_insn "*<mshift><mode>3"): New.
4872
4873 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
4874
4875         PR middle-end/67649
4876         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
4877         mark the block as accessible.
4878
4879 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
4880
4881         * function.c (thread_prologue_and_epilogue_insns): Delete
4882         orig_entry_edge argument to try_shrink_wrapping.
4883         * shrink-wrap.c (can_get_prologue): New function.
4884         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
4885         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
4886         can_get_prologue where needed.  Remove code that finds a single
4887         edge for the prologue.  Remove code that tests if any reg clobbered
4888         by the prologue is live on the prologue edge.  Remove code that finds
4889         the new prologue edge after duplicating blocks.  Make a new prologue
4890         block and edge.
4891         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
4892
4893 2015-09-22  Jeff Law  <law@redhat.com>
4894
4895         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
4896         behavior.
4897
4898 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4899
4900         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
4901         -Wtemplates, -Wnamespaces): Document.
4902
4903 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4904
4905         PR tree-optimization/67671
4906         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
4907         pointer references as restrict.
4908
4909 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4910
4911         * config/nios2/nios2.c (nios2_legitimize_address): When handling
4912         'reg + reloc' cases, allow first operand to be non-REG, and use
4913         force_reg() to enforce address pattern.
4914
4915 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
4916
4917         PR target/67480
4918         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
4919         (define_mode_iterator VI12_AVX_AVX512F): New.
4920         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
4921         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
4922         (define_insn "*<code><mode>3"): ... Into new pattern using
4923         VI12_AVX_AVX512F iterators without masking.
4924
4925 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4926
4927         * config.gcc: Support "skylake-avx512".
4928         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4929         PROCESSOR_SKYLAKE_AVX512.
4930         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
4931         (processor_target_table): Add "skylake-avx512".
4932         (PTA_SKYLAKE_AVX512): Define.
4933         (ix86_option_override_internal): Add "skylake_avx512".
4934         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
4935         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
4936         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
4937         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
4938         * doc/invoke.texi (skylake-avx512): New.
4939
4940 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4941
4942         * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
4943         operand in pattern.
4944         (define_insn "kunpcksi"): Ditto.
4945         (define_insn "kunpckdi"): Ditto.
4946
4947 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4948
4949         * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
4950         iterator instead of fixed modes.
4951
4952 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4953
4954         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4955         Adjust declaration.
4956         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
4957         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
4958         out_result.  Update to support update-fetch operations.
4959         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
4960         Adjust for change to aarch64_gen_atomic_ldop.
4961         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
4962         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
4963         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
4964         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
4965         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
4966
4967 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4968
4969         * config/aarch64/aarch64-protos.h
4970         (aarch64_atomic_ldop_supported_p): Declare.
4971         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
4972         (enum aarch64_atomic_load_op_code): New.
4973         (aarch64_emit_atomic_load_op): New.
4974         (aarch64_gen_atomic_ldop): Update to support load-operate
4975         patterns.
4976         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
4977         to an expander.
4978         (aarch64_atomic_<atomic_optab><mode>): New.
4979         (aarch64_atomic_<atomic_optab><mode>_lse): New.
4980         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
4981         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
4982         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
4983
4984 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4985
4986         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
4987         (UNSPECV_ATOMIC_LDOP_OR): New.
4988         (UNSPECV_ATOMIC_LDOP_BIC): New.
4989         (UNSPECV_ATOMIC_LDOP_XOR): New.
4990         (UNSPECV_ATOMIC_LDOP_PLUS): New.
4991         (ATOMIC_LDOP): New.
4992         (atomic_ldop): New.
4993         (aarch64_atomic_load<atomic_ldop><mode>): New.
4994
4995 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4996
4997         * config/aarch64/aarch64.md
4998         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
4999         pattern.
5000
5001 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
5002
5003         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
5004         Declare.
5005         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
5006         (aarch64_gen_atomic_ldop): New.
5007         (aarch64_split_atomic_op): Fix whitespace and add a comment.
5008         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
5009         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
5010         (atomic_exchange<mode>): Replace with an expander.
5011         (aarch64_atomic_exchange<mode>): New.
5012         (aarch64_atomic_exchange<mode>_lse): New.
5013         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
5014         (aarch64_atomic_swp<mode>): New.
5015
5016 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5017
5018         * tree-inline.c (expand_call_inline): Use inform for extra note.
5019         Do not give a note with UNKNOWN_LOCATION.
5020         Replace input_location with gimple_location (stmt).
5021         Use true/false instead of TRUE/FALSE.
5022
5023 2015-09-22  Tom de Vries  <tom@codesourcery.com>
5024
5025         PR tree-optimization/67666
5026         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
5027         with single field non-conservative.
5028
5029 2015-09-21  David S. Miller  <davem@davemloft.net>
5030
5031         PR/67622
5032         Revert:
5033         2015-09-11  David S. Miller  <davem@davemloft.net>
5034
5035         * config/sparc/constraints.md: Make "U" constraint a real register
5036         constraint.
5037         * config/sparc/sparc.c (TARGET_LRA_P): Define.
5038         (D_MODES, DF_MODES): Add missing cast.
5039         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
5040         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
5041         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
5042         cost to 8.
5043         * config/sparc/sparc.h (PROMOTE_MODE): Define.
5044         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
5045         provide these insn when flag_pic.
5046
5047         2015-09-17  David S. Miller  <davem@davemloft.net>
5048
5049         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
5050         Declare.
5051         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
5052         function.
5053         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5054         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5055         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5056         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5057         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5058         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5059         provide when flag_pic.
5060
5061 2015-09-21  Jeff Law  <law@redhat.com>
5062
5063         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
5064         behavior.
5065
5066 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5067
5068         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
5069
5070 2015-09-21  Richard Biener  <rguenther@suse.de>
5071
5072         * passes.c (rest_of_decl_compilation): Do not call
5073         dwarf2out_early_global_decl for aliases.
5074
5075 2015-09-21  Richard Biener  <rguenther@suse.de>
5076
5077         PR debug/67664
5078         * dwarf2out.c (add_location_or_const_value_attribute): Remove
5079         attribute parameter.  Early exit if either DW_AT_const_value
5080         or DW_AT_location are present already.
5081         (gen_variable_die): Adjust caller.
5082         (dwarf2out_late_global_decl): Likewise.
5083
5084 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
5085
5086         PR target/67657
5087         * config/sh/sh.c (sh_remove_overlapping_post_inc,
5088         sh_peephole_emit_move_insn): Add new functions.
5089         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
5090         sh_peephole_emit_move_insn): Declere them.
5091         * config/sh/sh.md: Use them in various peephole2 patterns.
5092
5093 2015-09-21  Richard Biener  <rguenther@suse.de>
5094
5095         PR middle-end/67651
5096         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
5097         address with -fno-delete-null-pointer-checks.
5098
5099 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
5100
5101         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
5102         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
5103         (reduc_uplus_v16qi): Remove.
5104
5105         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
5106         (reduc_<VEC_reduc_name>_v2df): Remove.
5107         (reduc_<VEC_reduc_name>_v4sf): Remove.
5108         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
5109
5110         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
5111         gen_ function by removing * prefix.
5112         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
5113
5114 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5115
5116         PR middle-end/60832
5117         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
5118         Print i_bound without converting it to a tree.
5119
5120 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
5121
5122         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
5123         operands[4] operands[5] swap with std::swap, removed tmp variable.
5124         (arm_evpc_neon_vzip): Replaced in0/in1 and
5125         out0/out1 swaps with std::swap, removed x variable.
5126         (arm_evpc_neon_vtrn): Replaced in0/int1 and
5127         out0/out1 swaos with std::swap, removed x variable.
5128         (arm_expand_vec_perm_const_1): Replaced
5129         d->op0/d->op1 swap with std::swap, removed x variable.
5130         (arm_evpc_neon_vuzp): Replaced in0/in1 and
5131         out0/out1 swaps with std::swap, removed x variable.
5132
5133 2015-09-21  Jonathan Yong  <10walls@gmail.com>
5134
5135         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
5136         sysroot/usr/lib/32api for additional win32 libraries,
5137         fixes failing Cygwin bootstrapping.
5138
5139 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
5140
5141         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
5142
5143 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
5144
5145         PR target/67126
5146         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
5147         (*mov_t_msb_neg): Rewrite negc pattern.
5148
5149 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5150
5151         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
5152         immediate generation code.
5153
5154 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5155
5156         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
5157         redundant immediate generation code.
5158
5159 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5160
5161         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
5162         (AARCH64_NUM_BITMASKS): Remove.
5163         (aarch64_bitmasks_cmp): Remove.
5164         (aarch64_build_bitmask_table): Remove.
5165
5166 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5167
5168         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
5169         slow immediate matching loops with a faster algorithm.
5170
5171 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5172
5173         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
5174         faster algorithm.
5175
5176 2015-09-20  Jeff Law  <law@redhat.com>
5177
5178         PR tree-optimization/47679
5179         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
5180         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
5181         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
5182         (thread_through_normal_block): Use record_temporary_equivalences.
5183
5184 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
5185
5186         * coretypes.h (gimple): Change typedef to be a forward declaration.
5187         * gimple.h (gimple_statement_base): rename to gimple.
5188         * (all functions and types using gimple): Adjust.
5189         * *.[ch]: Likewise.
5190
5191 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
5192             David Edelsohn  <dje.gcc@gmail.com>
5193
5194         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
5195         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5196         (EH_FRAME_THROUGH_COLLECT2): Define.
5197         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5198         (ASM_OUTPUT_DWARF_PCREL): Define.
5199         (ASM_OUTPUT_DWARF_DATAREL): Define.
5200
5201 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
5202
5203         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
5204         of TARGET_ELF32.
5205
5206 2015-09-18  Jeff Law  <law@redhat.com>
5207
5208         PR tree-optimization/47679
5209         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
5210         it here ...
5211         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
5212         object.  Update constructor.
5213         (pass_dominator::execute):  Corresponding chagnes to declaration
5214         and initialization of avail_exprs_stack.  Update constructor call
5215         for dom_opt_dom_walker object.
5216         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
5217         it down to children as needed.
5218         (record_equivalences_from_incoming_edge): Likewise.
5219         (eliminate_redundant_computations): Likewise.
5220         (record_equivalences_from_stmt): Likewise.
5221         (simplify_stmt_for_jump_threading): Likewise.
5222         (record_temporary_equivalences): Likewise.
5223         (optimize_stmt): Likewise.
5224         (dom_opt_dom_walker::thread_across_edge): Update access to
5225         avail_exprs_stack object and pass it to children as needed.
5226         (dom_opt_dom_walker::before_dom_children): Similarly.
5227         (dom_opt_dom_walker::after_dom_children): Similarly.
5228         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
5229         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
5230         Add avail_expr_stack argument.  Pass it to children as needed.
5231         (dummy_simplify): Likewise.
5232         (simplify_control_stmt_condition): Likewise.
5233         (thread_around_empty_blocks): Likewise.
5234         (thread_through_normal_block): Likewise.
5235         (thread_across_edge): Likewise.
5236         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5237         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
5238
5239         PR tree-optimization/47679
5240         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
5241         it here ...
5242         (dom_opt_dom_walker): New private member holding the const_and_copies
5243         object.  Update constructor.
5244         (pass_dominator::execute): Corresponding changes to declaration
5245         and initialization of const_and_copies.  Update constructor call
5246         for the dom_opt_dom_walker object.
5247         (record_temporary_equivalences): Accept const_and_copies argument
5248         pass it down to children as needed.
5249         (record_equality): Likewise.
5250         (record_equivalences_from_incoming_edge): Likewise.
5251         (cprop_into_successor_phis, optimize_stmt): Likewise.
5252         (eliminate_redundant_computations): Likewise.
5253         (dom_opt_dom_walker::thread_across_edge): Update access to
5254         const_and_copies object and pass it to children as needed.
5255         (dom_opt_dom_walker::before_dom_children): Similarly.
5256         (dom_opt_dom_walker::after_dom_children): Similarly.
5257
5258         PR tree-optimization/47679
5259         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
5260         it into the avail_exprs_stack class.
5261         (pass_dominator::execute): Corresponding changes to declaration
5262         and initialization of avail_exprs.  Pass avail_exprs to
5263         dump_dominator_optimization_stats.
5264         (record_cond): Extract avail_exprs from avail_exprs_stack.
5265         (lookup_avail_expr): Similarly.
5266         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
5267         position in file.
5268         (dump_dominator_optimization_stats): Make static and prototype.
5269         Add argument for the hash table to dump.
5270         (debug_dominator_optimization_stats): Remove.
5271         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
5272         prototype.
5273         (debug_dominator_optimization_stats): Similarly.
5274         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
5275         "void" in prototype for pop_to_marker method.  Add accessor method
5276         for the underlying avail_exprs table.
5277
5278         * tree-ssa-threadedge.c: Remove trailing whitespace.
5279
5280 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
5281
5282         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
5283         unsigned.
5284         (pa_ldil_cint_p): Likewise.
5285         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
5286         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
5287         Update callers.
5288         * config/pa/pa.md: Likewise.
5289
5290 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
5291
5292         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
5293         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
5294         (diagnostic_show_locus): Likewise.
5295         (diagnostic_print_caret_line): Likewise.
5296         * diagnostic-show-locus.c: New file.
5297
5298 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
5299
5300         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
5301         "back" parameter. Declare label in #if block.
5302
5303 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
5304
5305         PR middle-end/67619
5306         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
5307         the address to a register.
5308
5309 2015-09-18  Jeff Law  <law@redhat.com>
5310
5311         PR tree-optimization/47679
5312         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
5313         * tree-ssa-dom.c: Remove unnecessary header includes.
5314         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
5315         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
5316         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
5317         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
5318         (pass_phi_only_cprop::execute): Likewise.
5319         (make_pass_phi_only_cprop): Likewise.
5320         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
5321         uses of file scoped statics by passing the required objects
5322         as parameters wherever needed.
5323
5324 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
5325             David Edelsohn  <dje.gcc@gmail.com>
5326
5327         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
5328         EH_FRAME_THROUGH_COLLECT2.
5329         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
5330         DW_EH_PE_datarel.
5331         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
5332         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
5333         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
5334         * except.c (switch_to_exception_section): Use a read-only section
5335         even if EH_FRAME_SECTION_NAME is undefined.
5336         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
5337         * collect2.c (write_c_file_stat): Provide dbase on AIX.
5338         (scan_prog_file): Don't export __dso_handle nor
5339         __gcc_unwind_dbase.
5340         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5341         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5342         (ASM_OUTPUT_DWARF_PCREL): Define.
5343         (ASM_OUTPUT_DWARF_DATAREL): Define.
5344         (EH_FRAME_THROUGH_COLLECT2): Define.
5345         (EH_FRAME_IN_DATA_SECTION): Delete.
5346         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
5347         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
5348         Declare.
5349         (rs6000_asm_output_dwarf_datarel): Declare.
5350         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
5351         (rs6000_aix_asm_output_dwarf_datarel): New.
5352         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
5353         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
5354         (EH_FRAME_THROUGH_COLLECT2): Define.
5355         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
5356         (EH_FRAME_THROUGH_COLLECT2): Define.
5357         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5358         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
5359         (EH_FRAME_THROUGH_COLLECT2): New.
5360         (ASM_OUTPUT_DWARF_DATAREL): New.
5361         * doc/tm.texi: Regenerate.
5362
5363 2015-09-18  Richard Biener  <rguenther@suse.de>
5364
5365         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
5366         we're in early phase.
5367         (schedule_generic_params_dies_gen): Likewise.
5368         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
5369         work as possible, retaining unhandled cases.
5370         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
5371         clear out generic_type_instances at the end.
5372         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
5373         (dwarf2out_early_finish): ... here.  Do most of
5374         gen_remaining_tmpl_value_param_die_attribute here.
5375
5376 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
5377
5378         PR tree-optimization/67283
5379         * tree-sra.c (type_consists_of_records_p): Rename to...
5380         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
5381         (completely_scalarize_record): Rename to...
5382         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
5383         (scalarize_elem): New.
5384         (analyze_all_variable_accesses): Follow renamings.
5385
5386 2015-09-18  Richard Biener  <rguenther@suse.de>
5387
5388         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
5389         in early-dwarf.
5390
5391 2015-09-18  Richard Biener  <rguenther@suse.de>
5392
5393         PR tree-optimization/66142
5394         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
5395         treat MEM[&x] and x the same.
5396         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
5397         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
5398         when we simplified sth.
5399         (vn_reference_maybe_forwprop_address): Likewise.
5400         (valueize_refs_1): When we simplified through
5401         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
5402         set valueized_anything to true.
5403         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
5404         one ref kills the other instead of just a offset-based test.
5405         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
5406         for the operand_equal_p test to compare bases and also compare
5407         sizes.
5408
5409 2015-09-17  Christian Bruel  <christian.bruel@st.com>
5410
5411         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
5412
5413 2015-09-17  Richard Henderson  <rth@redhat.com>
5414
5415         PR libstdc++/65913
5416         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
5417         pointers that encode the alignment of the object.
5418
5419 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5420
5421         PR rtl-optimization/66790
5422         * df-problems.c (LIVE): Amend documentation.
5423
5424 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
5425
5426         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
5427         and optabs-tree.o.
5428         (GTFILES): Replace optabs.c with optabs-libfunc.c.
5429         * genopinit.c (main): Add an include guard to insn-opinit.h.
5430         Protect the rtx_code parts with NUM_RTX_CODE.
5431         * optabs.h: Split parts out to...
5432         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
5433         * optabs.c: Split parts out to...
5434         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
5435         * cilk-common.c: Include optabs-query.h rather than optabs.h.
5436         * fold-const.c: Likewise.
5437         * target-globals.c: Likewise.
5438         * tree-if-conv.c: Likewise.
5439         * tree-ssa-forwprop.c: Likewise.
5440         * tree-ssa-loop-prefetch.c: Likewise.
5441         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
5442         Remove unncessary include files.
5443         * tree-ssa-phiopt.c: Likewise.
5444         * tree-ssa-reassoc.c: Likewise.
5445         * tree-switch-conversion.c: Likewise.
5446         * tree-vect-data-refs.c: Likewise.
5447         * tree-vect-generic.c: Likewise.
5448         * tree-vect-loop.c: Likewise.
5449         * tree-vect-patterns.c: Likewise.
5450         * tree-vect-slp.c: Likewise.
5451         * tree-vect-stmts.c: Likewise.
5452         * tree-vrp.c: Likewise.
5453         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
5454         rather than optabs.h.
5455         * expr.c: Include optabs-tree.h.
5456         * function.c: Likewise.
5457
5458 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5459
5460         PR middle-end/65958
5461         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
5462         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
5463         * config/arm/arm.c: Include common/common-target.h.
5464         (use_return_insn): Return 0 if the static chain register was saved
5465         above a non-APCS frame.
5466         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
5467         (struct scratch_reg): New.
5468         (get_scratch_register_on_entry): New function.
5469         (release_scratch_register_on_entry): Likewise.
5470         (arm_emit_probe_stack_range): Likewise.
5471         (output_probe_stack_range): Likewise.
5472         (arm_expand_prologue): Factor out code dealing with the IP register
5473         for nested function and adjust it for stack checking.
5474         Invoke arm_emit_probe_stack_range if static builtin stack checking
5475         is enabled.
5476         (thumb1_expand_prologue): Sorry out if static builtin stack checking
5477         is enabled.
5478         (arm_expand_epilogue): Add the saved static chain register, if any, to
5479         the amount of pre-pushed registers to pop.
5480         (arm_frame_pointer_required): Return true if static stack checking is
5481         enabled and we want to catch the exception with the EABI unwinder.
5482         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
5483         (UNSPEC_PROBE_STACK_RANGE): Likewise.
5484         * config/arm/arm.md (probe_stack): New insn.
5485         (probe_stack_range): Likewise.
5486
5487 2015-09-17  Richard Biener  <rguenther@suse.de>
5488
5489         * genmatch.c (parser::parse_expr): Improve error message
5490         for mis-placed flags.
5491
5492 2015-09-17  Richard Biener  <rguenther@suse.de>
5493
5494         * passes.c (rest_of_decl_compilation): Always call early_global_decl
5495         debug hook when we created a varpool node.
5496         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
5497         dwarf2out_early_global_decl, when not just add location or
5498         value attributes to existing DIEs.
5499
5500 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
5501
5502         * config/aarch64/aarch64.md (copysigndf3): New.
5503         (copysignsf3): Likewise.
5504
5505 2015-09-17  David S. Miller  <davem@davemloft.net>
5506
5507         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
5508         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
5509         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5510         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5511         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5512         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5513         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5514         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5515         provide when flag_pic.
5516
5517 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5518
5519         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
5520         object_allocator change.
5521
5522 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5523
5524         PR tree-optimization/66388
5525         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
5526         (dump_iv): Dump no_overflow information.
5527         (alloc_iv): Initialize new field for struct iv.
5528         (mark_bivs): Count number of no_overflow bivs.
5529         (find_deriving_biv_for_expr, record_biv_for_address_use): New
5530         functions.
5531         (idx_find_step): Call new functions above.
5532         (add_candidate_1, add_candidate): New paramter.
5533         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
5534         (get_computation_aff): Simplify convertion of cand for BIV.
5535         (get_computation_cost_at): Step cand's base if necessary.
5536
5537 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5538
5539         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
5540         parameter.
5541         (tree_simplify_using_condition): Ditto.
5542         (simplify_using_initial_conditions): Ditto.
5543         (loop_exits_before_overflow): Pass new argument to function
5544         simplify_using_initial_conditions.  Remove case for type conversions
5545         simplification.
5546         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
5547         parameter.
5548         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
5549         in iv base using loop initial conditions.
5550
5551 2015-09-16  Jeff Law  <law@redhat.com>
5552
5553         PR tree-optimization/47679
5554         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
5555         (free_all_edge_infos): Use it.
5556         (allocate_edge_info): Free preexisting edge info data.
5557         (pass_dominator::execute): Set up initial edge info structures.
5558         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
5559         thread_across_edge.
5560         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
5561         If non-null, then push/pop markers appropriately.
5562         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5563         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
5564         thread-across_edge.
5565
5566 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
5567
5568         * config/ft32/ft32.c: Fix the memory address space predicate.
5569
5570 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5571
5572         PR target/67573
5573         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
5574         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
5575
5576 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5577
5578         * toplev.h (check_global_declaration): Remove declaration.
5579         * toplev.c (check_global_declaration): Move to ...
5580         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
5581         (analyze_functions): Update call.
5582
5583 2015-09-16  David S. Miller  <davem@davemloft.net>
5584
5585         * lra-constraints.c (simplify_operand_subreg): Do not assume that
5586         lowpart of a SUBREG has offset zero.
5587
5588 2015-09-16  Jeff Law  <law@redhat.com>
5589
5590         PR tree-optimization/47679
5591         * tree-ssa-dom.c (enum expr_kind): Moved from here to
5592         tree-ssa-scopedtables.h.
5593         (struct hashable_expr, class expr_hash_elt): Likewise.
5594         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
5595         Move associated methods into tree-ssa-scopedtables.c.
5596         (avail_expr_hash, initialize_expr_from_cond): Similarly.
5597         (hashable_expr_equal_p, add_expr_commutative): Likewise.
5598         (add_hashable_expr): Likewise.
5599         (record_cond): Delete element directly.
5600         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
5601         private copy ctor and assignment operator methods.
5602         (expr_elt_hasher): Inline trivial methods.
5603         (initialize_expr_from_cond): Prototype.
5604         * tree-ssa-scopedtables.c: Add necessary includes, functions and
5605         methods that were previously in tree-ssa-dom.c.  Improve various
5606         comments.
5607
5608 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
5609
5610         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
5611
5612 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
5613
5614         PR bootstrap/67587
5615         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5616         fixup_partitions.
5617
5618 2015-09-16  Richard Biener  <rguenther@suse.de>
5619
5620         PR middle-end/67253
5621         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
5622         location of possibly shared trees.
5623
5624 2015-09-16  Richard Biener  <rguenther@suse.de>
5625
5626         PR middle-end/67271
5627         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
5628
5629 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
5630
5631         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
5632         offset and size computations instead of HOST_WIDE_INT.
5633
5634 2015-09-16  Richard Biener  <rguenther@suse.de>
5635
5636         PR middle-end/67442
5637         * fold-const.c (extract_muldiv_1): Properly extend multiplication
5638         result before builting a tree via wide_int_to_tree.
5639
5640 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
5641
5642         * Makefile.in: Add memory-block.cc
5643         (pool_allocator::initialize): Use fixed block size.
5644         (pool_allocator::release): Use memory_block_pool.
5645         (pool_allocator::allocate): Likewise.
5646         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
5647         object pools.
5648         * cfg.c (initialize_original_copy_tables): Likewise.
5649         * cselib.c (elt_list_pool, elt_loc_list_pool,
5650         cselib_val_pool): Likewise.
5651         * df-problems.c (df_chain_alloc): Likewise.
5652         * df-scan.c (df_scan_alloc): Likewise.
5653         * dse.c (cse_store_info_pool, rtx_store_info_pool,
5654         read_info_type_pool, insn_info_type_pool, bb_info_pool,
5655         group_info_pool, deferred_change_pool): Likewise.
5656         * et-forest.c (et_nodes, et_occurrences): Likewise.
5657         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
5658         ipcp_agg_lattice_pool): Likewise.
5659         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
5660         * ipa-profile.c (histogram_pool): Likewise.
5661         * ipa-prop.c (ipa_refdesc_pool): Likewise.
5662         * ira-build.c (live_range_pool, allocno_pool, object_pool,
5663         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
5664         * ira-color.c (update_cost_record_pool): Likewise.
5665         * lra-lives.c (lra_live_range_pool): Likewise.
5666         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
5667         * memory-block.cc: New file.
5668         * memory-block.h: New file.
5669         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
5670         * sched-deps.c (sched_deps_init): Likewise.
5671         * sel-sched-ir.c (sched_lists_pool): Likewise.
5672         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
5673         * tree-sra.c (access_pool): Likewise.
5674         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5675         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
5676         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
5677         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
5678         * tree-ssa-strlen.c (strinfo_pool): Likewise.
5679         * tree-ssa-structalias.c (variable_info_pool): Likewise.
5680         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
5681         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
5682
5683 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5684
5685         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
5686         definition.
5687         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
5688         call0 ABI.
5689
5690 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5691
5692         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
5693         to pass TLS call argument, according to current ABI.
5694         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
5695         callx0 for TLS call, according to current ABI.
5696
5697 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5698
5699         * tree-eh.c (lower_try_finally_dup_block): Clear location information
5700         on stack restore statements.
5701         (decide_copy_try_finally): Do not consider a stack restore statement as
5702         coming from sources.
5703
5704 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
5705
5706         * config/alpha/alpha.c (alpha_expand_block_clear): Use
5707         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
5708
5709 2015-09-15  Jeff Law  <law@redhat.com>
5710
5711         PR tree-optimization/47679
5712         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
5713         methods and private members.
5714         (avail_exprs_stack): Similarly.  Change type of global
5715         from a pair of expr_hash_elt_t to the new class.
5716         (expr_elt_hasher::hash): Corresponding changes.
5717         (expr_elt_hasher::equal): Similarly.
5718         (avail_expr_hash): Similarly.
5719         (pass_dominator::execute): Similarly.
5720         (dom_opt_dom_walker::thread_across_edge): Similarly.
5721         (record_cond): Similarly.
5722         (dom_opt_dom_walker::before_dom_children): Similarly.
5723         (dom_opt_dom_walker::after_dom_children): Similarly.
5724         (lookup_avail_expr): Likewise.
5725         (initialize_hash_element): Now a expr_hash_elt constructor.
5726         (initialize_hash_element_from_expr): Similarly.
5727         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
5728         (free_expr_hash_elt): Call dtor for the element.
5729         (remove_local_expressions_from_table): Now the "pop_to_marker"
5730         method in the available_exprs_stack class.
5731         (avail_expr_stack::record_expr): Method factored out.
5732         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
5733         Fix formatting.
5734         (hashable_expr_equal_p): Fix formatting.
5735
5736 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
5737
5738         * input.h (location_get_source_line): Drop "expanded_location"
5739         param in favor of a file and line number.
5740         * input.c (location_get_source_line): Likewise.
5741         (dump_location_info): Update for change in signature of
5742         location_get_source_line.
5743         * diagnostic.c (diagnostic_print_caret_line): Likewise.
5744
5745 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5746
5747         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
5748         Bump to 4KB for SJLJ exceptions.
5749         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
5750         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
5751         * doc/tm.texi: Regenerate.
5752
5753 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5754
5755         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
5756         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
5757         Update prototype.
5758
5759 2015-09-15  Richard Biener  <rguenther@suse.de>
5760
5761         PR tree-optimization/67470
5762         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
5763         structure for PHI hoisting by inserting a forwarder block
5764         if appropriate.
5765
5766 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5767
5768         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
5769         (arm_option_print): New function.
5770
5771 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5772
5773         PR target/52144
5774         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
5775         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
5776         Remove flags parameter.
5777         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
5778         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
5779         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
5780         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
5781         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
5782         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
5783         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
5784         * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
5785
5786 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5787
5788         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
5789
5790         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
5791         AARCH64_VALID_SIMD_DREG_MODE.
5792
5793 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5794
5795         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
5796         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
5797         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
5798         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
5799         aarch64_ld4_lane<mode>): Combine together, making...
5800         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5801         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5802         aarch64_st4_lane<mode>): Combine together, making...
5803         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5804         * config/aarch64/iterators.md (nregs): Add comment.
5805
5806 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5807
5808         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
5809         Change operand mode from <V_TWO_ELEM> to BLK.
5810         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
5811         (aarch64_vec_store_lanesoi_lane<mode): Likewise
5812         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5813         (aarch64_ld2_lane<mode>): Likewise.
5814         (aarch64_st2_lane<VQ:mode>): Likewise.
5815         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
5816
5817 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5818
5819         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
5820         Change operand mode from <V_FOUR_ELEM> to BLK.
5821         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
5822         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
5823         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5824         (aarch64_ld4_lane<mode>): Likewise.
5825         (aarch64_st4_lane<mode>): Likewise.
5826         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
5827
5828 2015-09-15  Richard Biener  <rguenther@suse.de>
5829
5830         PR middle-end/67563
5831         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
5832         transfer EH info from old to new stmt.
5833         (replace_call_with_value): Likewise.
5834         (replace_call_with_call_and_fold): Likewise.
5835         (gimple_fold_builtin_memory_op): Likewise.
5836         (gimple_fold_builtin_memset): Likewise.
5837         (gimple_fold_builtin_stpcpy): Likewise.
5838         (gimple_fold_call): Likewise.
5839
5840 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5841
5842         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
5843         comment.
5844         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
5845         (aarch64_simd_intEI_type_node): Likewise.
5846         (aarch64_simd_builtin_std_type): Remove EImode case.
5847         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
5848         * config/aarch64/aarch64-modes.def: Remove EImode.
5849
5850 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5851
5852         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
5853         Change operand mode from <V_THREE_ELEM> to BLK.
5854         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
5855         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
5856         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5857         (aarch64_ld3_lane<mode>): Likewise.
5858         (aarch64_st3_lane<mode>): Likewise.
5859         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
5860
5861 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5862
5863         * config/aarch64/aarch64-simd.md
5864         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
5865         Change all TImode operands to BLKmode.
5866         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
5867         Change all EImode operands to BLKmode.
5868         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
5869         Change all OImode operands to BLKmode.
5870
5871         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
5872         and call set_mem_size.
5873         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
5874
5875         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
5876
5877 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5878
5879         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
5880         to...
5881         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
5882
5883         (vec_store_lanesci_lane<mode>): Rename to...
5884         (aarch64_vec_store_lanesci_lane<mode>): ...this.
5885
5886         (vec_store_lanesxi_lane<mode>): Rename to...
5887         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
5888
5889         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5890         aarch64_st4_lane<mode>): Follow renaming.
5891
5892 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5893
5894         * config/s390/s390.c (s390_const_operand_ok): Add missing
5895         brackets.
5896
5897 2015-09-15  Richard Biener  <rguenther@suse.de>
5898
5899         PR lto/67568
5900         * lto-streamer.h (lto_location_cache::current_sysp): Properly
5901         initialize.
5902         * lto-streamer-out.c (clear_line_info): Likewise.
5903
5904 2015-09-15  Richard Biener  <rguenther@suse.de>
5905
5906         * doc/match-and-simplify.texi: Fix wording.
5907
5908 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
5909
5910         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
5911         unnecessary type conversion in op1.
5912
5913 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5914
5915         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
5916         (dup_block_and_redirect): Delete function.
5917         (can_dup_for_shrink_wrapping): New function.
5918         (fix_fake_fallthrough_edge): New function.
5919         (try_shrink_wrapping): Rewrite function.
5920         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
5921
5922 2015-09-14  Rich Felker  <dalias@libc.org>
5923
5924         * configure.ac: Change target pattern for sh TLS support
5925         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
5926         * configure: Regenerate.
5927
5928 2015-09-14  Jeff Law  <law@redhat.com>
5929
5930         PR tree-optimization/47679
5931         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
5932         type rather than void *.
5933
5934 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5935
5936         PR fortran/67460
5937         * diagnostic.c (diagnostic_initialize): Do not set
5938         some_warnings_are_errors.
5939         (diagnostic_finish): Use DK_WERROR count instead.
5940         (diagnostic_report_diagnostic): Do not set
5941         some_warnings_are_errors.
5942         * diagnostic.h (struct diagnostic_context): Remove
5943         some_warnings_are_errors.
5944
5945 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
5946
5947         * config/sparc/predicates.md (const_all_ones_operand): Use
5948         CONSTM1_RTX to simplify definition.
5949
5950 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
5951
5952         PR target/67061
5953         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
5954         Handle call insns.
5955
5956 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
5957
5958         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
5959         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
5960         OPT_fshow_column to handled saved option cases.
5961         (append_compiler_options): Do not skip the above added options.
5962
5963 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5964
5965         PR target/63304
5966         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
5967         nopcrelative_literal_loads.
5968         (aarch64_classify_address): Likewise.
5969         (aarch64_constant_pool_reload_icode): Define.
5970         (aarch64_secondary_reload): Handle secondary reloads for
5971         literal pools.
5972         (aarch64_override_options): Handle nopcrelative_literal_loads.
5973         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
5974         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
5975         Define.
5976         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5977         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
5978         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
5979         predicate.
5980         * doc/invoke.texi (mpc-relative-literal-loads): Document.
5981
5982 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
5983
5984         PR middle-end/67401
5985         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
5986         sync_compare_and_swap_optab libcall to target_oval.
5987
5988 2015-09-14  Marek Polacek  <polacek@redhat.com>
5989
5990         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
5991         value.
5992         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
5993
5994 2015-09-11  Mark Wielaard  <mjw@redhat.com>
5995
5996         PR c/28901
5997         * toplev.c (check_global_declaration): Check and use
5998         warn_unused_const_variable.
5999         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
6000         (-Wunused-variable): Remove non-constant. For C implies
6001         -Wunused-const-variable.
6002         (-Wunused-const-variable): New.
6003
6004 2015-09-14  Richard Biener  <rguenther@suse.de>
6005
6006         * doc/match-and-simplify.texi: Update for changed syntax
6007         of inner ifs and the new switch expression.
6008
6009 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
6010
6011         * config/i386/haswell.md: New file describing Haswell pipeline.
6012         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
6013         haswell-like processors.
6014         (ix86_reassociation_width): Increase reassociation width for 64-bit
6015         Haswell processor family.
6016         * config/i386/i386.md: Introduce haswell cpu and include new md file.
6017
6018 2015-09-14  Richard Biener  <rguenther@suse.de>
6019
6020         * doc/match-and-simplify.texi: Fixup some formatting issues
6021         and document the 's' flag.
6022
6023 2015-09-13  Olivier Hainque  <hainque@adacore.com>
6024             Eric Botcazou  <ebotcazou@adacore.com>
6025
6026         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
6027         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
6028         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
6029         (TARGET_CPU_gr5): Likewise.
6030         (TARGET_CPU_gr6): Likewise.
6031         (MULTILIB_DEFAULTS): Likewise.
6032         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
6033         for mcpu=gr5 and mcpu=gr6.
6034         (MULTILIB_DIRNAMES): Adjust accordingly.
6035
6036 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6037
6038         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
6039         (mem_ref_p): Likewise.
6040         (outermost_indep_loop): Adjust.
6041         (mem_ref_in_stmt): Likewise.
6042         (determine_max_movement): Likewise.
6043         (mem_ref_alloc): Likewise.
6044         (record_mem_ref_loc): Likewise.
6045         (set_ref_stored_in_loop): Likewise.
6046         (mark_ref_stored): Likewise.
6047         (gather_mem_refs_stmt): Likewise.
6048         (mem_refs_may_alias_p): Likewise.
6049         (for_all_locs_in_loop): Likewise.
6050         (struct rewrite_mem_ref_loc): Likewise.
6051         (rewrite_mem_refs): Likewise.
6052         (struct first_mem_ref_loc_1): Likewise.
6053         (first_mem_ref_loc): Likewise.
6054         (struct sm_set_flag_if_changed): Likewise.
6055         (execute_sm_if_changed_flag_set): Likewise.
6056         (execute_sm): Likewise.
6057         (hoist_memory_references):
6058         (struct ref_always_accessed): Likewise.
6059         (ref_always_accessed_p): Likewise.
6060         (refs_independent_p): Likewise.
6061         (record_dep_loop): Likewise.
6062         (ref_indep_loop_p_1): Likewise.
6063         (ref_indep_loop_p_2): Likewise.
6064         (ref_indep_loop_p): Likewise.
6065         (can_sm_ref_p): Likewise.
6066         (find_refs_for_sm): Likewise.
6067         (tree_ssa_lim_finalize): Likewise.
6068
6069 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6070
6071         * dwarf2out.c (dw_attr_ref): Remove typedef.
6072         (dw_line_info_ref): Likewise.
6073         (pubname_ref): Likewise.
6074         (dw_ranges_ref): Likewise.
6075         (dw_ranges_by_label_ref): Likewise.
6076         (comdat_type_node_ref): Likewise.
6077         (get_AT): Adjust.
6078         (get_AT_low_pc): Likewise.
6079         (get_AT_hi_pc): Likewise.
6080         (get_AT_string): Likewise.
6081         (get_AT_flag): Likewise.
6082         (get_AT_unsigned): Likewise.
6083         (get_AT_ref): Likewise.
6084         (get_AT_file): Likewise.
6085         (remove_AT): Likewise.
6086         (print_die): Likewise.
6087         (check_die): Likewise.
6088         (die_checksum): Likewise.
6089         (attr_checksum_ordered): Likewise.
6090         (struct checksum_attributes): Likewise.
6091         (collect_checksum_attributes): Likewise.
6092         (die_checksum_ordered): Likewise.
6093         (same_die_p): Likewise.
6094         (is_declaration_die): Likewise.
6095         (clone_die): Likewise.
6096         (clone_as_declaration): Likewise.
6097         (copy_declaration_context): Likewise.
6098         (break_out_comdat_types): Likewise.
6099         (copy_decls_walk): Likewise.
6100         (output_location_lists): Likewise.
6101         (external_ref_hasher::hash): Likewise.
6102         (optimize_external_refs_1): Likewise.
6103         (build_abbrev_table): Likewise.
6104         (size_of_die): Likewise.
6105         (unmark_all_dies): Likewise.
6106         (size_of_pubnames): Likewise.
6107         (output_die_abbrevs): Likewise.
6108         (output_die): Likewise.
6109         (output_pubnames): Likewise.
6110         (add_ranges_num): Likewise.
6111         (add_ranges_by_labels): Likewise.
6112         (add_high_low_attributes): Likewise.
6113         (gen_producer_string): Likewise.
6114         (dwarf2out_set_name): Likewise.
6115         (new_line_info_table): Likewise.
6116         (prune_unused_types_walk_attribs): Likewise.
6117         (prune_unused_types_update_strings): Likewise.
6118         (prune_unused_types): Likewise.
6119         (resolve_addr): Likewise.
6120         (optimize_location_lists_1): Likewise.
6121         (index_location_lists): Likewise.
6122         (dwarf2out_finish): Likewise.
6123
6124 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6125
6126         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
6127
6128 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6129
6130         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
6131         (dump_asserts_for): Adjust.
6132         (register_new_assert_for): Likewise.
6133         (process_assert_insertions): Likewise.
6134         (insert_range_assertions): Likewise.
6135
6136 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6137
6138         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
6139         and remove typedef.
6140         (new_temp_expr_table): Adjust.
6141         (free_temp_expr_table): Likewise.
6142         (version_to_be_replaced_p): Likewise.
6143         (make_dependent_on_partition): Likewise.
6144         (add_to_partition_kill_list): Likewise.
6145         (remove_from_partition_kill_list): Likewise.
6146         (add_dependence): Likewise.
6147         (finished_with_expr): Likewise.
6148         (process_replaceable): Likewise.
6149         (kill_expr): Likewise.
6150         (kill_virtual_exprs): Likewise.
6151         (mark_replaceable): Likewise.
6152         (find_replaceable_in_bb): Likewise.
6153         (find_replaceable_exprs): Likewise.
6154         (debug_ter): Likewise.
6155
6156 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6157
6158         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
6159         (struct btr_user): Rename from btr_user_s.
6160         (struct btr_def): Rename from btr_def_s.
6161         (find_btr_def_group): Adjust.
6162         (add_btr_def): Likewise.
6163         (new_btr_user): Likewise.
6164         (note_other_use_this_block): Likewise.
6165         (compute_defs_uses_and_gen): Likewise.
6166         (link_btr_uses): Likewise.
6167         (build_btr_def_use_webs): Likewise.
6168         (block_at_edge_of_live_range_p): Likewise.
6169         (btr_def_live_range): Likewise.
6170         (combine_btr_defs): Likewise.
6171         (move_btr_def): Likewise.
6172         (migrate_btr_def): Likewise.
6173         (migrate_btr_defs): Likewise.
6174
6175 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6176
6177         * var-tracking.c (shared_hash_def): Rename to shared_hash.
6178         (shared_hash): Remove typedef.
6179         (struct dataflow_set): Adjust.
6180         (shared_hash_unshare): Likewise.
6181         (dataflow_set_merge): Likewise.
6182         (vt_initialize): Likewise.
6183         (vt_finalize): Likewise.
6184
6185 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6186
6187         * var-tracking.c (struct location_chain): Rename from
6188         location_chain_def.
6189         (struct variable_part): Adjust.
6190         (variable_htab_free): Likewise.
6191         (unshare_variable): Likewise.
6192         (get_init_value): Likewise.
6193         (get_addr_from_local_cache): Likewise.
6194         (drop_overlapping_mem_locs): Likewise.
6195         (val_reset): Likewise.
6196         (struct variable_union_info): Likewise.
6197         (variable_union): Likewise.
6198         (find_loc_in_1pdv): Likewise.
6199         (insert_into_intersection): Likewise.
6200         (intersect_loc_chains): Likewise.
6201         (canonicalize_loc_order_check): Likewise.
6202         (canonicalize_values_mark): Likewise.
6203         (canonicalize_values_star): Likewise.
6204         (canonicalize_vars_star): Likewise.
6205         (variable_merge_over_cur): Likewise.
6206         (remove_duplicate_values): Likewise.
6207         (variable_post_merge_new_vals): Likewise.
6208         (variable_post_merge_perm_vals): Likewise.
6209         (find_mem_expr_in_1pdv): Likewise.
6210         (dataflow_set_preserve_mem_locs): Likewise.
6211         (dataflow_set_remove_mem_locs): Likewise.
6212         (variable_part_different_p): Likewise.
6213         (onepart_variable_different_p): Likewise.
6214         (find_src_set_src): Likewise.
6215         (dump_var): Likewise.
6216         (set_slot_part): Likewise.
6217         (clobber_slot_part): Likewise.
6218         (delete_slot_part): Likewise.
6219         (vt_expand_var_loc_chain): Likewise.
6220         (emit_note_insn_var_location): Likewise.
6221         (vt_finalize): Likewise.
6222
6223 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6224
6225         * dse.c (store_info_t): Remove typedef.
6226         (group_info_t): Likewise.
6227         (const_group_info_t): Likewise.
6228         (deferred_change_t): Likewise.
6229         (get_group_info): Adjust.
6230         (free_store_info): Likewise.
6231         (canon_address): Likewise.
6232         (clear_rhs_from_active_local_stores): Likewise.
6233         (record_store): Likewise.
6234         (replace_read): Likewise.
6235         (check_mem_read_rtx): Likewise.
6236         (scan_insn): Likewise.
6237         (remove_useless_values): Likewise.
6238         (dse_step1): Likewise.
6239         (dse_step2_init): Likewise.
6240         (dse_step2_nospill): Likewise.
6241         (scan_stores_nospill): Likewise.
6242         (scan_reads_nospill): Likewise.
6243         (dse_step3_exit_block_scan): Likewise.
6244         (dse_step3): Likewise.
6245         (dse_step5_nospill): Likewise.
6246         (dse_step6): Likewise.
6247
6248 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6249
6250         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
6251         (alias_set_entry): Remove typedef.
6252         (alias_set_subset_of): Adjust.
6253         (alias_sets_conflict_p): Likewise.
6254         (init_alias_set_entry): Likewise.
6255         (get_alias_set): Likewise.
6256         (new_alias_set): Likewise.
6257         (record_alias_subset): Likewise.
6258
6259 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
6260
6261         * doc/install.texi (Downloading the source): Mark up
6262         contrib/download_prerequisites properly and drop leading "./".
6263
6264 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6265
6266         * config/arc/arc.h: Remove define of STRUCT_VALUE.
6267         * config/lm32/lm32.h: Likewise.
6268         * config/mep/mep.h: Likewise.
6269         * config/visium/visium.h: Likewise.
6270         * system.h: Poison STRUCT_VALUE macro.
6271
6272 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
6273
6274         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
6275         CONSTANT_P operands.
6276
6277 2015-09-11  David S. Miller  <davem@davemloft.net>
6278
6279         * config/sparc/constraints.md: Make "U" constraint a real register
6280         constraint.
6281         * config/sparc/sparc.c (TARGET_LRA_P): Define.
6282         (D_MODES, DF_MODES): Add missing cast.
6283         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
6284         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
6285         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
6286         cost to 8.
6287         * config/sparc/sparc.h (PROMOTE_MODE): Define.
6288         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
6289         provide these insn when flag_pic.
6290
6291 2015-09-11  Jeff Law  <law@redhat.com>
6292
6293         PR tree-optimization/47679
6294         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
6295         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
6296         member with m_.  Update inline member functions as necessary.  Add
6297         toplevel comment.
6298         * tree-ssa-scopedtables.c: Update const_and_copies's member
6299         functions to use m_ prefix to access the stack.
6300
6301 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6302
6303         * graphite-optimize-isl.c (disable_tiling): Remove.
6304         (get_schedule_for_band): Do not use disable_tiling.
6305         (get_prevector_map): Delete function.
6306         (enable_polly_vector): Remove.
6307         (get_schedule_for_band_list): Remove dead code.
6308
6309 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6310
6311         * graphite-optimize-isl.c (get_tile_map): Refactor.
6312         (get_schedule_for_band): Same.
6313         (getScheduleForBand): Same.
6314         (get_prevector_map): Same.
6315         (get_schedule_for_band_list): Same.
6316         (get_schedule_map): Same.
6317         (get_single_map): Same.
6318         (apply_schedule_map_to_scop): Same.
6319         (optimize_isl): Same.
6320
6321 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6322
6323         PR target/63304
6324         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
6325         (movtf): Delete.
6326         * config/aarch64/iterators.md (GPF_TF_F16): New.
6327         (GPF_F16): Delete.
6328
6329 2015-09-10  Nathan Sidwell  <nathan@acm.org>
6330
6331         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
6332         (nvptx_reorg): Adjust comments.
6333
6334 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
6335
6336         PR bootstrap/67363
6337         * configure.ac: Check if setenv and unsetenv are declared.
6338         * configure: Rebuild.
6339         * config.in: Rebuild.
6340         * system.h: Declare setenv and unsetenv if not declared.
6341
6342 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6343
6344         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
6345         commentary to simplify permute mask adjustment equation.
6346         (special_handling_values): Add SH_VPERM.
6347         (const_load_sequence_p): New function.
6348         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
6349         the mask loaded from the constant pool.
6350         (adjust_vperm): New function.
6351         (handle_special_swappables): Call adjust_vperm.
6352         (dump_swap_insn_table): Handle SH_VPERM.
6353
6354 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6355
6356         * shrink-wrap.c (requires_stack_frame_p): Remove static.
6357         * shrink-wrap.h (requires_stack_frame_p): Put back.
6358
6359 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
6360
6361         * reload1.c (elimination_costs_in_insn): Locally turn
6362         -Wmaybe-uninitialized into a warning.
6363
6364 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
6365
6366         * shrink-wrap.c (requires_stack_frame_p): Make static.
6367         (prepare_shrink_wrap): Likewise.
6368         (dup_block_and_redirect): Likewise.
6369         * shrink-wrap.h: Remove declarations of those functions.
6370
6371 2015-09-10  Mark Wielaard  <mjw@redhat.com>
6372
6373         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
6374
6375 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
6376
6377         PR target/67506
6378         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
6379         missing simplify_gen_subreg.
6380
6381 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6382
6383         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
6384         the vector element is bigger than 64 bit.
6385
6386 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6387
6388         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
6389         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
6390
6391 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6392
6393         * config/s390/s390.c: Add V1TImode to constant pool modes.
6394
6395 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6396
6397         PR target/67439
6398         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
6399         predicate.  Set predicable_short_it attr to "no".
6400
6401 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
6402
6403         PR rtl-optimization/67421
6404         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
6405         left wide shift tranformation.
6406
6407 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
6408
6409         * common/config/arc/arc-common.c: Remove references to A5.
6410         * config/arc/arc-opts.h: Likewise.
6411         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
6412         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
6413         * config/arc/t-arc-newlib: Likewise.
6414
6415 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
6416
6417         * config/arc/arc.md (length): Fix attribute length for conditional
6418         executed instructions with long immediate.
6419
6420 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6421
6422         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
6423         type for second alternative.
6424
6425 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
6426
6427         * doc/invoke.texi (Downloading GCC): Mention
6428         contrib/download_prerequisites script.
6429
6430 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
6431
6432         PR c++/67523
6433         * gimplify.c (gimplify_omp_for): If inner stmt is not found
6434         for combined loop, assert seen_error () and return GS_ERROR.
6435
6436         PR middle-end/67521
6437         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
6438         if decl is already in outer->variables.
6439
6440         PR middle-end/67517
6441         * gimplify.c (gimplify_scan_omp_clauses): Instead of
6442         asserting that decl is not specified in octx->variables,
6443         break out of the loop if it is.
6444
6445         PR c++/67514
6446         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
6447         iterator is not explicitly determined, but is defined inside
6448         of the combined workshare region, handle it like if it has
6449         DECL_EXPR in OMP_FOR_PRE_BODY.
6450
6451 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6452
6453         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
6454         (*cmp<mode>): Add assembler spacing.
6455         (setcc_int<mode>, set_cc_float<mode>): Likewise.
6456         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
6457         level.
6458         (write_func_decl_from_insn): Refactor argument loops & comma emission.
6459         (nvptx_expand_call): Likewise.
6460         (nvptx_output_call_insn): Likewise.
6461         (nvptx_reorg_subreg): Add spacing.
6462
6463 2015-09-09  Marek Polacek  <polacek@redhat.com>
6464
6465         PR middle-end/67512
6466         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
6467         for comparisons.
6468
6469 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
6470
6471         PR c++/53184
6472         * doc/invoke.texi ([Wsubobject-linkage]): Document.
6473
6474 2015-09-09  Tom de Vries  <tom@codesourcery.com>
6475
6476         * params-list.h: Add missing copyright notice.
6477
6478 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6479
6480         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
6481         sel_truesi, not andsi.
6482
6483 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6484
6485         * config/arm/arm.md (*subsi3_compare0): Rename to...
6486         (subsi3_compare0): ... This.
6487         (modsi3): New define_expand.
6488         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
6489         when operand is power of 2.
6490
6491 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6492
6493         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
6494         (*neg<mode>2_compare0): Rename to...
6495         (neg<mode>2_compare0): ... This.
6496         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
6497         Move check for speed inside the if-then-elses.  Reflect
6498         CSNEG sequence in MOD by power of 2 case.
6499
6500 2015-09-09  Alan Modra  <amodra@gmail.com>
6501
6502         PR target/67378
6503         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
6504         reload replacement for PRE_MODIFY address reg.
6505
6506 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
6507
6508         PR tree-optimization/53852
6509         * config.in: Regenerate.
6510         * configure: Regenerate.
6511         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
6512         * graphite-optimize-isl.c (optimize_isl): Stop computation when
6513         PARAM_MAX_ISL_OPERATIONS is reached.
6514         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
6515         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
6516         result equal to isl_stat_ok as the status now can be isl_error_quota.
6517         (subtract_commutative_associative_deps): Same.
6518         (compute_deps): Same.
6519
6520 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
6521             Sebastian Pop  <s.pop@samsung.com>
6522
6523         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
6524         Return the parameter if it was saved in corresponding
6525         parameter_rename_map of the region.
6526         (copy_def): Copy def from sese region to the newly created region.
6527         (copy_internal_parameters): Copy all the internal parameters defined
6528         within a region to the newly created region.
6529         (graphite_regenerate_ast_isl): Copy parameters to the new region before
6530         translating isl to gimple.
6531         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
6532         the loop-nest does not have any data-references.
6533         (build_graphite_scops): Create a scop only when there is at least one
6534         loop inside it.
6535         (contains_only_close_phi_nodes): Deleted.
6536         (print_graphite_scop_statistics): Deleted
6537         (print_graphite_statistics): Deleted
6538         (limit_scops): Deleted.
6539         (build_scops): Removed call to limit_scops.
6540         * sese.c (new_sese): Construct.
6541         (free_sese): Destruct.
6542         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
6543         added.
6544         (set_rename): Pass sese region so that parameters inside the region can
6545         be added to its parameter_rename_map.
6546         (rename_uses): Pass sese region.
6547         (graphite_copy_stmts_from_block): Do not copy parameters that have been
6548         generated in the header of the scop. For each SSA_NAME in the
6549         parameter_rename_map rename its usage.
6550         (invariant_in_sese_p_rec): Return false if tree t is defined outside
6551         sese region.
6552         (scalar_evolution_in_region): If the tree t is invariant just return t.
6553         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
6554         struct sese to keep track of all the parameters which need renaming.
6555         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
6556         any data-refs.
6557         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
6558
6559 2015-09-08  Tom de Vries  <tom@codesourcery.com>
6560
6561         * Makefile.in (generated_files): Add params.list.
6562         (params.list, s-params.list): Add rule.
6563         * params.h (enum compiler_param): Include params-list.h.  Move define
6564         DEFPARAM, include params.def and undef DEFPARAM ...
6565         * params-list.h: ... here.  New file.
6566
6567 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
6568
6569         * pretty-print.h (printer_fn): Fix typo in comment.
6570
6571 2015-09-07  Jeff Law  <law@redhat.com>
6572
6573         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
6574
6575 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6576
6577         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
6578         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
6579         (arm_neon_fp16_hw): New.
6580
6581 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6582
6583         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
6584         UNITS_PER_WORD >= 4.
6585
6586 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6587
6588         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
6589         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
6590         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
6591         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
6592         (aarch64_float_extend_lo_v2df): Rename to...
6593         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
6594
6595         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
6596         (float_extend_lo): Add v4sf.
6597
6598         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
6599         * config/aarch64/iterators.md (VQ_HSF): New iterator.
6600         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
6601         (Vwide): New mode_attr.
6602
6603 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6604
6605         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
6606         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
6607         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
6608         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
6609         V4HF and V8HF variants to iterator.
6610
6611         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
6612
6613         * config/aarch64/iterators.md (VDQF_F16): New.
6614         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
6615
6616 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6617
6618         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
6619         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6620         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
6621         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
6622         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
6623         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6624         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
6625         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
6626         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
6627         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
6628         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
6629         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6630         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
6631         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
6632         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
6633         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
6634         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
6635         vld1q_dup_f16): New.
6636
6637 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6638
6639         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
6640         Reparameterize to...
6641         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
6642         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
6643         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
6644
6645         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
6646         v8hf variant.
6647         (float_truncate_lo_): Use BUILTIN_VDF iterator.
6648
6649         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
6650
6651         * config/aarch64/iterators.md (VDF, Vdtype): New.
6652         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
6653
6654 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6655
6656         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
6657         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
6658         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
6659         Add __builtin_aarch64_simd_hf.
6660         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
6661         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
6662         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
6663         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
6664         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
6665         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
6666         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
6667         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
6668         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
6669
6670         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
6671         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
6672         (VDC, Vdbl): Add V4HF.
6673
6674 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6675
6676         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
6677         V4HFmode and V8HFmode.
6678         (aarch64_split_simd_move): Add case for V8HFmode.
6679         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
6680         (aarch64_simd_builtin_std_type): Handle HFmode.
6681         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
6682
6683         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
6684         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
6685         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
6686
6687         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
6688         Float16x8_t.
6689
6690         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
6691         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
6692         New typedefs.
6693         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
6694         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
6695         vst1q_lane_f16): New.
6696         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
6697         (VALLDI_F16, VALL_F16): New.
6698         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
6699         Add cases for V4HF and V8HF.
6700         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
6701
6702 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6703
6704         * config/arm/arm-builtins.c (VAR11, VAR12): New.
6705         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
6706         vld4_dup): Add v4hf variant.
6707         (vget_high, vget_low): Add v8hf variant.
6708         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
6709         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
6710         v4hf and v8hf variants.
6711
6712         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
6713         (VDX): Add V4HF.
6714         (V_DOUBLE): Add case for V4HF.
6715         (VQX): Add V8HF.
6716         (V_HALF): Add case for V8HF.
6717         (VDQX): Add V4HF, V8HF.
6718         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
6719         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
6720
6721         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
6722         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
6723         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
6724         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
6725         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
6726         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
6727         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
6728         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
6729         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
6730
6731         (neon_vcreate, neon_vreinterpretv8qi<mode>,
6732         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6733         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
6734         Change VDX to VD_RE.
6735
6736         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
6737         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
6738         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
6739
6740         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
6741         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
6742         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
6743         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
6744         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
6745         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
6746         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
6747         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
6748         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
6749
6750 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6751
6752         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
6753         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
6754         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
6755         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
6756         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6757         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
6758         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
6759         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
6760         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
6761         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
6762         New.
6763
6764 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6765
6766         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
6767
6768         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
6769
6770         * config/arm/arm-builtins.c (v8hf_UP): New.
6771         (arm_init_simd_builtin_types): Initialise Float16x8_t.
6772
6773         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
6774
6775         * config/arm/arm_neon.h (float16x8_t): New typedef.
6776
6777 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6778
6779         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
6780         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
6781         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
6782         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
6783         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6784         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
6785         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
6786         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
6787         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6788         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
6789
6790 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
6791
6792         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
6793         non-alphanumeric characters in the symbol name.
6794
6795 2015-09-07  Marek Polacek  <polacek@redhat.com>
6796
6797         PR inline-asm/67448
6798         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
6799         a memory input.
6800
6801 2015-09-07  Marek Polacek  <polacek@redhat.com>
6802
6803         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
6804
6805 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
6806
6807         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
6808         not warn.
6809
6810 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
6811
6812         PR middle-end/67452
6813         * tree-ssa-live.c: Include cfgloop.h.
6814         (remove_unused_locals): Clear loop->simduid if simduid is about
6815         to be removed from cfun->local_decls.
6816
6817 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6818
6819         PR target/65210
6820         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
6821         attribute as well.
6822
6823 2015-09-04  Tom de Vries  <tom@codesourcery.com>
6824
6825         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
6826
6827 2015-09-04  Jeff Law  <law@redhat.com>
6828
6829         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
6830         unnecessary constructor.  It's now trivial and implemented inside...
6831         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
6832         constructor.  Add comments to various methods.  Remove unused
6833         private fields.
6834         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
6835         * tree-vrp.c (identify_jump_threads): Likewise.
6836         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
6837         indentation issues.
6838         (thread_across_edge): Similarly.
6839         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
6840         arguments in constructor call.
6841
6842 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
6843
6844         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
6845         temp path contains a '-'.
6846
6847 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6848             Petr Murzin  <petr.murzin@intel.com>
6849             Kirill Yukhin  <kirill.yukhin@intel.com>
6850
6851         * config/i386/i386-builtin-types.def
6852         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
6853         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
6854         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
6855         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
6856         * config/i386/i386.c
6857         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
6858         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6859         IX86_BUILTIN_SCATTERALTDIV16SI.
6860         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
6861         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
6862         __builtin_ia32_scatteraltdiv8si.
6863         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
6864         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6865         IX86_BUILTIN_SCATTERALTDIV16SI.
6866         (ix86_vectorize_builtin_scatter): New.
6867         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
6868         ix86_vectorize_builtin_scatter.
6869
6870 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6871             Petr Murzin  <petr.murzin@intel.com>
6872             Kirill Yukhin  <kirill.yukhin@intel.com>
6873
6874         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
6875         * doc/tm.texi: Regenerate.
6876         * target.def: Add scatter builtin.
6877         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
6878         for loads/stores in case of gather/scatter accordingly.
6879         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6880         STMT_VINFO_GATHER_P(S).
6881         (vect_check_gather): Rename to ...
6882         (vect_check_gather_scatter): this.
6883         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
6884         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
6885         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6886         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
6887         variable and new checkings for it accordingly.
6888         * tree-vect-stmts.c
6889         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6890         STMT_VINFO_GATHER_P(S).
6891         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6892         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
6893
6894 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6895
6896         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
6897         define_insn.
6898         (mulv16qi3): New define_expand.
6899
6900 2015-09-03  Martin Sebor  <msebor@redhat.com>
6901
6902         PR c/66516
6903         * doc/extend.texi (Other Builtins): Document when the address
6904         of a built-in function can be taken.
6905
6906 2015-09-03  Richard Biener  <rguenther@suse.de>
6907
6908         * dwarf2out.c (flush_limbo_die_list): Split out from ...
6909         (dwarf2out_early_finish): ... here.
6910         (dwarf2out_finish): Do not call dwarf2out_early_finish but
6911         flush_limbo_die_list.  Assert we have no deferred asm names.
6912
6913 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6914
6915         * optabs.c (expand_binop): Don't create a broadcast vector with a
6916         source element wider than the inner mode.
6917
6918 2015-09-03  Richard Biener  <rguenther@suse.de>
6919
6920         * varasm.c (output_constant): Use fold_convert instead of
6921         wide_int_to_tree.
6922
6923 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6924
6925         PR tree-optimization/65637
6926         * omp-low.c (expand_omp_for_static_chunk): Handle case that
6927         fin_bb has 2 predecessors.
6928
6929 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6930
6931         PR tree-optimization/65637
6932         * omp-low.c (find_phi_with_arg_on_edge): New function.
6933         (expand_omp_for_static_chunk): Fix inner loop phi.
6934
6935 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6936
6937         PR tree-optimization/65637
6938         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
6939         that head is NULL.
6940
6941 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6942
6943         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
6944
6945 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6946
6947         * doc/invoke.texi (parloops-chunk-size): Add item.
6948         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
6949         * tree-parloops.c: Include params.h.
6950         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
6951         param parloops-chunk-size is used.
6952
6953 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6954
6955         PR middle-end/67351
6956         * fold-const.c (fold_binary_loc) : Move
6957         Transform (x >> c) << c into x & (-1<<c) or
6958         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
6959         types using simplify and match.
6960         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
6961         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
6962
6963 2015-09-03  Richard Biener  <rguenther@suse.de>
6964
6965         PR ipa/66705
6966         * tree-ssa-structalias.c (ctor_for_analysis): New function.
6967         (create_variable_info_for_1): Use ctor_for_analysis instead
6968         of get_constructor.
6969         (create_variable_info_for): Likewise.
6970
6971 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
6972
6973         PR ipa/67280
6974         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
6975         in new callgraph edge.
6976
6977 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
6978
6979         PR target/59810
6980         PR target/63652
6981         PR target/63653
6982         * config/aarch64/aarch64-simd.md
6983         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
6984         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
6985         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
6986         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
6987
6988 2015-09-02  Alan Modra  <amodra@gmail.com>
6989
6990         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
6991         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
6992         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
6993
6994 2015-09-02  Alan Modra  <amodra@gmail.com>
6995
6996         PR target/67417
6997         * config/rs6000/predicates.md (current_file_function_operand): Don't
6998         return true for weak symbols.
6999         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
7000
7001 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
7002             Andrew Bennett  <andrew.bennett@imgtec.com>
7003
7004         * config/mips/mips-opts.h (mips_cb_setting): New enum.
7005         * config/mips/mips-protos.h: Add definitions for
7006         mips_output_jump and mips_output_equal_conditional_branch
7007         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
7008         JIC instruction.
7009         (mips_emit_compare): Add support for the MIPS R6 conditional
7010         compact branches.
7011         (mips_process_sync_loop): Likewise.
7012         (mips_output_order_conditional_branch): Likewise.
7013         (mips16_build_call_stub): Change MIPS_CALL to
7014         mips_output_jump.
7015         (mips_print_operand_punctuation): Update 's' case to only
7016         apply to micromips r2.
7017         (mips_adjust_insn_length): Add support for forbidden slot
7018         hazards.
7019         (mips_avoid_hazard): Likewise.
7020         (mips_reorg_process_insns): Likewise.
7021         (mips_output_jump): New function.
7022         (mips_output_equal_conditional_branch): Likewise.
7023         (mips_output_conditional_branch): Use jrc/bc if compact
7024         branch support is enabled.  Ensure the forbidden slots
7025         between the two branch instructions is filled with a nop.
7026         (mips_option_override): Add support to process the compact
7027         branch option and set the correct defaults.  Prevent
7028         non-explict relocs being using for MIPS R6.
7029         (mips_trampoline_init): Add compact branch support.
7030         (mips_mult_zero_zero_cost): Allow zero initialisation of
7031         accumulators with TARGET_DSP.
7032         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
7033         (TARGET_CB_MAYBE): New define.
7034         (TARGET_CB_ALWAYS): New define.
7035         (ISA_HAS_DELAY_SLOTS): New define.
7036         (ISA_HAS_COMPACT_BRANCHES): New define.
7037         (ISA_HAS_JRC): New define.
7038         (MIPS_BRANCH_C): New define.
7039         (MIPS_CALL): Removed.
7040         (MICROMIPS_J): Removed.
7041         * config/mips/mips.md (compact_form): New attr.
7042         (hazard): Add support for forbidden slots.
7043         (define_delay): Add support for compact branches.
7044         (*branch_order<mode>): Likewise.
7045         (*branch_order<mode>_inverted): Likewise.
7046         (*branch_equality<mode>): Likewise.
7047         (*branch_equality<mode>_inverted): Likewise.
7048         (*jump_absolute): Likewise.
7049         (*jump_pic): Likewise.
7050         (indirect_jump): Use mips_output_jump to produce assembly output.
7051         (tablejump_<mode>"): Likewise.
7052         (*<optab>"): Likewise.
7053         (<optab>_internal): Likewise.
7054         (sibcall_internal): Likewise.
7055         (sibcall_value_internal): Likewise.
7056         (sibcall_value_multiple_internal): Likewise.
7057         (call_internal): Likewise.
7058         (call_split): Likewise.
7059         (call_internal_direct): Likewise.
7060         (call_direct_split): Likewise.
7061         (call_value_internal): Likewise.
7062         (call_value_split): Likewise.
7063         (call_value_internal_direct): Likewise.
7064         (call_value_direct_split): Likewise.
7065         (call_value_multiple_internal): Likewise.
7066         (call_value_multiple_split): Likewise.
7067         (mips_get_fcsr_mips16_<mode>): Likewise.
7068         (mips_set_fcsr_mips16_<mode>): Likewise.
7069         (tls_get_tp_mips16_<mode>): Likewise.
7070         * config/mips/mips.opt: Add -mcompact-branches option.
7071         * config/mips/predicates.md (order_operator): Ensure the
7072         conditional compact branches are only used if the ISA them.
7073         * doc/invoke.texi: Document -mcompact-branches option.
7074
7075 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
7076
7077         PR target/61578
7078         * lra-lives.c (process_bb_lives): Process move pseudos with the
7079         same value for copies and preferences
7080         * lra-constraints.c (match_reload): Create match reload pseudo
7081         with the same value from single dying input pseudo.
7082
7083 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
7084
7085         PR target/67405
7086         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
7087
7088 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
7089
7090         * trans-mem.c: Add contributed-by.
7091         * trans-mem.h: Same.
7092
7093 2015-09-01  Richard Biener  <rguenther@suse.de>
7094
7095         * expr.c (expand_expr_real_1): For expanding TERed defs
7096         set the current location to that of the def if not UNKNOWN.
7097
7098 2015-09-01  David Sherwood  <david.sherwood@arm.com>
7099
7100         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
7101
7102 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7103
7104         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
7105         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
7106         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
7107         Include rtl-iter.h.
7108         (noce_simple_bbs): New function.
7109         (noce_try_move): Bail if basic blocks are not simple.
7110         (noce_try_store_flag): Likewise.
7111         (noce_try_store_flag_constants): Likewise.
7112         (noce_try_addcc): Likewise.
7113         (noce_try_store_flag_mask): Likewise.
7114         (noce_try_cmove): Likewise.
7115         (noce_try_minmax): Likewise.
7116         (noce_try_abs): Likewise.
7117         (noce_try_sign_mask): Likewise.
7118         (noce_try_bitop): Likewise.
7119         (bbs_ok_for_cmove_arith): New function.
7120         (noce_emit_all_but_last): Likewise.
7121         (noce_emit_insn): Likewise.
7122         (noce_emit_bb): Likewise.
7123         (noce_try_cmove_arith): Handle non-simple basic blocks.
7124         (insn_valid_noce_process_p): New function.
7125         (contains_mem_rtx_p): Likewise.
7126         (bb_valid_for_noce_process_p): Likewise.
7127         (noce_process_if_block): Allow non-simple basic blocks
7128         where appropriate.
7129
7130 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
7131
7132         * tree-ssa-dom.c (record_equivalences_from_phis,
7133         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
7134         (lookup_avail_expr): Likewise, and remove comment and unused temp.
7135
7136 2015-09-01  Nick Clifton  <nickc@redhat.com>
7137
7138         * config/msp430/msp430.opt (mcpu): Fix typo.
7139
7140 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7141
7142         * config/aarch64/aarch64.c (aarch64_set_current_function):
7143         Re-layout any vector parameters have non-simd layout.
7144         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
7145         Delete.
7146         (aarch64_simd_expand_args): Delete call to the above.
7147
7148 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
7149
7150         * doc/invoke.texi (asan-stack): Add space before option.
7151
7152 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
7153
7154         * tree.h (zerop): New function.
7155         * tree.c (zerop): Likewise.
7156         (element_precision): Handle expressions.
7157         * match.pd (define_predicates): Add zerop.
7158         (x <= +Inf): Fix comment.
7159         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
7160         * fold-const.c (fold_binary_loc): ... here. Remove.
7161
7162 2015-08-31  Richard Biener  <rguenther@suse.de>
7163
7164         PR middle-end/67381
7165         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
7166
7167 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
7168
7169         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
7170         (CEXPI): New operator list.
7171         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
7172         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
7173         Converted from ...
7174         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
7175
7176 2015-08-31  Tom de Vries  <tom@codesourcery.com>
7177
7178         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
7179         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
7180         parameter.
7181         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
7182         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
7183         (rewrite_into_loop_closed_ssa): ... here.
7184         (replace_uses_in_dominated_bbs): Remove function.
7185         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
7186         rewrite_into_loop_closed_ssa_1.
7187
7188 2015-08-31  Michael Matz  <matz@suse.de>
7189
7190         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
7191         enter entry and exit blocks for reverse post order.
7192
7193 2015-08-31  Richard Biener  <rguenther@suse.de>
7194
7195         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
7196         (lto_location_cache::current_sysp): Likewise.
7197         (output_block::current_sysp): Likewise.
7198         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
7199         (lto_location_cache::apply_location_cache): Properly record
7200         system header locations.
7201         (lto_location_cache::input_location): Input whether a file
7202         is a system header.
7203         * lto-streamer-out.c (lto_output_location): Stream whether a file
7204         is a system header.
7205
7206 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7207
7208         PR bootstrap/67363
7209         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
7210
7211 2015-08-31  Tom de Vries  <tom@codesourcery.com>
7212
7213         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
7214         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
7215         Improve function header comments.
7216
7217 2015-08-30  Michael Collison  <michael.collison@linaro.org>
7218
7219         PR other/67320
7220         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
7221         standard names
7222
7223 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7224
7225         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
7226         special_handling bitfield.
7227         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
7228         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
7229         that represents a general xxpermdi.
7230         (insn_is_swappable_p): Add handling for vec_concat of two
7231         doublewords, which maps to a specific xxpermdi.
7232         (adjust_xxpermdi): New function.
7233         (adjust_concat): Likewise.
7234         (handle_special_swappables): Call adjust_xxpermdi and
7235         adjust_concat.
7236         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
7237
7238 2015-08-30  Rich Felker <dalias@libc.org>
7239
7240         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
7241         case instead of sh[123456ble]-*-*.
7242
7243 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
7244
7245         * ira.c (print_unform_and_important_classes,
7246         print_translated_classes): Remove reg_class_names static array.
7247         (print_unform_and_important_classes): Rename to ...
7248         (print_uniform_and_important_classes): ... this.
7249         (ira_debug_allocno_classes): Update accordingly.
7250
7251 2015-08-29  Tom de Vries  <tom@codesourcery.com>
7252
7253         PR tree-optimization/46193
7254         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
7255         clause.
7256
7257 2015-08-28  Jeff Law  <law@redhat.com>
7258
7259         PR lto/66752
7260         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
7261         unable to find X NE 0 in the tables, return X as the simplified
7262         condition.
7263         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
7264         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
7265         to VISISTED_BBS.
7266         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
7267         after removing the control flow statement and unnecessary edges.
7268
7269 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
7270
7271         Revert:
7272         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7273
7274         PR tree-optimization/67283
7275         * tree-sra.c (type_consists_of_records_p): Rename to...
7276         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7277
7278         (completely_scalarize_record): Rename to...
7279         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
7280         code to:
7281         (scalarize_elem): New.
7282
7283 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
7284
7285         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
7286         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
7287         (aarch64_symbol_type): Likewise.
7288         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7289         Likewise.
7290         (aarch64_expand_mov_immediate): Likewise.
7291         (aarch64_print_operand): Likewise.
7292         (aarch64_classify_tls_symbol): Likewise.
7293
7294 2015-08-28  Richard Biener  <rguenther@suse.de>
7295
7296         * cgraphunit.c (symbol_table::compile): Move early debug generation
7297         and finish...
7298         (symbol_table::finalize_compilation_unit): ... back here and
7299         add a !seen_error () guard.
7300
7301 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7302
7303         * toplev.c (process_options): Do not use flag_loop_block,
7304         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
7305         flag_loop_optimize_isl.
7306
7307 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7308
7309         * Makefile.in (OBJS): Remove graphite-blocking.o and
7310         graphite-interchange.o.
7311         * common.opt (floop-strip-mine, floop-interchange, floop-block):
7312         Alias of floop-nest-optimize.
7313         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
7314         Document as alias of -floop-nest-optimize.
7315         * graphite-blocking.c: Remove.
7316         * graphite-interchange.c: Remove.
7317         * graphite-optimize-isl.c: Include dumpfile.h.
7318         (getScheduleForBand): Add dump for tiled loops.  Use
7319         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
7320         * graphite-poly.c (scop_max_loop_depth): Remove.
7321         (print_scattering_function_1): Remove.
7322         (print_scattering_function): Remove.
7323         (print_scattering_functions): Remove.
7324         (debug_scattering_function): Remove.
7325         (debug_scattering_functions): Remove.
7326         (apply_poly_transforms): Remove use of flag_loop_block,
7327         flag_loop_strip_mine, and flag_loop_interchange.
7328         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
7329         PBB_ORIGINAL.
7330         (print_pdr_access_layout): Remove.
7331         (print_pdr): Print ISL representation.
7332         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
7333         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
7334         (free_scop): Same.
7335         (openscop_print_pbb_domain): Remove.
7336         (print_pbb): Remove call to print_scattering_function.
7337         (openscop_print_scop_context): Remove.
7338         (print_scop_context): Do not print matrices anymore.
7339         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
7340         SCOP_TRANSFORMED_SCHEDULE.
7341         (print_isl_set): Add printing of a new line.
7342         (print_isl_map): Same.
7343         (print_isl_aff): Same.
7344         (print_isl_constraint): Same.
7345         (loop_to_lst): Remove.
7346         (scop_to_lst): Remove.
7347         (lst_indent_to): Remove.
7348         (print_lst): Remove.
7349         (debug_lst): Remove.
7350         (dot_lst_1): Remove.
7351         (dot_lst): Remove.
7352         (reverse_loop_at_level): Remove.
7353         (reverse_loop_for_pbbs): Remove.
7354         * graphite-poly.h (pdr_dim_iter_domain): Remove.
7355         (pdr_nb_params): Remove.
7356         (pdr_alias_set_dim): Remove.
7357         (pdr_subscript_dim): Remove.
7358         (pdr_iterator_dim): Remove.
7359         (pdr_parameter_dim): Remove.
7360         (same_pdr_p): Remove.
7361         (struct poly_scattering): Remove.
7362         (struct poly_bb): Remove _original, _transformed, _saved.
7363         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
7364         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
7365         (PBB_NB_LOCAL_VARIABLES): Remove.
7366         (PBB_NB_SCATTERING_TRANSFORM): Remove.
7367         (schedule_to_scattering): Remove.
7368         (number_of_write_pdrs): Remove.
7369         (pbb_dim_iter_domain): Remove.
7370         (pbb_nb_params): Remove.
7371         (pbb_nb_scattering_orig): Remove.
7372         (pbb_nb_scattering_transform): Remove.
7373         (pbb_nb_dynamic_scattering_transform): Remove.
7374         (pbb_nb_local_vars): Remove.
7375         (pbb_iterator_dim): Remove.
7376         (pbb_parameter_dim): Remove.
7377         (psco_scattering_dim): Remove.
7378         (psct_scattering_dim): Remove.
7379         (psct_local_var_dim): Remove.
7380         (psco_iterator_dim): Remove.
7381         (psct_iterator_dim): Remove.
7382         (psco_parameter_dim): Remove.
7383         (psct_parameter_dim): Remove.
7384         (psct_dynamic_dim): Remove.
7385         (psct_static_dim): Remove.
7386         (psct_add_local_variable): Remove.
7387         (new_lst_loop): Remove.
7388         (new_lst_stmt): Remove.
7389         (free_lst): Remove.
7390         (copy_lst): Remove.
7391         (lst_add_loop_under_loop): Remove.
7392         (lst_depth): Remove.
7393         (lst_dewey_number): Remove.
7394         (lst_dewey_number_at_depth): Remove.
7395         (lst_pred): Remove.
7396         (lst_succ): Remove.
7397         (lst_find_pbb): Remove.
7398         (find_lst_loop): Remove.
7399         (lst_find_first_pbb): Remove.
7400         (lst_empty_p): Remove.
7401         (lst_find_last_pbb): Remove.
7402         (lst_contains_p): Remove.
7403         (lst_contains_pbb): Remove.
7404         (lst_create_nest): Remove.
7405         (lst_remove_from_sequence): Remove.
7406         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
7407         (lst_niter_for_loop): Remove.
7408         (pbb_update_scattering): Remove.
7409         (lst_update_scattering_under): Remove.
7410         (lst_update_scattering): Remove.
7411         (lst_insert_in_sequence): Remove.
7412         (lst_replace): Remove.
7413         (lst_substitute_3): Remove.
7414         (lst_distribute_lst): Remove.
7415         (lst_remove_all_before_including_pbb): Remove.
7416         (lst_remove_all_before_excluding_pbb): Remove.
7417         (struct scop): Remove original_schedule, transformed_schedule, and
7418         saved_schedule.
7419         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
7420         (SCOP_SAVED_SCHEDULE): Remove.
7421         (poly_scattering_new): Remove.
7422         (poly_scattering_free): Remove.
7423         (poly_scattering_copy): Remove.
7424         (store_scattering_pbb): Remove.
7425         (store_lst_schedule): Remove.
7426         (restore_lst_schedule): Remove.
7427         (store_scattering): Remove.
7428         (restore_scattering_pbb): Remove.
7429         (restore_scattering): Remove.
7430         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
7431         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
7432         compute the scattering polyhedron dimension from the dimension of
7433         pbb->domain.
7434         (build_scop_scattering): Update call to
7435         build_pbb_scattering_polyhedrons.
7436         (build_poly_scop): Remove call to scop_to_lst.
7437         * graphite.c (graphite_transform_loops): Add call to print_scop.
7438         (gate_graphite_transforms): Remove use of flag_loop_block,
7439         flag_loop_interchange, and flag_loop_strip_mine.
7440
7441 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7442
7443         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
7444         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
7445         -floop-nest-optimize.
7446         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
7447         (generate_luj_sepclass): Remove.
7448         (generate_luj_options): Remove.
7449         (set_options): Remove opt_luj.
7450         (scop_to_isl_ast): Remove opt_luj.
7451         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
7452         flag_loop_unroll_jam.
7453         (getPrevectorMap_full): Remove.
7454         (getScheduleForBandList): Remove map_sepcl.
7455         (getScheduleMap): Same.
7456         (apply_schedule_map_to_scop): Remove sepcl.
7457         (optimize_isl): Same.
7458         * graphite-poly.c (apply_poly_transforms): Remove check for
7459         flag_loop_unroll_jam.
7460         (new_poly_bb): Remove map_sepclass.
7461         * graphite-poly.h (struct poly_bb): Same.
7462         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
7463         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
7464         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
7465         * toplev.c (process_options): Remove flag_loop_unroll_jam.
7466
7467 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
7468
7469         PR target/67317
7470         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
7471         (addqi3_cc): Ditto.
7472         (UNSPEC_ADD_CARRY): Remove.
7473         (addqi3_cconly_overflow): New expander.
7474         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
7475         Adjust for changed add<mode>3_carry.
7476         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
7477         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
7478         (<plusminus_insn><mode>3_carry): Remove expander.
7479         (*<plusminus_insn><mode>3_carry): Split insn pattern to
7480         add<mode>3_carry and sub<mode>3_carry.
7481         (plusminus_carry_mnemonic): Remove code attribute.
7482         (add<mode>3_carry): Canonicalize insn pattern.
7483         (*addsi3_carry_zext): Ditto.
7484         (sub<mode>3_carry): Ditto.
7485         (*subsi3_carry_zext): Ditto.
7486         (adcx<mode>3): Remove insn pattern.
7487         (addcarry<mode>): New insn pattern.
7488         (subborrow<mode>): Ditto.
7489         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
7490         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
7491         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
7492         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
7493         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
7494         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
7495         Rewrite expander to not clobber carry flag chains.
7496
7497 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
7498
7499         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
7500         instead of a rotate.
7501
7502 2015-08-27  Marek Polacek  <polacek@redhat.com>
7503
7504         PR middle-end/67005
7505         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
7506         an entry into an irreducible region.
7507
7508 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7509
7510         * configure: Regenerate.
7511
7512 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7513
7514         PR tree-optimization/67283
7515         * tree-sra.c (type_consists_of_records_p): Rename to...
7516         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7517
7518         (completely_scalarize_record): Rename to...
7519         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7520         (scalarize_elem): New.
7521
7522 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7523
7524         * tree-sra.c (completely_scalarize_var): Rename to...
7525         (create_total_scalarization_access): ... Here. Drop call to
7526         completely_scalarize_record.
7527
7528         (analyze_all_variable_accesses): Replace completely_scalarize_var
7529         with create_total_scalarization_access and completely_scalarize_record.
7530
7531 2015-08-27  Alan Modra  <amodra@gmail.com>
7532
7533         PR target/67356
7534         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
7535         for operand 1.
7536
7537 2015-08-27  Richard Biener  <rguenther@suse.de>
7538
7539         * passes.c (rest_of_decl_compilation): Guard early_global_decl
7540         call with !seen_error ().
7541         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
7542         early debug generation and finish...
7543         (symbol_table::compile): ... here to put it after a !seen_error ()
7544         guard.
7545
7546 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7547
7548         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
7549         Solaris 12+.
7550
7551 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7552             Andre Vieira  <andre.simoesdiasvieira@arm.com>
7553
7554         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
7555         (*cb<optab><mode>1): Likewise.
7556         (*tb<optab><mode>1): Likewise.
7557         (*cb<optab><mode>1): Likewise.
7558         * config/aarch64/iterators.md (inv_cb): New code attribute.
7559         (inv_tb): Likewise.
7560         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
7561         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
7562
7563 2015-08-27  Richard Biener  <rguenther@suse.de>
7564
7565         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
7566
7567 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7568
7569         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
7570         trap to fix ICE.
7571
7572 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7573
7574         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
7575         Add declaration.
7576
7577         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
7578         comment.
7579         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
7580         floating point in VSX registers.
7581         (rs6000_output_move_128bit): Always print out the set insn if we
7582         can't generate an appropriate 128-bit move.
7583         (rs6000_generate_compare): Add support for IEEE 128-bit floating
7584         point in VSX registers comparisons.
7585         (rs6000_expand_float128_convert): Likewise.
7586
7587         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
7588         predicate for only GPR hard registers.
7589
7590         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
7591         modes to iterators. Add new iterators for moving 128-bit values in
7592         scalar FPR registers and VSX registers.
7593         (FMOVE128): Likewise.
7594         (FMOVE128_FPR): Likewise.
7595         (FMOVE128_GPR): Likewise.
7596         (FMOVE128_VSX): Likewise.
7597         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
7598         in VSX registers.
7599         (IFKF): Likewise.
7600         (IBM128): Likewise.
7601         (TFIFKF): Likewise.
7602         (RELOAD): Add IEEE 128-bit floating point modes.
7603         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
7604         floating point in VSX registers modes.
7605         (signbit<mode>2, IBM128 iterator): Likewise.
7606         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
7607         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7608         (negtf2): Likewise.
7609         (neg<mode>2, TFIFKF iterator): Likewise.
7610         (negtf2_internal): Likewise.
7611         (abstf2): Likewise.
7612         (abs<mode>2, TFIFKF iterator): Likewise.
7613         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
7614         VSX insn support for negate, absolute value, and negative absolute
7615         value.
7616         (ieee_128bit_vsx_neg<mode>2): Likewise.
7617         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
7618         (ieee_128bit_vsx_abs<mode>2): Likewise.
7619         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7620         (ieee_128bit_vsx_nabs<mode>2): Likewise.
7621         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7622         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
7623         floating point in VSX registers.
7624         (unpack<mode>_dm): Likewise.
7625         (unpack<mode>_nodm): Likewise.
7626         (pack<mode>): Likewise.
7627         (unpackv1ti): Likewise.
7628         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
7629         (packv1ti): Likewise.
7630         (pack<mode>, FMOVE128_VSX iterator): Likewise.
7631         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
7632         registers.
7633         (extenddftf2_internal): Likewise.
7634         (trunctfdf2): Likewise.
7635         (trunctfdf2_internal2): Likewise.
7636         (fix_trunc_helper): Likewise.
7637         (fix_trunctfdi2"): Likewise.
7638         (floatditf2): Likewise.
7639         (floatuns<mode>tf2): Likewise.
7640         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
7641         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
7642         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
7643         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
7644         (float<SDI:mode><IFKF:mode>2): Likewise.
7645         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
7646
7647 2015-08-26  Renlin Li  <renlin.li@arm.com>
7648
7649         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
7650
7651 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7652             Jiong Wang  <jiong.wang@arm.com>
7653
7654         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
7655         (tlsie_tiny_<mode>): New define_insn.
7656         (tlsie_tiny_sidi): Likewise.
7657         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
7658         SYMBOL_TINY_TLSIE.
7659         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
7660         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7661         SYMBOL_TINY_TLSIE.
7662         (aarch64_expand_mov_immediate): Likewise.
7663         (aarch64_print_operand): Likewise.
7664         (arch64_classify_tls_symbol): Likewise.
7665
7666 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7667
7668         * config/arm/arm-arches.def: Replace single value flags with
7669         an initializer built from ARM_FSET_MAKE_CPU1.
7670         * config/arm/arm-cores.def: Likewise.
7671         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
7672         derivation from the ARM_CORE macro definition, use the given value
7673         instead.
7674         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
7675         ARM_ARCH macro definition, use the given value instead.
7676
7677 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7678
7679         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
7680         feature set.
7681         (struct builtin_description): Replace field mask with field
7682         features.
7683         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
7684         (IWMMXT2_BUILTIN): Likewise.
7685         (IWMMXT2_BUILTIN2): Likewise.
7686         (FP_BUILTIN): Likewise.
7687         (CRC32_BUILTIN): Likewise.
7688         (CRYPTO_BUILTIN): Likewise.
7689         (iwmmx_mbuiltin): Likewise.
7690         (iwmmx2_mbuiltin): Likewise.
7691         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
7692         struct builtin_description.
7693
7694 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7695
7696         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
7697         (struct builtin_description): Change type of mask to unsigned
7698         long.
7699         * config/arm/arm-protos.h (insn_flags): Declare as type
7700         arm_feature_set.
7701         (tune_flags): Likewise.
7702         * config/arm/arm.c (feature_count): New.
7703         (insn_flags): Define as type arm_feature_set.
7704         (tune_flags): Likewise.
7705         (struct processors): Define field flags as type arm_feature_set.
7706         (all_cores): Update for change to struct processors.
7707         (all_architectures): Likewise.
7708         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
7709         macros.
7710         (arm_option_override_internal): Likewise.
7711         (arm_option_override): Likewise.
7712
7713 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7714             Jiong Wang  <jiong.wang@arm.com>
7715
7716         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
7717         tls size for tiny, small, large memory model.
7718         (aarch64_load_symref_appropriately): Support new symbol types.
7719         (aarch64_expand_mov_immediate): Likewise.
7720         (aarch64_print_operand): Likewise.
7721         (aarch64_classify_tls_symbol): Likewise.
7722         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
7723         (aarch64_symbol_type): Likewise.
7724         * config/aarch64/aarch64.md (tlsle): Deleted.
7725         (tlsle12_<mode>): New define_insn.
7726         (tlsle24_<mode>): Likewise.
7727         (tlsle32_<mode>): Likewise.
7728         (tlsle48_<mode>): Likewise.
7729         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7730         "aarch64_tlsle32".
7731
7732 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7733
7734         * config/arm/arm-protos.h (FL_NONE): New.
7735         (FL_ANY): New.
7736         (arm_feature_set): New.
7737         (ARM_FSET_MAKE): New.
7738         (ARM_FSET_MAKE_CPU1): New.
7739         (ARM_FSET_MAKE_CPU2): New.
7740         (ARM_FSET_CPU1): New.
7741         (ARM_FSET_CPU2): New.
7742         (ARM_FSET_EMPTY): New.
7743         (ARM_FSET_ANY): New.
7744         (ARM_FSET_HAS_CPU1): New.
7745         (ARM_FSET_HAS_CPU2): New.
7746         (ARM_FSET_HAS_CPU): New.
7747         (ARM_FSET_ADD_CPU1): New.
7748         (ARM_FSET_ADD_CPU2): New.
7749         (ARM_FSET_DEL_CPU1): New.
7750         (ARM_FSET_DEL_CPU2): New.
7751         (ARM_FSET_UNION): New.
7752         (ARM_FSET_INTER): New.
7753         (ARM_FSET_XOR): New.
7754         (ARM_FSET_EXCLUDE): New.
7755         (AFM_FSET_IS_EMPTY): New.
7756         (ARM_FSET_CPU_SUBSET): New.
7757
7758 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7759
7760         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7761         SYMBOL_TLSLE to SYMBOL_TLSLE24.
7762         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7763         Likewise.
7764         (aarch64_expand_mov_immediate): Likewise.
7765         (aarch64_print_operand): Likewise.
7766         (aarch64_classify_symbol): Likewise.
7767
7768 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7769
7770         * config/aarch64/aarch64.opt (mtls-size): New entry.
7771         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
7772         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
7773         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
7774
7775 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7776
7777         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
7778         ARM_CORE entry.  Fix some white-space.
7779         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
7780         ARM_CORE definition.
7781
7782 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7783
7784         * fold-const.c (fold_binary_loc) : Move Optimize
7785         root(x)*root(y) as root(x*y) to match.pd.
7786         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
7787         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
7788         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
7789         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
7790         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
7791         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
7792         (mult (exps:s @0) (exps:s @1)) : New simplifier.
7793         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
7794         (rdiv @0 (exps:s @1)) : New simplifier.
7795
7796 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
7797
7798         * gcc.c (driver::finalize): Only assign to extra_specs if
7799         [EXTRA_SPECS].
7800
7801 2015-08-25  Marek Polacek  <polacek@redhat.com>
7802
7803         PR middle-end/67330
7804         * varasm.c (declare_weak): Return after giving an error.
7805
7806 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
7807
7808         * gcc-main.c (main): Add params to driver ctor.
7809         * gcc.c (class env_manager): New.
7810         (env): New global.
7811         (env_manager::init): New.
7812         (env_manager::get): New.
7813         (env_manager::xput): New.
7814         (env_manager::restore): New.
7815         Poison getenv and putenv.
7816         (DEFAULT_TARGET_SYSTEM_ROOT): New.
7817         (target_system_root): Update initialization to use
7818         DEFAULT_TARGET_SYSTEM_ROOT.
7819         (struct spec_list): Add field "default_ptr".
7820         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
7821         (init_spec): Likewise.
7822         (set_spec): Clear field "default_ptr".
7823         (read_specs): Free "spec" and "buffer".
7824         (xputenv): Reimplement in terms of env_manager.
7825         (process_command): Replace ::getenv calls with calls to the
7826         env_manager singleton.
7827         (process_brace_body): Free string in three places.
7828         (driver::driver): New.
7829         (driver::~driver): New.
7830         (used_arg): Convert from a function to...
7831         (class used_arg_t): ...this class, and...
7832         (used_arg): ...this new global instance.
7833         (used_arg_t::finalize): New function.
7834         (getenv_spec_function): Add "const" to local "value".  Replace
7835         ::getenv call with call to the env_manager singleton.
7836         (path_prefix_reset): New function.
7837         (driver::finalize): New function.
7838         * gcc.h (driver::driver): New.
7839         (driver::~driver): New.
7840         (driver::finalize): New.
7841
7842 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7843
7844         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
7845         target doesn't have one.
7846
7847 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7848
7849         PR target/67346
7850         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
7851
7852 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7853
7854         PR target/67344
7855         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
7856         a define_insn, remove second alternative.
7857
7858 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
7859             Joseph Myers  <joseph@codesourcery.com>
7860
7861         * gcc.c (struct switchstr): Expand comment.
7862
7863 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7864
7865         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
7866         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
7867
7868 2015-08-25  Richard Biener  <rguenther@suse.de>
7869
7870         PR middle-end/67306
7871         * genmatch.c (expr::gen_transform): Verify the result of
7872         builtin_decl_implicit.
7873         (dt_simplify::gen_1): Likewise.
7874
7875 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7876
7877         * config/arm/constraints.md: Also list Cs and US ARM-specific
7878         constraints as used.
7879
7880 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7881
7882         PR target/66609
7883         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
7884         UNSPEC_PCREL.
7885         (nonpic_symbol_mentioned_p): Likewise.
7886         (sh_delegitimize_address): Likewise.
7887         (sh_function_ok_for_sibcall): Take into account weak symbols.
7888         (sh_expand_sym_label2reg): New.
7889         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
7890         * config/sh/sh.md (UNSPEC_PCREL): New enum.
7891         (call_pcrel): Use sh_expand_sym_label2reg.
7892         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7893         (symPCREL_label2reg) New expand.
7894
7895 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7896
7897         * graphite-poly.c: Change type of region from void* to sese.
7898         * graphite-poly.h (struct scop): Changing the type of scop::region
7899         from void* to sese. Change accessor macro accordingly.
7900         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
7901
7902 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7903
7904         * graphite-scop-detection.c (stmt_simple_for_scop_p):
7905         Constrain only on INTEGER_TYPE.
7906
7907 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7908
7909         PR target/67211
7910         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
7911         -mefficient-unaligned-vsx on ISA 2.7.
7912
7913         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
7914         option to a masked option.
7915
7916         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
7917         logic for -mefficient-unaligned-vsx so that it is set via an arch
7918         ISA option, instead of being set if -mtune=power8 is set. Move
7919         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
7920         near other default option handling.
7921
7922 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7923
7924         * genflags.c (gen_macro): Delete.
7925         (gen_proto): Don't create GEN.*CALL.* macros.
7926         * gensupport.h (get_file_location): Declare.
7927         * gensupport.c (rtx_locs): New variable.
7928         (read_md_rtx): Record rtx locations.
7929         (get_file_location): New function.
7930         * target-insns.def (call, call_pop, call_value, call_value_pop)
7931         (sibcall, sibcall_value): New patterns.
7932         * gentarget-def.c (parse_argument): New function.
7933         (def_target_insn): Use it.  Handle optional operands.  Raise an
7934         error if an .md pattern has the wrong number of operands for the
7935         pattern name.  Remove the names of unused operands from the prototype.
7936         * builtins.c (expand_builtin_apply): Use targetm functions
7937         instead of HAVE_call_value and GEN_CALL_VALUE.
7938         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
7939         and sibcall_value_pop.
7940         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
7941         of GEN_CALL.
7942         * config/alpha/alpha.md (untyped_call): Likewise.
7943         * config/iq2000/iq2000.md (untyped_call): Likewise.
7944         * config/m68k/m68k.md (untyped_call): Likewise.
7945         * config/mips/mips.md (untyped_call): Likewise.
7946         * config/pa/pa.md (untyped_call): Likewise.
7947         * config/rs6000/rs6000.md (untyped_call): Likewise.
7948         * config/sparc/sparc.md (untyped_call): Likewise.
7949         * config/tilegx/tilegx.md (untyped_call): Likewise.
7950         * config/tilepro/tilepro.md (untyped_call): Likewise.
7951         * config/visium/visium.md (untyped_call): Likewise.
7952         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
7953         gen_call_value instead of GEN_CALL_VALUE.
7954         * config/arm/arm.md (untyped_call): Likewise.
7955         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
7956         GEN_CALL.
7957
7958 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7959
7960         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
7961         (have_cbranchcc4): New variable.
7962         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
7963         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
7964         (if_convert): Initialize have_cbranchcc4.
7965
7966 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7967
7968         * builtins.c (expand_cmpstrn): Rename to...
7969         (expand_cmpstrn_or_cmpmem): ...this.
7970         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
7971         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
7972         Remove mode argument.
7973         (expand_builtin): Update accordingly.
7974
7975 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7976
7977         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
7978         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
7979         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
7980         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
7981         Add predicates for operands 0 and 3.
7982         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
7983         operand.
7984         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
7985         immediate_operand to nonmemory_operand.
7986
7987 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7988
7989         * df-scan.c (df_insn_info_init_fields): New function, split out
7990         from...
7991         (df_insn_create_insn_record): ...here.
7992         (df_insn_info_free_fields): New function, split out from...
7993         (df_insn_info_delete): ...here.
7994         (df_insn_rescan): Use the new functions instead of freeing and
7995         reallocating the df_insn_info.
7996
7997 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7998
7999         * doc/install.texi (Binaries): Remove links no longer valid.
8000
8001 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
8002
8003         * config/nvptx/mkoffload.c (process): Replace
8004         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
8005
8006 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
8007
8008         PR target/67329
8009         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
8010
8011 2015-08-24  Renlin Li  <renlin.li@arm.com>
8012
8013         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
8014         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
8015         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
8016         * config/arm/constraints.md ("j"): Add check for high code.
8017
8018 2015-08-24  Tom de Vries  <tom@codesourcery.com>
8019
8020         PR tree-optimization/65468
8021         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
8022         chunk_size is one.
8023
8024 2015-08-24  Nathan Sidwell  <nathan@acm.org>
8025
8026         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
8027         change to nvptx_type_from_mode call. Use arg_promotion for both
8028         split and non-split args.
8029
8030 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
8031
8032         * target-insns.def (movstr): New pattern.
8033         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
8034         (expand_movstr): Use targetm rather than HAVE_movstr/
8035         CODE_FOR_movstr.
8036
8037 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
8038
8039         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
8040         cast syntax.
8041
8042 2015-08-24  Andrew Pinski  <apinski@cavium.com>
8043
8044         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
8045         AARCH64_EXTRA_TUNING_OPTION.
8046         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
8047         New enum.
8048         (aarch64_extra_tuning_flags): Base the shifted value on the index
8049         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
8050         * config/aarch64/aarch64.c: Remove the last argument to
8051         AARCH64_EXTRA_TUNING_OPTION.
8052
8053 2015-08-23  Nathan Sidwell  <nathan@acm.org>
8054
8055         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
8056         decls.
8057         (nvptx_declare_function_name): Insert formatting tabs for
8058         consistency.
8059
8060 2015-08-23  Tom de Vries  <tom@codesourcery.com>
8061
8062         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
8063         parm_decl, rather than generating a dummy default def in cfun.
8064         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
8065         ssa_name from cfun and child_fn do not share a stmt as def stmt.
8066         (move_stmt_op): Handle PARM_DECl.
8067         (gather_ssa_name_hash_map_from): New function.
8068         (move_sese_region_to_fn): Add default defs for function params, and add
8069         them to vars_map.  Release copied ssa names.
8070         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
8071
8072 2015-08-23  Tom de Vries  <tom@codesourcery.com>
8073
8074         * doc/sourcebuild.texi: Rename vect_no_int_max with
8075         vect_no_int_min_max.  Update description.
8076
8077 2015-08-22  Andrew Pinski  <apinski@cavium.com>
8078
8079          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
8080         * config/aarch64/aarch64-protos.h
8081         (aarch64_fusion_pairs_index): New enum.
8082         (aarch64_fusion_pairs): Base the shifted value on the index instead
8083         Rewrite AARCH64_FUSE_ALL to be based on the end index.
8084         of the argument to AARCH64_FUSION_PAIR.
8085         * config/aarch64/aarch64.c: Remove the last argument to
8086         AARCH64_FUSION_PAIR.
8087
8088 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
8089
8090         * dominance.c (new_zero_array): Define.
8091         (dom_info): Redefine as class with proper encapsulation.
8092         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
8093         Add new members.
8094         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
8095         allocations/deallocations.  Pass function as parameter (instead of
8096         using cfun).
8097         (dom_info::get_idom): Define accessor method.
8098         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
8099         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
8100         (calculate_dominance_info): Adjust to use dom_info class.
8101         (verify_dominators): Likewise.
8102
8103 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
8104
8105         * print-rtl.c (print_rtx): Check the correct range for
8106         flag_dump_unnumbered_links to behave as documented.
8107
8108         PR rtl-optimization/67227
8109         PR rtl-optimization/64164
8110         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
8111         (nonoverlapping_memrefs_p): Test offsets and sizes when given
8112         identical gimple_reg exprs.
8113
8114 2015-08-21  Nathan Sidwell  <nathan@acm.org>
8115
8116         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
8117         expansion.
8118         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
8119         crtl->stack_alignment_needed to determine alignment.
8120         (nvptx_get_drap_rtx): New.
8121         (TARGET_GET_DRAP_RTX): Override.
8122         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
8123
8124 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8125
8126         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
8127
8128 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8129
8130         * configure.ac: Remove uwin* cases.
8131         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
8132         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
8133         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
8134         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
8135         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
8136         i[34567]86-*-uwin*, powerpc-*-beos*.
8137
8138 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
8139
8140         * gencodes.c (gencodes): Print the comma for the preceding
8141         enum value rather than the current one.  Use aliased enum values
8142         rather than #defines for compiled-out patterns.
8143         (main): Update accordingly.  Replace LAST_INSN_CODE with
8144         NUM_INSN_CODES.
8145         * lra.c (insn_code_data): Update accordingly.
8146         (finish_insn_code_data_once, get_static_insn_data): Likewise.
8147         * recog.h (target_recog): Likewise.
8148         (preprocess_insn_constraints): Change parameter to unsigned int.
8149         * recog.c (preprocess_insn_constraints): Likewise.
8150         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
8151         * tree-vect-stmts.c (vectorizable_operation): Simplify.
8152
8153 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
8154
8155         PR rtl-optimization/61657
8156         * loop-iv.c (iv_number_of_iterations): Declare up and down as
8157         unsigned.  Remove superflous uint64_t cast.
8158
8159 2014-08-21  Felix Yang  <felix.yang@huawei.com>
8160             Jiji Jiang  <jiangjiji@huawei.com>
8161
8162         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
8163         argument and get builtin function code directly from CALL.
8164         (gimple_stringop_fixed_value): Modified accordingly.
8165         (gimple_stringops_transform, gimple_stringops_values_to_profile):
8166         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
8167
8168 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8169
8170         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
8171
8172 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8173
8174         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
8175         to match.pd.
8176         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
8177         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
8178         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
8179         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
8180         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
8181         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
8182         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
8183         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
8184         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
8185         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
8186
8187         * match.pd (SIN ) : New Operator.
8188         (TAN) : New Operator.
8189         (mult (SQRT@1 @0) @1) : New simplifier.
8190         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
8191         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
8192         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
8193         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
8194         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
8195         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
8196         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
8197         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
8198         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
8199         (rdiv @0 (POW:s @1 @2)) : New simplifier.
8200
8201 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
8202
8203         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
8204         loop if EXPR is simplified to const value.
8205
8206 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
8207
8208         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
8209         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
8210
8211 2015-08-21  Richard Biener  <rguenther@suse.de>
8212
8213         PR middle-end/67285
8214         * gimple-fold.c (replace_stmt_with_simplification): Assert
8215         seq is empty when replacing a call with itself but different
8216         arguments.
8217         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
8218         a call require that it is const.
8219
8220 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8221
8222         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
8223         * builtins.c (get_object_alignment_2): Adjust.
8224         * varasm.c (align_variable): Likewise.
8225         (get_variable_align): Likewise.
8226         (build_constant_desc): Likewise.
8227         (force_const_mem): Likewise.
8228         * doc/tm.texi.in: Likewise.
8229         * doc/tm.texi: Regenerate.
8230
8231 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8232
8233         * genconfig.c (main): Always define HAVE_cc0.
8234         * recog.c (rest_of_handle_peephole2): Adjust.
8235
8236 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8237
8238         * reorg.c (relax_delay_slots): Don't use #if to check value of
8239         HAVE_cc0.
8240
8241 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8242
8243         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
8244         * targhooks.c (default_have_conditional_execution): Adjust.
8245
8246 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8247
8248         * rtl.h (rtvec_all_equal_p): Declare.
8249         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
8250         * rtl.c (rtvec_all_equal_p): New function.
8251         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
8252         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
8253         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
8254         * config/arm/arm.c (neon_vdup_constant): Likewise.
8255         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
8256         * config/tilegx/constraints.md (W, Y): Likewise.
8257         * config/tilepro/constraints.md (W, Y): Likewise.
8258         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
8259         (classify_immediate): Use unwrap_const_vec_duplicate.
8260         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
8261         (reg_or_v2s8bit_operand): Likewise.
8262         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
8263         (reg_or_v4s8bit_operand): Likewise.
8264
8265 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8266
8267         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
8268         (vec_shasigma_be): New #define.
8269         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
8270         (VPMSUMH): Likewise.
8271         (VPMSUMW): Likewise.
8272         (VPMSUMD): Likewise.
8273         (VPMSUM): New BU_P8V_OVERLOAD_2.
8274         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
8275         entries for VEC_MADD and VEC_VPMSUM.
8276
8277 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
8278
8279         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
8280         Multiply argument avr_n_flash by 64 to match unit of "KiB".
8281         (avr_pgm_check_var_decl): Same.
8282
8283 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
8284
8285         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
8286         initialization of HFmode scalar type (float16_t) to...
8287         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
8288         code.
8289
8290         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
8291
8292         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
8293         having an -mfp16-format.
8294
8295 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8296
8297         * config/i386/predicates.md (vector_all_ones_operand): Use
8298         CONSTM1_RTX to simplify definition.
8299
8300 2015-08-20  Richard Biener  <rguenther@suse.de>
8301
8302         * toplev.c (compile_file): Remove loop calling late_global_decl
8303         on all symbols.
8304         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
8305         on decls we assembled.
8306
8307 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
8308
8309         * common/config/aarch64/aarch64-common.c
8310         (AARCH64_CPU_NAME_LENGTH): Delete.
8311         (aarch64_option_extension): New.
8312         (all_extensions): Likewise.
8313         (processor_name_to_arch): Likewise.
8314         (arch_to_arch_name): Likewise.
8315         (all_cores): New.
8316         (all_architectures): Likewise.
8317         (aarch64_get_extension_string_for_isa_flags): Likewise.
8318         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
8319         architecture names.
8320         * config/aarch64/aarch64-protos.h
8321         (aarch64_get_extension_string_for_isa_flags): New.
8322         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
8323         (aarch64_option_print): Get the string to print from
8324         aarch64_get_extension_string_for_isa_flags.
8325         (aarch64_declare_function_name): Likewise.
8326         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
8327         (MCPU_TO_MARCH_SPEC): This.
8328         (ASM_CPU_SPEC): Use it.
8329         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
8330         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
8331         (EXTRA_SPEC_FUNCTIONS): Use it.
8332
8333 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
8334
8335         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
8336         expansion when !ISA_HAS_LWL_LWR.
8337         (mips_block_move_straight): Update the size of elements copied to
8338         account for alignment when !ISA_HAS_LWL_LWR.
8339         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
8340
8341 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8342
8343         * expr.c (expand_expr_real_2): Check gimple statement during
8344         LSHIFT_EXPR expand.
8345
8346 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
8347
8348         * common.opt (fstack-protector): Initialize to -1.
8349         (fstack-protector-all): Likewise.
8350         (fstack-protector-strong): Likewise.
8351         (fstack-protector-explicit): Likewise.
8352         * configure.ac: Add --enable-default-ssp.
8353         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
8354         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
8355         -1.
8356         * doc/install.texi: Document --enable-default-ssp.
8357         * config.in: Regenerated.
8358         * configure: Likewise.
8359
8360 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
8361
8362         PR rtl-optimization/64164
8363         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
8364         (parm_in_stack_slot_p): ... this.  Disregard mode, what
8365         matters is whether the parm will live in a pseudo or a stack
8366         slot.
8367         (expand_one_ssa_partition): Deal with params without a default
8368         def.  Disregard mode.
8369         * cfgexpand.h: Renamed function declaration.
8370         * tree-ssa-coalesce.c: Adjust.
8371         * function.c (split_complex_args): Allocate stack slot for
8372         unassigned parms before splitting.
8373         (parm_in_unassigned_mem_p): New.  Use it instead of
8374         parm_maybe_byref_p throughout this file.
8375         (assign_parm_setup_block): Use it.  Accept pseudos in the
8376         expand-assigned rtl.
8377         (assign_parm_setup_reg): Drop BLKmode requirement.
8378         (assign_parm_setup_stack): Allocate and fill in the address of
8379         unassigned MEM parms.
8380
8381 2015-08-19  David Sherwood  <david.sherwood@arm.com>
8382
8383         * genmodes.c (emit_mode_unit_size_inline): New function.
8384         (emit_mode_unit_precision_inline): New function.
8385         (emit_insn_modes_h): Emit new #define.  Emit new functions.
8386         (emit_mode_unit_size): New function.
8387         (emit_mode_unit_precision): New function.
8388         (emit_mode_adjustments): Add mode_unit_size adjustments.
8389         (emit_insn_modes_c): Emit new arrays.
8390         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
8391         use new inline methods.
8392
8393 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8394
8395         * config/aarch64/aarch64.c (bit_count): Delete prototype
8396         and definition.
8397         (aarch64_print_operand): Use popcount_hwi instead of the above.
8398
8399 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8400
8401         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
8402         comment.
8403
8404 2015-08-19  Marek Polacek  <polacek@redhat.com>
8405
8406         PR middle-end/67133
8407         * gimple-ssa-isolate-paths.c
8408         (insert_trap_and_remove_trailing_statements): Rename to ...
8409         (insert_trap): ... this.  Don't remove trailing statements; split
8410         block instead.
8411         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
8412
8413 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
8414
8415         PR other/67042
8416         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
8417         conditionalize the whole on __GNUC__.  Add fallback code
8418         depending neither on undefined nor implementation-defined behaviour.
8419
8420 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8421
8422         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
8423         whitespaces with tab.
8424
8425 2015-08-19  Florian Weimer  <fweimer@redhat.com>
8426
8427         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
8428         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
8429         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
8430         Move Name_Ids instantiation to the Prj.Proc package, to avoid
8431         trampolines.
8432
8433 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8434
8435         * config/arm/arm.c (bounds_check): Use %wd print format
8436         for HOST_WIDE_INT arguments.
8437
8438 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
8439
8440         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
8441         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
8442         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
8443         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
8444         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
8445         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
8446         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
8447         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
8448         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
8449         typedefs.
8450
8451 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
8452
8453         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
8454         function.c, graphite-scop-detection.c, haifa-sched.c,
8455         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
8456         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
8457         varasm.c: Remove typedefs of structs.
8458
8459 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
8460
8461         * config/rs6000/altivec.h (vec_adde): New define.
8462         (vec_addec): Likewise.
8463         (vec_double): Likewise.
8464         (vec_bperm): Likewise.
8465         (vec_gb): Likewise.
8466         * config/rs6000/rs6000-builtin.def (ADDE): New
8467         BU_ALTIVEC_OVERLOAD_3.
8468         (ADDEC): Likewise.
8469         (DOUBLE): New BU_VSX_OVERLOAD_1.
8470         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
8471         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
8472         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
8473         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
8474         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
8475         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
8476         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
8477         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
8478         and P8V_BUILTIN_VEC_VBPERMQ.
8479
8480 2015-08-18  Jason Merrill  <jason@redhat.com>
8481
8482         * print-tree.c (print_node): Handle TREE_BINFO.
8483
8484 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8485
8486         PR middle-end/36757
8487         * builtins.c (expand_builtin_signbit): Add asserts to make sure
8488         we can expand BUILT_IN_SIGNBIT inline.
8489         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
8490         * doc/extend.texi: Document the type-generic __builtin_signbit.
8491
8492 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
8493
8494         PR rtl-optimization/67218
8495         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
8496         (simplify_unary_operation_1): Use it.
8497
8498 2015-08-18  Marek Polacek  <polacek@redhat.com>
8499
8500         PR middle-end/67222
8501         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
8502         if the call isn't valid.
8503         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
8504         gimple_call_builtin_p.
8505         (call_may_clobber_ref_p_1): Likewise.
8506         (stmt_kills_ref_p): Likewise.
8507
8508 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
8509
8510         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
8511         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
8512         (mips_hard_regno_scratch_ok): Likewise.
8513         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
8514         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
8515
8516 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
8517
8518         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
8519         (determine_value_range): Call refine_value_range_using_guard for
8520         each loop initial condition to improve value range.
8521
8522 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
8523
8524         * config/i386/i386.c: Remove include of fibheap.h.
8525
8526 2015-08-17  Richard Biener  <rguenther@suse.de>
8527
8528         PR tree-optimization/67221
8529         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
8530         (sccvn_dom_walker::before_dom_children): Mark backedges of
8531         non-executable blocks as not executable.
8532
8533 2015-08-17  David Sherwood  <david.sherwood@arm.com>
8534
8535         * config/arm/arm.c (neon_element_bits): Replace call to
8536         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
8537         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
8538         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
8539         (neon_vdup_lane<mode>): Likewise.
8540         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
8541         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
8542         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
8543         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8544         * config/spu/spu.c (arith_immediate_p): Likewise.
8545         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8546         * expr.c (expand_expr_real_2): Likewise.
8547         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
8548         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8549         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8550         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
8551         New variable.
8552         * fold-const.c (fold_binary_loc): Replace call to
8553         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
8554         GET_MODE_UNIT_PRECISION (m).
8555
8556 2015-08-17  Mike Stump  <mikestump@comcast.net>
8557
8558         * config/arm/arm.c (arm_block_move_unaligned_straight):
8559         Emit normal move instead of unaligned load when source or destination
8560         are appropriately aligned.
8561
8562 2015-08-17  Richard Biener  <rguenther@suse.de>
8563             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8564
8565         PR middle-end/16107
8566         * match.pd (div (coss (op @0) : New simplifier.
8567
8568 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
8569
8570         PR rtl-optimization/64164
8571         PR bootstrap/66978
8572         PR middle-end/66983
8573         PR rtl-optimization/67000
8574         PR middle-end/67034
8575         PR middle-end/67035
8576         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
8577         * tree-ssa-copyrename.c: Removed.
8578         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
8579         -ftree-coalesce-vars.
8580         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
8581         * common.opt (ftree-copyrename): Ignore.
8582         (ftree-coalesce-inlined-vars): Likewise.
8583         * doc/invoke.texi: Remove the ignored options above.
8584         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
8585         * tree-ssa-coalesce.h: ... here.
8586         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
8587         headers required by it.
8588         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
8589         across variables when flag_tree_coalesce_vars.  Check register
8590         use and promoted modes to allow coalescing.  Do not coalesce
8591         maybe-byref parms with SSA_NAMEs of other variables, or
8592         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
8593         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
8594         with its member functions to tree-ssa-coalesce.c.
8595         (var_map_base_init): Likewise.  Renamed to
8596         compute_samebase_partition_bases.
8597         (partition_view_normal): Drop want_bases parameter.
8598         (partition_view_bitmap): Likewise.
8599         * tree-ssa-live.h: Adjust declarations.
8600         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
8601         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
8602         default defs at the entry point.
8603         (dump_part_var_map): New.
8604         (compute_optimized_partition_bases): New, called by...
8605         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
8606         of compute_samebase_partition_bases.  Adjust.
8607         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
8608         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
8609         (ssa_default_def_partition): New.
8610         (get_rtl_for_parm_ssa_default_def): New.
8611         (align_local_variable, add_stack_var): Support anonymous SSA
8612         names.
8613         (defer_stack_allocation): Likewise.  Declare earlier.
8614         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
8615         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
8616         Do no record deferred-allocation marker in
8617         SA.partition_to_pseudo.
8618         (expand_stack_vars): Adjust check for the marker in it.
8619         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
8620         redundant MEM attr setting.
8621         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
8622         from...
8623         (expand_one_stack_var): ... this.  New wrapper to check and
8624         skip already expanded SSA partitions.
8625         (record_alignment_for_reg_var): New, factored out of...
8626         (expand_one_var): ... this.
8627         (expand_one_ssa_partition): New.
8628         (adjust_one_expanded_partition_var): New.
8629         (expand_one_register_var): Check and skip already expanded SSA
8630         partitions.
8631         (expand_used_vars): Don't create DECLs for anonymous SSA
8632         names.  Expand all SSA partitions, then adjust all SSA names.
8633         (pass::execute): Replace the loops that set
8634         SA.partition_to_pseudo from partition leaders and cleared
8635         DECL_RTL for multi-location variables, and that which used to
8636         rename vars and set attrs, with one that clears DECL_RTL and
8637         checks that PARMs and RESULTs default_defs match DECL_RTL.
8638         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
8639         * emit-rtl.c: Include stor-layout.h.
8640         (set_reg_attrs_for_parm): Handle NULL decl.
8641         (set_reg_attrs_for_decl_rtl): Take mode from expression if
8642         it's not a DECL.
8643         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
8644         rather than its possibly-NULL DECL.
8645         * explow.c (promote_ssa_mode): New.
8646         * explow.h (promote_ssa_mode): Declare.
8647         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
8648         (read_complex_part): Export.
8649         * expr.h (read_complex_part): Declare.
8650         * cfgexpand.h (parm_maybe_byref_p): Declare.
8651         * function.c: Include cfgexpand.h.
8652         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
8653         (use_register_for_parm_decl): Wrapper for the above to
8654         special-case the result_ptr.
8655         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
8656         (split_complex_args): Take assign_parm_data_all argument.
8657         Pass it to rtl_for_parm.  Set up rtl and context for split
8658         args.  Reset complex parm before fetching its default decl
8659         rtl.
8660         (assign_parms_unsplit_complex): Use the default-def complex
8661         parm rtl if it matches the components.
8662         (assign_parms_augmented_arg_list): Adjust.
8663         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
8664         multiple locations.  Recognize split complex args.
8665         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
8666         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
8667         (assign_parm_setup_block): Prefer SSA-assigned location, and
8668         fill in its address if the memory location of a maybe-byref
8669         parm was not assigned by cfgexpand.
8670         (assign_parm_setup_reg): Likewise.  Adjust its mode as
8671         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
8672         sure passed_pointer parms don't need conversion.  Copy address
8673         or value as needed.
8674         (assign_parm_setup_stack): Prefer SSA-assigned location.
8675         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
8676         rtl before testing for pointer bounds.  Special-case result_ptr.
8677         (expand_function_start): Maybe reset DECL_RTL of result.
8678         Prefer SSA-assigned location for result and static chain.
8679         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
8680         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
8681         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
8682         anonymous SSA names.  Use promote_ssa_mode.
8683         (get_temp_reg): Likewise.
8684         (remove_ssa_form): Adjust.
8685         * stor-layout.c (layout_decl): Don't set mem attributes of
8686         non-MEMs.
8687         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
8688         and get its reg_usage for reg invalidation.
8689         (compute_bb_dataflow): Pass it insn.
8690         (emit_notes_in_bb): Likewise.
8691
8692 2015-08-14  Marek Polacek  <polacek@redhat.com>
8693
8694         * tree-core.h (tree_base): Fix typo.
8695
8696 2015-08-14  Marek Polacek  <polacek@redhat.com>
8697
8698         PR middle-end/67133
8699         * gimple.c (infer_nonnull_range_by_attribute): Check that the
8700         nonnull argument position is not outside function arguments.
8701
8702 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
8703
8704         PR target/67143
8705         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
8706         'lconst_atomic' with 'const_atomic'.
8707         (atomic_fetch_<optab><mode>): Likewise.
8708         (atomic_<optab>_fetch<mode>): Likewise.
8709         * config/aarch64/iterators.md (lconst-atomic): Move below
8710         'const_atomic'.
8711         (const_atomic): New.
8712
8713 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
8714             Bernd Schmidt  <bernds@codesourcery.com>
8715
8716         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
8717         debug options.
8718         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
8719         (DWARF2_DEBUGGING_INFO): Don't define.
8720         * debug.h (dwarf2_lineno_debug_hooks): Declare.
8721         * toplev.c (process_options): Add a case for it.
8722         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
8723         (dwarf2out_init): Skip most initializations if
8724         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
8725         case.
8726         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
8727         DWARF2_LINENO_DEBUGGING_INFO.
8728         * opts.c (set_debug_level): Likewise.
8729
8730 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
8731
8732         * config/arm/types.md (is_neon_type): Add missing types.
8733
8734 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8735
8736         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
8737         for skylake.
8738         * config/i386/i386.c (PTA_SKYLAKE): New macros.
8739         (processor_alias_table): Add skylake description.
8740         (enum processor_model): Add skylake processor.
8741         (arch_names_table): Add skylake record.
8742         * doc/invoke.texi: Add skylake item.
8743
8744 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
8745
8746         * ira-int.h: Include recog.h.
8747         * ira-build.c: Don't include recog.h.
8748         * ira-color.c: Likewise.
8749         * ira-conflicts.c: Likewise.
8750         * ira-costs.c: Likewise.
8751         * ira-emit.c: Likewise.
8752         * ira-lives.c: Likewise.
8753         * ira.c: Likewise.
8754         * sched-deps.c: Likewise.
8755         * sel-sched.c: Likewise.
8756         * target-globals.c: Likewise.
8757
8758 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
8759
8760         PR bootstrap/55035
8761         * reload1.c (elimination_costs_in_insn): Make it obvious to the
8762         compiler that the n_dups and n_operands loop bounds are invariant.
8763
8764 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8765
8766         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
8767         expressions in A and B.
8768
8769 2015-08-13  Richard Biener  <rguenther@suse.de>
8770
8771         * tree.c (nonnull_arg_p): Move from ...
8772         * tree-vrp.c (nonnull_arg_p): ... here.
8773         * tree.h (nonnull_arg_p): Declare.
8774         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
8775         here, register ptr != 0 for nonnull_arg_p pointer arguments.
8776         Properly initialize static chain and by-reference result pointer.
8777         (run_scc_vn): Adjust.
8778
8779 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8780
8781         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
8782         TUNE_I6400.
8783
8784 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8785
8786         * config/aarch64/aarch64-protos.h
8787         (aarch64_gen_atomic_cas): Declare.
8788         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
8789         Choose appropriate instruction pattern for the target.
8790         (aarch64_gen_atomic_cas): New.
8791         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
8792         (atomic_compare_and_swap<mode>_1): Rename to
8793         aarch64_compare_and_swap<mode>.  Fix some indentation.
8794         (aarch64_compare_and_swap<mode>_lse): New.
8795         (aarch64_atomic_cas<mode>): New.
8796
8797 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8798
8799         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
8800         (TARGET_LSE): New.
8801
8802 2015-08-13  Richard Biener  <rguenther@suse.de>
8803
8804         PR tree-optimization/67191
8805         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
8806         assert we value-numbered last stmts operand because it can validly
8807         trigger for unreachable code.
8808
8809 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8810
8811         PR rtl-optimization/67103
8812         * ifcvt.c (noce_try_store_flag_constants): Move
8813         x = (-(test != 0) & (b - a)) + a transformation to...
8814         (noce_try_cmove): ... Here.  Try it if normal conditional
8815         move fails.
8816
8817 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8818
8819         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
8820         pseudo-processors.
8821         * config/mips/mips.md (processor): Remove w32 and w64.
8822
8823 2015-08-13  Richard Biener  <rguenther@suse.de>
8824
8825         PR tree-optimization/66502
8826         PR tree-optimization/67167
8827         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
8828         backedge arguments.
8829         (vn_phi_lookup): Adjust.
8830         (vn_phi_insert): Likewise.
8831         (visit_phi): Prefer to value-number to another PHI node
8832         over value-numbering to a PHI argument.
8833         (init_scc_vn): Mark DFS back edges.
8834
8835 2015-08-13  Richard Biener  <rguenther@suse.de>
8836
8837         * gimple.h (gcall::code_): New constant static member.
8838         (gcond::code_): Likewise.
8839         * gimple.c (gcall::code_): Define.
8840         (gcond::code_): Likewise.
8841         (is_a_helper <const gcond *>): Add.
8842         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
8843         and forward to a new gcall overload with less checking and a
8844         cheaper way to access the operand.
8845         (gimple_call_lhs_ptr): Likewise.
8846         (gimple_call_set_lhs): Likewise.
8847         (gimple_call_internal_p): Likewise.
8848         (gimple_call_with_bounds_p): Likewise.
8849         (gimple_call_set_with_bounds): Likewise.
8850         (gimple_call_internal_fn): Likewise.
8851         (gimple_call_set_ctrl_altering): Likewise.
8852         (gimple_call_ctrl_altering_p): Likewise.
8853         (gimple_call_fntype): Likewise.
8854         (gimple_call_fn): Likewise.
8855         (gimple_call_fn_ptr): Likewise.
8856         (gimple_call_set_fndecl): Likewise.
8857         (gimple_call_fndecl): Likewise.
8858         (gimple_call_chain): Likewise.
8859         (gimple_call_num_args): Likewise.
8860         (gimple_call_arg): Likewise.
8861         (gimple_call_arg_ptr): Likewise.
8862         (gimple_call_set_arg): Likewise.
8863         (gimple_call_noreturn_p): Likewise.
8864         (gimple_cond_code): Likewise.
8865         (gimple_cond_lhs): Likewise.
8866         (gimple_cond_rhs): Likewise.
8867         (gimple_has_lhs): Reduce checking.
8868
8869 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8870
8871         PR middle-end/25529
8872         * match.pd (div (mult @0 @1) @1) : New simplifier.
8873
8874 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8875
8876         PR target/67071
8877         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
8878         predicate to allow construction of vector constants using the
8879         VSLDOI vector shift instruction.
8880
8881         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
8882         declaration.
8883
8884         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
8885         the number of bytes to be shifted left and filled in with either
8886         all zero or all one bits.
8887         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
8888         methods exist.
8889         (output_vec_const_move): On power8, generate XXLORC to generate
8890         a vector constant with all 1's. Do a split if we need to use a
8891         VSLDOI instruction.
8892
8893         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
8894         properly test for the MSB.
8895
8896         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
8897         vector constants that can be created with VSLDOI.
8898
8899 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8900
8901         revert:
8902         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8903         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8904         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8905         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8906         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8907         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8908         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8909         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8910         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8911
8912 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
8913
8914         * config/xtensa/constraints.md (define_constraint "Y"): New
8915         constraint.
8916         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
8917         * config/xtensa/linux.h (ASM_SPEC): Likewise.
8918         * config/xtensa/predicates.md (move_operand): Match constants
8919         and symbols in the presence of TARGET_AUTO_LITPOOLS.
8920         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
8921         immediate references to TLS data.
8922         (xtensa_emit_move_sequence): Don't force constants to memory in
8923         the presence of TARGET_AUTO_LITPOOLS.
8924         (print_operand): Add 'y' format, same as default, but capable of
8925         printing SF mode constants as well.
8926         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
8927         (movsf_internal): Add movi pattern that loads literal.
8928         (movsf, movdf): Don't force constants to memory in the presence
8929         of TARGET_AUTO_LITPOOLS.
8930         (movdf_internal): Add 'Y' constraint.
8931         * config/xtensa/xtensa.opt (mauto-litpools): New option.
8932         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
8933
8934 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8935
8936         * config/arm/arm-fpus.def: Replace booleans with feature flags.
8937         Update comment.
8938         * config/arm/arm.c (ARM_FPU): Update macro.
8939         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
8940         (TARGET_FP16): Likewise.
8941         (TARGET_CRYPTO): Likewise.
8942         (TARGET_NEON): Likewise.
8943         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
8944         field features.
8945
8946 2015-08-12  Tom de Vries  <tom@codesourcery.com>
8947
8948         PR other/67092
8949         PR other/67098
8950         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
8951         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
8952         accordingly.  Mention default for --with-stage1-ldflags.
8953
8954 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8955
8956         * config/arm/arm.h (arm_fpu_feature_set): New.
8957         (ARM_FPU_FSET_HAS): New.
8958         (FPU_FL_NONE): New.
8959         (FPU_FL_NEON): New.
8960         (FPU_FL_FP16): New.
8961         (FPU_FL_CRYPTO): New.
8962
8963 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8964
8965         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
8966         after -mcmodel=large -fPIC sorry.
8967
8968 2015-08-12  Richard Biener  <rguenther@suse.de>
8969
8970         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
8971         comparison operand order and commutative ternary op operand order.
8972         (sccvn_dom_walker::cond_stack): New state to track temporary
8973         expressions.
8974         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
8975         no longer valid.
8976         (sccvn_dom_walker::record_cond): Add a single temporary conditional
8977         expression.
8978         (sccvn_dom_walker::record_conds): Add a temporary conditional
8979         expressions and all related expressions also true/false.
8980         (sccvn_dom_walker::before_dom_children): Record temporary
8981         expressions based on the controlling condition of a single
8982         predecessor.  When trying to simplify a conditional statement
8983         lookup expressions we might have inserted earlier.
8984
8985 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
8986
8987         PR target/67127
8988         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
8989         to ARM core registers.
8990
8991 2015-08-12  Nathan Sidwell  <nathan@acm.org>
8992
8993         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
8994         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
8995
8996 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
8997
8998         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
8999         line with comments.
9000         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
9001
9002 2015-08-12  Richard Biener  <rguenther@suse.de>
9003
9004         * gimple.h (remove_pointer): New trait.
9005         (GIMPLE_CHECK2): New inline template function.
9006         (gassign::code_): New constant static member.
9007         (is_a_helper<const gassign *>): Add.
9008         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
9009         and forward to a new gassign overload with less checking and a
9010         cheaper way to access the operand.
9011         (gimple_assign_lhs_ptr): Likewise.
9012         (gimple_assign_set_lhs): Likewise.
9013         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
9014         Likewise.
9015         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
9016         Likewise.
9017         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
9018         Likewise.
9019         (gimple_assign_rhs_code): Likewise.
9020         * gimple.c (gassign::code_): Define.
9021
9022 2015-08-12  Richard Biener  <rguenther@suse.de>
9023
9024         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9025         Eliminate edges marked as not executable by SCCVN.
9026         * tree-ssa-sccvn.c: Include gimple-iterator.h.
9027         (cond_dom_walker): Rename to sccvn_dom_walker.
9028         (sccvn_dom_walker::before_dom_children): Value-number defs
9029         of all stmts.
9030         (run_scc_vn): Remove loop value-numbering all SSA names.
9031         Drop not visited SSA names to varying.
9032
9033 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
9034
9035         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
9036         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
9037         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
9038         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
9039         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
9040         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
9041         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
9042         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
9043         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
9044
9045 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
9046
9047         PR target/66954
9048         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
9049         to enum feature_priority and feature_list.
9050         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
9051         and isa_names_table.
9052
9053 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
9054
9055         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
9056         vect_induction_def.
9057
9058 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9059
9060         PR c/66098
9061         PR c/66711
9062         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
9063         account when deciding what was the command-line status.
9064
9065 2015-08-11  Nathan Sidwell  <nathan@acm.org>
9066
9067         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
9068
9069         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
9070         we're not the only contributor to target phi.
9071
9072 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
9073
9074         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
9075         FIXED_REG0.
9076
9077 2015-08-11  Tom de Vries  <tom@codesourcery.com>
9078
9079         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
9080
9081 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
9082
9083         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
9084         with CPU_SLM.
9085         * config/i386/i386.md (cpu): Remove knl.
9086
9087 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
9088
9089         PR libgomp/65742
9090         PR middle-end/66332
9091         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
9092         open-coded sequence.
9093         * omp-low.c (oacc_process_reduction_data): Remove handline of
9094         GOMP_DEVICE_HOST_NONSHM.
9095
9096         * lto-streamer-in.c (lto_input_mode_table): Adjust to
9097         GET_MODE_INNER changes.
9098
9099 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
9100             Ilya Verbin  <ilya.verbin@intel.com>
9101
9102         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
9103
9104 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9105
9106         * doc/options.texi (EnabledBy): Document that the argument must be
9107         a Common option.
9108         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
9109         Not enabled by -Wall.
9110         * optc-gen.awk: Give nicer error messages. Detect if the argument
9111         of EnabledBy is not a Common option.
9112         * common.opt (Wnull-dereference): Not enabled by -Wall.
9113         * opt-functions.awk (lang_enabled_by): Nicer error messages.
9114
9115 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
9116
9117         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
9118         model == 0x4f as Broadwell.
9119
9120 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
9121
9122         PR rtl-optimization/67028
9123         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
9124         Add test to see if a const_int fits in the new mode.
9125
9126 2015-08-07  DJ Delorie  <dj@redhat.com>
9127
9128         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
9129
9130 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
9131
9132         PR rtl-optimization/67029
9133         * ira-color.c: Include "recog.h" before including "ira-int.h".
9134         * target-globals.c: Likewise.
9135         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
9136         adds an alternative_mask argument and use it instead of
9137         preferred_alternatives.
9138         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
9139         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
9140         * sched-deps.c: Include "ira-int.h" after including "ira.h".
9141         (sched_analyze_insn): Update call to
9142         ira_implicitly_set_insn_hard_regs.
9143         * sel-sched.c: Include "ira-int.h" after including "ira.h".
9144         (implicit_clobber_conflict_p): Update call to
9145         ira_implicitly_set_insn_hard_regs.
9146
9147 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
9148
9149         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
9150
9151 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
9152
9153         PR target/67002
9154         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
9155         currently_expanding_to_rtl is set.
9156
9157 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
9158
9159         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
9160         * configure: Regenerate.
9161
9162 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9163             Jiong Wang  <jiong.wang@arm.com>
9164
9165         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
9166         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
9167         (REG_CLASS_NAMES): Likewise.
9168         (REG_CLASS_CONTENTS): Likewise.
9169         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
9170         (aarch64_register_move_cost): Likewise.
9171         (aarch64_load_symref_appropriately): Invoke the new added pattern if
9172         possible.
9173         * config/aarch64/constraints.md (Uc0): New constraint.
9174
9175 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
9176
9177         * config/aarch64/constraints.md (Usf): Add the test of
9178         aarch64_is_noplt_call_p.
9179
9180 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
9181
9182         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
9183         declaration.
9184         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
9185         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
9186         (call_symbol): Likewise.
9187
9188 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
9189
9190         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
9191         for vectorizing multiplication patterns.
9192         * tree-vectorizer.h: Adjust the number of patterns.
9193
9194 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
9195
9196         * config/i386/sse.md (*vec_concatv2df): Declare added
9197         alternatives as sselog type.
9198
9199 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9200
9201         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
9202         all GPRs.
9203
9204 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9205
9206         * config/s390/s390.c (s390_expand_tbegin): Expand either
9207         tbegin_1_z13 or tbegin_1 depending on VX flag.
9208         * config/s390/s390.md ("tbegin_1_z13"): New expander.
9209
9210 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9211
9212         * config/s390/s390.opt: Clarify description for -mzvector
9213         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
9214         -mzvector.
9215
9216 2015-08-06  Richard Biener  <rguenther@suse.de>
9217
9218         * gimple.h (gimple_call_set_fn): Access op member directly.
9219         (gimple_call_chain_ptr): Likewise.
9220         (gimple_call_set_chain): Likewise.
9221         (gimple_cond_lhs_ptr): Likewise.
9222         (gimple_cond_set_lhs): Likewise.
9223         (gimple_cond_rhs_ptr): Likewise.
9224         (gimple_cond_set_rhs): Likewise.
9225         (gimple_cond_true_label): Likewise.
9226         (gimple_cond_set_true_label): Likewise.
9227         (gimple_cond_set_false_label): Likewise.
9228         (gimple_cond_false_label): Likewise.
9229         (gimple_label_label): Likewise.
9230         (gimple_label_set_label): Likewise.
9231         (gimple_goto_set_dest): Likewise.
9232         (gimple_asm_input_op): Likewise.
9233         (gimple_asm_input_op_ptr): Likewise.
9234         (gimple_asm_set_input_op): Likewise.
9235         (gimple_asm_output_op): Likewise.
9236         (gimple_asm_output_op_ptr): Likewise.
9237         (gimple_asm_set_output_op): Likewise.
9238         (gimple_asm_clobber_op): Likewise.
9239         (gimple_asm_set_clobber_op): Likewise.
9240         (gimple_asm_label_op): Likewise.
9241         (gimple_asm_set_label_op): Likewise.
9242         (gimple_switch_index): Likewise.
9243         (gimple_switch_index_ptr): Likewise.
9244         (gimple_return_retval_ptr): Likewise.
9245         (gimple_return_retval): Likewise.
9246         (gimple_return_set_retval): Likewise.
9247         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
9248         (gimple_switch_label): Likewise.
9249         (gimple_switch_set_label): Likewise.
9250
9251 2015-08-06  Richard Biener  <rguenther@suse.de>
9252
9253         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
9254         bool comparison canonicalization and restrict to integers.
9255
9256 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
9257
9258         * coretypes.h (enum symbol_visibility): Relocate here.
9259         * flag-types.h (enum symbol_visibility): Remove.
9260         * tree-core.h (enum symbol_visibility): Remove.
9261
9262 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
9263
9264         PR target/66870
9265         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
9266         for no_split_stack function attribute along with
9267         flag_split_stack.
9268         (rs6000_expand_split_stack_prologue): Likewise.
9269
9270 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9271             Jeff Law  <law@redhat.com>
9272
9273         PR c/16351
9274         * doc/invoke.texi (Wnull-dereference): New.
9275         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
9276         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
9277         Warn for potential NULL dereferences.
9278         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
9279         * ubsan.c (instrument_nonnull_arg): Call
9280         infer_nonnull_range_by_attribute.
9281         (instrument_nonnull_return): Likewise.
9282         * common.opt (Wnull-dereference); New.
9283         * gimple.c (infer_nonnull_range): Remove bool arguments.
9284         (infer_nonnull_range_by_dereference): New.
9285         (infer_nonnull_range_by_attribute): New.
9286         * gimple.h: Update declarations.
9287
9288 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9289
9290         * gensupport.c (sequence_num): Replace with...
9291         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
9292         ...these new variables.
9293         (init_rtx_reader_args_cb): Update accordingly.
9294         (get_num_code_insns): Likewise.
9295         (read_md_rtx): Rework to use a while loop and get_c_test.
9296         Use the new counters.  Remove redundant DEFINE_SUBST case.
9297         * genoutput.c (gen_split): Delete.
9298         (main): Don't call it.
9299
9300 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9301
9302         * gensupport.h (get_c_test): Declare.
9303         * gensupport.c (get_c_test): New function.
9304         * genconditions.c (main): Use it.
9305         * genrecog.c (validate_pattern): Likewise.
9306         (match_pattern_1): Likewise.  Remove c_test argument.
9307         (match_pattern): Update accordingly and remove c_test argument.
9308         (main): Update accordingly.
9309
9310 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9311
9312         * gensupport.h (get_num_insn_codes): Declare.
9313         * gensupport.c (get_num_insn_codes): New function.
9314         * genattrtab.c (optimize_attrs): Rename max_insn_code to
9315         num_insn_codes.
9316         (main): Likewise.  Use get_num_insn_codes.
9317         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
9318
9319 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9320
9321         PR middle-end/66311
9322         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
9323         is zero- rather than sign-extended.
9324
9325 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9326
9327         * target-insns.def (can_extend): Delete.
9328
9329 2015-08-05  Richard Biener  <rguenther@suse.de>
9330
9331         PR tree-optimization/67121
9332         * tree-if-conv.c (combine_blocks): Clear range-info produced
9333         by stmts no longer executed conditionally.
9334
9335 2015-08-05  Nick Clifton  <nickc@redhat.com>
9336
9337         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
9338         to allow identical far pointers to remain.
9339
9340 2015-08-05  Richard Biener  <rguenther@suse.de>
9341
9342         PR middle-end/67120
9343         * match.pd: Compare address bases with == if they are decls
9344         or SSA names, not operand_equal_p.  Otherwise fail.
9345
9346 2015-08-05  Richard Biener  <rguenther@suse.de>
9347
9348         PR tree-optimization/67055
9349         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
9350         NULL gimple_block.
9351
9352         * g++.dg/torture/pr67055.C: New testcase.
9353
9354 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9355
9356         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
9357         noavx512vl.
9358         (define_attr "enabled"): Handle avx521vl and noavx512vl.
9359         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
9360         AVX-512 alternative out of SSE.
9361         (define_insn "*vec_concatv2df"): Ditto.
9362
9363 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9364
9365         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
9366         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
9367         CODE_FOR_avx_ptestv4di.
9368         * config/i386/sse.md (define_mode_iterator V_AVX): New.
9369         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
9370         (define_insn "avx_ptest256"): Merge this ...
9371         (define_insn "sse4_1_ptest"): And this ...
9372         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
9373
9374 2015-08-05  Richard Biener  <rguenther@suse.de>
9375
9376         PR tree-optimization/67109
9377         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
9378         against too big groups.  Print whether this is a load or store
9379         group.  Rename from ...
9380         (vect_analyze_group_access): ... this which is now a wrapper
9381         dissolving an invalid group.
9382         (vect_analyze_data_ref_accesses): Print whether this is a load
9383         or store group.
9384
9385 2015-08-05  Richard Biener  <rguenther@suse.de>
9386
9387         PR middle-end/67107
9388         * match.pd: Guard const_binop result checking against NULL_TREE
9389         result.
9390
9391 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
9392
9393         * cse.c (cse_insn): Restoring old behaviour for src_eqv
9394          when dest and value in the REG_EQUAL are same and dest
9395          is STRICT_LOW_PART.
9396
9397 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
9398
9399         * config/moxie/moxie.h (PRINT_OPERAND,
9400           PRINT_OPERAND_ADDRESS): Remove macros.
9401         * config/moxie/moxie-protos.h (moxie_print_operand,
9402           moxie_print_operand_address): Remove declaration.
9403         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
9404           TARGET_PRINT_OPERAND_ADDRESS): Define.
9405           (moxie_print_operand, moxie_print_operand_address): Make static.
9406
9407 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9408
9409         PR target/66731
9410         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
9411         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
9412
9413 2015-08-04  Richard Biener  <rguenther@suse.de>
9414
9415         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
9416         generated code.
9417         (dt_operand::gen_gimple_expr): Adjust.
9418
9419 2015-08-04  Richard Biener  <rguenther@suse.de>
9420
9421         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
9422         bool compares on RHS.
9423         * match.pd: Add X ==/!= !X is false/true pattern.
9424
9425 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
9426
9427         * config/aarch64/aarch64.c: Change inner loop statement cost
9428         to be consistent with other targets.
9429
9430 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
9431
9432         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
9433         targets.
9434
9435 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
9436
9437         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
9438         (machine_function): Remove pseudos field.
9439
9440 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9441
9442         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9443         Exit early and use target_option_current_node if processing current
9444         pragma.
9445
9446 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9447
9448         * doc/extend.texi (AArch64 Function Attributes): New node.
9449         (AArch64 Pragmas): Likewise.
9450
9451 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9452
9453         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9454         Initialize simd builtins if TARGET_SIMD.
9455         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
9456         Make sure that the builtins are initialized only once no matter how
9457         many times the function is called.
9458         (aarch64_init_builtins): Unconditionally initialize crc builtins.
9459         (aarch64_relayout_simd_param): New function.
9460         (aarch64_simd_expand_args): Use above during argument expansion.
9461         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
9462         simd builtins if TARGET_SIMD.
9463         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
9464         prototype.
9465         (aarch64_relayout_simd_types): Likewise.
9466
9467 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9468
9469         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
9470         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
9471         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
9472         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9473         static keyword.
9474         (aarch64_reset_previous_fndecl): New function.
9475         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
9476         the string.
9477         * config/aarch64/aarch64-c.c: New file.
9478         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
9479         Push and pop options at beginning and end.  Remove ifdef
9480         __ARM_FEATURE_CRC32.
9481         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
9482         Add pragma +nothing+simd and +nothing+crypto where appropriate.
9483         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
9484         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
9485         Define prototype.
9486         (aarch64_register_pragmas): Likewise.
9487         (aarch64_reset_previous_fndecl): Likewise.
9488         (aarch64_process_target_attr): Likewise.
9489         (aarch64_override_options_internal): Likewise.
9490
9491 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9492
9493         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
9494         New function.
9495         (aarch64_can_inline_p): Likewise.
9496         (TARGET_CAN_INLINE_P): Define.
9497
9498 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9499
9500         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9501         Remove static.  Handle OPT_mgeneral_regs_only,
9502         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
9503         OPT_momit_leaf_frame_pointer.
9504         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
9505         (aarch64_attr_opt_type): New enum.
9506         (aarch64_attribute_info): New struct.
9507         (aarch64_handle_attr_arch): New function.
9508         (aarch64_handle_attr_cpu): Likewise.
9509         (aarch64_handle_attr_tune): Likewise.
9510         (aarch64_handle_attr_isa_flags): Likewise.
9511         (aarch64_attributes): New table.
9512         (aarch64_process_one_target_attr): New function.
9513         (num_occurences_in_str): Likewise.
9514         (aarch64_process_target_attr): Likewise.
9515         (aarch64_option_valid_attribute_p): Likewise.
9516         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
9517         * config/aarch64/aarch64-protos.h: Include input.h
9518         (aarch64_handle_option): Declare prototype.
9519
9520 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9521
9522         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
9523         * config/aarch64/aarch64.c: Include target-globals.h
9524         (aarch64_previous_fndecl): New variable.
9525         (aarch64_set_current_function): New function.
9526         (TARGET_SET_CURRENT_FUNCTION): Define.
9527
9528 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9529
9530         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
9531         (explicit_arch): Likewise.
9532         (x_aarch64_isa_flags): Likewise.
9533         (mgeneral-regs-only): Mark as Save.
9534         (mfix-cortex-a53-835769): Likewise.
9535         (mcmodel=): Likewise.
9536         (mstrict-align): Likewise.
9537         (momit-leaf-frame-pointer): Likewise.
9538         (mtls-dialect): Likewise.
9539         (master=): Likewise.
9540         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
9541         (aarch64_isa_flags): Remove extern declaration.
9542         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
9543         to indicate success or failure.
9544         (aarch64_validate_march): Likewise.
9545         (aarch64_validate_mtune): Likewise.
9546         (aarch64_isa_flags): Delete.
9547         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
9548         instead of aarch64_isa_flags.
9549         (aarch64_get_tune_cpu): New function.
9550         (aarch64_get_arch): Likewise.
9551         (aarch64_override_options): Use above and set up explicit_tune_core
9552         and explicit_arch.
9553         (aarch64_print_extension): Move earlier in file.  Add isa_flags
9554         argument and use that instead of the global aarch64_isa_flags.
9555         (aarch64_option_save): New function.
9556         (aarch64_option_restore): Likewise.
9557         (aarch64_option_print): Likewise.
9558         (aarch64_declare_function_name): Likewise.
9559         (aarch64_start_file): Delete.
9560         (TARGET_ASM_FILE_START): Do not define.
9561         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
9562         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
9563         Declare prototype.
9564
9565 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9566
9567         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
9568         flag_omit_leaf_frame_pointer to 2.
9569
9570 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9571
9572         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
9573         define to 0 or 1.
9574         (TARGET_FIX_ERR_A53_835769): New macro.
9575         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9576         handling of opts->x_aarch64_fix_a53_err835769.
9577         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
9578         than aarch64_fix_a53_err835769.
9579         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
9580         * config/aarch64/aarch64-linux.h: Likewise.
9581
9582 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
9583
9584         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
9585         ix86_expand_int_movcc as boolean.
9586
9587 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9588
9589         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
9590         (aarch64_cpu_string): Likewise.
9591         (aarch64_tune_string): Likewise.
9592         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
9593         (aarch64_parse_extension): Return aarch64_parse_opt_result.
9594         Add extra argument to put result into.
9595         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
9596         (aarch64_parse_cpu): Add arguments to put results into. Return
9597         aarch64_parse_opt_result.
9598         (aarch64_parse_tune): Likewise.
9599         (aarch64_override_options_after_change_1): New function.
9600         (aarch64_override_options_internal): New function.
9601         (aarch64_validate_mcpu): Likewise.
9602         (aarch64_validate_march): Likewise.
9603         (aarch64_validate_mtune): Likewise.
9604         (aarch64_override_options): Update to reflect above changes.
9605         Move some logic into aarch64_override_options_internal.
9606         Initialize target_option_default_node and target_option_current_node.
9607         (aarch64_override_options_after_change): Move logic into
9608         aarch64_override_options_after_change_1 and call it with global_options.
9609         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
9610         flag values from that.
9611
9612 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9613
9614         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
9615         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
9616         * config/aarch64/aarch64.c (struct processor): Add arch field.
9617         (all_architectures): Handle above, move above all_cores.
9618         (all_cores): Handle above.
9619         (aarch64_parse_arch): Handle above changes.
9620         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
9621         above.  Update comments.
9622         (armv8.1-a): Likewise.
9623         * config/aarch64/aarch64-cores.def: Update according to above.
9624         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
9625         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
9626         aarch64_arch_driver_info.
9627
9628 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9629
9630         * config/aarch64/aarch64.c (struct processor): Add ident field.
9631         Rename core sched_core.
9632         (all_cores): Handle above changes.
9633         (all_architectures): Likewise.
9634         (aarch64_parse_arch): Likewise.
9635         (aarch64_override_options): Likewise.
9636
9637 2015-08-04  Richard Biener  <rguenther@suse.de>
9638
9639         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9640         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
9641         comparisons embedded in [VEC_]COND_EXPRs.
9642
9643 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
9644
9645         * tree-if-conv.c: Fix various typos in comments.
9646         * tree-vect-stmts.c: Likewise.
9647
9648 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9649
9650         PR tree-optimization/67043
9651         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
9652         preheader after hoisting invariant in it.
9653         (find_defs): Force recomputation of all luids.
9654
9655 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
9656
9657         * config/rs6000/htm.md (tabort.): Restrict the source operand to
9658         using a base register.
9659
9660 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
9661
9662         * main.c (main): Pass in NULL for toplev's external_timer.
9663         * timevar.c: Include coretypes.h.
9664         (class timer::named_items): New.
9665         (timer::named_items::named_items): New.
9666         (timer::named_items::~named_items): New.
9667         (timer::named_items::push): New.
9668         (timer::named_items::pop): New.
9669         (timer::named_items::print): New.
9670         (timer::timer): Initialize field "m_jit_client_items".
9671         (timer::~timer): New.
9672         (timer::push): Move bulk of implementation to...
9673         (timer::push_internal): ...here.  New function.
9674         (timer::pop): Move bulk of implementation to...
9675         (timer::pop_internal): ...here.  New function.
9676         (timer::push_client_item): New.
9677         (timer::pop_client_item): New.
9678         (timer::print_row): New function, taken from timer::print.
9679         (timer::print): Print "GCC items" header if we also have client
9680         items.  Move row-printing to timer::print_row.  Print any client
9681         items.
9682         (timer::get_topmost_item_name): New method.
9683         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
9684         (TV_JIT_CLIENT_CODE): New.
9685         * timevar.h (timer::push_client_item): New declaration.
9686         (timer::pop_client_item): New declaration.
9687         (timer::get_topmost_item_name): New method.
9688         (timer::push_internal): New declaration.
9689         (timer::pop_internal): New declaration.
9690         (timer::print_row): New declaration.
9691         (timer::named_items): New declaration.
9692         (timer::m_jit_client_items): New field.
9693         (timer): Add friend class named_items.
9694         (auto_timevar::auto_timevar): Add timer param.
9695         (auto_timevar::~auto_timevar): Use field "m_timer".
9696         (auto_timevar::m_timer): New field.
9697         * toplev.c (initialize_rtl): Add g_timer as param when
9698         constructing auto_timevar instance.
9699         (toplev::toplev): Add "external_timer" param, and use it to
9700         initialize the "g_timer" global if non-NULL.
9701         (toplev::~toplev): If this created "g_timer", delete it.
9702         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
9703         with "external_timer" timer *.
9704
9705 2015-08-03  Alexander Basov <coohpt@gmail.com>
9706
9707         PR middle-end/64744
9708         PR middle-end/48470
9709         PR middle-end/43404
9710         * cfgexpand.c (expand_one_var): Add check if stack is going to
9711         be used in naked function.
9712         * expr.c (expand_expr_addr_expr_1): Remove excess checking
9713         whether expression should not reside in MEM.
9714         * function.c (use_register_for_decl): Do not use registers for
9715         non-register things (volatile, float, BLKMode) in naked functions.
9716
9717 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
9718
9719         PR target/67060
9720         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
9721         Adjust splits to match new pattern.
9722
9723 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
9724
9725         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
9726         (VEC_M): Likewise.
9727         (VEC_N): Likewise.
9728         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
9729         point in VSX registers.
9730
9731         * config/rs6000/constraints.md (wb constraint): Document unused
9732         w<x> constraint.
9733         (we constraint): Likewise.
9734         (wo constraint): Likewise.
9735         (wp constraint): New constraint for IEEE 128-bit floating point in
9736         VSX registers.
9737         (wq constraint): Likewise.
9738
9739         * config/rs6000/predicates.md (easy_fp_constant): Add support for
9740         IEEE 128-bit floating point in VSX registers.
9741         (easy_scalar_constant): Likewise.
9742
9743         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
9744         constraints (wp, wq) for IEEE 128-bit floating point in VSX
9745         registers.
9746         (rs6000_init_hard_regno_mode_ok): Likewise.
9747
9748         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
9749         floating point in VSX registers.
9750         (VSX_L): Likewise.
9751         (VSX_M): Likewise.
9752         (VSX_M2): Likewise.
9753         (VSm): Likewise.
9754         (VSs): Likewise.
9755         (VSr): Likewise.
9756         (VSa): Likewise.
9757         (VSv): Likewise.
9758         (vsx_le_permute_<mode>): Add support to properly swap bytes for
9759         IEEE 128-bit floating point in VSX registers on little endian.
9760         (vsx_le_undo_permute_<mode>): Likewise.
9761         (vsx_le_perm_load_<mode>): Likewise.
9762         (vsx_le_perm_store_<mode>): Likewise.
9763         (splitters for IEEE 128-bit fp moves): Likewise.
9764
9765         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
9766         wq constraints.
9767
9768         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
9769         floating point in VSX registers.
9770         (VM2): Likewise.
9771
9772         * doc/md.text (Machine Constraints): Document wp and wq
9773         constraints on PowerPC.
9774
9775 2015-08-03  Jeff Law  <law@redhat.com>
9776
9777         PR middle-end/66314
9778         PR gcov-profile/66899
9779         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
9780         iterate over the jump threading paths when an element in the
9781         jump threading paths array is eliminated.
9782
9783 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
9784
9785         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
9786
9787 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
9788
9789         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
9790         is_use_properly_guarded the variable def_preds.  Free its
9791         contents before returning.
9792         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
9793         (is_use_properly_guarded): Replace local variable def_preds with
9794         a parameter.  Adjust accordingly.  Only update *def_preds if it's
9795         the empty vector.
9796
9797 2015-08-03  Richard Biener  <rguenther@suse.de>
9798
9799         * genmatch.c (simplify::for_subst_vec): New member.
9800         (binary_ok): New helper for for lowering.
9801         (lower_for): Delay substituting operators into result expressions
9802         if we can merge the results eventually again.
9803         (capture_info::walk_result): Adjust for user_id appearing as
9804         result expression operator.
9805         (expr::gen_transform): Likewise.
9806         (dt_simplify::gen_1): Likewise.
9807         (dt_simplify::gen): Pass not substituted operators to tail
9808         functions or initialize local variable with it.
9809         (decision_tree::gen): Adjust function signature.
9810         * match.pd: Fix tests against global code and add default
9811         cases to switch stmts.
9812
9813 2015-08-03  Richard Biener  <rguenther@suse.de>
9814
9815         * genmatch.c (dt_simplify::gen): Create captures array
9816         with an initializer.
9817
9818 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9819
9820         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
9821         the host compiler is affected by placement new aliasing bug.
9822         * configure: Regenerate.
9823         * Makefile.in (ALIASING_FLAGS): New variable.
9824         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
9825
9826 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9827
9828         PR target/66731
9829         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
9830         (negmulsf3_vfp): Likewise.
9831         (muldf3negdf_vfp): Disable for -frounding-math.
9832         (mulsf3negsf_vfp): Likewise.
9833         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
9834         fix MULT cost with -frounding-math.
9835
9836 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9837
9838         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
9839         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
9840         explicit.  Prefer to add the flag whenever possible.
9841         (noce_process_if_block): Try noce_try_store_flag_constants before
9842         noce_try_cmove.
9843
9844 2015-08-03  Richard Biener  <rguenther@suse.de>
9845
9846         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
9847         New hash-map to record equivalent transforms.
9848         (dt_node::analyze): Populate the equivalent transforms hash-map.
9849         (dt_simplify::info): Add reference to hash-map entry.
9850         (dt_simplify::gen): If we have split out a function for the
9851         transform, generate a call to it.
9852         (sinfo_hashmap_traits::hash): New function.
9853         (compare_op): New helper function for ...
9854         (sinfo_hashmap_traits::equal_keys): ... this new function.
9855         (decision_tree::gen): Split out common equivalent transforms
9856         into functions.
9857
9858 2015-08-03  Richard Biener  <rguenther@suse.de>
9859
9860         * gimple-fold.c (fold_gimple_assign): Remove folding of
9861         the comparison in COND_EXPRs.
9862
9863 2015-08-03  Richard Biener  <rguenther@suse.de>
9864
9865         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
9866         on the rhs of assignments first simplify the embedded
9867         GENERIC condition.
9868
9869 2015-08-03  Richard Biener  <rguenther@suse.de>
9870
9871         PR tree-optimization/66917
9872         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
9873         field.
9874         (DR_VECT_AUX): New macro.
9875         (set_dr_misalignment): Adjust.
9876         (dr_misalignment): Likewise.
9877         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9878         Compute whether the base is at least element aligned.
9879         * tree-vect-stmts.c (ensure_base_align): Adjust.
9880         (vectorizable_store): If the base is not element aligned
9881         preserve alignment of the original access if misalignment is unknown.
9882         (vectorizable_load): Likewise.
9883
9884 2015-08-02  Martin Sebor  <msebor@redhat.com>
9885
9886         * c-family/c.opt (-Wframe-address): New warning option.
9887         * doc/invoke.texi (Wframe-address): Document it.
9888         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
9889         Clarify possible effects of calling the functions with non-zero
9890         arguments and mention -Wframe-address.
9891         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
9892
9893 2015-08-01  Michael Collison  <michael.collison@linaro.org
9894             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9895
9896         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
9897         (*arm_umin_cmp): Likewise.
9898
9899 2015-08-01  Caroline Tice  <cmtice@google.com>
9900
9901         PR 66521
9902         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
9903         global variables.
9904         (vtbl_find_mangled_name):  New function.
9905         (vtbl_register_mangled_name):  New function.
9906         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
9907         mangled name in mangled name vectors.
9908         (find_or_create_vtbl_map_node):  Ditto.
9909         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
9910         update recursion_depth on function entry; pass it to every recursive
9911         call; automatically exit if depth > 25 (give up looking at that point).
9912         (verify_bb_vtables):  Initialize recursion_depth and pass it to
9913         var_is_used_for_virtual_call_p.
9914         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
9915         global variable decls.
9916         (vtbl_register_mangled_name): New extern function decl.
9917
9918 2015-08-01  Tom de Vries  <tom@codesourcery.com>
9919
9920         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
9921         function.
9922         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
9923         Declare.
9924         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
9925         operation_no_trapping_overflow.  Allow non-overflow operations.
9926         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
9927         operations.
9928
9929 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9930
9931         PR target/67049
9932         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
9933
9934 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9935
9936         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
9937         Enable for TARGET_32BIT.
9938         (*if_move_neg): Likewise.
9939
9940 2015-07-31  Nick Clifton  <nickc@redhat.com>
9941
9942         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
9943         Returns true for __model__.
9944         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9945
9946 2015-07-31  Alan Modra  <amodra@gmail.com>
9947
9948         PR target/66870
9949         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
9950         (rs6000_emit_prologue): Set it.
9951         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
9952
9953 2015-07-31  Richard Biener  <rguenther@suse.de>
9954
9955         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
9956         -> X == (C1 ^ C2) which is already implemented in match.pd.
9957         Remove redundant dispatching to fold_relational_const.
9958         Move unordered self and NaN compares ...
9959         * match.pd: ... as patterns here.  Remove some stray captures
9960         and add a comment.
9961
9962 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
9963
9964         * config/i386/i386.c
9965         (bdesc_special_args): Convert mask type from signed to unsigned for
9966         masked builtins.
9967         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
9968         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
9969         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
9970         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
9971         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
9972         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
9973         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
9974         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
9975         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
9976         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
9977         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
9978         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
9979         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
9980         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
9981         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
9982         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
9983         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
9984         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
9985         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
9986         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
9987         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
9988         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
9989         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
9990         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
9991         * config/i386/i386-builtin-types.def
9992         (V16QI_FTYPE_V16SI): Remove.
9993         (V8DF_FTYPE_V8SI): Ditto.
9994         (V8HI_FTYPE_V8DI): Ditto.
9995         (V8SI_FTYPE_V8DI): Ditto.
9996         (V8SF_FTYPE_V8DF): Ditto.
9997         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
9998         (V16HI_FTYPE_V16SI): Ditto.
9999         (V16SF_FTYPE_V16HI): Ditto.
10000         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10001         (V16SF_FTYPE_V16SI): Ditto.
10002         (V4DI_FTYPE_V4DI): Ditto.
10003         (V16SI_FTYPE_V16SF): Ditto.
10004         (V16SF_FTYPE_FLOAT): Ditto.
10005         (V8DF_FTYPE_DOUBLE): Ditto.
10006         (V8DI_FTYPE_INT64): Ditto.
10007         (V8DI_FTYPE_V4DI): Ditto.
10008         (V16QI_FTYPE_V8DI): Ditto.
10009         (UINT_FTYPE_V4SF): Ditto.
10010         (UINT64_FTYPE_V4SF): Ditto.
10011         (UINT_FTYPE_V2DF): Ditto.
10012         (UINT64_FTYPE_V2DF): Ditto.
10013         (V16SI_FTYPE_V16SI): Ditto.
10014         (V8DI_FTYPE_V8DI): Ditto.
10015         (V16SI_FTYPE_PV4SI): Ditto.
10016         (V16SF_FTYPE_PV4SF): Ditto.
10017         (V8DI_FTYPE_PV2DI): Ditto.
10018         (V8DF_FTYPE_PV2DF): Ditto.
10019         (V4DI_FTYPE_PV2DI): Ditto.
10020         (V4DF_FTYPE_PV2DF): Ditto.
10021         (V16SI_FTYPE_PV2SI): Ditto.
10022         (V16SF_FTYPE_PV2SF): Ditto.
10023         (V8DI_FTYPE_PV4DI): Ditto.
10024         (V8DF_FTYPE_PV4DF): Ditto.
10025         (V8SF_FTYPE_FLOAT): Ditto.
10026         (V4SF_FTYPE_FLOAT): Ditto.
10027         (V4DF_FTYPE_DOUBLE): Ditto.
10028         (V8SF_FTYPE_PV4SF): Ditto.
10029         (V8SI_FTYPE_PV4SI): Ditto.
10030         (V4SI_FTYPE_PV2SI): Ditto.
10031         (V8SF_FTYPE_PV2SF): Ditto.
10032         (V8SI_FTYPE_PV2SI): Ditto.
10033         (V16SF_FTYPE_PV8SF): Ditto.
10034         (V16SI_FTYPE_PV8SI): Ditto.
10035         (V8DI_FTYPE_V8SF): Ditto.
10036         (V4DI_FTYPE_V4SF): Ditto.
10037         (V2DI_FTYPE_V4SF): Ditto.
10038         (V64QI_FTYPE_QI): Ditto.
10039         (V32HI_FTYPE_HI): Ditto.
10040         (V8UHI_FTYPE_V8UHI): Ditto.
10041         (V16UHI_FTYPE_V16UHI): Ditto.
10042         (V32UHI_FTYPE_V32UHI): Ditto.
10043         (V2UDI_FTYPE_V2UDI): Ditto.
10044         (V4UDI_FTYPE_V4UDI): Ditto.
10045         (V8UDI_FTYPE_V8UDI): Ditto.
10046         (V4USI_FTYPE_V4USI): Ditto.
10047         (V8USI_FTYPE_V8USI): Ditto.
10048         (V16USI_FTYPE_V16USI): Ditto.
10049         (V2DF_FTYPE_V2DF_UINT64): Ditto.
10050         (V2DI_FTYPE_V2DF_V2DF): Ditto.
10051         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
10052         (V8DF_FTYPE_V8DF_V8DI): Ditto.
10053         (V4SF_FTYPE_V4SF_UINT64): Ditto.
10054         (V4SI_FTYPE_V4SF_V4SF): Ditto.
10055         (V16SF_FTYPE_V16SF_V16SI): Ditto.
10056         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10057         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10058         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10059         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
10060         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10061         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10062         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
10063         (V16SI_FTYPE_V16SI_V4SI): Ditto.
10064         (V16SI_FTYPE_V16SI_V16SI): Ditto.
10065         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10066         (V16SI_FTYPE_V16SI_SI): Ditto.
10067         (V8DI_FTYPE_V8DI_V8DI): Ditto.
10068         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
10069         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10070         (V8DI_FTYPE_V8DI_V2DI): Ditto.
10071         (QI_FTYPE_QI): Ditto.
10072         (SI_FTYPE_SI): Ditto.
10073         (DI_FTYPE_DI): Ditto.
10074         (QI_FTYPE_QI_QI): Ditto.
10075         (QI_FTYPE_QI_INT): Ditto.
10076         (HI_FTYPE_HI_INT): Ditto.
10077         (SI_FTYPE_SI_INT): Ditto.
10078         (DI_FTYPE_DI_INT): Ditto.
10079         (HI_FTYPE_V16QI_V16QI): Ditto.
10080         (SI_FTYPE_V32QI_V32QI): Ditto.
10081         (DI_FTYPE_V64QI_V64QI): Ditto.
10082         (QI_FTYPE_V8HI_V8HI): Ditto.
10083         (HI_FTYPE_V16HI_V16HI): Ditto.
10084         (SI_FTYPE_V32HI_V32HI): Ditto.
10085         (QI_FTYPE_V4SI_V4SI): Ditto.
10086         (QI_FTYPE_V8SI_V8SI): Ditto.
10087         (QI_FTYPE_V2DI_V2DI): Ditto.
10088         (QI_FTYPE_V4DI_V4DI): Ditto.
10089         (QI_FTYPE_V8DI_V8DI): Ditto.
10090         (HI_FTYPE_V16SI_V16SI): Ditto.
10091         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
10092         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
10093         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
10094         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10095         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10096         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
10097         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
10098         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
10099         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10100         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
10101         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
10102         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
10103         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
10104         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
10105         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10106         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10107         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10108         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10109         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10110         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10111         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10112         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10113         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10114         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10115         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10116         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10117         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10118         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10119         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10120         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10121         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10122         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
10123         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
10124         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
10125         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10126         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10127         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10128         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
10129         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
10130         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
10131         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
10132         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
10133         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
10134         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
10135         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
10136         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
10137         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
10138         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10139         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10140         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
10141         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10142         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10143         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
10144         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
10145         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
10146         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
10147         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10148         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10149         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10150         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
10151         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
10152         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10153         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10154         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10155         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
10156         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10157         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10158         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10159         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10160         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10161         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10162         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10163         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10164         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10165         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
10166         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10167         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
10168         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
10169         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
10170         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10171         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10172         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
10173         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
10174         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
10175         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10176         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
10177         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
10178         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10179         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10180         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10181         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
10182         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10183         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
10184         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
10185         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10186         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10187         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10188         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10189         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
10190         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
10191         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
10192         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10193         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10194         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10195         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10196         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
10197         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
10198         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
10199         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
10200         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10201         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10202         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10203         (HI_FTYPE_HI): Ditto.
10204         (HI_FTYPE_V16QI): Ditto.
10205         (SI_FTYPE_V32QI): Ditto.
10206         (DI_FTYPE_V64QI): Ditto.
10207         (QI_FTYPE_V8HI): Ditto.
10208         (HI_FTYPE_V16HI): Ditto.
10209         (SI_FTYPE_V32HI): Ditto.
10210         (QI_FTYPE_V4SI): Ditto.
10211         (QI_FTYPE_V8SI): Ditto.
10212         (HI_FTYPE_V16SI): Ditto.
10213         (QI_FTYPE_V2DI): Ditto.
10214         (QI_FTYPE_V4DI): Ditto.
10215         (QI_FTYPE_V8DI): Ditto.
10216         (V16QI_FTYPE_HI): Ditto.
10217         (V32QI_FTYPE_SI): Ditto.
10218         (V64QI_FTYPE_DI): Ditto.
10219         (V8HI_FTYPE_QI): Ditto.
10220         (V16HI_FTYPE_HI): Ditto.
10221         (V32HI_FTYPE_SI): Ditto.
10222         (V4SI_FTYPE_QI): Ditto.
10223         (V4SI_FTYPE_HI): Ditto.
10224         (V8SI_FTYPE_QI): Ditto.
10225         (V8SI_FTYPE_HI): Ditto.
10226         (V2DI_FTYPE_QI): Ditto.
10227         (V4DI_FTYPE_QI): Ditto.
10228         (HI_FTYPE_HI_HI): Ditto.
10229         (SI_FTYPE_SI_SI): Ditto.
10230         (DI_FTYPE_DI_DI): Ditto.
10231         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10232         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10233         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10234         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10235         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10236         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10237         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10238         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10239         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10240         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10241         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10242         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10243         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10244         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10245         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10246         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10247         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10248         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10249         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10250         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10251         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
10252         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
10253         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
10254         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
10255         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
10256         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
10257         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
10258         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
10259         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
10260         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
10261         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
10262         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
10263         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
10264         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
10265         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
10266         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
10267         (V16SI_FTYPE_HI): Ditto.
10268         (V8DI_FTYPE_QI): Ditto.
10269         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10270         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10271         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10272         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10273         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10274         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10275         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10276         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10277         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10278         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10279         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10280         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10281         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10282         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10283         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10284         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
10285         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
10286         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10287         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10288         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10289         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10290         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10291         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10292         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10293         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10294         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
10295         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
10296         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
10297         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10298         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10299         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10300         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10301         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10302         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
10303         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
10304         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
10305         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10306         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10307         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10308         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
10309         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10310         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10311         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
10312         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
10313         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10314         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10315         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10316         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10317         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10318         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10319         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10320         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10321         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
10322         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10323         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10324         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10325         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10326         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10327         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10328         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10329         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10330         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10331         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10332         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10333         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10334         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
10335         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
10336         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
10337         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10338         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
10339         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
10340         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
10341         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10342         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
10343         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
10344         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
10345         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
10346         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
10347         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10348         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
10349         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
10350         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10351         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10352         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10353         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10354         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10355         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10356         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10357         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10358         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10359         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10360         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10361         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10362         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10363         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10364         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10365         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10366         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10367         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10368         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10369         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10370         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10371         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10372         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10373         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10374         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10375         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10376         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10377         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10378         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10379         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10380         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10381         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10382         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10383         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10384         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
10385         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
10386         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
10387         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10388         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10389         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10390         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
10391         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10392         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10393         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10394         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10395         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10396         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10397         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10398         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10399         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
10400         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
10401         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
10402         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10403         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10404         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10405         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10406         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10407         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10408         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10409         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10410         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10411         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10412         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10413         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10414         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10415         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10416         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10417         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10418         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10419         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10420         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10421         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10422         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10423         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
10424         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
10425         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
10426         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10427         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10428         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10429         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10430         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10431         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10432         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10433         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10434         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
10435         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10436         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10437         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
10438         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10439         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10440         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
10441         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
10442         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
10443         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10444         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10445         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
10446         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10447         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10448         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10449         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10450         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10451         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10452         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10453         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10454         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10455         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10456         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
10457         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10458         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10459         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10460         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10461         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10462         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10463         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10464         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10465         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10466         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10467         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10468         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10469         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10470         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10471         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10472         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10473         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10474         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10475         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10476         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10477         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10478         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10479         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10480         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10481         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10482         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
10483         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10484         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10485         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10486         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10487         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10488         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10489         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10490         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10491         (QI_FTYPE_V8DF_INT_QI): Ditto.
10492         (QI_FTYPE_V4DF_INT_QI): Ditto.
10493         (QI_FTYPE_V2DF_INT_QI): Ditto.
10494         (HI_FTYPE_V16SF_INT_HI): Ditto.
10495         (QI_FTYPE_V8SF_INT_QI): Ditto.
10496         (QI_FTYPE_V4SF_INT_QI): Ditto.
10497         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
10498
10499 2015-07-31  Richard Biener  <rguenther@suse.de>
10500
10501         * gimple-fold.c (fold_gimple_assign): Remove folding of
10502         GIMPLE_BINARY_RHS.
10503
10504 2015-07-31  Tom de Vries  <tom@codesourcery.com>
10505
10506         PR tree-optimization/66846
10507         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
10508         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
10509         (expand_omp_target) [ENABLE_CHECKING]: Same.
10510         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
10511         cfun if !LOOPS_NEED_FIXUP.
10512         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
10513         that omp_for already has its own loop struct.
10514         * tree-parloops.c (create_phi_for_local_result)
10515         (create_call_for_reduction): Handle simple latch bb.
10516         (create_parallel_loop): Add simple latch bb to preserve
10517         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
10518         (gen_parallel_loop): Remove call to cancel_loop_tree.
10519         (parallelize_loops): Skip loops that are inner loops of parallelized
10520         loops.
10521         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
10522         verify_loop_structure.
10523
10524 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10525
10526         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
10527         * config/v850/v850.md (RV_REGNUM): New constants.
10528         * config/v850/v850.c (v850_libcall_value): New functions.
10529         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
10530         (TARGET_LIBCALL_VALUE): Define.
10531
10532 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10533
10534         * rtl.h (lowpart_subreg): Move in file.
10535         * loop-iv.c (lowpart_subreg): Move to...
10536         * simplify-rtx.c (lowpart_subreg): ...here.
10537           (simplify_binary_operation_1): Use lowpart_subreg instead of
10538           simplify_gen_subreg.
10539         * expr.c (expand_expr_real_2): Ditto.
10540         * emit-rtl.c (gen_lowpart_common): Ditto.
10541         * combine.c (gen_lowpart_for_combine): Ditto.
10542         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
10543           expand_debug_source_expr): Ditto.
10544
10545 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
10546
10547         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
10548         (expand_builtin_atomic_clear): Remove support for atomic_clear
10549         pattern.
10550
10551 2015-07-30  Richard Biener  <rguenther@suse.de>
10552
10553         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
10554         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
10555         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
10556         redundant operand canonicalization.
10557
10558 2015-07-30  David Sherwood  <david.sherwood@arm.com>
10559
10560         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
10561         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
10562         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
10563         * config/arm/arm.c (neon_valid_immediate): Likewise.
10564         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
10565         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
10566         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
10567         (expand_vec_perm_vpshufb2_vpermq): Likewise.
10568         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
10569         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
10570         * config/i386/sse.md
10571         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
10572         (*ssse3_palignr<mode>_perm): Likewise.
10573         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
10574         * config/spu/spu.c (arith_immediate_p): Likewise.
10575         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10576         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
10577
10578 2015-07-30  Richard Biener  <rguenther@suse.de>
10579
10580         * genmatch.c (decision_tree::gen_gimple): Merge with ...
10581         (decision_tree::gen_generic): ... this into ...
10582         (decision_tree::gen): ... this.
10583         (main): Adjust callers.
10584
10585 2015-07-30  Richard Biener  <rguenther@suse.de>
10586
10587         * genmatch.c (verbose): New global.
10588         (warning_at): Add overload with source_location.
10589         (capture_info::capture_info): Add bool whether generating gimple
10590         or generic.  Add gimple member.
10591         (capture_info::cinfo): Add capture member.
10592         (capture_info::walk_match): Record capture.  Warn on
10593         non-captured leafs.
10594         (capture_info::walk_c_expr): Add more fragments captures cannot
10595         escape through.  Warn on escaped captures.
10596         (dt_simplify::gen_1): Warn on operands we force to have no
10597         side-effects.
10598         (main): Initialize verbose.
10599         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
10600
10601 2015-07-30  Richard Biener  <rguenther@suse.de>
10602
10603         PR middle-end/67053
10604         * match.pd: Allow both operands to independently have conversion
10605         when simplifying compares of addresses.
10606
10607 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
10608
10609         PR target/66217
10610         PR target/67045
10611         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
10612         around those cases that need one.
10613
10614 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
10615
10616         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
10617
10618 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
10619
10620         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
10621         New.  Copied from config/i386/gnu-user.h.
10622         (ASM_COMMENT_START): Likewise.
10623         (DBX_REGISTER_NUMBER): Likewise.
10624
10625 2015-07-29  Richard Biener  <rguenther@suse.de>
10626
10627         * gimple-fold.c (fold_gimple_cond): Remove.
10628         (fold_stmt_1): Do not call it.
10629
10630 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
10631
10632         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
10633         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
10634
10635         * config/aarch64/aarch64-modes.def: Add HFmode.
10636
10637         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
10638         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
10639
10640         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
10641         aarch64_promoted_type): New.
10642
10643         (aarch64_float_const_representable_p): Disable HFmode.
10644         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
10645         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
10646         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
10647
10648         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
10649         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
10650
10651         * config/aarch64/iterators.md (GPF_F16): New.
10652
10653 2015-07-29  Richard Biener  <rguenther@suse.de>
10654
10655         * match.pd: Merge address comparison patterns and make them
10656         handle some more cases.
10657
10658 2015-07-29  Richard Biener  <rguenther@suse.de>
10659
10660         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
10661         (parser::parse_capture): Add bool argument on whether to reject
10662         unknown captures.
10663         (parser::parse_expr): Adjust.
10664         (parser::parse_op): Likewise.
10665         (parser::parse_pattern): Likewise.
10666
10667 2015-07-29  Richard Biener  <rguenther@suse.de>
10668
10669         * gimple-fold.c (has_use_on_stmt): New function.
10670         (replace_stmt_with_simplification): Use it to allow
10671         abnormals originally referenced in the stmt.
10672         (fold_stmt_1): Canonicalize operand order.
10673
10674 2015-07-28  David Sherwood  <david.sherwood@arm.com>
10675
10676         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
10677         GET_MODE_INNER unconditionally.
10678         * config/spu/spu.c (arith_immediate_p): Likewise.
10679         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
10680         * expmed.c (synth_mult): Remove check for VOIDmode result from
10681         GET_MODE_INNER.
10682         (expand_mult_const): Likewise.
10683         * fold-const.c (fold_binary_loc): Replace call to element_precision
10684         with call to GET_MODE_PRECISION.
10685         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
10686         m->name.
10687         (emit_mode_inner): Likewise.
10688         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
10689         result check.
10690         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
10691         (GET_MODE_UNIT_PRECISION): Likewise.
10692         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
10693         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10694         * stor-layout.c (bitwise_type_for_mode): Update assert.
10695         (element_precision): Remove.
10696
10697 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10698
10699         * target-insns.def (reload_load_address): New targetm instruction
10700         pattern.
10701         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
10702
10703 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10704
10705         * target-insns.def (atomic_test_and_set): New targetm instruction
10706         pattern.
10707         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
10708         HAVE_*/gen_* interface.
10709
10710 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10711
10712         * target-insns.def (can_extend, ptr_extend): New targetm instruction
10713         patterns.
10714         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
10715         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10716         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10717         * rtlanal.c (nonzero_bits1): Likewise.
10718         (num_sign_bit_copies1): Likewise.
10719
10720 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10721
10722         * target-insns.def (eh_return): New targetm instruction pattern.
10723         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
10724         interface.
10725         * function.c (thread_prologue_and_epilogue_insns): Remove
10726         preprocessor condition.
10727
10728 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10729
10730         * target-insns.def (indirect_jump): New targetm instruction pattern.
10731         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
10732         interface.
10733
10734 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10735
10736         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
10737         instead of nonimmediate_operand.  Remove C condiition.
10738
10739 2015-07-28  Richard Biener  <rguenther@suse.de>
10740
10741         * match.pd: Add more simplification of address comparisons.
10742
10743 2015-07-28  Richard Biener  <rguenther@suse.de>
10744
10745         * match.pd: Re-order two cases in comparison with max/min
10746         value simplification to make it apply for bools.
10747
10748 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10749
10750         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
10751         Handle simple SIGN_EXTEND or ZERO_EXTEND.
10752         (aarch64_rtx_costs): Properly strip extend or extract before
10753         passing down to rtx costs again.
10754
10755 2015-07-28  Nick Clifton  <nickc@redhat.com>
10756
10757         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
10758         Optimizes the case where -mes0 is active and a constant symbolic
10759         address is used.
10760         * config/rl78/rl78-protos.h: Prototype the new function.
10761         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
10762
10763 2015-07-28  Tom de Vries  <tom@codesourcery.com>
10764
10765         * tree-parloops.c (reduc_stmt_res): New function.
10766         (initialize_reductions, add_field_for_reduction)
10767         (create_phi_for_local_result, create_loads_for_reductions)
10768         (create_stores_for_reduction, build_new_reduction): Handle case that
10769         reduc_stmt is a phi.
10770         (gather_scalar_reductions): Allow double_reduc reductions.
10771
10772 2015-07-28  Richard Biener  <rguenther@suse.de>
10773
10774         * fold-const.c (fold_comparison): Remove equality folding
10775         of decl addresses ...
10776         * match.pd: ... here and merge with existing pattern.
10777
10778 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10779
10780         PR tree-optimization/66828
10781         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
10782         from int64_t to uint64_t.
10783
10784 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10785
10786         * opts-common.c (read_cmdline_option): List DriverOnly enum values
10787         as valid only in the error message of the driver, not in the
10788         messages of the language compilers.
10789
10790 2015-07-27  Tom de Vries  <tom@codesourcery.com>
10791
10792         * tree-parloops.c (gather_scalar_reductions): Simplify function
10793         structure.
10794
10795 2015-07-27  Marek Polacek  <polacek@redhat.com>
10796
10797         * ipa-devirt.c (types_same_for_odr): Fix typo.
10798
10799 2015-07-27  Jason Merrill  <jason@redhat.com>
10800
10801         PR debug/66468
10802         * dwarf2out.c (gen_inlined_subroutine_die): Check
10803         cgraph_function_possibly_inlined_p.
10804
10805 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10806
10807         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
10808         Place integer variant first.
10809         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10810
10811 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10812
10813         PR/63870
10814         * config/arm/arm-builtins.c (enum arm_builtins):
10815         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
10816         (ARM_BUILTIN_NEON_BASE): Rename macro to....
10817         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
10818         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
10819         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
10820
10821 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10822
10823         PR/63870
10824         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
10825         Add qualifier_lane_index.
10826         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
10827         (arm_getlane_qualifiers): Use qualifier_lane_index.
10828         (arm_lanemac_qualifiers): Rename to...
10829         (arm_mac_n_qualifiers): ...this.
10830         (LANEMAC_QUALIFIERS): Rename to...
10831         (MAC_N_QUALIFIERS): ...this.
10832         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
10833         (arm_setlane_qualifiers): Use qualifier_lane_index.
10834         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
10835         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
10836         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
10837         (arm_expand_neon_builtin): Handle qualifier_lane_index.
10838
10839         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
10840         * config/arm/arm.c (bounds_check): Likewise, improve error message.
10841         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
10842         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
10843         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
10844         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
10845         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
10846         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
10847         qualifiers to TERNOP_IMM.
10848         (vdup_lane): Change qualifiers to GETLANE.
10849         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
10850         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
10851         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
10852         vqdmlsl_n): Change qualifiers to MAC_N.
10853
10854         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
10855         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
10856         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
10857         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
10858         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
10859         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
10860         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
10861         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
10862         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
10863         Remove call to neon_lane_bounds.
10864
10865 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10866
10867         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10868         Place integer variant first.
10869
10870 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
10871
10872         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
10873         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
10874         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
10875         for armv6kz targets.
10876         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
10877         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
10878         (FL_FOR_ARCH6ZK): Remove.
10879         (FL_FOR_ARCH6KZ): New.
10880         (arm_arch6zk): New declaration.
10881         * config/arm/arm-tables.opt: Regenerate.
10882         * config/arm/arm.c (arm_arch6kz): New.
10883         (arm_option_override): Set arm_arch6kz.
10884         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
10885         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
10886         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
10887
10888 2015-07-27  Marek Polacek  <polacek@redhat.com>
10889
10890         PR c++/66555
10891         PR c/54979
10892         * doc/invoke.texi: Document -Wtautological-compare.
10893
10894 2015-07-27  Richard Biener  <rguenther@suse.de>
10895
10896         * genmatch.c (decision_tree::gen_gimple): Split out large
10897         subtrees into separate functions.
10898         (decision_tree::gen_generic): Likewise.
10899
10900 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
10901
10902         * config/alpha/alpha.c: Use SUBREG_P predicate.
10903         * config/alpha/predicates.md: Ditto.
10904
10905 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10906
10907         * config.host (s390*-*-*): Include driver-native.c only when
10908         building with s390* as host *and* target.
10909
10910 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
10911
10912         PR target/66930
10913         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
10914         T bit register modified_between_p check.
10915
10916 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10917
10918         * config/i386/i386.c: Use SUBREG_P predicate.
10919         * config/i386/i386.md: Ditto.
10920         * config/i386/sse.md: Ditto.
10921         * config/i386/predicates.md: Ditto.
10922
10923 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10924
10925         PR target/67004
10926         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
10927         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
10928
10929 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10930
10931         * Makefile.in: Remove use of TREEBROWSER.
10932         * config.in: Regenerated.
10933         * configure: Regenerated.
10934         * configure.ac: Remove definition of TREEBROWSER.
10935         * tree-browser.c: Removed.
10936         * tree-browser.def: Removed.
10937
10938 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10939
10940         * graphite-scop-detection.c: Include gimple-pretty-print.h.
10941         (stmt_simple_for_scop_p): Print when a stmt is not handled in
10942         Graphite.
10943         (scopdet_basic_block_info): Print when a loop or bb cannot be
10944         represented in Graphite.
10945
10946 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10947
10948         PR target/66648
10949         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
10950         execution guard when min_size is less than size_needed.
10951
10952 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10953
10954         * doc/install.texi: Document supported versions of ISL.
10955
10956 2015-07-25  Jeff Law  <law@redhat.com>
10957
10958         Revert:
10959         PR lto/66752
10960         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10961         unable to find X NE 0 in the tables, return X as the simplified
10962         condition.
10963         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10964         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10965         to VISISTED_BBS.  */
10966         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10967         after removing the control flow statement and unnecessary edges.
10968
10969 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
10970
10971         Revert:
10972         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10973
10974         PR rtl-optimization/64164
10975         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10976         * tree-ssa-copyrename.c: Removed.
10977         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10978         -ftree-coalesce-vars.
10979         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10980         * common.opt (ftree-copyrename): Ignore.
10981         (ftree-coalesce-inlined-vars): Likewise.
10982         * doc/invoke.texi: Remove the ignored options above.
10983         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10984         * tree-ssa-coalesce.h: ... here.
10985         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10986         headers required by it.
10987         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10988         across variables when flag_tree_coalesce_vars.  Check register
10989         use and promoted modes to allow coalescing.  Moved to
10990         tree-ssa-coalesce.c.
10991         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10992         with its member functions to tree-ssa-coalesce.c.
10993         (var_map_base_init): Likewise.  Renamed to
10994         compute_samebase_partition_bases.
10995         (partition_view_normal): Drop want_bases parameter.
10996         (partition_view_bitmap): Likewise.
10997         * tree-ssa-live.h: Adjust declarations.
10998         * tree-ssa-coalesce.c: Include explow.h.
10999         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11000         default defs at the entry point.
11001         (dump_part_var_map): New.
11002         (compute_optimized_partition_bases): New, called by...
11003         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11004         of compute_samebase_partition_bases.  Adjust.
11005         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11006         * cfgexpand.c (leader_merge): New.
11007         (get_rtl_for_parm_ssa_default_def): New.
11008         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11009         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11010         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11011         redundant MEM attr setting.
11012         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11013         from...
11014         (expand_one_stack_var): ... this.  New wrapper to check and
11015         skip already expanded SSA partitions.
11016         (record_alignment_for_reg_var): New, factored out of...
11017         (expand_one_var): ... this.
11018         (expand_one_ssa_partition): New.
11019         (adjust_one_expanded_partition_var): New.
11020         (expand_one_register_var): Check and skip already expanded SSA
11021         partitions.
11022         (expand_used_vars): Don't create DECLs for anonymous SSA
11023         names.  Expand all SSA partitions, then adjust all SSA names.
11024         (pass::execute): Replace the loops that set
11025         SA.partition_to_pseudo from partition leaders and cleared
11026         DECL_RTL for multi-location variables, and that which used to
11027         rename vars and set attrs, with one that clears DECL_RTL and
11028         checks that PARMs and RESULTs default_defs match DECL_RTL.
11029         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11030         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11031         * explow.c (promote_ssa_mode): New.
11032         * explow.h (promote_ssa_mode): Declare.
11033         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11034         * function.c: Include cfgexpand.h.
11035         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11036         (use_register_for_parm_decl): Wrapper for the above to
11037         special-case the result_ptr.
11038         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11039         (split_complex_args): Take assign_parm_data_all argument.
11040         Pass it to rtl_for_parm.  Set up rtl and context for split
11041         args.
11042         (assign_parms_augmented_arg_list): Adjust.
11043         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11044         multiple locations.  Recognize split complex args.
11045         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11046         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11047         (assign_parm_setup_block): Prefer SSA-assigned location.
11048         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11049         if stack_parm is NULL.
11050         (assign_parm_setup_stack): Prefer SSA-assigned location.
11051         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11052         rtl before testing for pointer bounds.  Special-case result_ptr.
11053         (expand_function_start): Maybe reset DECL_RTL of result.
11054         Prefer SSA-assigned location for result and static chain.
11055         Factor out DECL_RESULT and SET_DECL_RTL.
11056         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11057         anonymous SSA names.  Use promote_ssa_mode.
11058         (get_temp_reg): Likewise.
11059         (remove_ssa_form): Adjust.
11060         * stor-layout.c (layout_decl): Don't set mem attributes of
11061         non-MEMs.
11062         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11063         and get its reg_usage for reg invalidation.
11064         (compute_bb_dataflow): Pass it insn.
11065         (emit_notes_in_bb): Likewise.
11066
11067 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
11068
11069         * config/i386/i386.c (ix86_va_start): Remove
11070         unneeded !TARGET_64BIT check.
11071         (ix86_gimplify_va_arg): Ditto.
11072
11073 2015-07-24  Tom de Vries  <tom@codesourcery.com>
11074
11075         * graphite-sese-to-poly.c (build_poly_scop): Always call
11076         rewrite_commutative_reductions_out_of_ssa.
11077
11078 2015-07-24  Tom de Vries  <tom@codesourcery.com>
11079
11080         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
11081         flag_associative_math to FLOAT_TYPE_P.  Honour
11082         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
11083
11084 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11085
11086         PR c++/64079
11087         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
11088         and "%qD" in warning_at instead of "%q+D" in warning.
11089
11090 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
11091
11092         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
11093         (ix86_function_abi): Cleanup.
11094
11095 2015-07-24  Michael Darling  <darlingm@gmail.com>
11096
11097         PR other/66259
11098         * acinclude.m4: Reflects renaming of configure.in to configure.ac
11099         * configure: Likewise
11100         * configure.ac: Likewise
11101         * doc/install.texi: Likewise
11102         * doc/tm.texi: Likewise
11103         * doc/tm.texi.in: Likewise
11104
11105 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11106
11107         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
11108         manually swapping values.
11109         * cse.c (fold_rtx): Likewise.
11110         * lra-eliminations.c (form_sum): Likewise.
11111
11112 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
11113
11114         PR target/64003
11115         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
11116         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
11117         (*jcc_1, *jcc_2, jump, simple_return_internal)
11118         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
11119         Set length_nobnd attribute instead of length attribute.
11120         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
11121         (length_nobnd): Remove attribute.
11122         (length): Remove length_nobnd processing.
11123
11124 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
11125
11126         * gimplify.c (omp_default_clause): New function.  Reorganize flow
11127         for clarity. Broken out of ...
11128         (omp_notice_variable): ... here.
11129
11130 2015-07-24  Gary Funck  <gary@intrepid.com>
11131
11132         PR middle-end/66984
11133         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
11134         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
11135
11136 2015-07-24  Tom de Vries  <tom@codesourcery.com>
11137
11138         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
11139         exit-first loop transform.
11140
11141 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
11142
11143         PR 66714
11144         * tree-cfg.c (struct replace_decls_d): New struct.
11145         (replace_block_vars_by_duplicates_1): New function.
11146         (replace_block_vars_by_duplicates): Use it to replace the decls
11147         in the value exprs by duplicates.
11148
11149 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11150
11151         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
11152         -shared, -symbolic, -rdynamic.
11153
11154 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11155
11156         PR target/65711
11157         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
11158         -dynamic-linker within %{!static %{!shared, and -rdynamic within
11159         %{!static.
11160
11161 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
11162
11163         PR ipa/66566
11164         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
11165         edge summary is available.
11166
11167 2015-07-24  Richard Biener  <rguenther@suse.de>
11168
11169         * genmatch.c (struct dt_node): Add statistic fields.
11170         (dt_node::analyze): New method.
11171         (decision_tree::gen_gimple): Call analyze on the root node
11172         and print statistics to stderr.
11173         (decision_tree::gen_generic): Likewise.
11174
11175 2015-07-24  Richard Biener  <rguenther@suse.de>
11176
11177         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
11178         against the highest or lowest possible integer ...
11179         * match.pd: ... as patterns here.
11180
11181 2015-07-24  Richard Biener  <rguenther@suse.de>
11182
11183         * genmatch.c (struct capture_info): Add same_as field.
11184         (capture_info::capture_info): Initialize same_as.
11185         (capture_info::walk_match): Compute same_as.
11186         (capture_info::walk_result): Compute stuff for the leader.
11187         (capture_info::walk_c_expr): Likewise.
11188         (dt_simplify::gen_1): Only look at leaders when deciding
11189         to force no side-effects or emit side-effects of omitted operands.
11190
11191 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11192
11193         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
11194         reg note to the GPR -> FPR save instructions.
11195
11196 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11197
11198         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
11199         cheaper.
11200         (s390_expand_insv): Don't generate risbg pattern for constant zero
11201         sources.
11202         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
11203         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
11204         splitters.
11205
11206 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11207
11208         * config/s390/s390.c (s390_reorg): Clean up handling of processors
11209         with
11210         -mtune=
11211         (s390_issue_rate): Likewise.
11212         (s390_sched_reorder): Likewise.
11213         (s390_sched_variable_issue): Likewise.
11214         (s390_loop_unroll_adjust): Likewise.
11215         (s390_option_override):  Likewise.
11216
11217 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11218
11219         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
11220         processor capabilities with -march=native.
11221         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
11222         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
11223         (S390_TARGET_BITS_STRING): Macro to simplify specs.
11224
11225 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11226
11227         * config/s390/s390.c (s390_issue_rate): Handle
11228         PROCESSOR_2094_Z9_EC.
11229         (s390_option_override): Likewise.
11230         (s390_adjust_priority): Likewise.
11231
11232 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11233
11234         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
11235         when cross compiling.
11236
11237 2015-07-24  Richard Biener  <rguenther@suse.de>
11238
11239         * fold-const.c (maybe_canonicalize_comparison_1): Move
11240         A code CST canonicalization ...
11241         * match.pd: ... to a pattern here.
11242
11243 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
11244
11245         Revert:
11246         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11247         PR target/63521
11248         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11249         (HONOR_REG_ALLOC_ORDER): Define.
11250
11251 2015-07-24  Richard Biener  <rguenther@suse.de>
11252
11253         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
11254         * fold-const.c (fold_comparison): Move parameter does not
11255         alias &local simplification ...
11256         * match.pd: ... as a pattern here.
11257
11258 2015-07-24  Richard Biener  <rguenther@suse.de>
11259
11260         * gimple-fold.c (replace_stmt_with_simplification): Special-case
11261         valueizing call operands.
11262         * gimple-match-head.c (maybe_push_res_to_seq): Take
11263         number of call arguments from ops array.
11264         (do_valueize): New function.
11265         (gimple_simplify): Return true if valueization changed
11266         any operand even if the result didn't simplify further.
11267
11268 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11269
11270         PR middle-end/25530
11271         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
11272
11273 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11274
11275         PR middle-end/25529
11276         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
11277
11278 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11279
11280         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
11281         instruction.
11282
11283 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11284
11285         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
11286         clean up.
11287
11288 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
11289
11290         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
11291         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
11292         targets here.
11293         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
11294         ms_va_list_type_node initialization.
11295
11296 2015-07-23  Jeff Law  <law@redhat.com>
11297
11298         PR lto/66752
11299         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
11300         unable to find X NE 0 in the tables, return X as the simplified
11301         condition.
11302         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
11303         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
11304         to VISISTED_BBS.  */
11305         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
11306         after removing the control flow statement and unnecessary edges.
11307
11308 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11309
11310         * tree-pass.h (get_current_pass_name): Removed.
11311
11312 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
11313
11314         PR rtl-optimization/64164
11315         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11316         * tree-ssa-copyrename.c: Removed.
11317         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11318         -ftree-coalesce-vars.
11319         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11320         * common.opt (ftree-copyrename): Ignore.
11321         (ftree-coalesce-inlined-vars): Likewise.
11322         * doc/invoke.texi: Remove the ignored options above.
11323         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11324         * tree-ssa-coalesce.h: ... here.
11325         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11326         headers required by it.
11327         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11328         across variables when flag_tree_coalesce_vars.  Check register
11329         use and promoted modes to allow coalescing.  Moved to
11330         tree-ssa-coalesce.c.
11331         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11332         with its member functions to tree-ssa-coalesce.c.
11333         (var_map_base_init): Likewise.  Renamed to
11334         compute_samebase_partition_bases.
11335         (partition_view_normal): Drop want_bases parameter.
11336         (partition_view_bitmap): Likewise.
11337         * tree-ssa-live.h: Adjust declarations.
11338         * tree-ssa-coalesce.c: Include explow.h.
11339         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11340         default defs at the entry point.
11341         (dump_part_var_map): New.
11342         (compute_optimized_partition_bases): New, called by...
11343         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11344         of compute_samebase_partition_bases.  Adjust.
11345         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11346         * cfgexpand.c (leader_merge): New.
11347         (get_rtl_for_parm_ssa_default_def): New.
11348         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11349         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11350         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11351         redundant MEM attr setting.
11352         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11353         from...
11354         (expand_one_stack_var): ... this.  New wrapper to check and
11355         skip already expanded SSA partitions.
11356         (record_alignment_for_reg_var): New, factored out of...
11357         (expand_one_var): ... this.
11358         (expand_one_ssa_partition): New.
11359         (adjust_one_expanded_partition_var): New.
11360         (expand_one_register_var): Check and skip already expanded SSA
11361         partitions.
11362         (expand_used_vars): Don't create DECLs for anonymous SSA
11363         names.  Expand all SSA partitions, then adjust all SSA names.
11364         (pass::execute): Replace the loops that set
11365         SA.partition_to_pseudo from partition leaders and cleared
11366         DECL_RTL for multi-location variables, and that which used to
11367         rename vars and set attrs, with one that clears DECL_RTL and
11368         checks that PARMs and RESULTs default_defs match DECL_RTL.
11369         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11370         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11371         * explow.c (promote_ssa_mode): New.
11372         * explow.h (promote_ssa_mode): Declare.
11373         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11374         * function.c: Include cfgexpand.h.
11375         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11376         (use_register_for_parm_decl): Wrapper for the above to
11377         special-case the result_ptr.
11378         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11379         (split_complex_args): Take assign_parm_data_all argument.
11380         Pass it to rtl_for_parm.  Set up rtl and context for split
11381         args.
11382         (assign_parms_augmented_arg_list): Adjust.
11383         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11384         multiple locations.  Recognize split complex args.
11385         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11386         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11387         (assign_parm_setup_block): Prefer SSA-assigned location.
11388         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11389         if stack_parm is NULL.
11390         (assign_parm_setup_stack): Prefer SSA-assigned location.
11391         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11392         rtl before testing for pointer bounds.  Special-case result_ptr.
11393         (expand_function_start): Maybe reset DECL_RTL of result.
11394         Prefer SSA-assigned location for result and static chain.
11395         Factor out DECL_RESULT and SET_DECL_RTL.
11396         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11397         anonymous SSA names.  Use promote_ssa_mode.
11398         (get_temp_reg): Likewise.
11399         (remove_ssa_form): Adjust.
11400         * stor-layout.c (layout_decl): Don't set mem attributes of
11401         non-MEMs.
11402         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11403         and get its reg_usage for reg invalidation.
11404         (compute_bb_dataflow): Pass it insn.
11405         (emit_notes_in_bb): Likewise.
11406
11407 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
11408
11409         PR target/66217
11410         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
11411         prototype.
11412         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
11413         (rs6000_emit_2insn_and): Handle dot forms.
11414         * config/rs6000/rs6000.md (and<mode>3): Adjust.
11415         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
11416         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
11417
11418 2015-07-23  Richard Biener  <rguenther@suse.de>
11419
11420         * generic-match-head.c: Include cgraph.h.
11421         * gimple-match-head.c: Likewise.
11422         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
11423         SSA names.
11424         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
11425         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
11426         pattern.
11427
11428 2015-07-23  Richard Biener  <rguenther@suse.de>
11429
11430         * gimple-fold.c (fold_gimple_cond): Do not require folding
11431         results to pass valid_gimple_rhs_p.
11432         * tree-cfg.h (fold_cond_expr_cond): Remove.
11433         * tree-cfg.c (fold_cond_expr_cond): Likewise.
11434         (make_edges): Do not call it.
11435         * tree-inline.c (tree_function_versioning): Likewise.
11436
11437 2015-07-23  Tom de Vries  <tom@codesourcery.com>
11438
11439         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
11440         vect_force_simple_reduction.
11441         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
11442         (vect_is_simple_reduction_1): Add and handle
11443         need_wrapping_integral_overflow parameter.
11444         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
11445         need_wrapping_integral_overflow parameter.
11446         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
11447         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
11448         decl.
11449
11450 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
11451
11452         PR tree-optimization/66926,66951
11453         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
11454         INNER_LOOP and fix up condition for renaming virtual operands.
11455
11456 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11457
11458         * combine.c (try_combine): Use std::swap instead of manually
11459         swapping.
11460
11461 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
11462
11463         * config/mips/i6400.md: New file.
11464         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
11465         (mips64r6): Likewise.
11466         (i6400): Define.
11467         * config/mips/mips-tables.opt: Regenerate.
11468         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
11469         (mips_issue_rate): Add support for i6400.
11470         (mips_multipass_dfa_lookahead): Likewise.
11471         * config/mips/mips.h (TUNE_I6400): Define.
11472         * config/mips/mips.md: Include i6400.md.
11473         (processor): Add i6400.
11474         * doc/invoke.texi (-march=@var{arch}): Add i6400.
11475
11476 2015-07-23  Richard Biener  <rguenther@suse.de>
11477
11478         PR middle-end/66916
11479         * match.pd: Guard widen and sign-change comparison simplification
11480         with single_use.
11481
11482 2015-07-23  Richard Biener  <rguenther@suse.de>
11483
11484         PR tree-optimization/66945
11485         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
11486         ::before_dom_children): Force the propagators idea of
11487         non-executable edges to materialize, not what the folder
11488         chooses.
11489
11490 2015-07-23  Richard Biener  <rguenther@suse.de>
11491
11492         * gimple.h (gimple_cond_make_false): Use 0 != 0.
11493         (gimple_cond_make_true): Use 1 != 0.
11494
11495 2015-07-22  DJ Delorie  <dj@redhat.com>
11496
11497         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
11498         slashes.
11499
11500         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
11501         (ashrhi3): Likewise.
11502         (lshrhi3): Likewise.
11503         (movhi): Take advantage of zero-extend to load small constants.
11504         (movpsi): Likewise.
11505         (and<mode>3): Likewise.
11506         (zero_extendqihi2): Likewise.
11507         (zero_extendqisi2): New.
11508         * config/msp430/constraints.md (N,O): New.
11509         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
11510
11511 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
11512
11513         PR target/66954
11514         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
11515         to enum feature_priority and feature_list.
11516         (fold_builtin_cpu): Add F_AES to enum processor_features
11517         and isa_names_table.
11518
11519 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11520
11521         PR driver/66737
11522         * config/i386/linux-common.h (MPX_SPEC): Use linker option
11523         for 64bit target only.
11524
11525 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
11526
11527         * config/nvptx/nvptx.c: Expand some comments.
11528
11529 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
11530
11531         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
11532         (cortex_a53_advsimd): ...This.
11533
11534 2015-07-22  Richard Biener  <rguenther@suse.de>
11535
11536         * genmatch.c (expr::gen_transform): Clarify error message
11537         and display location.
11538
11539 2015-07-22  Richard Biener  <rguenther@suse.de>
11540
11541         * genmatch.c (struct operand): Add location member.
11542         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
11543         constructors.
11544         (struct simplify): Remove match_location and result_location
11545         members.
11546         (elsehwere): Adjust.
11547
11548 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
11549
11550         * config/mips/m5100.md: New file.
11551         * config/mips/mips-cpus.def (m5100, m5101): Define.
11552         * config/mips/mips-tables.opt: Regenerate.
11553         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
11554         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
11555         -march=m5101 to -mips32r5.
11556         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
11557         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
11558         !-msoft-float.
11559         * config/mips/mips.md: Include m5100.md.
11560         (processor): Add m5100.
11561         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
11562
11563 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
11564
11565         * config/mips/mips-cpus.def (interaptiv): Define.
11566         * config/mips/mips-tables.opt: Regenerate.
11567         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
11568         -mips32r2.
11569         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
11570         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
11571
11572 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11573
11574         PR target/63521
11575         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11576         (HONOR_REG_ALLOC_ORDER): Define.
11577
11578 2015-07-22  Richard Biener  <rguenther@suse.de>
11579
11580         PR tree-optimization/66952
11581         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
11582         blocks we end up executing unconditionally reset all SSA
11583         info such as range and alignment.
11584         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
11585         * tree-ssanames.c (reset_flow_sensitive_info): New function.
11586
11587 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11588
11589         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
11590         typo in attribute.
11591
11592 2015-07-22  Richard Biener  <rguenther@suse.de>
11593
11594         * genmatch.c (parser::parse_result): Properly handle
11595         match with result operands and conditions.
11596
11597 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11598
11599         PR target/63870
11600         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11601         Add qualifier_struct_load_store_lane_index.
11602         (aarch64_types_loadstruct_lane_qualifiers): Use
11603         qualifier_struct_load_store_lane_index for lane index argument for
11604         last argument.
11605         (aarch64_types_storestruct_lane_qualifiers): Ditto.
11606         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11607         (aarch64_simd_expand_args): Add new argument describing mode of
11608         builtin. Check lane bounds for arguments with
11609         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11610         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
11611         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11612         (aarch64_simd_expand_builtin): Handle arguments with
11613         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
11614         aarch64_simd_expand_args.
11615         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
11616         vst[234]_lane with BUILTIN_VALLDIF.
11617         * config/aarch64/aarch64-simd.md:
11618         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
11619         endianness reversal on lane index.
11620         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
11621         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
11622         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
11623         (vec_store_lanesci_lane<mode>): Ditto.
11624         (vec_store_lanesxi_lane<mode>): Ditto.
11625         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
11626         reversal of lane index.
11627         (aarch64_ld3_lane<mode>): Ditto.
11628         (aarch64_ld4_lane<mode>): Ditto.
11629         (aarch64_st2_lane<mode>): Ditto.
11630         (aarch64_st3_lane<mode>): Ditto.
11631         (aarch64_st4_lane<mode>): Ditto.
11632         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
11633         to qmode. Add new mode parameter. Update uses.
11634         (__LD3_LANE_FUNC): Ditto.
11635         (__LD4_LANE_FUNC): Ditto.
11636         (__ST2_LANE_FUNC): Ditto.
11637         (__ST3_LANE_FUNC): Ditto.
11638         (__ST4_LANE_FUNC): Ditto.
11639
11640 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
11641
11642         * doc/invoke.texi (Language Independent Options): Rename node to
11643         Diagnostic Message Formatting Options.
11644
11645 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
11646
11647         PR ipa/66424.
11648         * lra-remat.c (operand_to_remat): Prevent using insns with input
11649         subregs processed separately by IRA.
11650
11651 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
11652
11653         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
11654         straight loops.
11655         (single_imm_use): Check for iterator node.
11656         (num_imm_uses): Likewise.
11657         * tree-ssa-operands.c (has_zero_uses_1): Delete.
11658         (single_imm_use_1): Check for iterator node.
11659
11660 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
11661             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11662
11663         * configure.ac: Add check for new options in isl-0.15.
11664         * config.in, configure: Rebuilt.
11665         * graphite-blocking.c: Include <isl/constraint.h>
11666         * graphite-interchange.c,  graphite-poly.c: Likewise.
11667         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
11668         * graphite.c: Likewise.
11669         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
11670         <isl/union_set.h>.
11671         * graphite-dependences.c: Include <isl/constraint.h>.
11672         (max_number_of_out_dimensions): Returns isl_stat.
11673         (extend_schedule_1): Likewise
11674         (extend_schedule): Corresponding changes.
11675         * graphite-optimize-isl.c: Include <isl/constraint.h> and
11676         <isl/union_set.h>.
11677         (getSingleMap): Change return type of isl_stat.
11678         (optimize_isl): Conditionally use
11679         isl_options_set_schedule_serialize_sccs.
11680         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
11681         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
11682
11683 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
11684
11685         PR target/66956
11686         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
11687         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
11688
11689 2015-07-21  Richard Biener  <rguenther@suse.de>
11690
11691         PR tree-optimization/66948
11692         * genmatch.c (capture_info::walk_match): Also recurse to
11693         captures.  Properly compute expr state from captures of
11694         captures.
11695         * match.pd: Add single-use guards to
11696         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
11697
11698 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11699
11700         * config/nvptx/mkoffload.c (process): Add static destructor call.
11701
11702 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11703
11704         PR middle-end/66915
11705         * match.pd (A - B -> A + (-B)): Don't allow folding
11706         when type if a fixed-point type.
11707
11708 2015-07-20  DJ Delorie  <dj@redhat.com>
11709
11710         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
11711         (iorqi3_real): Likewise for set1.
11712
11713 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
11714
11715         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
11716         for !TARGET_64BIT.
11717
11718 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
11719
11720         * graphite-isl-ast-to-gimple.c:
11721         Refactor so that each function can access 'region'. This will help
11722         maintain a parameter rename_map within a region.
11723
11724 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11725
11726         * config/rs6000/rs6000.md (*lt0_disi): New.
11727
11728 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11729
11730         PR target/66217
11731         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
11732         "available letters" comment.
11733         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
11734         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
11735         and_2rld_operand):  Delete.
11736         (and_operand): Adjust.
11737         (rotate_mask_operator): New.
11738         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
11739         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
11740         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
11741         extract_ME): Delete.
11742         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11743         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
11744         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
11745         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11746         rs6000_emit_2insn_and): New.
11747         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
11748         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
11749         includes_rldic_lshift_p, includes_rldicr_lshift_p,
11750         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
11751         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11752         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
11753         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
11754         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11755         rs6000_emit_2insn_and): New.
11756         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
11757         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
11758         handling.
11759         <NOT>: Don't fall through to next case.
11760         <AND>: Handle the various rotate-and-mask cases directly.
11761         <IOR>: Always cost as one insn.
11762         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
11763         (and<mode>3): Adjust expander for the new patterns.
11764         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
11765         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
11766         (*and<mode>3_imm_dot_shifted): New.
11767         (*and<mode>3_mask): Delete, rewrite as ...
11768         (and<mode>3_mask): ... New.
11769         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
11770         (andsi3_internal0_nomc): Delete.
11771         (*andsi3_internal6): Delete.
11772         (*and<mode>3_2insn): New.
11773         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
11774         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
11775         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
11776         *insvdi_internal3): Delete.
11777         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
11778         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
11779         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
11780         *ior<mode>_mask): New.
11781         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
11782         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11783         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11784         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11785         Delete.
11786         (ashr<mode>3): Delete expander.
11787         (*ashr<mode>3): Rename to ...
11788         (ashr<mode>3): ... This.
11789         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
11790         (*rotldi3_internal4, *rotldi3_internal5 and split,
11791         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
11792         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
11793         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
11794         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
11795         (splitter for loading a mask): Adjust.
11796         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
11797
11798 2015-07-20  Marek Polacek  <polacek@redhat.com>
11799
11800         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
11801         output_add_clobbers, output_added_clobbers_hard_reg_p,
11802         gen_rtx_scratch): Remove declarations.
11803
11804 2015-07-20  Marek Polacek  <polacek@redhat.com>
11805
11806         PR c++/55095
11807         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
11808
11809 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11810
11811         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
11812         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
11813
11814 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11815
11816         * combine.c (combine_simplify_rtx): Move simplification step
11817         before various transformations/substitutions.
11818
11819 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
11820
11821         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
11822         (struct int_traits): Likewise.
11823
11824 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11825
11826         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
11827         function to vmsdbgout_function_decl.
11828
11829 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11830
11831         PR target/66922
11832         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
11833         from misaligned positions.
11834         (ix86_expand_pinsr): Reject insertions to misaligned positions.
11835
11836 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
11837
11838         PR middle-end/46851
11839         PR middle-end/60340
11840         * Makefile.in: Removed omega.o.
11841         * common.opt: Document flag fcheck-data-deps as deprecated.
11842         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
11843         its associated params: omega-max-vars, omega-max-geqs,
11844         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
11845         omega-max-keys, omega-eliminate-redundant-constraints.
11846         * doc/loop.texi: Remove all the section on Omega.
11847         * graphite-blocking.c: Include missing params.h: it used to be
11848         included through tree-data-ref.h and omega.h.
11849         * graphite-isl-ast-to-gimple.c: Same.
11850         * graphite-optimize-isl.c: Same.
11851         * graphite-sese-to-poly.c: Same.
11852         * graphite.c: Same.
11853         * omega.c: Remove.
11854         * omega.h: Remove.
11855         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11856         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11857         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
11858         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
11859         * passes.def: Remove pass_check_data_deps.
11860         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
11861         (dump_conflict_function): Same.
11862         (dump_subscript): Same.
11863         (print_direction_vector): Same.
11864         (print_dir_vectors): Same.
11865         (print_lambda_vector): Same.
11866         (print_dist_vectors): Same.
11867         (dump_data_dependence_relation): Same.
11868         (dump_data_dependence_relations): Same.
11869         (dump_dist_dir_vectors): Same.
11870         (dump_ddrs): Same.
11871         (init_omega_eq_with_af): Removed.
11872         (omega_extract_distance_vectors): Removed.
11873         (omega_setup_subscript): Removed.
11874         (init_omega_for_ddr_1): Removed.
11875         (init_omega_for_ddr): Removed.
11876         (ddr_consistent_p): Removed.
11877         (compute_affine_dependence): Do not use omega to check data
11878         dependences.
11879         (compute_data_dependences_for_bb): Removed.
11880         (analyze_all_data_dependences): Removed.
11881         (tree_check_data_deps): Removed.
11882         * tree-data-ref.h: Do not include omega.h.
11883         (compute_data_dependences_for_bb): Removed.
11884         (tree_check_data_deps): Removed.
11885         * tree-ssa-loop.c (pass_check_data_deps): Removed.
11886         (make_pass_check_data_deps): Removed.
11887         * tree-ssa-phiopt.c: Include params.h.
11888         * tree-vect-data-refs.c: Same.
11889         * tree-vect-slp.c: Same.
11890
11891 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11892
11893         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
11894         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
11895         (mem->fpreg splitters): Ditto.
11896         (general_operand->nonimmediate_operand splitter): Use explicit modes.
11897         Disable DFmode for TARGET_64BIT.
11898
11899 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
11900
11901         PR target/66906
11902         * config/i386/i386.c (ix86_expand_prologue): Replicate static
11903         chain on the stack.
11904
11905 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11906
11907         * config/nvptx/mkoffload.c (process): Constify host data.
11908         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11909         Constify host data.
11910         (generate_host_descr_file): Likewise.
11911
11912 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
11913             Sebastian Pop  <s.pop@samsung.com>
11914
11915         PR middle-end/61929
11916         * graphite-dependences.c (add_pdr_constraints): Renamed
11917         pdr->extent to pdr->subscript_sizes.
11918         * graphite-interchange.c (build_linearized_memory_access): Add
11919         back all gcc_assert's that the "isl_int to isl_val conversion"
11920         patch has removed.  Refactored.
11921         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
11922         * graphite-poly.c (new_poly_dr): Same.
11923         (free_poly_dr): Same.
11924         * graphite-poly.h (struct poly_dr): Same.
11925         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
11926         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
11927         * graphite-scop-detection.h: Fix space.
11928         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
11929         back all gcc_assert's removed by a previous patch.
11930         (wrap): Remove the_isl_ctx global variable that the same patch has
11931         added.
11932         (build_loop_iteration_domains): Same.
11933         (add_param_constraints): Same.
11934         (pdr_add_data_dimensions): Same.  Refactored.
11935         (build_poly_dr): Renamed extent to subscript_sizes.
11936
11937 2015-07-17  Marek Polacek  <polacek@redhat.com>
11938
11939         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
11940         * match.pd: ... here.
11941
11942 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11943
11944         * config/nvptx/mkoffload.c (process): Constify target data.
11945         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11946         Constify target data.
11947         (generate_target_offloadend_file): Likewise.
11948
11949 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
11950
11951         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
11952         to allow renaming of PHI arguments on edges incoming from outer
11953         loop header, add corresponding check before start PHI iterator.
11954         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
11955         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
11956         with true force_vectorize.  Set-up dominator for outer loop too.
11957         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
11958         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
11959         was marked with force_vectorize and has restricted cfg.
11960         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
11961         inner loop.
11962         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
11963         do peeling for outer loops.
11964
11965 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
11966             Matthias Klose  <doko@ubuntu.com>
11967
11968         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
11969         build-sysroot, sysroot from the `Miscenalleous configure options' to
11970         the `Directories' section and strip trailing `/' from with_sysroot.
11971         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
11972         * configure: Regenerated.
11973
11974 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11975
11976         PR target/66824
11977         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
11978         (TARGET_HARD_DF_REGS): Ditto.
11979         (TARGET_HARD_XF_REGS): Ditto.
11980         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
11981         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
11982         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
11983         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
11984         (*movsf_internal): Add alternatives 16 and 17. Enable
11985         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
11986
11987 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11988
11989         PR rtl-optimization/66891
11990         * calls.c (expand_call): Wrap precompute_register_parameters with
11991         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
11992
11993 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
11994
11995         * config/nvptx/mkoffload.c (process): Constify mapping variables.
11996         Define target data struct and initialize it.
11997
11998 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
11999
12000         PR rtl-optimization/66626
12001         * ira.h (emit-rtl.h): Include.
12002         (non_spilled_static_chain_regno_p): New.
12003         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
12004         unless it is non spilled static chain pseudo.
12005         (assign_hard_rego): Spill memory profitable allocno unless it is
12006         non spilled static chain pseudo.
12007         (allocno_spill_priority_compare): Put non spilled static chain
12008         pseudo at the end of sorted array.
12009         (improve_allocation): Do nothing if we have static chain and
12010         non-local goto.
12011         (allocno__priority_compare_func): Put non spilled static chain
12012         pseudo at the beginning of sorted array.
12013         (move_spill_restore): Ignore non spilled static chain pseudo.
12014         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
12015         to non spilled static chain pseudo.
12016         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
12017         pseudo at the beginning of sorted array.
12018         (spill_for): Spill non spilled static chain pseudo last.
12019         * lra-constraints.c (lra_constraints): Remove static chain pseudo
12020         check for equivalence.
12021
12022 2015-07-16  Martin Liska  <mliska@suse.cz>
12023
12024         PR ipa/66896.
12025         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
12026         dst_ctx if it does not exist.
12027
12028 2015-07-16  Martin Liska  <mliska@suse.cz>
12029
12030         * hash-set.h (remove): New function.
12031         (iterator): New iteration class for hash_set.
12032
12033 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12034
12035         * genattrtab.c (make_canonical): Add a file_location parameter.
12036         Use fatal_at rather than fatal.
12037         (get_attr_value): Likewise.  Update call to make_canonical.
12038         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
12039         (make_internal_attr): Update calls accordingly.
12040
12041 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12042
12043         * read-md.h (message_with_line, error_with_line): Delete.
12044         * read-md.c (message_with_line, error_with_line): Delete.
12045         * gensupport.h: Include read-md.h.
12046         (md_rtx_info): New structure.
12047         (read_md_rtx): Use it.  Return a bool success value.
12048         * gensupport.c (read_md_rtx): Likewise.
12049         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
12050         (main): Update after interface changes.
12051         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
12052         (main): Update after interface changes.
12053         * genattrtab.c (insn_code_number): Delete.
12054         (optimize_attrs): Add a max_insn_code parameter and use it instead
12055         of insn_code_number.
12056         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
12057         Use *_at rather than *_with_line functions.
12058         (gen_insn): Likewise.
12059         (gen_delay): Likewise.
12060         (gen_insn_reserv): Likewise.
12061         (gen_bypass): Take an md_rtx_info rather than an rtx.
12062         (main): Update after interface changes.  Use a local max_insn_code
12063         variable instead of insn_code_number.
12064         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
12065         an rtx.  Use fatal_at rather than fatal.
12066         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
12067         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
12068         (gen_absence_set, gen_final_absence_set, gen_automaton)
12069         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
12070         (main): Update after interface changes.
12071         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
12072         and code number.
12073         (main): Update after interface changes.
12074         * genconditions.c (main): Use new read_md_rtx interface.
12075         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
12076         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
12077         (main): Update after interface changes.
12078         * genemit.c (insn_code_number, insn_index_number): Delete.
12079         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
12080         Use fatal_at rather than fatal.
12081         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
12082         rather than fatal.
12083         (gen_split): Likewise.
12084         (main): Update after interface changes.
12085         * genextract.c (line_no): Delete.
12086         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
12087         Update call to walk_rtx.
12088         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
12089         rather than message_with_line.
12090         (walk_rtx): Add an md_rtx_info argument.  Update call to
12091         VEC_safe_set_locstr.
12092         (main): Update after interface changes.
12093         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
12094         and lineno.  Use error_at rather than separate message_with_line
12095         calls and have_error assignments.
12096         (main): Update after interface changes.
12097         * genmddump.c (main): Use new read_md_rtx interface.
12098         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
12099         (main): Update after interface changes.
12100         * genoutput.c (next_code_number): Delete.
12101         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
12102         (gen_peephole, gen_expand, gen_split): Likewise.
12103         (note_constraint): Likewise.  Use *_at rather than *_with_line
12104         functions.
12105         (main): Update after interface changes.
12106         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
12107         rtx and lineno.
12108         (main): Update after interface changes.
12109         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
12110         than an rtx and lineno.
12111         (process_define_constraint): Likewise.
12112         (process_define_register_constraint): Likewise.
12113         (main): Update after interface changes.
12114         * genrecog.c (next_insn_code, pattern_lineno): Delete.
12115         (validate_pattern): Replace top-level rtx with an md_rtx_info.
12116         Use *_at rather than *_with_line functions.
12117         (match_pattern_2): Likewise.
12118         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
12119         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
12120         Use *_at rather than *_with_line functions.
12121         * gentarget-def.c (add_insn): New function.
12122         (main): Use it.  Use new read_md_rtx interface.
12123
12124 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12125
12126         * gensupport.h (compute_test_codes): Take a file_location rather
12127         than a line number.
12128         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
12129         rather than *_with_line functions.
12130         (process_define_predicate): Update call to compute_test_codes.
12131         * genpreds.c (validate_exp): Take a file_location rather than a
12132         line number.  Use *_at functions rather than *_with_line functions.
12133         (process_define_predicate): Update call to validate_exp.
12134         (constraint_data): Replace lineno field with a file_location.
12135         (add_constraint): Take a file_location rather than a line number.
12136         Use *_at functions rather than *_with_line functions.  Fix error
12137         message for address constraints.  Update after changes to
12138         validate_exp, constraint_data and compute_test_codes.
12139         (process_define_constraint): Update accordingly.
12140         (process_define_register_constraint): Likewise.
12141
12142 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12143
12144         * genoutput.c (data): Use a file_location to record the source
12145         position.
12146         (nothing): Delete.
12147         (idata, idata_end): Remove initialization.
12148         (constraint_data): Replace lineno with a file_location.
12149         (output_insn_data): Update after changes to data.
12150         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
12151         (scan_operands): Likewise, using *_at rather than *_with_line
12152         functions.
12153         (process_template): Likewise.
12154         (validate_insn_alternatives): Likewise.
12155         (validate_insn_operands): Likewise.
12156         (validate_optab_operands): Likewise.
12157         (init_insn_for_nothing): Initialize idata and idata_end.
12158         (note_constraint): Update after changes to constraint_data,
12159         using at rather than with_line functions.
12160         (mdep_constraint_len): Take a file_location rather than a
12161         line number.  Use at rather than with_line functions.
12162
12163 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12164
12165         * read-md.h (fatal_at): Declare.
12166         * read-md.c (fatal_at): New function.
12167         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
12168         to record the source position.
12169         (check_attr_test): Take a file_location instead of a line number.
12170         Use fatal_at instead of fatal.
12171         (check_attr_value): Update after above changes, using "at"
12172         rather than "with_line" reporting functions.
12173         (convert_set_attr_alternative): Likewise.
12174         (gen_attr): Likewise.
12175         (check_defs): Likewise.  Don't assign to read_md_filename.
12176         (gen_insn): Update initialization after above changes.
12177         (gen_delay): Likewise.
12178         (write_insn_cases): Print the filename for a define_peephole.
12179         (gen_insn_reserv): Take a line number as argument and update
12180         the call to check_attr_test.
12181         (main): Pass a line number to gen_insn_reserv.
12182
12183 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12184
12185         * read-md.h (file_location): New structure.
12186         (directive_handler_t): Take a file_location rather than a line number.
12187         (message_at, error_at): Declare.
12188         (read_skip_construct): Delete.
12189         * read-md.c (message_with_line_1): Replace with...
12190         (message_at_1): ...this new function.
12191         (message_at, error_at): New functions.
12192         (message_with_line, error_with_line): Update to use message_at_1.
12193         (handle_enum): Take a file_location rather than a line number
12194         and use error_at for error reporting.
12195         (handle_include): Likewise.
12196         (read_skip_construct): Likewise.  Make static.
12197         (handle_file): Update after above changes.  Pass a file_location
12198         rather than a line number to handle_directive.
12199         * gensupport.c (queue_elem): Replace separate filename and lineno
12200         with a file_location.
12201         (queue_pattern): Replace filename and lineno arguments with a
12202         file_location.  Update after change to queue_elem.
12203         (process_define_predicate): Replace lineno argument with a
12204         file_location and use error_at for error reporting.  Update
12205         after above changes.
12206         (process_rtx): Likewise.
12207         (subst_pattern_match): Likewise.
12208         (get_alternatives_number): Likewise.
12209         (alter_predicate_for_insn): Likewise.
12210         (rtx_handle_directive): Likewise.
12211         (is_predicable): Update after above changes, using error_at rather
12212         than error_with_line.
12213         (has_subst_attribute): Likewise.
12214         (identify_predicable_attribute): Likewise.
12215         (alter_attrs_for_subst_insn): Likewise.
12216         (process_one_cond_exec): Likewise.
12217         (process_substs_on_one_elem): Likewise.
12218         (process_define_subst): Likewise.
12219         (check_define_attr_duplicates): Likewise.
12220         (read_md_rtx): Update after change to queue_elem.
12221
12222 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12223
12224         * genoutput.c (next_index_number): Delete.
12225         (data): Remove index_number.
12226         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
12227         (main): Remove manipulation of next_index_number.
12228
12229 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12230
12231         * genattrtab.c (check_attr_value): Remove handling of null attrs.
12232         (make_canonical): Likewise.
12233
12234 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
12235
12236         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
12237         instead of adjust_address_nv.
12238         (restore_stack_nonlocal): Likewise.
12239         (nonlocal_goto): Likewise.
12240
12241 2015-07-16  Tom de Vries  <tom@codesourcery.com>
12242
12243         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
12244         not have a corresponding loop header phi.
12245
12246 2015-07-16  Tom de Vries  <tom@codesourcery.com>
12247
12248         * tree-parloops.c (create_loads_for_reductions): Handle case that
12249         reduction is unused.
12250
12251 2015-07-16  Richard Biener  <rguenther@suse.de>
12252
12253         PR tree-optimization/66894
12254         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
12255         about deriving NE_EXPR from truncated values.
12256
12257 2015-07-16  Martin Liska  <mliska@suse.cz>
12258
12259         * alloc-pool.h
12260         (object_allocator): Add new class.
12261         (pool_allocator::initialize): Use the underlying class.
12262         (pool_allocator::allocate): Likewise.
12263         (pool_allocator::remove): Likewise.
12264         (operator new): A new generic allocator.
12265         * asan.c (struct asan_mem_ref): Remove unused members.
12266         (asan_mem_ref_new): Replace new operator with
12267         object_allocator::allocate.
12268         (free_mem_ref_resources): Change deallocation.
12269         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
12270         with object_allocator.
12271         * config/sh/sh.c (add_constant): Replace new operator with
12272         object_allocator::allocate.
12273         (sh_reorg): Change call to a release method.
12274         * cselib.c (struct elt_list): Remove unused members.
12275         (new_elt_list): Replace new operator with
12276         object_allocator::allocate.
12277         (new_elt_loc_list): Likewise.
12278         (new_cselib_val): Likewise.
12279         (unchain_one_elt_list): Change delete operator with remove method.
12280         (unchain_one_elt_loc_list): Likewise.
12281         (unchain_one_value): Likewise.
12282         (cselib_finish): Release newly added static allocators.
12283         * cselib.h (struct cselib_val): Remove unused members.
12284         (struct elt_loc_list): Likewise.
12285         * df-problems.c (df_chain_alloc): Replace pool_allocator with
12286         object_allocator.
12287         * df-scan.c (struct df_scan_problem_data): Likewise.
12288         (df_scan_alloc): Likewise.
12289         * df.h (struct dataflow): Likewise.
12290         * dse.c (struct read_info_type): Likewise.
12291         (struct insn_info_type): Likewise.
12292         (struct dse_bb_info_type): Likewise.
12293         (struct group_info): Likewise.
12294         (struct deferred_change): Likewise.
12295         (get_group_info): Likewise.
12296         (delete_dead_store_insn): Likewise.
12297         (free_read_records): Likewise.
12298         (replace_read): Likewise.
12299         (check_mem_read_rtx): Likewise.
12300         (scan_insn): Likewise.
12301         (dse_step1): Likewise.
12302         (dse_step7): Likewise.
12303         * et-forest.c (struct et_occ): Remove unused members.
12304         (et_new_occ): Use allocate instead of new operator.
12305         (et_new_tree): Likewise.
12306         (et_free_tree): Call release method explicitly.
12307         (et_free_tree_force): Likewise.
12308         (et_free_pools): Likewise.
12309         (et_split): Use remove instead of delete operator.
12310         * et-forest.h (struct et_node): Remove unused members.
12311         * ipa-cp.c: Change pool_allocator to object_allocator.
12312         * ipa-inline-analysis.c: Likewise.
12313         * ipa-profile.c: Likewise.
12314         * ipa-prop.c: Likewise.
12315         * ipa-prop.h: Likewise.
12316         * ira-build.c (initiate_cost_vectors): Cast return value.
12317         (ira_allocate_cost_vector): Likewise.
12318         * ira-color.c (struct update_cost_record): Remove unused members.
12319         * lra-int.h (struct lra_live_range): Likewise.
12320         (struct lra_copy): Likewise.
12321         (struct lra_insn_reg): Likewise.
12322         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
12323         * lra.c (new_insn_reg): Replace new operator with allocate method.
12324         (free_insn_regs): Same for operator delete.
12325         (finish_insn_regs): Release new static allocator.
12326         (finish_insn_recog_data): Likewise.
12327         (lra_free_copies): Replace delete operator with remove method.
12328         (lra_create_copy): Replace operator new with allocate method.
12329         (invalidate_insn_data_regno_info): Same for remove method.
12330         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
12331         (free_debug_insn_changes): Replace delete operator with remove method.
12332         (replace_oldest_value_reg): Replace operator new with allocate method.
12333         (pass_cprop_hardreg::execute): Release new static variable.
12334         * sched-deps.c (sched_deps_init): Change pool_allocator to
12335         object_allocator.
12336         * sel-sched-ir.c: Likewise.
12337         * sel-sched-ir.h: Likewise.
12338         * stmt.c (expand_case): Likewise.
12339         (expand_sjlj_dispatch_table): Likewise.
12340         * tree-sra.c (struct access): Remove unused members.
12341         (struct assign_link): Likewise.
12342         (sra_deinitialize): Release newly added static pools.
12343         (create_access_1):Replace operator new with allocate method.
12344         (build_accesses_from_assign): Likewise.
12345         (create_artificial_child_access): Likewise.
12346         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
12347         pool_allocator to object_allocator.
12348         * tree-ssa-pre.c: Likewise.
12349         * tree-ssa-reassoc.c: Likewise.
12350         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
12351         * tree-ssa-strlen.c: Likewise.
12352         * tree-ssa-structalias.c: Likewise.
12353         * var-tracking.c (onepart_pool_allocate): New function.
12354         (unshare_variable): Use the newly added function.
12355         (variable_merge_over_cur): Likewise.
12356         (variable_from_dropped): Likewise.
12357         (variable_was_changed): Likewise.
12358         (set_slot_part): Likewise.
12359         (emit_notes_for_differences_1): Likewise.
12360         (vt_finalize): Release newly added static pools.
12361
12362 2015-07-16  Martin Jambor  <mjambor@suse.cz>
12363
12364         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
12365         all uses.  Fix two typos in its general comment.
12366         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
12367
12368 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
12369
12370         * config/i386/linux-common.h (LINK_MPX): New.
12371         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
12372         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
12373         indicating '-z bndplt' support by linker.
12374         * configure: Regenerate.
12375         * config.in: Regenerate.
12376
12377 2015-07-16  Richard Biener  <rguenther@suse.de>
12378
12379         * fold-const.c (fold_widened_comparison): Remove.
12380         (fold_sign_changed_comparison): Likewise.
12381         (fold_comparison): Move widened and sign-changed comparison
12382         simplification ...
12383         * match.pd: ... to patterns here.
12384         * generic-match-head.c: Include target.h.
12385         * gimple-match-head.c: Likewise.
12386
12387 2015-07-16  Richard Biener  <rguenther@suse.de>
12388
12389         * tree-ssa-dom.c (dom_valueize): New function.
12390         (record_temporary_equivalences): Also record equivalences
12391         for dominating stmts that have uses of equivalences we are
12392         about to record.
12393
12394 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
12395
12396         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
12397         add_autoinc_candidates.
12398         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
12399         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
12400         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
12401         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
12402         Call new function.
12403         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
12404         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
12405         Remove parameter struct iv*.  Call add_autoinc_candidates here.
12406         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
12407         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
12408         Call new function.
12409         (find_iv_candidates): Call new functions.
12410
12411 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
12412
12413         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
12414         uninitialized-variable warning.
12415
12416 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12417
12418         PR target/65249
12419         * config/sh/sh.md (movdi): Split simple reg move to two movsi
12420         when the destination is R0.
12421
12422 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
12423
12424         PR target/66866
12425         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
12426         * config/i386/i386.c (ix86_expand_pextr): New function.
12427         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
12428         for non-lowpart subregs.
12429         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
12430         (insv<mode>): Use SWI248 mode iterator.
12431         (insv<mode>_1): Ditto.
12432
12433 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12434             Sebastian Pop  <s.pop@samsung.com>
12435
12436         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
12437         iterator to use_stmt.
12438
12439 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12440             Sebastian Pop <s.pop@samsung.com>
12441
12442         * graphite-scop-detection.c (build_scops_1): Discard scops for
12443         which entry==exit.
12444
12445 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12446             Sebastian Pop <s.pop@samsung.com>
12447
12448         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
12449         case of a return statement in scop.
12450
12451 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12452             Sebastian Pop <s.pop@samsung.com>
12453
12454         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
12455         INTEGER_TYPE parameters.
12456         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
12457         VECTOR_CST in scan_tree_for_params.
12458         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
12459
12460 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12461
12462         * gimple-pretty-print.h: Don't include pretty-print.h.
12463         * tree-streamer.h: Don't include lto-streamer.h.
12464         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
12465         * gimple-streamer-in.c: Remove redundant includes.
12466         * gimple-streamer-out.c: Likewise.
12467         * ipa-devirt.c: Likewise.
12468         * ipa-icf.c: Likewise.
12469         * ipa-inline-analysis.c: Likewise.
12470         * ipa-polymorphic-call.c: Likewise.
12471         * ipa-profile.c: Likewise.
12472         * ipa-prop.c: Likewise.
12473         * ipa-pure-const.c: Likewise.
12474         * lto-cgraph.c: Likewise.
12475         * lto-streamer-in.c: Likewise.
12476         * lto-streamer-out.c: Likewise.
12477         * lto-streamer.c: Likewise.
12478         * tree-streamer-in.c: Likewise.
12479         * tree-streamer-out.c: Likewise.
12480         * tree-streamer.c: Likewise.
12481
12482 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12483
12484         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
12485         include input.h.
12486         * opts.c: Remove multiline #include comment.
12487
12488 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
12489
12490         * config/nvptx/mkoffload.c (process): Add C++ protection to
12491         emitted code.
12492
12493 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12494
12495         PR target/66854
12496         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
12497         null before IEEE 128-bit floating point support patch.
12498
12499 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12500
12501         * simplify-rtx.c (simplify_ternary_operation): Add simplification
12502         for (!c) != {0,...,0} ? a : b for vector modes.
12503
12504 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
12505             Martin Jambor  <mjambor@suse.cz>
12506
12507         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
12508         struct func_body_info* instead of struct ipa_node_params*, expecting
12509         fbi->info to be filled in.  Replace throughout.  Adjust call to
12510         ipa_load_from_parm_agg.
12511         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
12512         instead of struct ipa_node_params*.  Adjust calls to other functions
12513         so that they pass either fbi or fbi->info.
12514         (set_switch_stmt_execution_predicate): Likewise.
12515         (will_be_nonconstant_predicate): Likewise.
12516         (compute_bb_predicates): Likewise.
12517         (estimate_function_body_sizes): Move asserts earlier.  Fill in
12518         struct func_body_info, replace parms_info with fbi.info.  Adjust
12519         calls to functions that now accept struct func_body_info.
12520         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
12521         (struct func_body_info): Likewise.
12522         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
12523         remove static.  Adjust callers.
12524         (ipa_load_from_parm_agg): Remove.
12525         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
12526         (func_body_info): Likewise.
12527         (ipa_load_from_parm_agg): Adjust prototype.
12528
12529 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12530
12531         * gensupport.c (rtx_handle_directive): Adjust.
12532         * read-rtl.c (apply_iterators): Take vector to add rtxs to
12533         instead of expr list rtx.
12534         (add_define_attr_for_define_subst): Likewise.
12535         (add_define_subst_attr): Likewise.
12536         (read_subst_mapping): Likewise.
12537         (read_rtx): Likewise.
12538         * rtl.h (read_rtx): Adjust.
12539
12540 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12541
12542         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
12543
12544 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12545
12546         PR target/58066
12547         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
12548         (*tls_local_dynamic_base_64_<mode>): Ditto.
12549         (*tls_local_dynamic_base_64_largepic): Ditto.
12550         (tls_global_dynamic_64_<mode>): Update expander pattern.
12551         (tls_local_dynamic_base_64_<mode>): Ditto.
12552
12553 2015-07-15  Richard Biener  <rguenther@suse.de>
12554
12555         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
12556         and bool_var == 1 -> bool_var simplifications ...
12557         * match.pd: ... to patterns here.  Factor out negate_expr_p
12558         cases from the A - B -> A + (-B) patterns as negate_expr_p
12559         predicate and add a -(A + B) -> (-B) - A pattern.
12560
12561 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12562
12563         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
12564
12565 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12566             Robert Suchanek  <robert.suchanek@imgtec.com>
12567
12568         * config/mips/mips.c (mips_int_mask): New enum.
12569         (mips_shadow_set): Likewise.
12570         (int_mask): New variable.
12571         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
12572         (machine_function): Add int_mask and use_shadow_register_set.
12573         (mips_attribute_table): Add attribute handlers for interrupt and
12574         use_shadow_register_set.
12575         (mips_interrupt_mask): New static function.
12576         (mips_handle_interrupt_attr): Likewise.
12577         (mips_handle_use_shadow_register_set_attr): Likewise.
12578         (mips_use_shadow_register_set): Change return type to enum
12579         mips_shadow_set.  Add argument handling for use_shadow_register_set
12580         attribute.
12581         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
12582         compare with mips_shadow_set enum.
12583         (mips_compute_frame_info): Add interrupt mask and
12584         use_shadow_register_set to per-function information structure.
12585         Add a stack slot for EPC unconditionally.
12586         (mips_expand_prologue): Compare use_shadow_register_set value
12587         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
12588         masked interrupt register but in EIC mode use K0 and save Cause in K0.
12589         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
12590         copying the stack pointer from the shadow register set.
12591         * config/mips/mips.h (SR_IM0): New define.
12592         * config/mips/mips.md (mips_rdpgpr): Rename to...
12593         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
12594         * doc/extend.texi (Declaring Attributes of Functions): Document
12595         optional arguments for interrupt and use_shadow_register_set
12596         attributes.
12597
12598 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12599
12600         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
12601         interrupt attribute.
12602         (mips_expand_prologue): Disable the floating point unit in an ISR.
12603         * config/mips/mips.h (SR_COP1): New define.
12604
12605 2015-07-15  Richard Biener  <rguenther@suse.de>
12606
12607         * genmatch.c (parser::peek, parser::peek_ident): Add argument
12608         to tell how many tokens to peek ahead (default 1).
12609         (parser::eat_token, parser::eat_ident): Return token consumed.
12610         (parser::parse_result): Parse new switch statement.
12611         * match.pd: Use case statements where appropriate.
12612
12613 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12614
12615         PR rtl-optimization/58066
12616         * calls.c (expand_call): Precompute register parameters before stack
12617         alignment is performed.
12618
12619 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12620
12621         PR rtl-optimization/66838
12622         * postreload.c (reload_cse_move2add): Also process
12623         CALL_INSN_FUNCTION_USAGE when resetting information of
12624         call-clobbered registers.
12625
12626 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12627             Cesar Philippidis  <cesar@codesourcery.com>
12628             Chung-Lin Tang  <cltang@codesourcery.com>
12629
12630         * config/nios2/constraints.md (U, v): New constraints.
12631         * config/nios2/predicates.md (rdprs_dcache_operand): New.
12632         (ldstex_memory_operand): New.
12633         * config/nios2/sync.md: New file.
12634         * config/nios2/nios2.md (unspecv): Add new builtin function
12635         UNSPECV codes.
12636         (rdprs, flushd, flushda, wrpie, eni): New patterns.
12637         (top-level): Include sync.md.
12638         * config/nios2/nios2.c (N2_FTYPES): Add function types for
12639         new builtins.
12640         (N2_BUILTINS): Add arch field setting, add new builtins.
12641         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
12642         for arch field.
12643         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
12644         Also handle ldex/stex/ldsex/stsex builtins.
12645         (nios2_expand_rdprs_builtin): New function.
12646         (nios2_expand_cache_builtin): New function.
12647         (nios2_expand_wrpie_builtin): New function.
12648         (nios2_expand_eni_builtin): New function.
12649         (nios2_expand_builtin): Add arch field handling and new builtin
12650         cases.
12651         * doc/extend.texi (Altera Nios II Built-in Functions): Document
12652         new builtins.
12653         * doc/md.texi (Machine Constraints): Document U and v constraints.
12654
12655 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12656             Cesar Philippidis  <cesar@codesourcery.com>
12657             Chung-Lin Tang  <cltang@codesourcery.com>
12658
12659         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
12660         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
12661         callee_save_reg_size and uses_anonymous_args fields.
12662         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
12663         (nios2_create_cfa_notes): New function.
12664         (nios2_adjust_stack): New function for adjusting stack.
12665         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
12666         Use nios2_adjust_stack.
12667         (nios2_expand_epilogue): Likewise.
12668         (nios2_expand_return): New function.
12669         (nios2_can_use_return_insn): Update for CDX pop.n usage.
12670         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
12671         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
12672         * config/nios2/nios2.md (return): Use nios2_expand_return.
12673
12674 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12675             Cesar Philippidis  <cesar@codesourcery.com>
12676             Chung-Lin Tang  <cltang@codesourcery.com>
12677
12678         * config/nios2/predicates.md (pop_operation): New.
12679         (ldwm_operation, stwm_operation): New.
12680         (nios2_hard_register_operand): New.
12681         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
12682         (ldstwm_operation_p): Declare.
12683         (gen_ldstwm_peep): Declare.
12684         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
12685         (base_reg_adjustment_p): New.
12686         (pop_operation_p): New.
12687         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
12688         (nios2_ldstwm_regset_p): New.
12689         (ldstwm_operation_p): New.
12690         (gen_ldst): New.
12691         (nios2_ldst_parallel): New.
12692         (struct ldswm_operand): Declare.
12693         (compare_ldstwm_operands): New.
12694         (can_use_cdx_ldstw): New.
12695         (gen_ldstwm_peep): New.
12696         * config/nios2/nios2-ldstwm.sml: New.
12697         * config/nios2/nios2.md: Include ldstwm.md.
12698         * config/nios2/ldstwm.md: Generated.
12699
12700 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12701             Cesar Philippidis  <cesar@codesourcery.com>
12702             Chung-Lin Tang  <cltang@codesourcery.com>
12703
12704         * config/nios2/nios2.h (LABEL_ALIGN): Define.
12705         (REG_ALLOC_ORDER): Define.
12706         (ADJUST_REG_ALLOC_ORDER): Define.
12707         (HONOR_REG_ALLOC_ORDER): Define.
12708         (CDX_REG_P): Define.
12709         (ANDCLEAR_INT): Define.
12710         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
12711         (nios2_label_align): Declare.
12712         (nios2_cdx_narrow_form_p): Declare.
12713         (nios2_adjust_reg_alloc_order): Declare.
12714         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
12715         operation.
12716         (nios2_large_unspec_reloc_p): New function, split from...
12717         (nios2_legitimate_pic_operand_p): ...here.
12718         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
12719         (nios2_print_operand_punct_valid_p): New.
12720         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
12721         (split_mem_address): New.
12722         (split_alu_insn): New.
12723         (cdxreg): New.
12724         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
12725         (enum nios2_add_insn_kind): New.
12726         (nios2_add_insn_names, nios2_add_insn_narrow): New.
12727         (nios2_add_insn_classify): New.
12728         (nios2_add_insn_asm): New.
12729         (nios2_cdx_narrow_form_p): New.
12730         (label_align, min_labelno, max_labelno): New.
12731         (nios2_reorg): New.
12732         (nios2_label_align): New.
12733         (nios2_adjust_reg_alloc_order): New.
12734         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12735         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12736         * config/nios2/constraints.md (P): New constraint.
12737         * config/nios2/predicates.md (const_and_operand): New.
12738         (and_operand): New.
12739         (stack_memory_operand): New.
12740         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
12741         (length): Update to use nios2_cdx_narrow_form_p().
12742         (type): Add new insn type values.
12743         (control, alu, st, ld, shift): Update insn reservations with
12744         new insn type values.
12745         (*high, *lo_sum): Define new insn patterns for constant generation.
12746         (movqi_internal, movhi_internal, movsi_internal): Reduce
12747         alternatives, update asm template to handle CDX variants, update
12748         type attributes.
12749         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
12750         template, update type attributes.
12751         (extendhisi2, extendqi<mode>2): Likewise.
12752         (addsi3): Change to use function for asm string.
12753         (subsi3): Add CDX notation to asm template, update type attributes.
12754         (negsi3, one_cmplsi3): Likewise.
12755         (andsi3): New pattern, specialized from logical patterns.
12756         (<code>si3): Remove and case, combine alternatives, update asm
12757         template.
12758         (<shift_op>si3): Add CDX notation, update type attributes.
12759         (rotrsi3): Update type attribute.
12760         (*merge, extzv, insv): New insn patterns.
12761         (return): Change to define_expand.
12762         (simple_return): Add CDX notation, update type attributes.
12763         (indirect_jump): Add CDX notation.
12764         (jump): Update asm cases, update length attribute expression.
12765         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
12766         (nios2_cbranch): Update asm cases and length attribute expression
12767         to handle CDX variants.
12768         (nios2_cmp<code>): Update asm template.
12769         (nop): Add CDX notation, update type attributes.
12770         (trap): Add CDX notation.
12771         (ctrapsi4): Update asm cases and length attribute expression to
12772         handle CDX variant.
12773         * doc/md.texi (Machine Constraints): Document P constraint.
12774
12775 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12776             Cesar Philippidis  <cesar@codesourcery.com>
12777             Chung-Lin Tang  <cltang@codesourcery.com>
12778
12779         * config/nios2/nios2.h (SMALL_INT12): New macro.
12780         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
12781         (nios2_valid_addr_expr_p): Use it.
12782         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
12783         with implicit "io" instructions on R2.
12784         * config/nios2/constraints.md (w): New constraint.
12785         * config/nios2/predicates.md (ldstio_memory_operand): New.
12786         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
12787         operand predicate and constraint.
12788         (ld<bh>io_signed, st<bhw>io>): Likewise.
12789         * doc/md.texi (Machine Constraints): Document w constraint.
12790
12791 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12792             Cesar Philippidis  <cesar@codesourcery.com>
12793             Chung-Lin Tang  <cltang@codesourcery.com>
12794
12795         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
12796         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
12797         Nios II architecture level.
12798         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
12799         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
12800         (OPTION_DEFAULT_SPECS): Define.
12801         (ASM_SPEC): Add -march= spec strings.
12802         * config/nios2/nios2.c (nios2_option_override): Check for
12803         conflicts involving new options.
12804         * config.gcc (nios2*-*-*): Support --with-arch=.
12805         * doc/invoke.texi (Option Summary, Nios II Options): Document
12806         -march=, -mbmx, and -mcdx.
12807
12808 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
12809
12810         PR rtl-optimization/66626
12811         * lra-constraints.c (lra_constraints): Prevent equivalence
12812         substitution for static chain pseudo in functions with nonlocal
12813         goto.
12814
12815 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12816
12817         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
12818         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12819         -fstack-limit-symbol as well as -fstack-limit-register.
12820         (nios2_expand_prologue): Emit only a single stack limit check,
12821         even if multiple stack adjustments are required.
12822         (nios2_option_override): Diagnose unsupported combination of -fpic
12823         and -stack-limit-symbol.
12824
12825 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
12826
12827         * Makefile.in (top_srcdir): New.
12828         * configure.ac: Use AM_ZLIB.
12829         * configure: Regeneated.
12830
12831 2015-07-14  Matthias Klose  <doko@ubuntu.com>
12832
12833         PR target/66840
12834         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
12835
12836 2015-07-14  Richard Biener  <rguenther@suse.de>
12837
12838         PR tree-optimization/66863
12839         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
12840         what we record for conversion use stmt lhs inequalities.
12841
12842 2015-07-14  Richard Biener  <rguenther@suse.de>
12843
12844         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
12845         (decision_tree::gen_gimple): Likewise.
12846
12847 2015-07-14  Tom de Vries  <tom@codesourcery.com>
12848
12849         * gcc.c (greater_than_spec_func): Declare forward.
12850         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
12851         -ftree-parallelize-loops={0,1}.
12852         (static_spec_functions): Add greater_than_spec_func function with name
12853         "gt".
12854         (greater_than_spec_func): New function.
12855
12856 2015-07-14  Richard Biener  <rguenther@suse.de>
12857
12858         * tree-ssa-dom.c (record_temporary_equivalences): Merge
12859         wideing type conversion case from record_equivalences_from_incoming_edge
12860         and use record_equality to record equivalences.
12861         (record_equivalences_from_incoming_edge): Call
12862         record_temporary_equivalences.
12863
12864 2015-07-14  Richard Biener  <rguenther@suse.de>
12865
12866         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
12867         (struct if_expr): New.
12868         (struct with_expr): Likewise.
12869         (is_a_helper): Add helpers for if_expr and with_expr.
12870         (struct simplify): Add simplify_kind enum and member.  Remove
12871         ifexpr_vec member.
12872         (simplify::simplify): Adjust.
12873         (lower_commutative): Adjust.
12874         (lower_opt_convert): Likewise.
12875         (lower_cond): Likewise.
12876         (replace_id): Handle with_expr and if_expr.
12877         (lower_for): Adjust.
12878         (dt_simplify::gen_1): New recursive worker, split out from ...
12879         (dt_simplify::gen): ... here.  Deal with if and with expansion
12880         recursively.
12881         (capture_info::capture_info): Take context argument
12882         (capture_info::walk_result): Only analyze specific result.
12883         (parser::parse_result): New function.
12884         (parser::parse_simplify): Adjust to parse ifs with then end
12885         else case.
12886         (parser::parse_if): Simplify.
12887         (parser::parse_pattern): Pass down simplify kind.
12888         * match.pd: Convert if structure to new syntax.
12889
12890 2015-07-13  Marek Polacek  <polacek@redhat.com>
12891
12892         * rtl.c (rtx_equal_p_cb): Fix typo.
12893
12894 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
12895
12896         * omega.h: Don't include config.h, don't include params.h again if
12897         omega.h has already been included.
12898         * graphite-poly.h: Include sese.h.
12899         * graphite.c: Don't include sese.h, remove needless includes and
12900         minimize includes outside #ifdef HAVE_isl block.
12901         * graphite-blocking.c: Don't include sese.h, remove needless includes,
12902         and wrap entire file in #ifdef HAVE_isl
12903         * graphite-dependences.c: Likewise.
12904         * graphite-interchange.c: Likewise.
12905         * graphite-isl-ast-to-gimple.c: Likewise.
12906         * graphite-optimize-isl.c: Likewise.
12907         * graphite-poly.c: Likewise.
12908         * graphite-scop-detection.c: Likewise.
12909         * graphite-sese-to-poly.c: Likewise.
12910
12911 2015-07-13  Tom de Vries  <tom@codesourcery.com>
12912
12913         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
12914
12915 2015-07-13  Renlin Li  <renlin.li@arm.com>
12916
12917         PR rtl/66556
12918         * simplify-rtx.c (simplify_const_relational_operation): Add
12919         side_effects_p checks.
12920
12921 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
12922
12923         * bitmap.h: Fix double word typos.
12924         * builtins.c: Same.
12925         * calls.c: Same.
12926         * cfgloopmanip.c: Same.
12927         * cgraph.c: Same.
12928         * cgraph.h: Same.
12929         * cgraphclones.c: Same.
12930         * combine.c: Same.
12931         * config/aarch64/aarch64-protos.h: Same.
12932         * config/aarch64/aarch64.c: Same.
12933         * config/aarch64/aarch64.md: Same.
12934         * config/arm/arm.md: Same.
12935         * config/arm/arm1020e.md: Same.
12936         * config/arm/arm1026ejs.md: Same.
12937         * config/arm/arm926ejs.md: Same.
12938         * config/arm/fa526.md: Same.
12939         * config/arm/fa606te.md: Same.
12940         * config/arm/fa626te.md: Same.
12941         * config/arm/fa726te.md: Same.
12942         * config/arm/fmp626.md: Same.
12943         * config/darwin.c: Same.
12944         * config/epiphany/epiphany.c: Same.
12945         * config/frv/frv.c: Same.
12946         * config/ft32/ft32.c: Same.
12947         * config/gnu-user.h: Same.
12948         * config/h8300/constraints.md: Same.
12949         * config/i386/i386.c: Same.
12950         * config/i386/i386.md: Same.
12951         * config/iq2000/iq2000.md: Same.
12952         * config/mips/mips.c: Same.
12953         * config/mmix/mmix.md: Same.
12954         * config/moxie/moxie.c: Same.
12955         * config/nds32/nds32.md: Same.
12956         * config/pa/pa.h: Same.
12957         * config/rs6000/aix.h: Same.
12958         * config/rs6000/rs6000.h: Same.
12959         * config/sh/sh.c: Same.
12960         * config/tilegx/tilegx.md: Same.
12961         * config/tilepro/gen-mul-tables.cc: Same.
12962         * cse.c: Same.
12963         * dbxout.c: Same.
12964         * doc/invoke.texi: Same.
12965         * dse.c: Same.
12966         * dwarf2out.c: Same.
12967         * final.c: Same.
12968         * gcc.c: Same.
12969         * genmatch.c: Same.
12970         * gimplify.c: Same.
12971         * hash-table.h: Same.
12972         * internal-fn.c: Same.
12973         * ipa-cp.c: Same.
12974         * ipa-devirt.c: Same.
12975         * ipa-icf.c: Same.
12976         * ipa-icf.h: Same.
12977         * ipa-profile.c: Same.
12978         * ipa-prop.c: Same.
12979         * ipa-prop.h: Same.
12980         * ira.c: Same.
12981         * omp-low.c: Same.
12982         * reg-stack.c: Same.
12983         * regcprop.c: Same.
12984         * reorg.c: Same.
12985         * rtl.h: Same.
12986         * sbitmap.h: Same.
12987         * tree-eh.c: Same.
12988         * tree-inline.c: Same.
12989         * tree-sra.c: Same.
12990         * tree-ssa-dom.c: Same.
12991         * tree-ssa-loop-ivopts.c: Same.
12992         * tree-ssa-structalias.c: Same.
12993         * tree-ssa-tail-merge.c: Same.
12994         * tree-ssa-ter.c: Same.
12995         * tree-ssa-threadupdate.c: Same.
12996         * tree-ssa-uninit.c: Same.
12997         * tree-ssanames.c: Same.
12998         * tree-vect-loop-manip.c: Same.
12999         * tree-vrp.c: Same.
13000         * tree.c: Same.
13001         * valtrack.c: Same.
13002         * vec.h: Same.
13003
13004 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13005
13006         PR middle-end/66726
13007         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
13008         tree_ssa_phiopt_worker): Call it.
13009
13010 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13011
13012         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
13013         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
13014         REG_EQUAL note.
13015
13016 2015-07-11  Marek Polacek  <polacek@redhat.com>
13017
13018         PR middle-end/66353
13019         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
13020         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
13021         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
13022         rather than bb_has_abnormal_call_pred.
13023         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
13024         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
13025         rather than bb_has_abnormal_call_pred.
13026
13027 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
13028
13029         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13030         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
13031         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13032         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
13033         v850_legitimate_address_p): New functions.
13034         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
13035
13036 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
13037
13038         PR target/66819
13039         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
13040         indirect sibcall with register arguments if register available
13041         for argument passing.
13042         (init_cumulative_args): Set cfun->machine->arg_reg_available
13043         to (cum->nregs > 0) or to true if function has a variable
13044         argument list.
13045         (function_arg_advance_32): Set cfun->machine->arg_reg_available
13046         to false if cum->nregs <= 0.
13047         * config/i386/i386.h (machine_function): Add arg_reg_available.
13048
13049 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
13050
13051         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
13052         and gen_higpart instead of gen_rtx_SUBREG.
13053         * config/i386/i386.md
13054         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
13055         (read-modify peephole2): Use gen_lowpart instead of
13056         gen_rtx_SUBREG for operand 5.
13057
13058 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
13059
13060         * config/tilepro/gen-mul-tables.cc (main): Change include list for
13061         generated files.
13062         * config/tilepro/mul-tables.c: Regenerate.
13063         * config/tilegx/mul-tables.c: Regenerate.
13064
13065 2015-07-10  Richard Biener  <rguenther@suse.de>
13066
13067         * fold-const.c (distribute_bit_expr): Remove.
13068         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
13069         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
13070         to A & (B | C) and simplifying A << C1 << C2 to ...
13071         * match.pd: ... patterns here.
13072
13073 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
13074
13075         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
13076         Mark mem as READONLY and NOTRAP for PIC symbol.
13077
13078 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
13079
13080         * gimple-predict.h: New file.
13081         (gimple_predict_predictor, gimple_predict_set_predictor,
13082         gimple_predict_outcome, gimple_predict_set_outcome,
13083         gimple_build_predict): Relocate here.
13084         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
13085         gimple_predict_outcome, gimple_predict_set_outcome): Move to
13086         gimple-predict.h.
13087         * gimple.c (gimple_build_predict): Move to gimple-predict.h
13088         * basic-block.h: Don't include cfghooks.h.
13089         * backend.h: Don't include predict.h.
13090         * cfghooks.h: Include predict.h.
13091         * gimple-pretty-print.c: Include gimple-predict.h.
13092         * gimplify.c: Likwise.
13093         * predict.c: Adjust includes.
13094         * tree-inline.c: Likewise.
13095         * asan.c: Likewise.
13096         * auto-inc-dec.c: Likewise.
13097         * auto-profile.c: Likewise.
13098         * bb-reorder.c: Likewise.
13099         * builtins.c: Likewise.
13100         * caller-save.c: Likewise.
13101         * calls.c: Likewise.
13102         * cfganal.c: Likewise.
13103         * cfgbuild.c: Likewise.
13104         * cfg.c: Likewise.
13105         * cfgcleanup.c: Likewise.
13106         * cfgexpand.c: Likewise.
13107         * cfghooks.c: Likewise.
13108         * cfgloopanal.c: Likewise.
13109         * cfgloop.c: Likewise.
13110         * cfgloopmanip.c: Likewise.
13111         * cfgrtl.c: Likewise.
13112         * cgraph.c: Likewise.
13113         * cgraphunit.c: Likewise.
13114         * combine.c: Likewise.
13115         * cprop.c: Likewise.
13116         * cse.c: Likewise.
13117         * dce.c: Likewise.
13118         * dojump.c: Likewise.
13119         * dse.c: Likewise.
13120         * except.c: Likewise.
13121         * expmed.c: Likewise.
13122         * expr.c: Likewise.
13123         * final.c: Likewise.
13124         * fold-const.c: Likewise.
13125         * function.c: Likewise.
13126         * fwprop.c: Likewise.
13127         * gcc-plugin.h: Likewise.
13128         * gcse.c: Likewise.
13129         * genattrtab.c: Likewise.
13130         * genemit.c: Likewise.
13131         * gengtype.c: Likewise.
13132         * genopinit.c: Likewise.
13133         * genoutput.c: Likewise.
13134         * genpreds.c: Likewise.
13135         * genrecog.c: Likewise.
13136         * gimple-fold.c: Likewise.
13137         * gimple-iterator.c: Likewise.
13138         * gimple-ssa-isolate-paths.c: Likewise.
13139         * gimple-ssa-strength-reduction.c: Likewise.
13140         * graph.c: Likewise.
13141         * graphite-blocking.c: Likewise.
13142         * graphite.c: Likewise.
13143         * graphite-dependences.c: Likewise.
13144         * graphite-interchange.c: Likewise.
13145         * graphite-isl-ast-to-gimple.c: Likewise.
13146         * graphite-optimize-isl.c: Likewise.
13147         * graphite-poly.c: Likewise.
13148         * graphite-scop-detection.c: Likewise.
13149         * graphite-sese-to-poly.c: Likewise.
13150         * haifa-sched.c: Likewise.
13151         * ifcvt.c: Likewise.
13152         * internal-fn.c: Likewise.
13153         * ipa-cp.c: Likewise.
13154         * ipa-profile.c: Likewise.
13155         * ipa-split.c: Likewise.
13156         * ipa-utils.c: Likewise.
13157         * ira-build.c: Likewise.
13158         * ira-color.c: Likewise.
13159         * ira-conflicts.c: Likewise.
13160         * ira-costs.c: Likewise.
13161         * ira-emit.c: Likewise.
13162         * ira-lives.c: Likewise.
13163         * jump.c: Likewise.
13164         * loop-doloop.c: Likewise.
13165         * loop-init.c: Likewise.
13166         * loop-invariant.c: Likewise.
13167         * loop-unroll.c: Likewise.
13168         * lower-subreg.c: Likewise.
13169         * lra-assigns.c: Likewise.
13170         * lra.c: Likewise.
13171         * lra-coalesce.c: Likewise.
13172         * lra-constraints.c: Likewise.
13173         * lra-lives.c: Likewise.
13174         * lto-cgraph.c: Likewise.
13175         * lto-streamer-in.c: Likewise.
13176         * mode-switching.c: Likewise.
13177         * modulo-sched.c: Likewise.
13178         * omp-low.c: Likewise.
13179         * optabs.c: Likewise.
13180         * passes.c: Likewise.
13181         * postreload.c: Likewise.
13182         * postreload-gcse.c: Likewise.
13183         * profile.c: Likewise.
13184         * recog.c: Likewise.
13185         * regstat.c: Likewise.
13186         * reload1.c: Likewise.
13187         * reorg.c: Likewise.
13188         * rtlanal.c: Likewise.
13189         * sched-ebb.c: Likewise.
13190         * sel-sched-ir.c: Likewise.
13191         * sese.c: Likewise.
13192         * shrink-wrap.c: Likewise.
13193         * simplify-rtx.c: Likewise.
13194         * stmt.c: Likewise.
13195         * store-motion.c: Likewise.
13196         * tracer.c: Likewise.
13197         * trans-mem.c: Likewise.
13198         * tree-call-cdce.c: Likewise.
13199         * tree-cfg.c: Likewise.
13200         * tree-cfgcleanup.c: Likewise.
13201         * tree-chkp.c: Likewise.
13202         * tree-complex.c: Likewise.
13203         * tree-eh.c: Likewise.
13204         * tree-if-conv.c: Likewise.
13205         * tree-loop-distribution.c: Likewise.
13206         * tree-outof-ssa.c: Likewise.
13207         * tree-parloops.c: Likewise.
13208         * tree-predcom.c: Likewise.
13209         * tree-pretty-print.c: Likewise.
13210         * tree-profile.c: Likewise.
13211         * tree-sra.c: Likewise.
13212         * tree-ssa.c: Likewise.
13213         * tree-ssa-coalesce.c: Likewise.
13214         * tree-ssa-dce.c: Likewise.
13215         * tree-ssa-dom.c: Likewise.
13216         * tree-ssa-forwprop.c: Likewise.
13217         * tree-ssa-ifcombine.c: Likewise.
13218         * tree-ssa-loop-ch.c: Likewise.
13219         * tree-ssa-loop-im.c: Likewise.
13220         * tree-ssa-loop-ivcanon.c: Likewise.
13221         * tree-ssa-loop-ivopts.c: Likewise.
13222         * tree-ssa-loop-manip.c: Likewise.
13223         * tree-ssa-loop-prefetch.c: Likewise.
13224         * tree-ssa-loop-unswitch.c: Likewise.
13225         * tree-ssa-math-opts.c: Likewise.
13226         * tree-ssa-phiopt.c: Likewise.
13227         * tree-ssa-pre.c: Likewise.
13228         * tree-ssa-reassoc.c: Likewise.
13229         * tree-ssa-sink.c: Likewise.
13230         * tree-ssa-tail-merge.c: Likewise.
13231         * tree-ssa-threadedge.c: Likewise.
13232         * tree-ssa-threadupdate.c: Likewise.
13233         * tree-switch-conversion.c: Likewise.
13234         * tree-tailcall.c: Likewise.
13235         * tree-vect-data-refs.c: Likewise.
13236         * tree-vect-loop.c: Likewise.
13237         * tree-vect-loop-manip.c: Likewise.
13238         * tree-vectorizer.c: Likewise.
13239         * tree-vrp.c: Likewise.
13240         * ubsan.c: Likewise.
13241         * value-prof.c: Likewise.
13242         * varasm.c: Likewise.
13243         * var-tracking.c: Likewise.
13244         * config/aarch64/aarch64-builtins.c: Likewise.
13245         * config/aarch64/aarch64.c: Likewise.
13246         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13247         * config/alpha/alpha.c: Likewise.
13248         * config/arc/arc.c: Likewise.
13249         * config/arm/arm.c: Likewise.
13250         * config/avr/avr.c: Likewise.
13251         * config/bfin/bfin.c: Likewise.
13252         * config/c6x/c6x.c: Likewise.
13253         * config/cr16/cr16.c: Likewise.
13254         * config/cris/cris.c: Likewise.
13255         * config/darwin.c: Likewise.
13256         * config/darwin-c.c: Likewise.
13257         * config/epiphany/epiphany.c: Likewise.
13258         * config/epiphany/mode-switch-use.c: Likewise.
13259         * config/epiphany/resolve-sw-modes.c: Likewise.
13260         * config/fr30/fr30.c: Likewise.
13261         * config/frv/frv.c: Likewise.
13262         * config/ft32/ft32.c: Likewise.
13263         * config/h8300/h8300.c: Likewise.
13264         * config/i386/i386.c: Likewise.
13265         * config/i386/winnt.c: Likewise.
13266         * config/ia64/ia64.c: Likewise.
13267         * config/iq2000/iq2000.c: Likewise.
13268         * config/lm32/lm32.c: Likewise.
13269         * config/m32c/m32c.c: Likewise.
13270         * config/m32r/m32r.c: Likewise.
13271         * config/m68k/m68k.c: Likewise.
13272         * config/mcore/mcore.c: Likewise.
13273         * config/mep/mep.c: Likewise.
13274         * config/microblaze/microblaze.c: Likewise.
13275         * config/mips/mips.c: Likewise.
13276         * config/mmix/mmix.c: Likewise.
13277         * config/mn10300/mn10300.c: Likewise.
13278         * config/moxie/moxie.c: Likewise.
13279         * config/msp430/msp430.c: Likewise.
13280         * config/nds32/nds32.c: Likewise.
13281         * config/nds32/nds32-cost.c: Likewise.
13282         * config/nds32/nds32-fp-as-gp.c: Likewise.
13283         * config/nds32/nds32-intrinsic.c: Likewise.
13284         * config/nds32/nds32-isr.c: Likewise.
13285         * config/nds32/nds32-md-auxiliary.c: Likewise.
13286         * config/nds32/nds32-memory-manipulation.c: Likewise.
13287         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13288         * config/nds32/nds32-predicates.c: Likewise.
13289         * config/nios2/nios2.c: Likewise.
13290         * config/nvptx/nvptx.c: Likewise.
13291         * config/pa/pa.c: Likewise.
13292         * config/pdp11/pdp11.c: Likewise.
13293         * config/rl78/rl78.c: Likewise.
13294         * config/rs6000/rs6000.c: Likewise.
13295         * config/rx/rx.c: Likewise.
13296         * config/s390/s390.c: Likewise.
13297         * config/sh/sh.c: Likewise.
13298         * config/sh/sh-mem.cc: Likewise.
13299         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
13300         * config/sh/sh_treg_combine.cc: Likewise.
13301         * config/sparc/sparc.c: Likewise.
13302         * config/spu/spu.c: Likewise.
13303         * config/stormy16/stormy16.c: Likewise.
13304         * config/tilegx/tilegx.c: Likewise.
13305         * config/tilepro/tilepro.c: Likewise.
13306         * config/v850/v850.c: Likewise.
13307         * config/vax/vax.c: Likewise.
13308         * config/visium/visium.c: Likewise.
13309         * config/xtensa/xtensa.c: Likewise.
13310
13311 2015-07-10  Richard Biener  <rguenther@suse.de>
13312
13313         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
13314         (decision_tree::gen_gimple): Likewise.
13315         (decision_tree::gen_generic): Likewise.
13316
13317 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
13318
13319         PR target/66813
13320         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
13321         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
13322
13323 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
13324
13325         PR middle-end/66820
13326         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
13327         or ORT_TASK contexts.
13328         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
13329         is non-zero.
13330
13331 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13332
13333         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
13334         above function.
13335
13336 2015-07-10  Tom de Vries  <tom@codesourcery.com>
13337
13338         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
13339         insert nit + 1 bound.
13340
13341 2015-07-10  Richard Biener  <rguenther@suse.de>
13342
13343         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
13344         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
13345         (if_convertible_loop_p_1): For this always compute bb predicates.
13346         (if_convertible_loop_p): And free them.
13347
13348 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13349
13350         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
13351         in dump message.
13352
13353 2015-07-10  Richard Biener  <rguenther@suse.de>
13354
13355         PR tree-optimization/66823
13356         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
13357         inverted predicate.
13358
13359 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
13360
13361         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
13362         to handle mips[32|64]r3 and mips[32|64]r5.
13363
13364 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
13365
13366         PR middle-end/66633
13367         * tree-nested.c (get_static_chain): Or in a flag into
13368         info->static_chain_added.
13369         (get_frame_field, get_nonlocal_debug_decl): Likewise.
13370         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
13371         2015-07-01 changes.
13372         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
13373         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
13374         add it to clauses.
13375
13376         PR tree-optimization/66718
13377         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
13378         field.
13379         (vect_simd_lane_linear): New function.
13380         (vectorizable_simd_clone_call): Support using linear arguments for
13381         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
13382
13383 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13384
13385         PR target/66821
13386         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
13387
13388 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13389
13390         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
13391         Use machine mode, not enum machine_mode in the prototype.
13392
13393         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
13394         classify 128-bit floating point support.
13395         (FLOAT128_IBM_P): Likewise.
13396         (FLOAT128_VECTOR_P): Likewise.
13397         (FLOAT128_2REG_P): Likewise.
13398         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
13399         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
13400         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
13401         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
13402
13403         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
13404         tests against TFmode/TDmode, since those modes do not use VSX
13405         addresses.
13406         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
13407         support.
13408         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
13409         tests against TFmode, etc.
13410         (invalid_e500_subreg): Add tests against IFmode/KFmode.
13411         (reg_offset_addressing_ok_p): Likewise.
13412         (rs6000_legitimate_offset_address_p): Likewise.
13413         (rs6000_legitimize_address): Likewise.
13414         (rs6000_legitimize_reload_address): Likewise.
13415         (rs6000_legitimate_address_p): Clean up tests against TFmode and
13416         TDmode to use the new helper macros, which will include IFmode and
13417         KFmode.
13418         (rs6000_emit_move): Likewise.
13419         (rs6000_darwin64_record_arg_recurse): Likewise.
13420         (print_operand): Likewise.
13421         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
13422         that uses a single vector register as a vector and not as a
13423         floating point register in terms of the calling sequence.
13424         (rs6000_discover_homogeneous_aggregate): Likewise.
13425         (rs6000_return_in_memory): Likewise.
13426         (init_cumulative_args): Likewise.
13427         (rs6000_function_arg_boundary): Likewise.
13428         (rs6000_function_arg_advance_1): Likewise.
13429         (rs6000_function_arg): Likewise.
13430         (rs6000_pass_by_reference): Likewise.
13431         (rs6000_gimplify_va_arg): Likewise.
13432         (rs6000_secondary_reload_memory): Use machine_mode not enum
13433         machine mode.
13434         (rs6000_split_multireg_move): Use new helper macros.
13435         (spe_func_has_64bit_regs_p): Likewise.
13436         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
13437         (output_toc): Use new helper macros.
13438         (rs6000_register_move_cost): Likewise.
13439         (rs6000_function_value): Add IEEE 128-bit floating point calling
13440         sequence support.
13441         (rs6000_libcall_value): Likewise.
13442         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
13443         floating point support.
13444         (rs6000_vector_mode_supported_p): Likewise.
13445
13446 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
13447
13448         PR rtl-optimization/66782
13449         * lra-int.h (struct lra_insn_recog_data): Add comment about
13450         clobbered hard regs for arg_hard_regs.
13451         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
13452         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
13453         Add condition for processing used hard regs.
13454         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
13455         Process clobbered hard regs.
13456
13457 2015-07-09  Michael Matz  <matz@suse.de>
13458
13459         * genmatch.c (fprintf_indent): New function.
13460         (operand::gen_transform): Add indent parameter.
13461         (expr::gen_transform, c_expr::gen_transform,
13462         capture::gen_transform): Ditto and use fprintf_indent.
13463         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
13464         (dt_operand::gen, dt_operand::gen_predicate,
13465         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
13466         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
13467         (decision_tree::gen_gimple): Adjust calls and indent generated
13468         code.
13469         (decision_tree::gen_generic): Ditto.
13470         (write_predicate): Ditto.
13471
13472 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13473
13474         PR target/66814
13475         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
13476         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
13477         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
13478         {GENERAL,SSE,MMX}_REG_P where appropriate.
13479
13480 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13481
13482         * lto-streamer.h: Don't include target.h and alloc-pool.h.
13483         * builtins.c: Adjust includes.
13484         * gimple.c: Likewise.
13485         * ipa-icf.c: Likewise.
13486         * lto-opts.c: Likewise.
13487         * ipa-reference.c: Likewise.
13488         * lto-section-out.c: Likewise.
13489         * lto-streamer-in.c: Likewise.
13490         * lto-streamer-out.c: Likewise.
13491         * opts-global.c: Likewise.
13492         * symtab.c: Likewise.
13493         * tree-chkp.c: Likewise.
13494         * tree-ssa-live.c: Likewise.
13495         * tree-streamer-in.c: Likewise.
13496         * tree-streamer-out.c: Likewise.
13497         * config/darwin.c: Likewise.
13498         * config/i386/winnt.c: Likewise.
13499
13500 2015-07-09  Richard Biener  <rguenther@suse.de>
13501
13502         * genmatch.c (struct expr): Add force_single_use flag.
13503         (expr::expr): Add copy constructor.
13504         (capture_info::walk_match): Gather force_single_use captures.
13505         (expr::gen_transform): Use possibly NULLified sequence.
13506         (dt_simplify::gen): Apply single-use restrictions by NULLifying
13507         seq if any constrained expr is not single-use.
13508         (parser::parse_expr): Refactor to allow multiple flags.  Handle
13509         's' flag to force an expression have a single-use if the pattern
13510         simplifies to more than one statement.
13511         * match.pd: Convert most single_use conditionals to :s flags.
13512
13513 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13514
13515         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
13516         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
13517         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
13518
13519 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13520
13521         * flags.h: Don't include flag-types.h or options.h.
13522         * opts-common.c: Adjust includes.
13523         * opts-global.c: Likewise.
13524         * common/config/epiphany/epiphany-common.c: Likewise.
13525
13526 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13527
13528         PR target/66818
13529         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
13530         for IA MCU.
13531
13532 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13533
13534         PR target/66817
13535         * config/i386/i386.c (ix86_return_in_memory): Return true
13536         if int_size_in_bytes returns negative for IA MCU.
13537
13538 2015-07-09  Marek Polacek  <polacek@redhat.com>
13539
13540         PR tree-optimization/66718
13541         * Makefile.in (OBJS): Add gimple-laddress.o.
13542         * passes.def: Schedule pass_laddress.
13543         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
13544         * tree-pass.h (make_pass_laddress): Declare.
13545         * gimple-laddress.c: New file.
13546
13547 2015-07-09  Richard Biener  <rguenther@suse.de>
13548
13549         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
13550
13551 2015-07-09  Richard Biener  <rguenther@suse.de>
13552
13553         PR tree-optimization/66807
13554         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
13555
13556 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
13557
13558         * function.c (stack_protect_epilogue): Use if rather than switch for
13559         check targetm.have_stack_protect_test.
13560
13561 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13562
13563         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
13564         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
13565         * config/arc/arc.h: Likewise.
13566         * config/arm/arm.h: Likewise.
13567         * config/bfin/bfin.h: Likewise.
13568         * config/epiphany/epiphany.h: Likewise.
13569         * config/frv/frv.h: Likewise.
13570         * config/ia64/ia64.h: Likewise.
13571         * config/iq2000/iq2000.h: Likewise.
13572         * config/lm32/lm32.h: Likewise.
13573         * config/m32r/m32r.h: Likewise.
13574         * config/mcore/mcore.h: Likewise.
13575         * config/mep/mep.h: Likewise.
13576         * config/microblaze/microblaze.h: Likewise.
13577         * config/mips/mips.h: Likewise.
13578         * config/mmix/mmix.h: Likewise.
13579         * config/mn10300/mn10300.h: Likewise.
13580         * config/nds32/nds32.h: Likewise.
13581         * config/nios2/nios2.h: Likewise.
13582         * config/pa/pa.h: Likewise.
13583         * config/rl78/rl78.h: Likewise.
13584         * config/sh/sh.h: Likewise.
13585         * config/sparc/sparc.h: Likewise.
13586         * config/stormy16/stormy16.h: Likewise.
13587         * config/tilegx/tilegx.h: Likewise.
13588         * config/tilepro/tilepro.h: Likewise.
13589         * config/v850/v850.h: Likewise.
13590         * config/xtensa/xtensa.h: Likewise.
13591         * doc/tm.texi: Regenerate.
13592         * doc/tm.texi.in: Adjust.
13593         * combine.c (simplify_set): Likewise.
13594         (simplify_comparison): Likewise.
13595         * expr.c (store_constructor): Likewise.
13596         * internal-fn.c (expand_arith_overflow): Likewise.
13597         * reload.c (push_reload): Likewise.
13598         (find_reloads): Likewise.
13599         (find_reloads_subreg_address): Likewise.
13600         * reload1.c (eliminate_regs_1): Likewise.
13601         * rtlanal.c (nonzero_bits1): Likewise.
13602         (num_sign_bit_copies1): Likewise.
13603         * simplify-rtx.c (simplify_truncation): Likewise.
13604
13605 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13606
13607         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
13608         of AUTO_INC_DEC with the preprocessor.
13609         * combine.c (combine_instructions): Likewise.
13610         (can_combine_p): Likewise.
13611         (try_combine): Likewise.
13612         * emit-rtl.c (try_split): Likewise.
13613         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13614         * lower-subreg.c (resolve_simple_move): Likewise.
13615         * lra.c (update_inc_notes): Likewise.
13616         * recog.c (asm_operand_ok): Likewise.
13617         (constrain_operands): Likewise.
13618         * regrename.c (scan_rtx_address): Likewise.
13619         * reload.c (update_auto_inc_notes): Likewise.
13620         (reg_inc_found_and_valid_p): Likewise.
13621         * reload1.c (reload): Likewise.
13622         (emit_input_reload_insns): Likewise.
13623         (delete_output_reload): Likewise.
13624         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13625         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13626
13627 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13628
13629         * rtl.h: Always define AUTO_INC_DEC.
13630         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
13631         * combine.c (combine_instructions): Likewise.
13632         (can_combine_p): Likewise.
13633         (try_combine): Likewise.
13634         * emit-rtl.c (try_split): Likewise.
13635         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13636         * lower-subreg.c (resolve_simple_move): Likewise.
13637         * lra.c (update_inc_notes): Likewise.
13638         * recog.c (asm_operand_ok): Likewise.
13639         (constrain_operands): Likewise.
13640         * regrename.c (scan_rtx_address): Likewise.
13641         * reload.c (update_auto_inc_notes): Likewise.
13642         (find_equiv_reg): Likewise.
13643         * reload1.c (reload): Likewise.
13644         (reload_as_needed): Likewise.
13645         (choose_reload_regs): Likewise.
13646         (emit_input_reload_insns): Likewise.
13647         (delete_output_reload): Likewise.
13648         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13649         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13650
13651 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13652
13653         * combine.c (can_combine_def_p): Don't check the value of
13654         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
13655         (combinable_i3pat): Likewise.
13656         (mark_used_regs_combine): Likewise.
13657         * regrename.c (rename_chains): Likewise.
13658         * reload.c (find_reloads_address): Likewise.
13659         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13660
13661 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13662
13663         * combine.c (update_rsp_from_reg_equal): Don't check if
13664         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
13665         (reg_nonzero_bits_for_combine): Likewise.
13666         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
13667         1.
13668         * config/frv/frv.h: Likewise.
13669         * config/lm32/lm32.h: Likewise.
13670         * config/mep/mep.h: Likewise.
13671         * config/mips/mips.h: Likewise.
13672         * config/rs6000/rs6000.h: Likewise.
13673         * config/sh/sh.h: Likewise.
13674         * config/tilegx/tilegx.h (enum reg_class): Likewise.
13675         * config/tilepro/tilepro.h: Likewise.
13676         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
13677         * doc/tm.texi: Regenerate.
13678         * doc/tm.texi.in: Adjust.
13679         * rtlanal.c (nonzero_bits1): Likewise.
13680
13681 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13682
13683         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
13684         with the preprocessor.
13685         (combine_instructions): Likewise.
13686         (try_combine): Likewise.
13687         (subst): Likewise.
13688         (distribute_notes): Likewise.
13689
13690 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13691
13692         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
13693         defined.
13694         (simplify_set): Likewise.
13695         * cse.c (cse_insn): Likewise.
13696         * fold-const.c (fold_single_bit_test): Likewise.
13697         (fold_unary_loc): Likewise.
13698         * postreload.c (reload_cse_simplify_set): Likewise.
13699         (reload_cse_simplify_operands): Likewise.
13700
13701 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
13702
13703         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
13704         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
13705
13706 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13707
13708         PR target/66746
13709         * config/i386/x86intrin.h: Include <adxintrin.h> even if
13710         __iamcu__ is defined.
13711
13712 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13713
13714         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
13715
13716 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
13717
13718         PR target/66523
13719         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
13720         names from preservation.
13721
13722 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13723
13724         PR target/66806
13725         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
13726         change for IAMCU.
13727         (function_arg_advance_32): Don't pass vectors in registers for
13728         IAMCU.
13729         (function_arg_32): Likewise.
13730         (ix86_return_in_memory): Don't return vectors in registers for
13731         IAMCU.
13732
13733 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13734
13735         PR middle-end/66334
13736         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
13737         hard regno live at the start of BB with incoming abnormal edges.
13738         * lra-lives.c (process_bb_lives): Ditto.
13739
13740 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
13741
13742         PR libgomp/65099
13743         * config/nvptx/mkoffload.c (main): Create an offload image only in
13744         64-bit configurations.
13745
13746 2015-07-08  Martin Liska  <mliska@suse.cz>
13747
13748         PR bootstrap/66744
13749         * tree-sra.c (create_access_1): Call ctor without brackets.
13750         (create_artificial_child_access): Likewise.
13751
13752 2015-07-08  Richard Biener  <rguenther@suse.de>
13753
13754         PR tree-optimization/66793
13755         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
13756         Properly split the block after stmts ending it.
13757
13758 2015-07-08  Richard Biener  <rguenther@suse.de>
13759
13760         PR tree-optimization/66794
13761         * passes.c (execute_function_todo): Assert that post-dominators
13762         are not computed.
13763         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
13764         Free post-dominators.
13765
13766 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13767
13768         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
13769         with early exit.
13770
13771 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13772
13773         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
13774         more than or equal 8 and less than 32 when optimizing for size.
13775
13776 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13777
13778         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
13779         COSTS_N_INSNS (1) and increment it appropriately throughout the
13780         function.
13781
13782 2015-07-08  Richard Biener  <rguenther@suse.de>
13783
13784         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
13785
13786 2015-07-08  Alan Modra  <amodra@gmail.com>
13787
13788         * target.def (rtx_costs): Remove "code" param, add "mode".
13789         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
13790         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
13791         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
13792         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
13793         call.  Track mode when given in rtx.
13794         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
13795         (default_address_cost): Pass Pmode to rtx_cost.
13796         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
13797         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
13798         with NULL set.
13799         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
13800         (notreg_cost): Add mode param.  Use it.
13801         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
13802         mode param and pass to set_src_cost.  Update all calls.
13803         (hash_scan_set): Formatting.
13804         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
13805         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
13806         * hooks.h: Ditto.
13807         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
13808         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
13809         emit_store_flag): Update set_src_cost and rtx_cost calls.
13810         * auto-inc-dec.c (attempt_change): Likewise.
13811         * calls.c (precompute_register_parameters): Likewise.
13812         * combine.c (expand_compound_operation, make_extraction,
13813         force_to_mode, distribute_and_simplify_rtx): Likewise.
13814         * dojump.c (prefer_and_bit_test): Likewise.
13815         * dse.c (find_shift_sequence): Likewise.
13816         * expr.c (compress_float_constant): Likewise.
13817         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13818         * ifcvt.c (noce_try_sign_mask): Likewise.
13819         * loop-doloop.c (doloop_optimize): Likewise.
13820         * loop-invariant.c (create_new_invariant): Likewise.
13821         * lower-subreg.c (shift_cost, compute_costs): Likewise.
13822         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
13823         lshift_cheap_p): Likewise.
13824         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13825         try_replace_in_use, reload_cse_move2add): Likewise.
13826         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
13827         Likewise.
13828         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13829         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13830         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
13831         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
13832         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
13833         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
13834         to rtx_cost calls.
13835         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
13836         * config/arc/arc.c (arc_rtx_costs): Likewise.
13837         * config/arm/arm.c (arm_rtx_costs): Likewise.
13838         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
13839         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13840         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13841         * config/cris/cris.c (cris_rtx_costs): Likewise.
13842         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
13843         * config/frv/frv.c (frv_rtx_costs): Likewise.
13844         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13845         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13846         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13847         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13848         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13849         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13850         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13851         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13852         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13853         * config/mep/mep.c (mep_rtx_cost): Likewise.
13854         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13855         * config/mips/mips.c (mips_rtx_costs): Likewise.
13856         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13857         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
13858         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
13859         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
13860         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
13861         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
13862         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
13863         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13864         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13865         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
13866         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13867         * config/s390/s390.c (s390_rtx_costs): Likewise.
13868         * config/sh/sh.c (sh_rtx_costs): Likewise.
13869         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13870         * config/spu/spu.c (spu_rtx_costs): Likewise.
13871         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13872         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
13873         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
13874         * config/v850/v850.c (v850_rtx_costs): Likewise.
13875         * config/vax/vax.c (vax_rtx_costs): Likewise.
13876         * config/visium/visium.c (visium_rtx_costs): Likewise.
13877         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13878         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
13879         "code" param, and pass as outer_code to first rtx_cost call.  Pass
13880         mode to rtx_cost calls.
13881         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
13882         calls.
13883         (aarch64_rtx_costs_wrapper): Update.
13884         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
13885         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
13886         rtx_cost calls.
13887         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
13888         and rtx_cost calls.
13889         (avr_operand_rtx_cost): Similarly.
13890         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
13891         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
13892         * config/mips/mips.c (mips_stack_address_p): Comment typo.
13893         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
13894         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
13895         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
13896         rtx_cost.
13897         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
13898         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
13899         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
13900         * doc/tm.texi: Regenerate.
13901
13902 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
13903
13904         * tree-core.h: Include symtab.h.
13905         * rtl.h: Include hard-reg-set.h but not flags.h.
13906         (HARD_CONST): Remove condition compilation involving HARD_CONST since
13907         hard-reg-set.h is always included.
13908         * regs.h: Don't include hard-reg-set.h or rtl.h.
13909         * cfg.h: Include dominance.h.
13910         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
13911         * backend.h: New.  Aggregate commonly used backend header files.
13912         * gimple-ssa.h: Don't include tree-hasher.h.
13913         * ssa.h: New.  Aggregate commonly used SSA header files.
13914         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
13915         * sel-sched-ir.h: Flatten includes.
13916         * lra-int.h: Flatten completely.
13917         * sel-sched-dump.h: Flatten includes.
13918         * ira-int.h: Flatten includes.
13919         * gimple-streamer.h: Remove all includes.
13920         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
13921         * resource.h: Flatten hard-reg-set.h and df.h.
13922         * sched-int.h: Flatten insn-arrt.h and df.h.
13923         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
13924         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
13925         * genattrtab.c (write_header): Adjust generated includes.
13926         * genautomata.c (main): Likewise.
13927         * genconditions.c (write-header): Likewise.
13928         * genemit.c (main): Likewise.
13929         * gengtype.c (open_base_files): Likewise.
13930         * genopinit.c (main): Likewise.
13931         * genoutput.c (output_prologue): Likewise.
13932         * genpeep.c (main): Likewise.
13933         * genpreds.c (write_insn_preds_c): Likewise.
13934         * genrecog.c (write_header): Likewise.
13935         * alias.c: Adjust includes.
13936         * asan.c: Likewise.
13937         * attribs.c: Likewise.
13938         * auto-inc-dec.c: Likewise.
13939         * auto-profile.c: Likewise.
13940         * bb-reorder.c: Likewise.
13941         * bt-load.c: Likewise.
13942         * builtins.c: Likewise.
13943         * caller-save.c: Likewise.
13944         * calls.c: Likewise.
13945         * ccmp.c: Likewise.
13946         * cfg.c: Likewise.
13947         * cfganal.c: Likewise.
13948         * cfgbuild.c: Likewise.
13949         * cfgcleanup.c: Likewise.
13950         * cfgexpand.c: Likewise.
13951         * cfghooks.c: Likewise.
13952         * cfgloop.c: Likewise.
13953         * cfgloopanal.c: Likewise.
13954         * cfgloopmanip.c: Likewise.
13955         * cfgrtl.c: Likewise.
13956         * cgraph.c: Likewise.
13957         * cgraphbuild.c: Likewise.
13958         * cgraphclones.c: Likewise.
13959         * cgraphunit.c: Likewise.
13960         * cilk-common.c: Likewise.
13961         * combine-stack-adj.c: Likewise.
13962         * combine.c: Likewise.
13963         * compare-elim.c: Likewise.
13964         * convert.c: Likewise.
13965         * coverage.c: Likewise.
13966         * cppbuiltin.c: Likewise.
13967         * cprop.c: Likewise.
13968         * cse.c: Likewise.
13969         * cselib.c: Likewise.
13970         * data-streamer-in.c: Likewise.
13971         * data-streamer-out.c: Likewise.
13972         * data-streamer.c: Likewise.
13973         * dbxout.c: Likewise.
13974         * dce.c: Likewise.
13975         * ddg.c: Likewise.
13976         * debug.c: Likewise.
13977         * df-core.c: Likewise.
13978         * df-problems.c: Likewise.
13979         * df-scan.c: Likewise.
13980         * dfp.c: Likewise.
13981         * dojump.c: Likewise.
13982         * dominance.c: Likewise.
13983         * domwalk.c: Likewise.
13984         * double-int.c: Likewise.
13985         * dse.c: Likewise.
13986         * dumpfile.c: Likewise.
13987         * dwarf2asm.c: Likewise.
13988         * dwarf2cfi.c: Likewise.
13989         * dwarf2out.c: Likewise.
13990         * emit-rtl.c: Likewise.
13991         * et-forest.c: Likewise.
13992         * except.c: Likewise.
13993         * explow.c: Likewise.
13994         * expmed.c: Likewise.
13995         * expr.c: Likewise.
13996         * final.c: Likewise.
13997         * fixed-value.c: Likewise.
13998         * fold-const.c: Likewise.
13999         * function.c: Likewise.
14000         * fwprop.c: Likewise.
14001         * gcc-plugin.h: Likewise.
14002         * gcse-common.c: Likewise.
14003         * gcse.c: Likewise.
14004         * generic-match-head.c: Likewise.
14005         * ggc-page.c: Likewise.
14006         * gimple-builder.c: Likewise.
14007         * gimple-expr.c: Likewise.
14008         * gimple-fold.c: Likewise.
14009         * gimple-iterator.c: Likewise.
14010         * gimple-low.c: Likewise.
14011         * gimple-match-head.c: Likewise.
14012         * gimple-pretty-print.c: Likewise.
14013         * gimple-ssa-isolate-paths.c: Likewise.
14014         * gimple-ssa-strength-reduction.c: Likewise.
14015         * gimple-streamer-in.c: Likewise.
14016         * gimple-streamer-out.c: Likewise.
14017         * gimple-walk.c: Likewise.
14018         * gimple.c: Likewise.
14019         * gimplify-me.c: Likewise.
14020         * gimplify.c: Likewise.
14021         * godump.c: Likewise.
14022         * graph.c: Likewise.
14023         * graphite-blocking.c: Likewise.
14024         * graphite-dependences.c: Likewise.
14025         * graphite-interchange.c: Likewise.
14026         * graphite-isl-ast-to-gimple.c: Likewise.
14027         * graphite-optimize-isl.c: Likewise.
14028         * graphite-poly.c: Likewise.
14029         * graphite-scop-detection.c: Likewise.
14030         * graphite-sese-to-poly.c: Likewise.
14031         * graphite.c: Likewise.
14032         * haifa-sched.c: Likewise.
14033         * hw-doloop.c: Likewise.
14034         * ifcvt.c: Likewise.
14035         * init-regs.c: Likewise.
14036         * internal-fn.c: Likewise.
14037         * ipa-chkp.c: Likewise.
14038         * ipa-comdats.c: Likewise.
14039         * ipa-cp.c: Likewise.
14040         * ipa-devirt.c: Likewise.
14041         * ipa-icf-gimple.c: Likewise.
14042         * ipa-icf.c: Likewise.
14043         * ipa-inline-analysis.c: Likewise.
14044         * ipa-inline-transform.c: Likewise.
14045         * ipa-inline.c: Likewise.
14046         * ipa-polymorphic-call.c: Likewise.
14047         * ipa-profile.c: Likewise.
14048         * ipa-prop.c: Likewise.
14049         * ipa-pure-const.c: Likewise.
14050         * ipa-ref.c: Likewise.
14051         * ipa-reference.c: Likewise.
14052         * ipa-split.c: Likewise.
14053         * ipa-utils.c: Likewise.
14054         * ipa-visibility.c: Likewise.
14055         * ipa.c: Likewise.
14056         * ira-build.c: Likewise.
14057         * ira-color.c: Likewise.
14058         * ira-conflicts.c: Likewise.
14059         * ira-costs.c: Likewise.
14060         * ira-emit.c: Likewise.
14061         * ira-lives.c: Likewise.
14062         * ira.c: Likewise.
14063         * jump.c: Likewise.
14064         * langhooks.c: Likewise.
14065         * lcm.c: Likewise.
14066         * loop-doloop.c: Likewise.
14067         * loop-init.c: Likewise.
14068         * loop-invariant.c: Likewise.
14069         * loop-iv.c: Likewise.
14070         * loop-unroll.c: Likewise.
14071         * lower-subreg.c: Likewise.
14072         * lra-assigns.c: Likewise.
14073         * lra-coalesce.c: Likewise.
14074         * lra-constraints.c: Likewise.
14075         * lra-eliminations.c: Likewise.
14076         * lra-lives.c: Likewise.
14077         * lra-remat.c: Likewise.
14078         * lra-spills.c: Likewise.
14079         * lra.c: Likewise.
14080         * lto-cgraph.c: Likewise.
14081         * lto-compress.c: Likewise.
14082         * lto-opts.c: Likewise.
14083         * lto-section-in.c: Likewise.
14084         * lto-section-out.c: Likewise.
14085         * lto-streamer-in.c: Likewise.
14086         * lto-streamer-out.c: Likewise.
14087         * lto-streamer.c: Likewise.
14088         * mcf.c: Likewise.
14089         * mode-switching.c: Likewise.
14090         * modulo-sched.c: Likewise.
14091         * omega.c: Likewise.
14092         * omp-low.c: Likewise.
14093         * optabs.c: Likewise.
14094         * opts-global.c: Likewise.
14095         * passes.c: Likewise.
14096         * plugin.c: Likewise.
14097         * postreload-gcse.c: Likewise.
14098         * postreload.c: Likewise.
14099         * predict.c: Likewise.
14100         * print-rtl.c: Likewise.
14101         * print-tree.c: Likewise.
14102         * profile.c: Likewise.
14103         * real.c: Likewise.
14104         * realmpfr.c: Likewise.
14105         * recog.c: Likewise.
14106         * ree.c: Likewise.
14107         * reg-stack.c: Likewise.
14108         * regcprop.c: Likewise.
14109         * reginfo.c: Likewise.
14110         * regrename.c: Likewise.
14111         * regstat.c: Likewise.
14112         * reload.c: Likewise.
14113         * reload1.c: Likewise.
14114         * reorg.c: Likewise.
14115         * resource.c: Likewise.
14116         * rtl-chkp.c: Likewise.
14117         * rtlanal.c: Likewise.
14118         * rtlhooks.c: Likewise.
14119         * sanopt.c: Likewise.
14120         * sched-deps.c: Likewise.
14121         * sched-ebb.c: Likewise.
14122         * sched-rgn.c: Likewise.
14123         * sched-vis.c: Likewise.
14124         * sdbout.c: Likewise.
14125         * sel-sched-dump.c: Likewise.
14126         * sel-sched-ir.c: Likewise.
14127         * sel-sched.c: Likewise.
14128         * sese.c: Likewise.
14129         * shrink-wrap.c: Likewise.
14130         * simplify-rtx.c: Likewise.
14131         * stack-ptr-mod.c: Likewise.
14132         * stmt.c: Likewise.
14133         * stor-layout.c: Likewise.
14134         * store-motion.c: Likewise.
14135         * stringpool.c: Likewise.
14136         * symtab.c: Likewise.
14137         * target-globals.c: Likewise.
14138         * targhooks.c: Likewise.
14139         * toplev.c: Likewise.
14140         * tracer.c: Likewise.
14141         * trans-mem.c: Likewise.
14142         * tree-affine.c: Likewise.
14143         * tree-browser.c: Likewise.
14144         * tree-call-cdce.c: Likewise.
14145         * tree-cfg.c: Likewise.
14146         * tree-cfgcleanup.c: Likewise.
14147         * tree-chkp-opt.c: Likewise.
14148         * tree-chkp.c: Likewise.
14149         * tree-chrec.c: Likewise.
14150         * tree-complex.c: Likewise.
14151         * tree-data-ref.c: Likewise.
14152         * tree-dfa.c: Likewise.
14153         * tree-diagnostic.c: Likewise.
14154         * tree-dump.c: Likewise.
14155         * tree-eh.c: Likewise.
14156         * tree-emutls.c: Likewise.
14157         * tree-if-conv.c: Likewise.
14158         * tree-inline.c: Likewise.
14159         * tree-into-ssa.c: Likewise.
14160         * tree-iterator.c: Likewise.
14161         * tree-loop-distribution.c: Likewise.
14162         * tree-nested.c: Likewise.
14163         * tree-nrv.c: Likewise.
14164         * tree-object-size.c: Likewise.
14165         * tree-outof-ssa.c: Likewise.
14166         * tree-parloops.c: Likewise.
14167         * tree-phinodes.c: Likewise.
14168         * tree-predcom.c: Likewise.
14169         * tree-pretty-print.c: Likewise.
14170         * tree-profile.c: Likewise.
14171         * tree-scalar-evolution.c: Likewise.
14172         * tree-sra.c: Likewise.
14173         * tree-ssa-address.c: Likewise.
14174         * tree-ssa-alias.c: Likewise.
14175         * tree-ssa-ccp.c: Likewise.
14176         * tree-ssa-coalesce.c: Likewise.
14177         * tree-ssa-copy.c: Likewise.
14178         * tree-ssa-copyrename.c: Likewise.
14179         * tree-ssa-dce.c: Likewise.
14180         * tree-ssa-dom.c: Likewise.
14181         * tree-ssa-dse.c: Likewise.
14182         * tree-ssa-forwprop.c: Likewise.
14183         * tree-ssa-ifcombine.c: Likewise.
14184         * tree-ssa-live.c: Likewise.
14185         * tree-ssa-loop-ch.c: Likewise.
14186         * tree-ssa-loop-im.c: Likewise.
14187         * tree-ssa-loop-ivcanon.c: Likewise.
14188         * tree-ssa-loop-ivopts.c: Likewise.
14189         * tree-ssa-loop-manip.c: Likewise.
14190         * tree-ssa-loop-niter.c: Likewise.
14191         * tree-ssa-loop-prefetch.c: Likewise.
14192         * tree-ssa-loop-unswitch.c: Likewise.
14193         * tree-ssa-loop.c: Likewise.
14194         * tree-ssa-math-opts.c: Likewise.
14195         * tree-ssa-operands.c: Likewise.
14196         * tree-ssa-phiopt.c: Likewise.
14197         * tree-ssa-phiprop.c: Likewise.
14198         * tree-ssa-pre.c: Likewise.
14199         * tree-ssa-propagate.c: Likewise.
14200         * tree-ssa-reassoc.c: Likewise.
14201         * tree-ssa-sccvn.c: Likewise.
14202         * tree-ssa-scopedtables.c: Likewise.
14203         * tree-ssa-sink.c: Likewise.
14204         * tree-ssa-strlen.c: Likewise.
14205         * tree-ssa-structalias.c: Likewise.
14206         * tree-ssa-tail-merge.c: Likewise.
14207         * tree-ssa-ter.c: Likewise.
14208         * tree-ssa-threadedge.c: Likewise.
14209         * tree-ssa-threadupdate.c: Likewise.
14210         * tree-ssa-uncprop.c: Likewise.
14211         * tree-ssa-uninit.c: Likewise.
14212         * tree-ssa.c: Likewise.
14213         * tree-ssanames.c: Likewise.
14214         * tree-stdarg.c: Likewise.
14215         * tree-streamer-in.c: Likewise.
14216         * tree-streamer-out.c: Likewise.
14217         * tree-streamer.c: Likewise.
14218         * tree-switch-conversion.c: Likewise.
14219         * tree-tailcall.c: Likewise.
14220         * tree-vect-data-refs.c: Likewise.
14221         * tree-vect-generic.c: Likewise.
14222         * tree-vect-loop-manip.c: Likewise.
14223         * tree-vect-loop.c: Likewise.
14224         * tree-vect-patterns.c: Likewise.
14225         * tree-vect-slp.c: Likewise.
14226         * tree-vect-stmts.c: Likewise.
14227         * tree-vectorizer.c: Likewise.
14228         * tree-vrp.c: Likewise.
14229         * tree.c: Likewise.
14230         * tsan.c: Likewise.
14231         * ubsan.c: Likewise.
14232         * valtrack.c: Likewise.
14233         * value-prof.c: Likewise.
14234         * var-tracking.c: Likewise.
14235         * varasm.c: Likewise.
14236         * varpool.c: Likewise.
14237         * vmsdbgout.c: Likewise.
14238         * vtable-verify.c: Likewise.
14239         * web.c: Likewise.
14240         * wide-int.cc: Likewise.
14241         * xcoffout.c: Likewise.
14242         * config/aarch64/aarch64-builtins.c: Likewise.
14243         * config/aarch64/aarch64.c: Likewise.
14244         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
14245         * config/alpha/alpha.c: Likewise.
14246         * config/arc/arc.c: Likewise.
14247         * config/arm/aarch-common.c: Likewise.
14248         * config/arm/arm-builtins.c: Likewise.
14249         * config/arm/arm-c.c: Likewise.
14250         * config/arm/arm.c: Likewise.
14251         * config/avr/avr-c.c: Likewise.
14252         * config/avr/avr-log.c: Likewise.
14253         * config/avr/avr.c: Likewise.
14254         * config/bfin/bfin.c: Likewise.
14255         * config/c6x/c6x.c: Likewise.
14256         * config/cr16/cr16.c: Likewise.
14257         * config/cris/cris.c: Likewise.
14258         * config/darwin-c.c: Likewise.
14259         * config/darwin.c: Likewise.
14260         * config/epiphany/epiphany.c: Likewise.
14261         * config/epiphany/mode-switch-use.c: Likewise.
14262         * config/epiphany/resolve-sw-modes.c: Likewise.
14263         * config/fr30/fr30.c: Likewise.
14264         * config/frv/frv.c: Likewise.
14265         * config/ft32/ft32.c: Likewise.
14266         * config/h8300/h8300.c: Likewise.
14267         * config/i386/i386-c.c: Likewise.
14268         * config/i386/i386.c: Likewise.
14269         * config/i386/msformat-c.c: Likewise.
14270         * config/i386/winnt-cxx.c: Likewise.
14271         * config/i386/winnt-stubs.c: Likewise.
14272         * config/i386/winnt.c: Likewise.
14273         * config/ia64/ia64-c.c: Likewise.
14274         * config/ia64/ia64.c: Likewise.
14275         * config/iq2000/iq2000.c: Likewise.
14276         * config/lm32/lm32.c: Likewise.
14277         * config/m32c/m32c-pragma.c: Likewise.
14278         * config/m32c/m32c.c: Likewise.
14279         * config/m32r/m32r.c: Likewise.
14280         * config/m68k/m68k.c: Likewise.
14281         * config/mcore/mcore.c: Likewise.
14282         * config/mep/mep-pragma.c: Likewise.
14283         * config/mep/mep.c: Likewise.
14284         * config/microblaze/microblaze-c.c: Likewise.
14285         * config/microblaze/microblaze.c: Likewise.
14286         * config/mips/mips.c: Likewise.
14287         * config/mmix/mmix.c: Likewise.
14288         * config/mn10300/mn10300.c: Likewise.
14289         * config/moxie/moxie.c: Likewise.
14290         * config/msp430/msp430-c.c: Likewise.
14291         * config/msp430/msp430.c: Likewise.
14292         * config/nds32/nds32-cost.c: Likewise.
14293         * config/nds32/nds32-fp-as-gp.c: Likewise.
14294         * config/nds32/nds32-intrinsic.c: Likewise.
14295         * config/nds32/nds32-isr.c: Likewise.
14296         * config/nds32/nds32-md-auxiliary.c: Likewise.
14297         * config/nds32/nds32-memory-manipulation.c: Likewise.
14298         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14299         * config/nds32/nds32-predicates.c: Likewise.
14300         * config/nds32/nds32.c: Likewise.
14301         * config/nios2/nios2.c: Likewise.
14302         * config/nvptx/nvptx.c: Likewise.
14303         * config/pa/pa.c: Likewise.
14304         * config/pdp11/pdp11.c: Likewise.
14305         * config/rl78/rl78-c.c: Likewise.
14306         * config/rl78/rl78.c: Likewise.
14307         * config/rs6000/rs6000-c.c: Likewise.
14308         * config/rs6000/rs6000.c: Likewise.
14309         * config/rx/rx.c: Likewise.
14310         * config/s390/s390-c.c: Likewise.
14311         * config/s390/s390.c: Likewise.
14312         * config/sh/sh-c.c: Likewise.
14313         * config/sh/sh-mem.cc: Likewise.
14314         * config/sh/sh.c: Likewise.
14315         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
14316         * config/sh/sh_treg_combine.cc: Likewise.
14317         * config/sol2-c.c: Likewise.
14318         * config/sol2-cxx.c: Likewise.
14319         * config/sol2-stubs.c: Likewise.
14320         * config/sol2.c: Likewise.
14321         * config/sparc/sparc-c.c: Likewise.
14322         * config/sparc/sparc.c: Likewise.
14323         * config/spu/spu-c.c: Likewise.
14324         * config/spu/spu.c: Likewise.
14325         * config/stormy16/stormy16.c: Likewise.
14326         * config/tilegx/mul-tables.c: Likewise.
14327         * config/tilegx/tilegx-c.c: Likewise.
14328         * config/tilegx/tilegx.c: Likewise.
14329         * config/tilepro/mul-tables.c: Likewise.
14330         * config/tilepro/tilepro-c.c: Likewise.
14331         * config/tilepro/tilepro.c: Likewise.
14332         * config/v850/v850-c.c: Likewise.
14333         * config/v850/v850.c: Likewise.
14334         * config/vax/vax.c: Likewise.
14335         * config/visium/visium.c: Likewise.
14336         * config/vms/vms-c.c: Likewise.
14337         * config/vms/vms.c: Likewise.
14338         * config/vxworks.c: Likewise.
14339         * config/xtensa/xtensa.c: Likewise.
14340
14341 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
14342
14343         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
14344         Remove operand constraints.  Change operand 2 predicate to
14345         nonmemory operand.  Limit const_int values to mode bitsize.  Only
14346         allow const_int values less than 32 when optimizing for size.
14347         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
14348         Remove operand constraints.
14349         (*bt<mode>): Use SImode for const_int values less than 32.
14350         (regmode): Remove mode attribute.
14351
14352 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
14353
14354         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14355         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
14356           moxie_legitimate_address_p): New functions.
14357           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
14358
14359 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14360
14361         PR tree-optimization/66642
14362         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
14363         header comment.  Rename split_edge variable to edge_at_split.  Split
14364         exit edge to create new loop exit bb.  Insert loop exit phis in new
14365         loop exit bb.
14366
14367 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14368
14369         * tree-cfg.c (get_virtual_phi): New function.
14370         * tree-cfg.h (get_virtual_phi): Declare.
14371         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
14372         (rewrite_virtuals_into_loop_closed_ssa): New function.
14373         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
14374         Declare.
14375         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
14376         (transform_to_exit_first_loop_alt): Use
14377         rewrite_virtuals_into_loop_closed_ssa.
14378
14379 2015-07-07  Richard Biener  <rguenther@suse.de>
14380
14381         * fold-const.c (fold_binary_loc): Move
14382         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
14383         * match.pd: ... here.
14384         Add (X * C1) % C2 -> 0 simplification pattern derived from
14385         extract_muldiv_1.
14386
14387 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14388
14389         PR target/66780
14390         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
14391         change for target/65249.
14392
14393 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
14394
14395         * symtab.c (address_matters_1): Fix typo in comment above.
14396         (can_increase_alignment_p): Likewise.
14397
14398 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14399
14400         * function.c (free_after_compilation): Clear PROP_cfg in
14401         f->curr_properties.
14402
14403 2015-07-07  Richard Biener  <rguenther@suse.de>
14404
14405         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
14406         add which use to.
14407         (add_control_edge): Remove excessive vertical space in dumping.
14408         (process_ssa_edge_worklist): Simulate at most one statement and
14409         return whether we did.  Do not simulate PHIs if they are in a
14410         BB not yet simulated.
14411         (ssa_propagate): Adjust to always drain the BB worklist whenever
14412         a BB is available there, likewise the VARYING edges list before
14413         the interesting edge list.
14414
14415 2015-07-07  Christian Bruel  <christian.bruel@st.com>
14416
14417         PR target/52144
14418         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
14419
14420 2015-07-07  Richard Biener  <rguenther@suse.de>
14421
14422         PR middle-end/66739
14423         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
14424         A - B.
14425
14426 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14427
14428         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
14429         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
14430         Copy operand 0 to a temporary if !ext_register_operand.  Remove
14431         ancient extract_bit_field workaround.
14432         (insv<mode>_1): Rename from mov<mode>_insv_1.
14433         (*insvqi): Rename from *movqi_insv_2.
14434         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
14435         for renamed insvsi_1.
14436         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
14437
14438 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
14439
14440         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
14441         call to nvptx_reorg_subreg.
14442
14443 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
14444
14445         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
14446         * graphite-dependencies.c, graphite-interchange.c,
14447         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
14448         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
14449         Likewise.
14450
14451 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
14452
14453         * match.pd: Remove element_mode inside HONOR_*.
14454         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
14455         (~X | X -> -1, ~X ^ X -> -1): Merge.
14456         * tree.c (build_each_one_cst): New function.
14457         * tree.h (build_each_one_cst): Likewise.
14458
14459 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14460
14461         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14462         PROCESSOR_IAMCU.
14463
14464 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
14465
14466         * config.gcc <mips*-*-*>: Add fused-madd.opt.
14467         * config/mips/mips.opt (mfused-madd): Remove.
14468         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
14469         * config/mips/mips.h (TARGET_MIPS8000): New.
14470         (ISA_HAS_FP_MADD4_MSUB4): Remove.
14471         (ISA_HAS_FP_MADDF_MSUBF): Remove.
14472         (ISA_HAS_FP_MADD3_MSUB3): Remove.
14473         (ISA_HAS_NMADD4_NMSUB4): Remove.
14474         (ISA_HAS_NMADD3_NMSUB3): Remove.
14475         (ISA_HAS_FUSED_MADD4): New.
14476         (ISA_HAS_UNFUSED_MADD4): New.
14477         (ISA_HAS_FUSED_MADDF): New.
14478         (ISA_HAS_FUSED_MADD3): New.
14479         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
14480         (*fma<mode>4_madd3) New.
14481         (*fma<mode>4_madd4) New.
14482         (*fma<mode>4_maddf) New.
14483         (fms<mode>4) New.
14484         (*fms<mode>4_msub3) New.
14485         (*fms<mode>4_msub4) New.
14486         (fnma<mode>4) New.
14487         (*fnma<mode>4_nmadd3) New.
14488         (*fnma<mode>4_nmadd4) New.
14489         (fnms<mode>4) New.
14490         (*fnms<mode>4_nmsub3) New.
14491         (*fnms<mode>4_nmsub4) New.
14492         (*madd4<mode>) Modify to be unfused only.
14493         (*msub4<mode>) Modify to be unfused only.
14494         (*nmadd4<mode>) Modify to be unfused only.
14495         (*nmsub4<mode>) Modify to be unfused only.
14496         (*madd3<mode>) Remove.
14497         (*msub3<mode>) Remove.
14498         (*nmadd3<mode>) Remove.
14499         (*nmsub3<mode>) Remove.
14500         (*nmadd3<mode>_fastmath) Remove.
14501         (*nmsub3<mode>_fastmath) Remove.
14502         (*nmadd4<mode>_fastmath) Update condition.
14503         (*nmsub4<mode>_fastmath) Update condition.
14504
14505 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14506
14507         PR target/65956
14508         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
14509         alignment attribute, exploring one level down for records and arrays.
14510
14511 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14512
14513         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
14514         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
14515         Copy operand 1 to a temporary if !ext_register_operand.  Remove
14516         ancient extract_bit_field workaround.
14517         (*extv<mode>): Rename from *mov<mode>_extv_1.
14518         (*extvqi): Rename from *movqi_extv_1.
14519         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
14520         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
14521         to a temporary if !ext_register_operand.  Remove ancient
14522         extract_bit_field workaround.
14523         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
14524         (*extzvqi): Rename from *movqi_extzv_2.
14525         (*testqi_ext_3): Remove modes from const_int_operand predicated
14526         operands.  Add "n" constraint.
14527         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
14528         operand.  Add "J" constraint.
14529         (*btsq, *btrq, *btcq peephole2s): Remove mode from
14530         const_0_to_63 predicated operand.
14531         (regmode): New insn attribute.
14532         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
14533         to nonmemory_operand.  Use regmode insn attribute.
14534         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
14535         (*jcc_bt<mode>_mask): Remove mode from operand 3.
14536         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
14537         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
14538         operands.  Use "N" constraint instead of "n".
14539
14540 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14541
14542         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
14543
14544 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14545
14546         PR target/66749
14547         * config/i386/i386.c (iamcu_cost): New.
14548         (m_IAMCU): Likewise.
14549         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
14550         (processor_target_table): Add an entry for "iamcu".
14551         (processor_alias_table): Likewise.
14552         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
14553         (ix86_adjust_cost): Likewise.
14554         (ia32_multipass_dfa_lookahead): Likewise.
14555         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
14556         * config/i386/x86-tune.def: Updated for m_IAMCU.
14557
14558 2015-07-06  Richard Biener  <rguenther@suse.de>
14559
14560         PR tree-optimization/66772
14561         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
14562         values are available in the PHI node BB when there are
14563         still unexecutable edges.
14564
14565 2015-07-06  Richard Biener  <rguenther@suse.de>
14566
14567         PR tree-optimization/66767
14568         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
14569         Make sure to build the alignment test on a SSA name without
14570         final alignment info valid only if the alignment test
14571         evaluates to true.
14572
14573 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
14574
14575         PR target/66620
14576         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
14577         loop start when inserting LSETUP.
14578
14579 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14580
14581         PR target/53383
14582         * config/i386/i386.c (ix86_option_override_internal): Allow
14583         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
14584
14585 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14586
14587         * read-md.c (decimal_string): Rename to ...
14588         (md_decimal_string): ... this.
14589         (handle_enum): Reflect this.
14590
14591 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14592
14593         PR target/66731
14594         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
14595
14596 2015-07-06  Richard Biener  <rguenther@suse.de>
14597
14598         PR middle-end/66759
14599         * match.pd: Add missing constraint of y to REAL_CST in
14600         REAL_CST - x CMP y to y - CST CMP x simplification.
14601
14602 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
14603
14604         PR tree-optimization/66757
14605         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
14606
14607 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
14608             Sandra Loosemore <sandra@codesourcery.com>
14609
14610         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
14611         Delete extern declaration.
14612         (gprel_constant_p): Add extern declaration.
14613         * config/nios2/constraints.md ("S"): Use gprel_constant_p
14614         instead of nios2_symbol_ref_in_small_data_p.
14615         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
14616         (nios2_symbol_ref_in_small_data_p): Make static.
14617         (gprel_constant_p): Make non-static.
14618
14619 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14620
14621         * doc/fragments.texi (Target Fragment): Convert debian.org
14622         link to use https.
14623         * doc/install.texi (Configuration): Ditto.
14624
14625 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
14626
14627         PR tree-optimization/66718
14628         * tree-vect-stmts.c (vectorizable_call): Replace uses of
14629         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
14630
14631         PR tree-optimization/66718
14632         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
14633         vectorizable_load, vectorizable_condition): Move vectype,
14634         nunits, ncopies computation after checking what kind of statement
14635         stmt is.
14636
14637 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14638
14639         * target-insns.def (extv, extzv, insv): New targetm instruction
14640         patterns.
14641         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
14642         interface.
14643         * recog.c (simplify_while_replacing): Likewise.
14644
14645 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14646
14647         * target-insns.def (doloop_begin, doloop_end): New targetm
14648         instruction patterns.
14649         * loop-init.c: Include target.h.
14650         (pass_loop2::gate): Use the new targetm patterns instead of
14651         HAVE_*/gen_* interface.
14652         (pass_rtl_doloop::gate): Likewise.
14653         (pass_rtl_doloop::execute): Remove preprocessor condition.
14654         * hw-doloop.c: Build unconditionally.
14655         * loop-doloop.c: Likewise.
14656         (doloop_optimize): Use the new targetm patterns instead of
14657         HAVE_*/gen_* interface.
14658         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
14659         * modulo-sched.c (doloop_register_get): Likewise.
14660
14661 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14662
14663         * target-insns.def (clear_cache): New targetm instruction pattern.
14664         * builtins.c (expand_builtin___clear_cache): Use it instead of
14665         HAVE_*/gen_* interface.
14666
14667 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14668
14669         * target-insns.def (allocate_stack, check_stack, probe_stack)
14670         (probe_stack_address, split_stack_prologue, split_stack_space_check):
14671         New targetm instruction patterns.
14672         * explow.c (allocate_dynamic_stack_space): Use them instead of
14673         HAVE_*/gen_* interface.
14674         (emit_stack_probe): Likewise.
14675         (probe_stack_range): Likewise.
14676         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14677
14678 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14679
14680         * target-insns.def (stack_protect_set, stack_protect_test): New
14681         targetm instruction patterns.
14682         * cfgexpand.c (stack_protect_prologue): Use them instead of
14683         HAVE_*/gen_* interface.
14684         * function.c (stack_protect_epilogue): Likewise.
14685
14686 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14687
14688         * expr.h (gen_move_insn_uncast): Delete.
14689         * expr.c (gen_move_insn_uncast): Delete.
14690
14691 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14692
14693         * target-insns.def (restore_stack_block, restore_stack_function)
14694         (restore_stack_nonlocal, save_stack_block, save_stack_function)
14695         (save_stack_nonlocal): New targetm instruction patterns.
14696         * builtins.c (expand_builtin_apply): Use them instead of
14697         HAVE_*/gen_* interface.
14698         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
14699
14700 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14701
14702         * target-insns.def (trap): New targetm instruction pattern.
14703         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
14704         interface.
14705         * explow.c (allocate_dynamic_stack_space): Likewise.
14706         * ifcvt.c (find_if_header): Likewise.
14707
14708 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14709
14710         * target-insns.def (prefetch): New targetm instruction pattern.
14711         * tree-ssa-loop-prefetch.c: Include targeth.
14712         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
14713         of HAVE_*/gen_* interface.
14714         * builtins.c (expand_builtin_prefetch): Likewise.
14715         * toplev.c (process_options): Likewise.
14716
14717 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14718
14719         * target-insns.def (untyped_call, untyped_return): New targetm
14720         instruction patterns.
14721         * builtins.c (expand_builtin_apply): Use them instead of
14722         HAVE_*/gen_* interface.
14723         (result_vector): Define unconditionally.
14724
14725 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14726
14727         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
14728         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
14729         (nonlocal_goto_receiver): New targetm instruction patterns.
14730         * builtins.c (expand_builtin_setjmp_setup): Use them instead
14731         of HAVE_*/gen_* interface.
14732         (expand_builtin_setjmp_receiver): Likewise.
14733         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14734         * except.c (expand_dw2_landing_pad_for_region): Likewise.
14735
14736 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14737
14738         * target.def: Add code_for_* hooks.
14739         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
14740         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
14741         * target-insns.def (casesi, tablejump): New targetm instruction
14742         patterns.
14743         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
14744         (do_tablejump): Likewise.
14745         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
14746         (expand_sjlj_dispatch_table): Likewise.
14747         * targhooks.c (default_case_values_threshold): Likewise.
14748
14749 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
14750
14751         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
14752         Use rtx_insn * instead of rtx.
14753         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
14754         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
14755         (nios2_call_tls_get_addr): Likewise.
14756         (nios2_emit_expensive_div): Likewise.
14757         (nios2_emit_move_sequence): Change return type to bool.
14758         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
14759         Change return type to bool.
14760
14761 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14762
14763         PR target/66747
14764         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
14765
14766 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
14767
14768         PR target/66114
14769         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
14770         of register_operand.  Remove constraint.
14771
14772 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
14773
14774         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
14775         the first argument.
14776
14777 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
14778
14779         * attribs.c (decl_attributes): Guard inform with the return value
14780         of the preceding warning.
14781
14782 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14783
14784         * doc/invoke.texi (moverride): Move to correct section.
14785
14786 2015-07-03  Richard Biener  <rguenther@suse.de>
14787
14788         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
14789         Copy from tree.c
14790         (dt_operand::gen_gimple_expr): After valueizing operands
14791         re-canonicalize operand order for commutative tree codes.
14792
14793 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14794
14795         PR target/66746.
14796         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
14797         is defined.
14798         (__crc32w): Likewise.
14799         (__crc32d): Likewise.
14800         (__rdpmc): Likewise.
14801         (__rdtscp): Likewise.
14802         (_rdpmc): Likewise.
14803         (_rdtscp): Likewise.
14804         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
14805         is defined.
14806
14807 2015-07-03  Richard Biener  <rguenther@suse.de>
14808
14809         * fold-const.c (fold_mathfn_compare): Remove.
14810         (fold_inf_compare): Likewise.
14811         (fold_comparison): Move floating point comparison simplifications...
14812         * match.pd: ... to patterns here.  Introduce simple_comparisons
14813         operator list and use it for patterns formerly in fold_comparison.
14814
14815 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14816
14817         PR tree-optimization/66119
14818         * toplev.c (process_options): Don't set up default values for
14819         the sra_max_scalarization_size_{speed,size} parameters.
14820         * tree-sra (analyze_all_variable_accesses): If no values
14821         have been set for the sra_max_scalarization_size_{speed,size}
14822         parameters, call get_move_ratio to get target defaults.
14823
14824 2015-07-03  Richard Biener  <rguenther@suse.de>
14825
14826         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
14827         * match.pd: ... here.
14828
14829 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
14830
14831         PR target/37072
14832         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
14833         is not actually the default on FreeBSD.
14834
14835 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14836
14837         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
14838         definition.
14839         (CMPGE_8HI): Likewise.
14840         (CMPGE_4SI): Likewise.
14841         (CMPGE_2DI): Likewise.
14842         (CMPGE_U16QI): Likewise.
14843         (CMPGE_U8HI): Likewise.
14844         (CMPGE_U4SI): Likewise.
14845         (CMPGE_U2DI): Likewise.
14846         (CMPLE_16QI): Likewise.
14847         (CMPLE_8HI): Likewise.
14848         (CMPLE_4SI): Likewise.
14849         (CMPLE_2DI): Likewise.
14850         (CMPLE_U16QI): Likewise.
14851         (CMPLE_U8HI): Likewise.
14852         (CMPLE_U4SI): Likewise.
14853         (CMPLE_U2DI): Likewise.
14854         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14855         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
14856         ALTIVEC_BUILTIN_VEC_CMPLE.
14857         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
14858         floating-point vector modes.
14859         (vector_nlt<mode>): New define_expand.
14860         (vector_nltu<mode>): Likewise.
14861         (vector_ngt<mode>): Likewise.
14862         (vector_ngtu<mode>): Likewise.
14863
14864 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14865
14866         PR rtl-optimization/66706
14867         * combine.c (make_compound_operation): If an AND of SUBREG of
14868         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
14869
14870 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
14871
14872         * tree-pass.h (make_pass_ch_vect): New.
14873         * passes.def: Add pass_ch_vect just before pass_if_conversion.
14874
14875         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
14876         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
14877         make_pass_ch_vect): New.
14878         (pass_ch): Extend ch_base.
14879
14880         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
14881         (ch_base::copy_headers): ...here.
14882
14883 2015-07-02  Richard Biener  <rguenther@suse.de>
14884
14885         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
14886         * fold-const.c (get_pointer_modulus_and_residue): Remove.
14887         (fold_binary_loc): Implement (T)ptr & CST in terms of
14888         get_pointer_alignment_1.
14889         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
14890         Make sure to build the alignment test on a SSA name without
14891         final alignment info valid only after the prologue.
14892
14893 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
14894
14895         * config/cris/cris.md ("epilogue"): Remove condition.
14896         ("prologue"): Ditto.
14897
14898 2015-07-02  Richard Biener  <rguenther@suse.de>
14899
14900         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
14901         parameter to record a condition that is false.
14902         (record_conditions): When recording an extra NE_EXPR that is
14903         true also record a EQ_EXPR that is false.
14904
14905 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
14906
14907         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
14908         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
14909         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
14910         (set_iv, find_interesting_uses_address, add_candidate_1): New
14911         argument to alloc_iv.
14912         (find_interesting_uses_op, find_interesting_uses_cond): Don't
14913         duplicate struct iv.
14914         (free_loop_data): Don't free struct iv explicitly.
14915         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
14916
14917 2015-07-01  DJ Delorie  <dj@redhat.com>
14918
14919         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
14920         (LIB_SPEC): Add.
14921         (SUPPORTS_DISCRIMINATOR): Define.
14922
14923 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14924
14925         PR bootstrap/66685
14926         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
14927         there are no CALLs in the same pattern.
14928
14929 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14930
14931         PR rtl-optimization/61047
14932         * rtlanal.c (get_initial_register_offset): New function.
14933         (rtx_addr_can_trap_p_1): Check offsets of stack references.
14934
14935 2015-07-01  Richard Biener  <rguenther@suse.de>
14936
14937         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
14938         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
14939         ~X CMP C -> X CMP' ~C to ...
14940         * match.pd: ... patterns here.
14941
14942 2015-07-01  Nick Clifton  <nickc@redhat.com>
14943
14944         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
14945         a 16-bit value into a 20-bit memory slot.
14946
14947 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14948
14949         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14950         "aarch64_tiny", "aarch64_small", "aarch64_large",
14951         "aarch64_little_endian", "aarch64_big_endian".
14952
14953 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14954
14955         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
14956         Document "aarch64_small_fpic".
14957
14958 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14959
14960         * configure.ac: Add check for aarch64 assembler -fpic relocation
14961         modifier support.
14962         * configure: Regenerate.
14963         * config.in: Regenerate.
14964         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
14965         to -fPIC if not support of -fpic relocation modifier in assembler.
14966
14967 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14968
14969         PR bootstrap/66685
14970         * rtl.c (classify_insn): Handle returns in PARALLELs.
14971
14972 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
14973
14974         PR middle-end/66633
14975         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
14976         to true if the function is nested and if not optimizing.
14977         (convert_local_omp_clauses): Initialize need_frame to true if the
14978         function contains nested functions and if not optimizing.
14979
14980 2015-07-01  Richard Biener  <rguenther@suse.de>
14981
14982         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
14983         (X & Y) ^ Y -> ~X & Y transforms to ...
14984         * match.pd: ... here.
14985
14986 2015-07-01  Richard Biener <rguenther@suse.de>
14987
14988         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
14989         of converts to avoid uninteresting noise from the conversion
14990         simplifying patterns.
14991
14992 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
14993
14994         * config/c6x/c6x.c (try_rename_operands): Do not depend on
14995         gcc_assert evaluating its argument for side-effect.
14996
14997 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
14998
14999         PR target/64833
15000         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
15001         flag_pic is set.
15002
15003 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
15004
15005         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
15006         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
15007         (hash_scc): Add this_ref_p and ref_p parameters and pass them
15008         to the inner DFS walk.
15009
15010 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15011
15012         * target-insns.def (jump): New targetm instruction pattern.
15013         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
15014         instead of gen_jump.
15015         (fix_up_crossing_landing_pad): Likewise.
15016         (add_labels_and_missing_jumps): Likewise.
15017         (fix_crossing_conditional_branches): Likewise.
15018         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15019         (force_nonfallthru_and_redirect): Likewise.
15020         * cse.c (cse_insn): Likewise.
15021         * expmed.c (expand_divmod): Likewise.
15022         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
15023         * haifa-sched.c (init_before_recovery): Likewise.
15024         (sched_create_recovery_edges): Likewise.
15025         * ifcvt.c (find_cond_trap): Likewise.
15026         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
15027         (expand_float, expand_fix): Likewise.
15028         * stmt.c (emit_jump): Likewise.
15029
15030 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15031
15032         * defaults.h (HAVE_load_multiple, gen_load_multiple)
15033         (HAVE_store_multiple, gen_store_multiple): Delete.
15034         * target-insns.def (load_multiple, store_multiple): New targetm
15035         instruction patterns.
15036         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
15037         of HAVE_*/gen_* interface.
15038
15039 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15040
15041         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
15042         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
15043         (gen_mem_signal_fence): Delete.
15044         * target-insns.def (mem_signal_fence, mem_thread_fence)
15045         (memory_barrier): New targetm instruction patterns.
15046         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
15047         interface.
15048         (expand_mem_signal_fence): Likewise.
15049
15050 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15051
15052         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
15053         * target-insns.def (epilogue, prologue, sibcall_prologue): New
15054         targetm instruction patterns.
15055         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
15056         interface.
15057         * calls.c (expand_call): Likewise.
15058         * cfgrtl.c (cfg_layout_finalize): Likewise.
15059         * df-scan.c (df_get_entry_block_def_set): Likewise.
15060         (df_get_exit_block_use_set): Likewise.
15061         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
15062         * final.c (final_start_function): Likewise.
15063         * function.c (thread_prologue_and_epilogue_insns): Likewise.
15064         (reposition_prologue_and_epilogue_notes): Likewise.
15065         * reorg.c (find_end_label): Likewise.
15066         * toplev.c (process_options): Likewise.
15067
15068 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
15069
15070         * typed-splay-tree.h: New file.
15071
15072 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
15073
15074         PR debug/66691
15075         * lra-int.h (lra_substitute_pseudo): Add a parameter.
15076         (lra_substitute_pseudo_within_insn): Ditto.
15077         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
15078         of constant.
15079         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
15080         to lra_substitute_pseudo.
15081         * lra-lives.c (process_bb_lives): Add an argument to
15082         lra_substitute_pseudo_within_insn call.
15083         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
15084         argument to lra_substitute_pseudo and
15085         lra_substitute_pseudo_within_insn calls.
15086         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
15087
15088 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
15089
15090         * configure: Regenerated.
15091
15092 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
15093
15094         * config.gcc: Support i[34567]86-*-elfiamcu target.
15095         * config/i386/iamcu.h: New.
15096         * config/i386/i386.opt: Add -miamcu.
15097         * doc/invoke.texi: Document -miamcu.
15098         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
15099         off x87/MMX/SSE/AVX codegen for -miamcu.
15100         * config/i386/i386-c.c (ix86_target_macros_internal): Define
15101         __iamcu/__iamcu__ for -miamcu.
15102         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
15103         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
15104         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
15105         * config/i386/i386.c (ix86_option_override_internal): Ignore and
15106         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
15107         MCU by default.  Default long double to 64-bit for Intel MCU.
15108         Turn on -freg-struct-return for Intel MCU.  Issue an error when
15109         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
15110         AVX is turned on.
15111         (function_arg_advance_32): Pass value whose size is no larger
15112         than 8 bytes in registers for Intel MCU.
15113         (function_arg_32): Likewise.
15114         (ix86_return_in_memory): Return value whose size is no larger
15115         than 8 bytes in registers for Intel MCU.
15116         (iamcu_alignment): New function.
15117         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
15118         true.
15119         (ix86_local_alignment): Don't increase alignment for Intel MCU.
15120         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
15121         true.
15122
15123 2015-06-30  Marek Polacek  <polacek@redhat.com>
15124
15125         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
15126         both operands of the resulting expression.
15127
15128         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
15129         the final expression with the operand's type and then convert
15130         it to the type of the expression.
15131
15132 2015-06-30  Richard Biener  <rguenther@suse.de>
15133
15134         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
15135         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
15136         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
15137         * match.pd: ... to patterns here.
15138
15139 2015-06-30  Richard Biener  <rguenther@suse.de>
15140
15141         PR tree-optimization/66704
15142         * tree-vect-data-refs.c (vect_setup_realignment): Use
15143         make_ssa_name for non-SSA name source.
15144
15145 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
15146
15147         PR middle-end/66702
15148         * omp-low.c (simd_clone_adjust): Handle addressable linear
15149         or uniform parameters or non-gimple type uniform parameters.
15150
15151 2015-06-30  Richard Biener  <rguenther@suse.de>
15152
15153         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
15154         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
15155         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
15156         * match.pd: ... here.
15157         Add a few cases of A - B -> A + (-B) when B "easily" negates.
15158         Move (x & y) | x -> x and friends before
15159         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
15160
15161 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
15162
15163         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
15164         -mfix-ut699 is not specified.
15165         (leon3_load): Rename into...
15166         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
15167         is specified.
15168
15169 2015-06-30  Marek Polacek  <polacek@redhat.com>
15170
15171         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
15172         * match.pd: ... here.
15173
15174 2015-06-30  Richard Biener  <rguenther@suse.de>
15175
15176         * target-insns.def (canonicalize_funcptr_for_compare): Add.
15177         * fold-const.c (build_range_check): Replace uses of
15178         HAVE_canonicalize_funcptr_for_compare.
15179         (fold_widened_comparison): Likewise.
15180         (fold_sign_changed_comparison): Likewise.
15181         * dojump.c: Include "target.h".
15182         (do_compare_and_jump): Replace uses of
15183         HAVE_canonicalize_funcptr_for_compare and
15184         gen_canonicalize_funcptr_for_compare.
15185         * expr.c (do_store_flag): Likewise.
15186
15187 2015-06-30  Tom de Vries  <tom@codesourcery.com>
15188
15189         PR tree-optimization/66652
15190         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
15191         max_loop_iterations to determine if nit + 1 overflows.
15192
15193 2015-06-30  Richard Biener  <rguenther@suse.de>
15194
15195         * tree-vrp.c (register_edge_assert_for_2): Also register
15196         asserts for dominating conversion results.
15197
15198 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
15199
15200         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
15201         field in struct iv.
15202
15203 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
15204
15205         PR target/66509
15206         * configure.ac: Fix filds and fildq test for 64-bit.
15207         * configure: Regenerated.
15208
15209 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
15210
15211         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
15212         (nvptx_reorg): Here.  Keep the non-subreg pieces.
15213
15214 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
15215
15216         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
15217         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
15218
15219 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
15220
15221         * config/i386/i386.md (*jcc_1): Use %! in asm template.
15222         Set attribute "length_nobnd" instead of "length".
15223         (*jcc_2): Ditto.
15224         (jump): Ditto.
15225         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
15226
15227 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
15228
15229         * config/nios2/nios2.c (nios2_delegitimize_address): Make
15230         assert less restrictive.
15231
15232 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15233
15234         PR fortran/66605
15235         * cgraphunit.c (cgraph_node::finalize_function): Do not call
15236         do_warn_unused_parameter.
15237         * function.c (do_warn_unused_parameter): Move from here.
15238         * function.h (do_warn_unused_parameter): Do not declare.
15239
15240 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15241
15242         PR target/65697
15243         * gcc.target/arm/armv-sync-comp-swap.c: New.
15244         * gcc.target/arm/armv-sync-op-acquire.c: New.
15245         * gcc.target/arm/armv-sync-op-full.c: New.
15246         * gcc.target/arm/armv-sync-op-release.c: New.
15247
15248 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15249
15250         PR target/65697
15251         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
15252         initial acquire barrier with final barrier.
15253
15254 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15255
15256         PR target/65697
15257         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
15258         initial acquire barrier with final barrier.
15259
15260 2015-06-29  Richard Henderson  <rth@redhat.com>
15261
15262         * config/i386/constraints.md (Bf): New constraint.
15263         * config/i386/i386-c.c (ix86_target_macros): Define
15264         __GCC_ASM_FLAG_OUTPUTS__.
15265         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
15266         as flags outputs.
15267         * doc/extend.texi (FlagOutputOperands): Document them.
15268
15269 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
15270
15271         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
15272         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
15273         unspec name.
15274         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
15275         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
15276         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
15277         (aarch64_symbol_context): Ditto.
15278         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
15279         and use new pattern name.
15280         (aarch64_expand_mov_immediate): Ditto.
15281         (aarch64_print_operand): Ditto.
15282         (aarch64_classify_tls_symbol): Ditto.
15283
15284 2015-06-29  Marek Polacek  <polacek@redhat.com>
15285             Marc Glisse  <marc.glisse@inria.fr>
15286
15287         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
15288         * match.pd: ... pattern here.
15289
15290 2015-06-29  Tom de Vries  <tom@codesourcery.com>
15291
15292         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
15293         function structure.
15294
15295 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15296
15297         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
15298         feature description, split out the native option, add a link to
15299         the feature documentation, rearrange and slightly rewrite text.
15300         (Aarch64 options, -mcpu): Likewise.
15301         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
15302         +rdma implies Adv. SIMD.
15303
15304 2015-06-29  Marek Polacek  <polacek@redhat.com>
15305
15306         PR c/66322
15307         * function.c (stack_protect_epilogue): Remove a cast to int.
15308         * doc/invoke.texi: Update -Wswitch-bool description.
15309
15310 2015-06-29  Richard Biener  <rguenther@suse.de>
15311
15312         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
15313         * fold-const.c (fold_binary_loc): Move &A - &B simplification
15314         via ptr_difference_const ...
15315         * match.pd: ... here.
15316         When matching (X ^ Y) == Y also match with swapped operands.
15317
15318 2015-06-29  Richard Biener  <rguenther@suse.de>
15319
15320         * lto-streamer.h (LTO_major_version): Bump to 5.
15321
15322 2015-06-29  Richard Biener  <rguenther@suse.de>
15323
15324         PR tree-optimization/66677
15325         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
15326         STMT_VINFO_VEC_STMT clobbering less strict.
15327
15328 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
15329
15330         PR middle-end/64130
15331         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
15332         division, compute max and min when value ranges for dividend and
15333         divisor are available.
15334
15335 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
15336             Sandra Loosemore <sandra@codesourcery.com>
15337
15338         * regrename.h (regrename_do_replace): Change to return bool.
15339         * regrename.c (rename_chains): Check return value of
15340         regname_do_replace.
15341         (regrename_do_replace): Re-validate the modified insns and
15342         return bool status.
15343         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
15344         Update to match rename_chains changes.
15345         * config/c6x/c6x.c (try_rename_operands): Assert that
15346         regrename_do_replace returns true.
15347
15348 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
15349
15350         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
15351         operand 2 here.  Use copy_addr_to_reg to copy non-index
15352         register operand 2 to a temporary.
15353         (<mode>_stx): Ditto for operand 1.
15354         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
15355         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
15356         (ix86_store_bounds): Ditto.
15357
15358 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
15359
15360         * print-tree.c (print_node) [TREE_VEC]: Print its length.
15361
15362 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
15363
15364         * gimple.c (gimple_call_set_fndecl): Remove.
15365         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
15366         build1_loc directly instead of build_fold_addr_expr_loc.
15367
15368 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15369
15370         * hash-map.h (hash_map::traverse): Use the definition of the
15371         Key typedef rather than the typedef itself.
15372
15373 2015-06-26  Martin Jambor  <mjambor@suse.cz>
15374
15375         PR debug/66301
15376         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
15377         NULL instead of calling dump_enabled_p.
15378
15379 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15380
15381         * config/aarch64/aarch64.opt: (override): New.
15382         * doc/invoke.texi (override): Document.
15383         * config/aarch64/aarch64.c (aarch64_flag_desc): New
15384         (aarch64_fusible_pairs): Likewise.
15385         (aarch64_tuning_flags): Likewise.
15386         (aarch64_tuning_override_function): Likewise.
15387         (aarch64_tuning_override_functions): Likewise.
15388         (aarch64_parse_one_option_token): Likewise.
15389         (aarch64_parse_boolean_options): Likewise.
15390         (aarch64_parse_fuse_string): Likewise.
15391         (aarch64_parse_tune_string): Likewise.
15392         (aarch64_parse_one_override_token): Likewise.
15393         (aarch64_parse_override_string): Likewise.
15394         (aarch64_override_options): Parse the -override string if it
15395         is present.
15396
15397 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15398
15399         * config/aarch64/aarch64-protos.h (tune_params): Remove
15400         const from members.
15401         (aarch64_tune_params): Remove const, change to no longer be
15402         a pointer.
15403         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
15404         change to no longer be a pointer, initialize to generic_tunings.
15405         (aarch64_min_divisions_for_recip_mul): Change dereference of
15406         aarch64_tune_params to member access.
15407         (aarch64_reassociation_width): Likewise.
15408         (aarch64_rtx_mult_cost): Likewise.
15409         (aarch64_address_cost): Likewise.
15410         (aarch64_branch_cost): Likewise.
15411         (aarch64_rtx_costs): Likewise.
15412         (aarch64_register_move_cost): Likewise.
15413         (aarch64_memory_move_cost): Likewise.
15414         (aarch64_sched_issue_rate): Likewise.
15415         (aarch64_builtin_vectorization_cost): Likewise.
15416         (aarch64_override_options): Take a copy of the selected tuning
15417         struct in to aarch64_tune_params, rather than just setting
15418         a pointer, change dereferences of aarch64_tune_params to member
15419         accesses.
15420         (aarch64_override_options_after_change): Change dereferences of
15421         aarch64_tune_params to member access.
15422         (aarch64_macro_fusion_p): Likewise.
15423         (aarch_macro_fusion_pair_p): Likewise.
15424         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
15425
15426 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15427
15428         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
15429         (aarch64_tune_flags): Likewise.
15430         (AARCH64_TUNE_FMA_STEERING): Likewise.
15431         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
15432         to AARCH64_FL_USE_FMA_STEERING_PASS.
15433         (cortex-a57.cortex-a53): Likewise.
15434         (cortex-a72): Use cortexa72_tunings.
15435         (cortex-a72.cortex-a53): Likewise.
15436         (exynos-m1): Likewise.
15437         * config/aarch64/aarch64-protos.h (tune_params): Add
15438         a field: extra_tuning_flags.
15439         * config/aarch64/aarch64-tuning-flags.def: New.
15440         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
15441         (aarch64_extra_tuning_flags): Likewise.
15442         (aarch64_tune_params): Declare here.
15443         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
15444         (cortexa53_tunings): Likewise.
15445         (cortexa57_tunings): Likewise.
15446         (thunderx_tunings): Likewise.
15447         (xgene1_tunings): Likewise.
15448         (cortexa72_tunings): New.
15449         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
15450          (gate): Check against aarch64_tune_params.
15451         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
15452         aarch64-protos.h.
15453
15454 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15455
15456         * config/aarch64/aarch64-fusion-pairs.def: New.
15457         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
15458         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
15459         aarch64_fusion_pairs.
15460         (AARCH64_FUSE_MOV_MOVK): Likewise.
15461         (AARCH64_FUSE_ADRP_ADD): Likewise.
15462         (AARCH64_FUSE_MOVK_MOVK): Likewise.
15463         (AARCH64_FUSE_ADRP_LDR): Likewise.
15464         (AARCH64_FUSE_CMP_BRANCH): Likewise.
15465
15466 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15467
15468         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
15469         SYMBOL_SMALL_GOT_28K.
15470         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
15471         relocation modifiers.
15472         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
15473         (ldr_got_small_28k_<mode>): New.
15474         (ldr_got_small_28k_sidi): New.
15475         * config/aarch64/iterators.md (got_modifier): New mode iterator.
15476         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
15477         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15478         SYMBOL_SMALL_GOT_28K.
15479         (aarch64_rtx_costs): Add costs for new instruction sequences.
15480         (initialize_aarch64_code_model): Initialize new model.
15481         (aarch64_classify_symbol): Recognize new model and new symbol classification.
15482         (aarch64_asm_preferred_eh_data_format): Support new model.
15483         (aarch64_load_symref_appropriately): Generate new instruction
15484         sequences for -fpic.
15485         (TARGET_USE_PSEUDO_PIC_REG): New definition.
15486         (aarch64_use_pseudo_pic_reg): New function.
15487
15488 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15489
15490         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15491         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
15492         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
15493         (aarch64_expand_mov_immediate): Ditto.
15494         (aarch64_print_operand): Ditto.
15495         (aarch64_classify_symbol): Ditto.
15496
15497 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
15498
15499         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
15500
15501 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
15502
15503         PR bootstrap/66638
15504         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
15505         assertion failed.  Remove assertion itself.
15506
15507 2015-06-26  Richard Biener  <rguenther@suse.de>
15508
15509         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
15510         and -A CMP CST -> A CMP -CST which is redundant with a pattern
15511         in match.pd.
15512         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
15513         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
15514         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
15515         * match.pd: ... patterns here.
15516
15517 2015-06-26  Marek Polacek  <polacek@redhat.com>
15518
15519         * match.pd ((x | y) & ~(x & y) -> x ^ y,
15520         (x | y) & (~x ^ y) -> x & y): New patterns.
15521
15522 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15523
15524         * rtl.h (emit): Add an optional boolean parameter to control
15525         whether barriers are emitted.
15526         * emit-rtl.c (emit): Likewise.
15527         * gensupport.c (get_emit_function): Return null rather than "emit".
15528         * genemit.c (gen_emit_seq): Handle the null return value.
15529         Don't emit barriers after the final instruction in the sequence.
15530         * gentarget-def.c (main): Don't emit barriers after the instruction.
15531
15532 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15533
15534         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
15535         TARGET_UNIFIED_ASM.
15536
15537 2015-06-26  Richard Biener  <rguenther@suse.de>
15538
15539         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
15540
15541 2015-06-26  Richard Biener  <rguenther@suse.de>
15542
15543         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
15544         irrespective on whether the inner operation has a single use
15545         of both off are constant.
15546
15547 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
15548             Segher Boessenkool  <segher@kernel.crashing.org>
15549
15550         PR target/66412
15551         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
15552         before doing PUT_MODE or PUT_CODE on operands to avoid
15553         in-place RTX modification.
15554
15555 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15556
15557         * gentarget-def.c (def_target_insn): Cast return of strtol to
15558         unsigned int.
15559
15560 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15561
15562         * gimple.h (gimple_call_set_fn): Move inline function.
15563         * gimple.c (gimple_call_set_fn): Relocate here.
15564
15565 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
15566
15567         PR target/65979
15568         PR target/66611
15569         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
15570         the replacement insn will work.
15571
15572 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15573
15574         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
15575         by default.
15576
15577 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15578
15579         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
15580         * cgraph.h: Include ipa-ref.h and plugin-api.h.
15581         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
15582         (symtab_node::address_can_be_compared_p): Move function.
15583         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
15584         definition here.
15585         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
15586         * auto-profile.c: Likewise.
15587         * bb-reorder.c: Likewise.
15588         * builtins.c: Likewise.
15589         * calls.c: Likewise.
15590         * cfgexpand.c: Likewise.
15591         * cgraphbuild.c: Likewise.
15592         * cgraphclones.c: Likewise.
15593         * cgraphunit.c: Likewise.
15594         * combine.c: Likewise.
15595         * coverage.c: Likewise.
15596         * data-streamer-in.c: Likewise.
15597         * data-streamer-out.c: Likewise.
15598         * data-streamer.c: Likewise.
15599         * dbxout.c: Likewise.
15600         * dwarf2out.c: Likewise.
15601         * except.c: Likewise.
15602         * expr.c: Likewise.
15603         * final.c: Likewise.
15604         * fold-const.c: Likewise.
15605         * ggc-page.c: Likewise.
15606         * gimple-fold.c: Likewise.
15607         * gimple-iterator.c: Likewise.
15608         * gimple-pretty-print.c: Likewise.
15609         * gimple-streamer-in.c: Likewise.
15610         * gimple-streamer-out.c: Likewise.
15611         * gimple.c: Likewise.
15612         * gimplify.c: Likewise.
15613         * ipa-chkp.c: Likewise.
15614         * ipa-comdats.c: Likewise.
15615         * ipa-cp.c: Likewise.
15616         * ipa-devirt.c: Likewise.
15617         * ipa-icf-gimple.c: Likewise.
15618         * ipa-icf.c: Likewise.
15619         * ipa-inline-analysis.c: Likewise.
15620         * ipa-inline-transform.c: Likewise.
15621         * ipa-inline.c: Likewise.
15622         * ipa-polymorphic-call.c: Likewise.
15623         * ipa-profile.c: Likewise.
15624         * ipa-prop.c: Likewise.
15625         * ipa-pure-const.c: Likewise.
15626         * ipa-ref.c: Likewise.
15627         * ipa-reference.c: Likewise.
15628         * ipa-split.c: Likewise.
15629         * ipa-utils.c: Likewise.
15630         * ipa-visibility.c: Likewise.
15631         * ipa.c: Likewise.
15632         * langhooks.c: Likewise.
15633         * lto-cgraph.c: Likewise.
15634         * lto-compress.c: Likewise.
15635         * lto-opts.c: Likewise.
15636         * lto-section-in.c: Likewise.
15637         * lto-section-out.c: Likewise.
15638         * lto-streamer-in.c: Likewise.
15639         * lto-streamer-out.c: Likewise.
15640         * lto-streamer.c: Likewise.
15641         * omp-low.c: Likewise.
15642         * opts-global.c: Likewise.
15643         * passes.c: Likewise.
15644         * predict.c: Likewise.
15645         * print-tree.c: Likewise.
15646         * profile.c: Likewise.
15647         * ree.c: Likewise.
15648         * sanopt.c: Likewise.
15649         * stor-layout.c: Likewise.
15650         * symtab.c: Likewise.
15651         * toplev.c: Likewise.
15652         * trans-mem.c: Likewise.
15653         * tree-cfg.c: Likewise.
15654         * tree-chkp.c: Likewise.
15655         * tree-eh.c: Likewise.
15656         * tree-emutls.c: Likewise.
15657         * tree-inline.c: Likewise.
15658         * tree-nested.c: Likewise.
15659         * tree-parloops.c: Likewise.
15660         * tree-pretty-print.c: Likewise.
15661         * tree-profile.c: Likewise.
15662         * tree-sra.c: Likewise.
15663         * tree-ssa-alias.c: Likewise.
15664         * tree-ssa-live.c: Likewise.
15665         * tree-ssa-loop-ivcanon.c: Likewise.
15666         * tree-ssa-loop-ivopts.c: Likewise.
15667         * tree-ssa-pre.c: Likewise.
15668         * tree-ssa-sccvn.c: Likewise.
15669         * tree-ssa-strlen.c: Likewise.
15670         * tree-ssa-structalias.c: Likewise.
15671         * tree-streamer-in.c: Likewise.
15672         * tree-streamer-out.c: Likewise.
15673         * tree-streamer.c: Likewise.
15674         * tree-switch-conversion.c: Likewise.
15675         * tree-tailcall.c: Likewise.
15676         * tree-vect-data-refs.c: Likewise.
15677         * tree-vect-stmts.c: Likewise.
15678         * tree-vectorizer.c: Likewise.
15679         * tree.c: Likewise.
15680         * tsan.c: Likewise.
15681         * ubsan.c: Likewise.
15682         * value-prof.c: Likewise.
15683         * varasm.c: Likewise.
15684         * varpool.c: Likewise.
15685         * config/arm/arm.c: Likewise.
15686         * config/bfin/bfin.c: Likewise.
15687         * config/c6x/c6x.c: Likewise.
15688         * config/cris/cris.c: Likewise.
15689         * config/darwin-c.c: Likewise.
15690         * config/darwin.c: Likewise.
15691         * config/i386/i386.c: Likewise.
15692         * config/i386/winnt.c: Likewise.
15693         * config/microblaze/microblaze.c: Likewise.
15694         * config/mips/mips.c: Likewise.
15695         * config/rs6000/rs6000.c: Likewise.
15696         * config/rx/rx.c: Likewise.
15697         * config/s390/s390.c: Likewise.
15698         * config/tilegx/mul-tables.c: Likewise.
15699
15700 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15701
15702         * config/aarch64/aarch64.c, config/alpha/alpha.c,
15703         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
15704         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
15705         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
15706         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15707         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15708         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15709         config/microblaze/microblaze.c, config/mips/mips.c,
15710         config/mmix/mmix.c, config/mn10300/mn10300.c,
15711         config/moxie/moxie.c, config/msp430/msp430.c,
15712         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15713         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15714         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15715         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15716         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15717         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15718         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
15719         target-def.h include.
15720         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
15721
15722 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15723
15724         * Makefile.in (TARGET_DEF): Add target-insns.def.
15725         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
15726         (build/gentarget-def.o): New rule.
15727         (genprogrtl): Add target-def.
15728         * target-insns.def, gentarget-def.c: New files.
15729         * target.def: Add targetm.have_* and targetm.gen_* hooks,
15730         based on the contents of target-insns.def.
15731         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
15732         (HAVE_return, gen_return): Delete.
15733         * target-def.h: Include insn-target-def.h.
15734         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
15735         instead of direct calls.  Rely on them to do the appropriate assertions.
15736         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
15737         (convert_jumps_to_returns): Use targetm interface instead of
15738         direct calls.
15739         (thread_prologue_and_epilogue_insns): Likewise.
15740         * reorg.c (find_end_label, dbr_schedule): Likewise.
15741         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
15742         * shrink-wrap.c (convert_to_simple_return): Likewise.
15743         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
15744
15745 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15746
15747         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
15748         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15749         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
15750         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
15751         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15752         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15753         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15754         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
15755         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
15756         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15757         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15758         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15759         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15760         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15761         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15762         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
15763         includes to end.
15764
15765 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15766
15767         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
15768         (unbounded_int_hashmap_traits::key_type): Likewise.
15769         * hash-map.h (hash_map): Get the key type from the traits.
15770         * hash-traits.h (default_hash_traits): By default, inherit from the
15771         template parameter.
15772         * alias.c (alias_set_traits): Delete.
15773         (alias_set_entry_d::children): Use alias_set_hash as the first
15774         template parameter.
15775         (record_alias_subset): Update accordingly.
15776         * except.c (tree_hash_traits): Delete.
15777         (type_to_runtime_map): Use tree_hash as the first template parameter.
15778         (init_eh): Update accordingly.
15779         * genmatch.c (capture_id_map_hasher): Delete.
15780         (cid_map_t): Use nofree_string_hash as first template parameter.
15781         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
15782         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
15783         Use symbol_compare_hash as the first template parameter in
15784         subdivide_hash_map.
15785         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
15786         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
15787         template parameter.
15788         * passes.c (pass_registry_hasher): Delete.
15789         (name_to_pass_map): Use nofree_string_hash as the first template
15790         parameter.
15791         (register_pass_name): Update accordingly.
15792         * sanopt.c (sanopt_tree_map_traits): Delete.
15793         (sanopt_tree_triplet_map_traits): Delete.
15794         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
15795         template parameter.
15796         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
15797         the first template parameter.
15798         * sese.c (rename_map_hasher): Delete.
15799         (rename_map_type): Use tree_ssa_name_hash as the first template
15800         parameter.
15801         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
15802         (function_summary::m_map): Use map_hash as the first template
15803         parameter.
15804         (function_summary::release): Update accordingly.
15805         * tree-if-conv.c (phi_args_hash_traits): Delete.
15806         (predicate_scalar_phi): Use tree_operand_hash as the first template
15807         parameter to phi_arg_map.
15808         * tree-inline.h (dependence_hasher): Delete.
15809         (copy_body_data::dependence_map): Use dependence_hash as the first
15810         template parameter.
15811         * tree-inline.c (remap_dependence_clique): Update accordingly.
15812         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
15813         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
15814         parameter.
15815         (addr_stridxptr): Update accordingly.
15816         * value-prof.c (profile_id_traits): Delete.
15817         (cgraph_node_map): Use profile_id_hash as the first template
15818         parameter.
15819         (init_node_map): Update accordingly.
15820         * config/alpha/alpha.c (string_traits): Delete.
15821         (machine_function::links): Use nofree_string_hash as the first
15822         template parameter.
15823         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
15824         * config/m32c/m32c.c (pragma_traits): Delete.
15825         (pragma_htab): Use nofree_string_hash as the first template parameter.
15826         (m32c_note_pragma_address): Update accordingly.
15827         * config/mep/mep.c (pragma_traits): Delete.
15828         (pragma_htab): Use nofree_string_hash as the first template parameter.
15829         (mep_note_pragma_flag): Update accordingly.
15830         * config/mips/mips.c (mips16_flip_traits): Delete.
15831         (mflip_mips16_htab): Use nofree_string_hash as the first template
15832         parameter.
15833         (mflip_mips16_use_mips16_p): Update accordingly.
15834         (local_alias_traits): Delete.
15835         (mips16_local_aliases): Use nofree_string_hash as the first template
15836         parameter.
15837         (mips16_local_alias): Update accordingly.
15838
15839 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15840
15841         * hash-map-traits.h (default_hashmap_traits): Delete.
15842
15843 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15844
15845         * hash-map-traits.h (unbounded_hashmap_traits): New class.
15846         (unbounded_int_hashmap_traits): Likewise.
15847         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
15848
15849 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15850
15851         * ipa-icf.h (symbol_compare_hash): New class.
15852         (symbol_compare_hashmap_traits): Use it.
15853         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
15854         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
15855         (mem_alloc_description::reverse_mem_map_t): Remove redundant
15856         default_hashmap_traits.
15857         * sanopt.c (sanopt_tree_triplet_hash): New class.
15858         (sanopt_tree_triplet_map_traits): Use it.
15859
15860 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15861
15862         * gengtype-parse.c (require_template_declaration): Allow '+' in
15863         template parameters.  Consolidate cases.
15864         * hash-traits.h (int_hash): New class.
15865         * alias.c (alias_set_hash): New structure.
15866         (alias_set_traits): Use it.
15867         * symbol-summary.h (function_summary::map_hash): New class.
15868         (function_summary::summary_hashmap_traits): Use it.
15869         * tree-inline.h (dependence_hash): New class.
15870         (dependence_hasher): Use it.
15871         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
15872         * value-prof.c (profile_id_hash): New class.
15873         (profile_id_traits): Use it.
15874
15875 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15876
15877         * config/mips/mips.c (mips16_flip_traits): Use it.
15878         (local_alias_traits, mips16_local_aliases): Convert from a map of
15879         rtxes to a map of symbol names.
15880         (mips16_local_alias): Update accordingly.
15881
15882 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15883
15884         * hash-traits.h (string_hash, nofree_string_hash): New classes.
15885         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
15886         * passes.c (pass_registry_hasher): Likewise.
15887         * config/alpha/alpha.c (string_traits): Likewise.
15888         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
15889         * config/m32c/m32c.c (pragma_traits): Likewise.
15890         * config/mep/mep.c (pragma_traits): Likewise.
15891
15892 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15893
15894         * tree-hash-traits.h (tree_hash): New class.
15895         * except.c: Include tree-hash-traits.h.
15896         (tree_hash_traits): Use tree_hash.
15897
15898 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15899
15900         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
15901         * sese.c: Include tree-hash-traits.h.
15902         (rename_map_hasher): Use tree_ssa_name_hasher.
15903
15904 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15905
15906         * tree-hash-traits.h (tree_decl_hash): New class.
15907         * tree-ssa-strlen.c: Include tree-hash-traits.h.
15908         (stridxlist_hash_traits): Use tree_decl_hash.
15909
15910 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15911
15912         * tree-hash-traits.h: New file.
15913         (tree_operand_hash): New class.
15914         * sanopt.c: Include tree-hash-traits.h.
15915         (sanopt_tree_map_traits): Use tree_operand_hash.
15916         * tree-if-conv.c: Include tree-hash-traits.h.
15917         (phi_args_hash_traits): Use tree_operand_hash.
15918         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
15919         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
15920
15921 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15922
15923         * hash-map-traits.h: Include hash-traits.h.
15924         (simple_hashmap_traits): New class.
15925         * mem-stats.h (hash_map): Change the default traits to
15926         simple_hashmap_traits<default_hash_traits<Key> >.
15927
15928 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15929
15930         * hash-table.h: Update comments.
15931
15932 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15933
15934         * hash-traits.h (default_hash_traits): New structure.
15935         * hash-set.h (default_hashset_traits): Delete.
15936         (hash_set): Use default_hash_traits<Key> instead of
15937         default_hashset_traits.  Delete hash_entry type and use Key directly.
15938         * ipa-devirt.c (pair_traits): Delete.
15939         (default_hash_traits <type_pair>): Override.
15940         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
15941         (odr_types_equivalent_p, add_type_duplicate): Likewise.
15942
15943 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15944
15945         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
15946
15947 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15948
15949         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
15950         (has_is_empty, is_empty_helper): Delete.
15951         (has_mark_deleted, mark_deleted_helper): Delete.
15952         (has_mark_empty, mark_empty_helper): Delete.
15953         (hash_table::is_deleted): Call the Descriptor unconditionally.
15954         (hash_table::is_empty): Likewise.
15955         (hash_table::mark_deleted): Likewise.
15956         (hash_table::mark_empty): Likewise.
15957
15958 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15959
15960         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
15961         redundant typedefs and members.
15962         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
15963         redundant typedefs.
15964         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
15965         * ipa-devirt.c (odr_name_hasher): Likewise.
15966         (polymorphic_call_target_hasher): Likewise.
15967         * ira-costs.c (cost_classes_hasher): Likewise.
15968         * statistics.c (stats_counter_hasher): Likewise.
15969         * trans-mem.c (log_entry_hasher): Likewise.
15970         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15971         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
15972         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
15973         * var-tracking.c (variable_hasher): Likewise.
15974         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
15975         Remove redundant typedefs and members.
15976
15977 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15978
15979         * hash-traits.h (ggc_cache_hasher): Rename to...
15980         (ggc_cache_remove): ...this and remove typedefs.
15981         (ggc_cache_ptr_hash): New class.
15982         * hash-table.h: Update commentary.
15983         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
15984         rather than ggc_cache_hasher.
15985         (const_wide_int_hasher, reg_attr_hasher): Likewise.
15986         (const_double_hasher, const_fixed_hasher): Likewise.
15987         * function.c (insn_cache_hasher): Likewise.
15988         * trans-mem.c (tm_wrapper_hasher): Likewise.
15989         * tree.h (tree_decl_map_cache_hasher): Likewise.
15990         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
15991         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
15992         * ubsan.c (tree_type_map_cache_hasher): Likewise.
15993         * varasm.c (tm_clone_hasher): Likewise.
15994         * config/i386/i386.c (dllimport_hasher): Likewise.
15995         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
15996         (tree_hasher): Likewise.
15997
15998 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15999
16000         * hash-traits.h (ggc_hasher): Rename to...
16001         (ggc_remover): ...this and remove typedefs.
16002         (ggc_cache_hasher): Update accordingly.  Add typedefs.
16003         (ggc_ptr_hash): New class.
16004         * hash-table.h: Update comment.
16005         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
16006         ggc_hasher.
16007         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
16008         (tree_descriptor_hasher): Likewise.
16009         * cgraph.c (function_version_hasher): Likewise.
16010         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
16011         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
16012         (dw_loc_list_hasher, addr_hasher): Likewise.
16013         * function.h (used_type_hasher): Likewise.
16014         * function.c (temp_address_hasher): Likewise.
16015         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
16016         * libfuncs.h (libfunc_hasher): Likewise.
16017         * lto-streamer.h (decl_state_hasher): Likewise.
16018         * optabs.c (libfunc_decl_hasher): Likewise.
16019         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
16020         * varasm.c (section_hasher, object_block_hasher): Likewise.
16021         (const_rtx_desc_hasher): Likewise.
16022         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
16023         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
16024
16025 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16026
16027         * hash-traits.h (free_ptr_hash): New class.
16028         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
16029         rather than typed_free_remove.  Remove redudant typedefs.
16030         (external_ref_hasher): Likewise.
16031         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
16032         (ehspec_hasher): Likewise.
16033         * ggc-common.c (saving_hasher): Likewise.
16034         * gimplify.c (gimplify_hasher): Likewise.
16035         * haifa-sched.c (delay_i2_hasher): Likewise.
16036         * loop-invariant.c (invariant_expr_hasher): Likewise.
16037         * loop-iv.c (biv_entry_hasher): Likewise.
16038         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
16039         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
16040         * tree-cfg.c (locus_discrim_hasher): Likewise.
16041         * tree-eh.c (finally_tree_hasher): Likewise.
16042         * tree-into-ssa.c (var_info_hasher): Likewise.
16043         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
16044         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
16045         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
16046         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
16047         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
16048         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
16049         (shared_bitmap_hasher): Likewise.
16050         * tree-ssa-threadupdate.c (redirection_data): Likewise.
16051         * tree-vectorizer.h (peel_info_hasher): Likewise.
16052         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
16053         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
16054
16055 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16056
16057         * hash-table.h: Update comments.
16058         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
16059         (nofree_ptr_hash): New class.
16060         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
16061         than typed_noop_remove.  Remove redudant typedefs.
16062         * attribs.c (attribute_hasher): Likewise.
16063         * cfg.c (bb_copy_hasher): Likewise.
16064         * cselib.c (cselib_hasher): Likewise.
16065         * dse.c (invariant_group_base_hasher): Likewise.
16066         * dwarf2cfi.c (trace_info_hasher): Likewise.
16067         * dwarf2out.c (macinfo_entry_hasher): Likewise.
16068         (comdat_type_hasher, loc_list_hasher): Likewise.
16069         * gcse.c (pre_ldst_expr_hasher): Likewise.
16070         * genmatch.c (id_base): Likewise.
16071         * genrecog.c (test_pattern_hasher): Likewise.
16072         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
16073         * haifa-sched.c (delay_i1_hasher): Likewise.
16074         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
16075         * ipa-icf.h (congruence_class_group_hash): Likewise.
16076         * ipa-profile.c (histogram_hash): Likewise.
16077         * ira-color.c (allocno_hard_regs_hasher): Likewise.
16078         * lto-streamer.h (string_slot_hasher): Likewise.
16079         * lto-streamer.c (tree_entry_hasher): Likewise.
16080         * plugin.c (event_hasher): Likewise.
16081         * postreload-gcse.c (expr_hasher): Likewise.
16082         * store-motion.c (st_expr_hasher): Likewise.
16083         * tree-sra.c (uid_decl_hasher): Likewise.
16084         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
16085         (ssa_name_var_hash): Likewise.
16086         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
16087         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
16088         * tree-ssa-pre.c (pre_expr_d): Likewise.
16089         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
16090         * vtable-verify.h (registration_hasher): Likewise.
16091         * vtable-verify.c (vtbl_map_hasher): Likewise.
16092         * config/arm/arm.c (libcall_hasher): Likewise.
16093         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
16094         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
16095         * config/sol2.c (comdat_entry_hasher): Likewise.
16096         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
16097         (print_fold_checksum, fold_checksum_tree): Likewise.
16098         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
16099         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
16100         (fold_build_call_array_loc): Likewise.
16101         * tree-ssa-ccp.c (gimple_htab): Likewise.
16102         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
16103         rather than pointer_type.
16104
16105 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16106
16107         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
16108         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
16109
16110 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16111
16112         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
16113         (ggc_hasher::ggc_mx): Likewise.
16114         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
16115         that duplicate ggc_hasher ones.
16116
16117 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16118
16119         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
16120         (gt_cleare_cache): Check here for deleted and empty entries.
16121         Replace handle_cache_entry with a call to keep_cache_entry.
16122         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
16123         (ggc_cache_hasher::keep_cache_entry): New function.
16124         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
16125         (tm_wrapper_hasher::keep_cache_entry): New function.
16126         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
16127         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
16128         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
16129         (type_cache_hasher::keep_cache_entry): New function.
16130         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
16131         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
16132         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
16133         (tree_type_map_cache_hasher::keep_cache_entry): New function.
16134         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
16135         (tm_clone_hasher::keep_cache_entry): New function.
16136         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
16137         (dllimport_hasher::keep_cache_entry): New function.
16138
16139 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16140
16141         * hash-table.h: Include hash-traits.h.
16142         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
16143         (ggc_cache_hasher): Move to...
16144         * hash-traits.h: ...this new file.
16145
16146 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16147
16148         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
16149         struct cl_optimization.
16150         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
16151         * tree.c (make_node_stat): Allocate cl_optimization struct.
16152         (copy_node_stat): Allocate and copy cl_optimization struct.
16153
16154 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16155
16156         * function.h (struct incoming_args): Move struct.
16157         (pass_by_reference, reference_callee_copied): Remove prototypes.
16158         * emit-rtl.h (struct incoming_args): Relocate struct here.
16159         * calls.h (pass_by_reference, reference_callee_copied): Relocate
16160         prototypes here.
16161         * function.c (pass_by_reference, reference_callee_copied): Move.
16162         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
16163         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
16164         * ipa-chkp.c: Include calls.h.
16165
16166 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
16167
16168         * alias.h (alias_set_type): Move typedef.
16169         * coretypes.h (alias_set_type): Relocate typedef here.
16170         * rtl.h: Don't include alias.h.
16171
16172 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16173
16174         * cgraph.h (cgraph_rtl_info): Move to rtl.h
16175         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
16176         and instance.
16177         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
16178         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
16179         doesn't exist.
16180         * calls.c: Include hard-reg-set.h before rtl.h.
16181         * ira.c: Likewise.
16182
16183 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
16184             Vladimir Makarov  <vmakarov@redhat.com>
16185
16186         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
16187         Add assert.
16188
16189 2015-06-25  Richard Biener  <rguenther@suse.de>
16190
16191         * fold-const.c (fold_binary_loc): Move simplification of
16192         (X <<>> C1) & C2 ...
16193         * match.pd: ... here.
16194
16195 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
16196
16197         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
16198
16199 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16200
16201         * match.pd: Add patterns for vec_conds between 1 and 0.
16202
16203 2015-06-25  Richard Biener  <rguenther@suse.de>
16204
16205         * tree-vect-stmts.c (vectorizable_conversion): Do not set
16206         STMT_VINFO_VEC_STMT for SLP.
16207         (vectorizable_store): Likewise.
16208         (vectorizable_load): Likewise.
16209         (vect_transform_stmt): Catch SLP vectorization clobbering
16210         STMT_VINFO_VEC_STMT.
16211
16212 2015-06-25  Richard Biener  <rguenther@suse.de>
16213
16214         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
16215         dumping.
16216         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
16217         cleanup resulting dead code and parameters.
16218         (vect_transform_slp_perm_load): Adjust.
16219
16220 2015-06-25  Nick Clifton  <nickc@redhat.com>
16221
16222         * config/bfin/bfin.c (bfin_expand_prologue): Set
16223         current_function_static_stack_size if flag_stack_usage_info is set.
16224         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
16225         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
16226         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16227         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
16228
16229 2015-06-25  Tom de Vries  <tom@codesourcery.com>
16230
16231         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
16232         comment that the generated IV is unsigned.
16233
16234 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16235
16236         PR target/29693
16237         * config/arm/arm.c (arm_dbx_register_number): Return
16238         DWARF_FRAME_REGISTERS by default.
16239
16240 2015-06-25  Tom de Vries  <tom@codesourcery.com>
16241
16242         * dominance.c (calculate_dominance_info): Fix verify_dominators call
16243         argument.  Call verify_dominator when reusing dominator info.
16244
16245 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
16246
16247         PR target/66563
16248         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
16249         an additional element of the unspec vector.  Modify indices
16250         of operands.
16251         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
16252         * config/sh/sh.c (prepare_move_operands): Pass incremented
16253         const_int to gen_GOTaddr2picreg.
16254         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
16255
16256 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16257
16258         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
16259         Condition on TARGET_FLOAT.
16260
16261 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16262
16263         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
16264         and (no)crypto.
16265
16266 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16267
16268         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
16269
16270         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
16271         aarch64_err_no_fpadvsimd.
16272
16273         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
16274         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
16275         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
16276         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
16277         Turn error into assert, test TARGET_FLOAT.
16278         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
16279         TARGET_FLOAT.
16280
16281 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
16282
16283         PR debug/66482
16284         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
16285
16286 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
16287
16288         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
16289
16290 2015-06-24  Renlin Li <renlin.li@arm.com>
16291
16292         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
16293         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
16294
16295 2015-06-24  Richard Biener  <rguenther@suse.de>
16296
16297         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
16298         (main): Likewise.
16299         (lower_opt_convert): Support lowering of conditional view_convert.
16300         (parser::parse_operation): Likewise.
16301         (parser::parse_for): Likewise.
16302
16303 2015-06-24  Renlin Li  <renlin.li@arm.com>
16304
16305         * varasm.c (emit_local): Use unsigned int for align variable.
16306
16307 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16308
16309         PR target/63408
16310         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
16311         for negative numbers.
16312
16313 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16314
16315         PR rtl-optimization/66306
16316         * reload.c (find_reloads): Swap the match_dup info for
16317         commutative operands.
16318
16319 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16320
16321         * config/s390/vx-builtins.md
16322         ("vec_scatter_element<mode>_<non_vec_int>")
16323         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
16324         attribute with bhfgq.
16325
16326 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16327
16328         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
16329
16330 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16331
16332         * config/s390/s390-builtin-types.def: Add flag to indicate the
16333         options under which the function type is needed.
16334         * config/s390/s390-builtins.def: Add flag to indicate the options
16335         under which the builtin is enabled.
16336         * config/s390/s390-builtins.h: Add flags parameter to macro
16337         definitions.
16338         (bflags_for_builtin): New function.
16339         (flags_for_builtin): Renamed to ...
16340         (opflags_for_builtin): ... this.
16341         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
16342         flags_for_builtin to bflags_for_builtin and
16343         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
16344         * config/s390/s390.c: Add initialization of bflags_builtin and
16345         opflags_builtin arrays.
16346         Remove code for flags_builtin.
16347         (s390_init_builtins): Only create builtin function types if one of
16348         their flags is active.
16349         Only create builtins if all of their flags are active.
16350         (s390_expand_builtin): Rename flags_for_builtin to
16351         opflags_for_builtin.
16352
16353 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16354
16355         * config/s390/vecintrin.h: Remove internal builtins.
16356
16357 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16358
16359         * config/s390/s390.c (s390_secondary_reload): Fix check for
16360         GENERAL_REGS register class.
16361
16362 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16363
16364         * config/s390/s390.c (s390_support_vector_misalignment): Call
16365         default implementation for !TARGET_VX.
16366
16367 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16368
16369         * config/s390/s390.c (s390_legitimate_constant_p): Add
16370         TARGET_VX check.
16371
16372 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16373
16374         * config/s390/s390.c (s390_vector_abi): New variable definition.
16375         (s390_check_type_for_vector_abi): New function.
16376         (TARGET_ASM_FILE_END): New macro definition.
16377         (s390_asm_file_end): New function.
16378         (s390_function_arg): Call s390_check_type_for_vector_abi.
16379         (s390_gimplify_va_arg): Likewise.
16380         * configure: Regenerate.
16381         * configure.ac: Check for .gnu_attribute Binutils feature.
16382
16383 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
16384
16385         PR target/65803
16386         * config/bfin/bfin.c (hwloop_optimize): Initialize
16387         JUMP_LABEL for newly created jump.
16388
16389 2015-06-23  Tristan Gingold  <gingold@adacore.com>
16390
16391         * collect-utils.c (collect_wait): Unlink the response file here
16392         instead of...
16393         (do_wait): ...here.
16394         (utils_cleanup): ...and here.
16395
16396 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
16397
16398         * df-scan.c: Don't include target-def.h.
16399         * targhooks.c: Likewise.
16400         * config/arm/arm-c.c: Likewise.
16401         * config/i386/i386-c.c: Likewise.
16402         * config/nds32/nds32-cost.c: Likewise.
16403         * config/nds32/nds32-fp-as-gp.c: Likewise.
16404         * config/nds32/nds32-intrinsic.c: Likewise.
16405         * config/nds32/nds32-isr.c: Likewise.
16406         * config/nds32/nds32-md-auxiliary.c: Likewise.
16407         * config/nds32/nds32-memory-manipulation.c: Likewise.
16408         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16409         * config/nds32/nds32-predicates.c: Likewise.
16410
16411 2015-06-23  Richard Biener  <rguenther@suse.de>
16412
16413         PR tree-optimization/66636
16414         * tree-vect-stmts.c (vectorizable_store): Properly compute the
16415         def type for further defs for strided stores.
16416
16417 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
16418
16419         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
16420         conditional selects.
16421         (setcc_int<mode>, setcc_float<mode>): Reformat.
16422
16423 2015-06-23  Marek Polacek  <polacek@redhat.com>
16424
16425         * match.pd ((x + y) - (x | y) -> x & y,
16426         (x + y) - (x & y) -> x | y): New patterns.
16427
16428 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
16429
16430         PR 65711
16431         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
16432         '-dynamic-linker' within %{!shared: ...}.
16433
16434 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
16435
16436         PR target/66560
16437         * config/i386/predicates.md (addsub_vm_operator): New predicate.
16438         (addsub_vs_operator): Ditto.
16439         (addsub_vs_parallel): Ditto.
16440         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
16441         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
16442         Put minus RTX before plus and adjust vec_merge selector.
16443         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
16444         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
16445         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
16446         (addsub vec_merge splitters): New combiner splitters.
16447         (addsub vec_select/vec_concat splitters): Ditto.
16448
16449 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
16450
16451         PR tree-optimization/66449
16452         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
16453         POINTER_PLUS_EXPR for pointers.
16454
16455 2015-06-23  Alan Modra  <amodra@gmail.com>
16456
16457         * rtlanal.c (commutative_operand_precedence): Correct comments.
16458         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
16459         declaration.  Return an int.  Distinguish REG,REG return from
16460         others.
16461         (struct simplify_plus_minus_op_data): Make local to function.
16462         (simplify_plus_minus): Don't set canonicalized if merely sorting
16463         registers.  Avoid packing ops if nothing changes.  White space fixes.
16464
16465 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
16466
16467         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
16468         -fdump-ada-spec is passed but not if -fsyntax-only is.
16469
16470 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
16471
16472         PR bootstrap/63740
16473         * lra-lives.c (process_bb_lives): Check insn copying the same
16474         reload pseudo and don't create a copy for it.
16475
16476 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16477
16478         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
16479         for cond_stmt.
16480
16481 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16482
16483         * builtins.def (DEF_GOMP_BUILTIN): Test
16484         'flag_tree_parallelize_loops > 1' instead of
16485         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
16486
16487 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16488
16489         * dominance.c (calculate_dominance_info): Verify dominators if
16490         early-out.
16491
16492 2015-06-22  Marek Polacek  <polacek@redhat.com>
16493
16494         * match.pd ((x ^ y) ^ (x | y) -> x & y,
16495         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
16496         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
16497         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
16498
16499 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
16500
16501         PR target/65871
16502         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
16503         cost of embedded comparison.
16504
16505 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16506
16507         PR target/65914
16508         * config/rs6000/predicates.md (altivec_register_operand): Permit
16509         virtual stack registers.
16510         (vsx_register_operand): Likewise.
16511         (vfloat_operand): Likewise.
16512         (vint_operand): Likewise.
16513         (vlogical_operand): Likewise.
16514
16515 2015-06-22  Richard Biener  <rguenther@suse.de>
16516
16517         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
16518         and single_scalar_iteration_cost members.
16519         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
16520         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
16521         (vect_get_single_scalar_iteration_cost): Remove.
16522         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
16523         Use LOOP_VINFO_SCALAR_ITERATION_COST.
16524         * tree-vect-loop.c (destroy_loop_vec_info): Free
16525         scalar_cost_vec.
16526         (vect_get_single_scalar_iteration_cost): Compute result into
16527         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
16528         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
16529         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
16530         (vect_estimate_min_profitable_iters): Use them.
16531
16532 2015-06-22  Christian Bruel  <christian.bruel@st.com>
16533
16534         PR target/52144
16535         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
16536         (TARGET_INSERT_ATTRIBUTES): Define.
16537         (thumb_flipper): New var.
16538         * config/arm/arm.opt (-mflip-thumb): New switch.
16539
16540 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16541             Martin Liska  <mliska@suse.cz>
16542
16543         PR ipa/65908
16544         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
16545         construction of arg_types.
16546         (sem_function::sem_function): Likewise.
16547         (sem_function::~sem_function): Remove destruction of arg_types.
16548         (sem_function::compatible_parm_types_p): New function.
16549         (sem_function::equals_wpa): Reorg matching of return values
16550         and parameter types.
16551         (sem_function::equals_private): Reorg mathcing of argument types.
16552         (sem_function::parse_tree_args): Remove.
16553         * ipa-icf.h (init_wpa): Do not call it.
16554         (parse_tree_args): Remove.
16555         (compatible_parm_types_p): Declare.
16556         (result_type): Remove.
16557         (arg_types): Remove.
16558
16559 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16560
16561         PR ipa/66351
16562         * ipa-polymorphic-call.c
16563         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
16564         initializing alias oracle; fix formating; set base_alias_set if it
16565         is known.
16566
16567 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
16568
16569         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
16570         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
16571         (find_inc): Likewise.
16572         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
16573         swapping.
16574         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
16575         * df-scan.c (df_swap_refs): Remove.
16576         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
16577         * dominance.c (link_roots): Use std::swap instead of manually swapping.
16578         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
16579         * fold-const.c (fold_relational_const): Likewise.
16580         * genattrtab.c (simplify_test_exp): Likewise.
16581         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
16582         gimple_simplify): Likewise.
16583         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
16584         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
16585         * ipa-devirt.c (add_type_duplicate): Likewise.
16586         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
16587         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
16588         * lra.c (lra_create_copy): Likewise.
16589         * lto-streamer-out.c (DFS::DFS): Likewise.
16590         * modulo-sched.c (get_sched_window): Likewise.
16591         * omega.c (omega_pretty_print_problem): Likewise.
16592         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
16593         * reload1.c (reloads_unique_chain_p): Likewise.
16594         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
16595         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
16596         use std::swap.
16597         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
16598         manually swapping.
16599         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
16600         predicate_mem_writes): Likewise.
16601         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
16602         * tree-predcom.c (combine_chains): Likewise.
16603         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
16604         refs_may_alias_p_1): Likewise.
16605         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
16606         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
16607         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
16608         number_of_iterations_cond): Likewise.
16609         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
16610         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
16611         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16612         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
16613         * tree-vrp.c (extract_range_from_binary_expr_1,
16614         extract_range_from_unary_expr_1): Likewise.
16615
16616 2015-06-20  Marek Polacek  <polacek@redhat.com>
16617
16618         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
16619
16620 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16621
16622         PR target/66591
16623         * config/sh/sh.c (prepare_move_operands): Replace subreg
16624         index term with R0 for base and index addressing.
16625
16626 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
16627
16628         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
16629         op1 is an fp zero.
16630         (movsf_aarch64): Change condition from register_operand to
16631         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
16632         load1.  Change type for alternative 7 to store1.
16633         (movdf_aarch64): Likewise.
16634
16635 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
16636
16637         * config/vax/vax.md: Adjust sign/zero extend patterns to
16638         handle SUBREGs in operands[1].
16639
16640 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16641
16642         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
16643         of manually swapping.
16644         (expand_vec_perm_interleave2): Likewise.
16645
16646 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
16647
16648         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
16649         reuse bounds created for abnormal ssa names.
16650
16651 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
16652
16653         * config/nvptx/nvptx.md (allocate_stack): Rename to...
16654         (allocate_stack_<mode>): ... this, and add :P on both
16655         match_operand and unspec.
16656         (allocate_stack): New expander.
16657
16658 2015-06-19  Christian Bruel  <christian.bruel@st.com>
16659
16660         PR target/66541
16661         PR target/52144
16662         * config/arm/arm.c (arm_set_current_function): Handle
16663         explicit default options.
16664
16665 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16666
16667         * config/i386/i386.md (*movsicc_noc_zext): New insn.
16668         (zero-extended cmove with mem peephole2): New pattern.
16669         (cmove with mem peephole2): Merge patterns.
16670
16671 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16672
16673         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
16674
16675 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
16676
16677         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
16678         * config/mips/mips.md (*madd4<mode>): Ditto.
16679         (*nmadd3<mode>) Ditto.
16680         (*nmadd4<mode>_fastmath): Ditto.
16681         (*nmadd3<mode>_fastmath): Ditto.
16682         (*nmsub4<mode>): Ditto.
16683         (*nmsub3<mode>): Ditto.
16684         (*nmsub4<mode>_fastmath): Ditto.
16685         (*nmsub3<mode>_fastmath): Ditto.
16686
16687 2015-06-18  Michael Matz  <matz@suse.de>
16688
16689         PR middle-end/66253
16690         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
16691         grouped strided stores.
16692         (vectorizable_load): Don't use the DR from first_stmt in
16693         the non-SLP grouped strided case.
16694
16695 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16696
16697         PR target/66569
16698         * function.c (assign_bounds): Add arguments assign_regs,
16699         assign_special, assign_bt.
16700         (assign_parms): For vararg functions handle bounds in BT
16701         and special slots after incoming vararg bounds.
16702
16703 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16704
16705         PR middle-end/66568
16706         * cfgexpand.c (expand_return): Handle missing bounds.
16707         (expand_gimple_stmt_1): Likewise.
16708         * tree-chkp.c (chkp_expand_zero_bounds): New.
16709         * tree-chkp.h (chkp_expand_zero_bounds): New.
16710
16711 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16712
16713         PR middle-end/66567
16714         * ipa-chkp.c (chkp_maybe_create_clone): Require
16715         functions to be instrumentable.
16716         * tree-chkp.c (chkp_replace_function_pointer): Use
16717         chkp_instrumentable_p instead of attribute check.
16718
16719 2015-06-18  Richard Biener  <rguenther@suse.de>
16720
16721         PR tree-optimization/66510
16722         * tree-vect-stmts.c (vectorizable_load): Properly compute the
16723         number of vector loads for SLP permuted loads.
16724         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
16725         check the stride for loop vectorization.
16726         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
16727         vectorization factor.
16728         (vect_analyze_group_access): If the group size is not a power
16729         of two require a epilogue loop.
16730         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
16731         compute and optimizing and alias test pruning after final
16732         vectorization factor computation.
16733         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
16734         vector alignment.
16735         (vect_transform_slp_perm_load): Properly compute the original
16736         number of vector load stmts.
16737
16738 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16739
16740         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
16741         "unlikely character , in @var" warning.
16742
16743 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
16744
16745         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
16746         (ix86_function_arg_advance): Ditto.
16747         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
16748
16749 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16750
16751         * function.h (struct rtl_data): Remove struct and accessor macros.
16752         * emit-rtl.h (struct rtl_data): Relocate to here.
16753         * Makefile.in (GTFILES): Add emit-rtl.h.
16754         * df-core.c: Include emit-rtl.h.
16755         * genattrtab.c: Likewise.
16756         * genconditions.c: Likewise.
16757         * genpreds.c: Likewise.
16758         * genrecog.c: Likewise.
16759         * regcprop.c: Likewise.
16760         * resource.c: Likewise.
16761         * sched-rgn.c: Likewise.
16762         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16763         * config/i386/winnt.c: Likewise.
16764
16765 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
16766
16767         PR middle-end/66429
16768         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
16769         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
16770         and has_force_vectorize_loops flags from cfun into
16771         child_cfun.
16772         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
16773         if simduid is non-NULL.
16774         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
16775         * passes.def (pass_simduid_cleanup): Add new pass after loop
16776         passes.
16777         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
16778         indirection from htab argument's type.
16779         (shrink_simd_arrays): New function.
16780         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
16781         Don't call adjust_simduid_builtins if there are no loops.
16782         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
16783         (pass_simduid_cleanup::execute): New method.
16784         (make_pass_simduid_cleanup): New function.
16785
16786 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
16787
16788         * tree-core.h (tree_target_option): Make opts field a pointer to a
16789         cl_target_option instead of an instance of the struct.
16790         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
16791         the structure.
16792         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
16793         TARGET_OPTION_NODE.
16794         (copy_node_stat): Allocate and copy struct cl_target_option.
16795
16796 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16797
16798         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
16799         Remove conditional exposure of prototypes.
16800         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
16801         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
16802         definitions in tree.h with functions.
16803         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
16804         anon_aggrname_p.
16805         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
16806
16807 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
16808
16809         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
16810         (*cmp<mode>_signed): ... this.
16811         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
16812         (*cmp<mode>_unsigned): ... this.  Remove %b.
16813
16814 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16815
16816         * coretypes.h: Include input.h and as-a.h.
16817         * rtl.h: Include input.h and as-a.h for generator files.
16818         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
16819         * vec.c: Don't include diagnostic-core.h.
16820         * alias.c: Do not include input.h, line-map.h or is-a.h.
16821         * asan.c: Likewise.
16822         * attribs.c: Likewise.
16823         * auto-inc-dec.c: Likewise.
16824         * auto-profile.c: Likewise.
16825         * bb-reorder.c: Likewise.
16826         * bt-load.c: Likewise.
16827         * builtins.c: Likewise.
16828         * caller-save.c: Likewise.
16829         * calls.c: Likewise.
16830         * ccmp.c: Likewise.
16831         * cfg.c: Likewise.
16832         * cfganal.c: Likewise.
16833         * cfgbuild.c: Likewise.
16834         * cfgcleanup.c: Likewise.
16835         * cfgexpand.c: Likewise.
16836         * cfghooks.c: Likewise.
16837         * cfgloop.c: Likewise.
16838         * cfgloop.h: Likewise.
16839         * cfgloopanal.c: Likewise.
16840         * cfgloopmanip.c: Likewise.
16841         * cfgrtl.c: Likewise.
16842         * cgraph.c: Likewise.
16843         * cgraphbuild.c: Likewise.
16844         * cgraphclones.c: Likewise.
16845         * cgraphunit.c: Likewise.
16846         * cilk-common.c: Likewise.
16847         * combine-stack-adj.c: Likewise.
16848         * combine.c: Likewise.
16849         * compare-elim.c: Likewise.
16850         * convert.c: Likewise.
16851         * coverage.c: Likewise.
16852         * cppbuiltin.c: Likewise.
16853         * cprop.c: Likewise.
16854         * cse.c: Likewise.
16855         * cselib.c: Likewise.
16856         * data-streamer-in.c: Likewise.
16857         * data-streamer-out.c: Likewise.
16858         * data-streamer.c: Likewise.
16859         * dbxout.c: Likewise.
16860         * dce.c: Likewise.
16861         * ddg.c: Likewise.
16862         * debug.c: Likewise.
16863         * df-core.c: Likewise.
16864         * df-problems.c: Likewise.
16865         * df-scan.c: Likewise.
16866         * df.h: Likewise.
16867         * dfp.c: Likewise.
16868         * diagnostic-core.h: Likewise.
16869         * diagnostic.c: Likewise.
16870         * dojump.c: Likewise.
16871         * dominance.c: Likewise.
16872         * domwalk.c: Likewise.
16873         * double-int.c: Likewise.
16874         * dse.c: Likewise.
16875         * dumpfile.c: Likewise.
16876         * dumpfile.h: Likewise.
16877         * dwarf2asm.c: Likewise.
16878         * dwarf2cfi.c: Likewise.
16879         * dwarf2out.c: Likewise.
16880         * emit-rtl.c: Likewise.
16881         * et-forest.c: Likewise.
16882         * except.c: Likewise.
16883         * explow.c: Likewise.
16884         * expmed.c: Likewise.
16885         * expr.c: Likewise.
16886         * final.c: Likewise.
16887         * fixed-value.c: Likewise.
16888         * fold-const.c: Likewise.
16889         * function.c: Likewise.
16890         * fwprop.c: Likewise.
16891         * gcc-plugin.h: Likewise.
16892         * gcse.c: Likewise.
16893         * generic-match-head.c: Likewise.
16894         * ggc-page.c: Likewise.
16895         * gimple-builder.c: Likewise.
16896         * gimple-expr.c: Likewise.
16897         * gimple-fold.c: Likewise.
16898         * gimple-iterator.c: Likewise.
16899         * gimple-low.c: Likewise.
16900         * gimple-match-head.c: Likewise.
16901         * gimple-pretty-print.c: Likewise.
16902         * gimple-ssa-isolate-paths.c: Likewise.
16903         * gimple-ssa-strength-reduction.c: Likewise.
16904         * gimple-streamer-in.c: Likewise.
16905         * gimple-streamer-out.c: Likewise.
16906         * gimple-streamer.h: Likewise.
16907         * gimple-walk.c: Likewise.
16908         * gimple.c: Likewise.
16909         * gimplify-me.c: Likewise.
16910         * gimplify.c: Likewise.
16911         * godump.c: Likewise.
16912         * graph.c: Likewise.
16913         * graphite-blocking.c: Likewise.
16914         * graphite-dependences.c: Likewise.
16915         * graphite-interchange.c: Likewise.
16916         * graphite-isl-ast-to-gimple.c: Likewise.
16917         * graphite-optimize-isl.c: Likewise.
16918         * graphite-poly.c: Likewise.
16919         * graphite-scop-detection.c: Likewise.
16920         * graphite-sese-to-poly.c: Likewise.
16921         * graphite.c: Likewise.
16922         * haifa-sched.c: Likewise.
16923         * hw-doloop.c: Likewise.
16924         * ifcvt.c: Likewise.
16925         * init-regs.c: Likewise.
16926         * input.c: Likewise.
16927         * internal-fn.c: Likewise.
16928         * ipa-chkp.c: Likewise.
16929         * ipa-comdats.c: Likewise.
16930         * ipa-cp.c: Likewise.
16931         * ipa-devirt.c: Likewise.
16932         * ipa-icf-gimple.c: Likewise.
16933         * ipa-icf.c: Likewise.
16934         * ipa-inline-analysis.c: Likewise.
16935         * ipa-inline-transform.c: Likewise.
16936         * ipa-inline.c: Likewise.
16937         * ipa-polymorphic-call.c: Likewise.
16938         * ipa-profile.c: Likewise.
16939         * ipa-prop.c: Likewise.
16940         * ipa-pure-const.c: Likewise.
16941         * ipa-ref.c: Likewise.
16942         * ipa-reference.c: Likewise.
16943         * ipa-split.c: Likewise.
16944         * ipa-utils.c: Likewise.
16945         * ipa-visibility.c: Likewise.
16946         * ipa.c: Likewise.
16947         * ira-build.c: Likewise.
16948         * ira-color.c: Likewise.
16949         * ira-conflicts.c: Likewise.
16950         * ira-costs.c: Likewise.
16951         * ira-emit.c: Likewise.
16952         * ira-lives.c: Likewise.
16953         * ira.c: Likewise.
16954         * jump.c: Likewise.
16955         * langhooks.c: Likewise.
16956         * lcm.c: Likewise.
16957         * loop-doloop.c: Likewise.
16958         * loop-init.c: Likewise.
16959         * loop-invariant.c: Likewise.
16960         * loop-iv.c: Likewise.
16961         * loop-unroll.c: Likewise.
16962         * lower-subreg.c: Likewise.
16963         * lra-assigns.c: Likewise.
16964         * lra-coalesce.c: Likewise.
16965         * lra-constraints.c: Likewise.
16966         * lra-eliminations.c: Likewise.
16967         * lra-lives.c: Likewise.
16968         * lra-remat.c: Likewise.
16969         * lra-spills.c: Likewise.
16970         * lra.c: Likewise.
16971         * lto-cgraph.c: Likewise.
16972         * lto-compress.c: Likewise.
16973         * lto-opts.c: Likewise.
16974         * lto-section-in.c: Likewise.
16975         * lto-section-out.c: Likewise.
16976         * lto-streamer-in.c: Likewise.
16977         * lto-streamer-out.c: Likewise.
16978         * lto-streamer.c: Likewise.
16979         * mcf.c: Likewise.
16980         * mode-switching.c: Likewise.
16981         * modulo-sched.c: Likewise.
16982         * omega.c: Likewise.
16983         * omp-low.c: Likewise.
16984         * optabs.c: Likewise.
16985         * opts-global.c: Likewise.
16986         * opts.h: Likewise.
16987         * passes.c: Likewise.
16988         * plugin.c: Likewise.
16989         * postreload-gcse.c: Likewise.
16990         * postreload.c: Likewise.
16991         * predict.c: Likewise.
16992         * pretty-print.h: Likewise.
16993         * print-rtl.c: Likewise.
16994         * print-tree.c: Likewise.
16995         * profile.c: Likewise.
16996         * real.c: Likewise.
16997         * realmpfr.c: Likewise.
16998         * recog.c: Likewise.
16999         * ree.c: Likewise.
17000         * reg-stack.c: Likewise.
17001         * regcprop.c: Likewise.
17002         * reginfo.c: Likewise.
17003         * regrename.c: Likewise.
17004         * regstat.c: Likewise.
17005         * reload.c: Likewise.
17006         * reload1.c: Likewise.
17007         * reorg.c: Likewise.
17008         * resource.c: Likewise.
17009         * rtl-chkp.c: Likewise.
17010         * rtl-error.c: Likewise.
17011         * rtlanal.c: Likewise.
17012         * rtlhooks.c: Likewise.
17013         * sanopt.c: Likewise.
17014         * sched-deps.c: Likewise.
17015         * sched-ebb.c: Likewise.
17016         * sched-rgn.c: Likewise.
17017         * sched-vis.c: Likewise.
17018         * sdbout.c: Likewise.
17019         * sel-sched-dump.c: Likewise.
17020         * sel-sched-ir.c: Likewise.
17021         * sel-sched.c: Likewise.
17022         * sese.c: Likewise.
17023         * shrink-wrap.c: Likewise.
17024         * simplify-rtx.c: Likewise.
17025         * stack-ptr-mod.c: Likewise.
17026         * statistics.c: Likewise.
17027         * stmt.c: Likewise.
17028         * stor-layout.c: Likewise.
17029         * store-motion.c: Likewise.
17030         * streamer-hooks.c: Likewise.
17031         * stringpool.c: Likewise.
17032         * symtab.c: Likewise.
17033         * target-globals.c: Likewise.
17034         * targhooks.c: Likewise.
17035         * toplev.c: Likewise.
17036         * tracer.c: Likewise.
17037         * trans-mem.c: Likewise.
17038         * tree-affine.c: Likewise.
17039         * tree-browser.c: Likewise.
17040         * tree-call-cdce.c: Likewise.
17041         * tree-cfg.c: Likewise.
17042         * tree-cfgcleanup.c: Likewise.
17043         * tree-chkp-opt.c: Likewise.
17044         * tree-chkp.c: Likewise.
17045         * tree-chrec.c: Likewise.
17046         * tree-complex.c: Likewise.
17047         * tree-data-ref.c: Likewise.
17048         * tree-dfa.c: Likewise.
17049         * tree-diagnostic.c: Likewise.
17050         * tree-dump.c: Likewise.
17051         * tree-eh.c: Likewise.
17052         * tree-emutls.c: Likewise.
17053         * tree-if-conv.c: Likewise.
17054         * tree-inline.c: Likewise.
17055         * tree-into-ssa.c: Likewise.
17056         * tree-iterator.c: Likewise.
17057         * tree-loop-distribution.c: Likewise.
17058         * tree-nested.c: Likewise.
17059         * tree-nrv.c: Likewise.
17060         * tree-object-size.c: Likewise.
17061         * tree-outof-ssa.c: Likewise.
17062         * tree-parloops.c: Likewise.
17063         * tree-phinodes.c: Likewise.
17064         * tree-predcom.c: Likewise.
17065         * tree-pretty-print.c: Likewise.
17066         * tree-profile.c: Likewise.
17067         * tree-scalar-evolution.c: Likewise.
17068         * tree-sra.c: Likewise.
17069         * tree-ssa-address.c: Likewise.
17070         * tree-ssa-alias.c: Likewise.
17071         * tree-ssa-ccp.c: Likewise.
17072         * tree-ssa-coalesce.c: Likewise.
17073         * tree-ssa-copy.c: Likewise.
17074         * tree-ssa-copyrename.c: Likewise.
17075         * tree-ssa-dce.c: Likewise.
17076         * tree-ssa-dom.c: Likewise.
17077         * tree-ssa-dse.c: Likewise.
17078         * tree-ssa-forwprop.c: Likewise.
17079         * tree-ssa-ifcombine.c: Likewise.
17080         * tree-ssa-live.c: Likewise.
17081         * tree-ssa-loop-ch.c: Likewise.
17082         * tree-ssa-loop-im.c: Likewise.
17083         * tree-ssa-loop-ivcanon.c: Likewise.
17084         * tree-ssa-loop-ivopts.c: Likewise.
17085         * tree-ssa-loop-manip.c: Likewise.
17086         * tree-ssa-loop-niter.c: Likewise.
17087         * tree-ssa-loop-prefetch.c: Likewise.
17088         * tree-ssa-loop-unswitch.c: Likewise.
17089         * tree-ssa-loop.c: Likewise.
17090         * tree-ssa-math-opts.c: Likewise.
17091         * tree-ssa-operands.c: Likewise.
17092         * tree-ssa-phiopt.c: Likewise.
17093         * tree-ssa-phiprop.c: Likewise.
17094         * tree-ssa-pre.c: Likewise.
17095         * tree-ssa-propagate.c: Likewise.
17096         * tree-ssa-reassoc.c: Likewise.
17097         * tree-ssa-sccvn.c: Likewise.
17098         * tree-ssa-scopedtables.c: Likewise.
17099         * tree-ssa-sink.c: Likewise.
17100         * tree-ssa-strlen.c: Likewise.
17101         * tree-ssa-structalias.c: Likewise.
17102         * tree-ssa-tail-merge.c: Likewise.
17103         * tree-ssa-ter.c: Likewise.
17104         * tree-ssa-threadedge.c: Likewise.
17105         * tree-ssa-threadupdate.c: Likewise.
17106         * tree-ssa-uncprop.c: Likewise.
17107         * tree-ssa-uninit.c: Likewise.
17108         * tree-ssa.c: Likewise.
17109         * tree-ssanames.c: Likewise.
17110         * tree-stdarg.c: Likewise.
17111         * tree-streamer-in.c: Likewise.
17112         * tree-streamer-out.c: Likewise.
17113         * tree-streamer.c: Likewise.
17114         * tree-switch-conversion.c: Likewise.
17115         * tree-tailcall.c: Likewise.
17116         * tree-vect-data-refs.c: Likewise.
17117         * tree-vect-generic.c: Likewise.
17118         * tree-vect-loop-manip.c: Likewise.
17119         * tree-vect-loop.c: Likewise.
17120         * tree-vect-patterns.c: Likewise.
17121         * tree-vect-slp.c: Likewise.
17122         * tree-vect-stmts.c: Likewise.
17123         * tree-vectorizer.c: Likewise.
17124         * tree-vrp.c: Likewise.
17125         * tree.c: Likewise.
17126         * tsan.c: Likewise.
17127         * ubsan.c: Likewise.
17128         * valtrack.c: Likewise.
17129         * value-prof.c: Likewise.
17130         * var-tracking.c: Likewise.
17131         * varasm.c: Likewise.
17132         * varpool.c: Likewise.
17133         * vmsdbgout.c: Likewise.
17134         * vtable-verify.c: Likewise.
17135         * web.c: Likewise.
17136         * wide-int.cc: Likewise.
17137         * xcoffout.c: Likewise.
17138         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
17139         * common/common-targhooks.c: Likewise.
17140         * config/aarch64/aarch64-builtins.c: Likewise.
17141         * config/aarch64/aarch64.c: Likewise.
17142         * config/alpha/alpha.c: Likewise.
17143         * config/arc/arc.c: Likewise.
17144         * config/arm/aarch-common.c: Likewise.
17145         * config/arm/arm-builtins.c: Likewise.
17146         * config/arm/arm-c.c: Likewise.
17147         * config/arm/arm.c: Likewise.
17148         * config/avr/avr-c.c: Likewise.
17149         * config/avr/avr-log.c: Likewise.
17150         * config/avr/avr.c: Likewise.
17151         * config/bfin/bfin.c: Likewise.
17152         * config/c6x/c6x.c: Likewise.
17153         * config/cr16/cr16.c: Likewise.
17154         * config/cris/cris.c: Likewise.
17155         * config/darwin-c.c: Likewise.
17156         * config/darwin.c: Likewise.
17157         * config/default-c.c: Likewise.
17158         * config/epiphany/epiphany.c: Likewise.
17159         * config/epiphany/mode-switch-use.c: Likewise.
17160         * config/epiphany/resolve-sw-modes.c: Likewise.
17161         * config/fr30/fr30.c: Likewise.
17162         * config/frv/frv.c: Likewise.
17163         * config/ft32/ft32.c: Likewise.
17164         * config/glibc-c.c: Likewise.
17165         * config/h8300/h8300.c: Likewise.
17166         * config/i386/i386-c.c: Likewise.
17167         * config/i386/i386.c: Likewise.
17168         * config/i386/msformat-c.c: Likewise.
17169         * config/i386/winnt-cxx.c: Likewise.
17170         * config/i386/winnt-stubs.c: Likewise.
17171         * config/i386/winnt.c: Likewise.
17172         * config/ia64/ia64-c.c: Likewise.
17173         * config/ia64/ia64.c: Likewise.
17174         * config/iq2000/iq2000.c: Likewise.
17175         * config/lm32/lm32.c: Likewise.
17176         * config/m32c/m32c-pragma.c: Likewise.
17177         * config/m32c/m32c.c: Likewise.
17178         * config/m32r/m32r.c: Likewise.
17179         * config/m68k/m68k.c: Likewise.
17180         * config/mcore/mcore.c: Likewise.
17181         * config/mep/mep-pragma.c: Likewise.
17182         * config/mep/mep.c: Likewise.
17183         * config/microblaze/microblaze-c.c: Likewise.
17184         * config/microblaze/microblaze.c: Likewise.
17185         * config/mips/mips.c: Likewise.
17186         * config/mmix/mmix.c: Likewise.
17187         * config/mn10300/mn10300.c: Likewise.
17188         * config/moxie/moxie.c: Likewise.
17189         * config/msp430/msp430-c.c: Likewise.
17190         * config/msp430/msp430.c: Likewise.
17191         * config/nds32/nds32-cost.c: Likewise.
17192         * config/nds32/nds32-fp-as-gp.c: Likewise.
17193         * config/nds32/nds32-intrinsic.c: Likewise.
17194         * config/nds32/nds32-isr.c: Likewise.
17195         * config/nds32/nds32-md-auxiliary.c: Likewise.
17196         * config/nds32/nds32-memory-manipulation.c: Likewise.
17197         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
17198         * config/nds32/nds32-predicates.c: Likewise.
17199         * config/nds32/nds32.c: Likewise.
17200         * config/nios2/nios2.c: Likewise.
17201         * config/nvptx/nvptx.c: Likewise.
17202         * config/pa/pa.c: Likewise.
17203         * config/pdp11/pdp11.c: Likewise.
17204         * config/rl78/rl78-c.c: Likewise.
17205         * config/rl78/rl78.c: Likewise.
17206         * config/rs6000/rs6000-c.c: Likewise.
17207         * config/rs6000/rs6000.c: Likewise.
17208         * config/rx/rx.c: Likewise.
17209         * config/s390/s390-c.c: Likewise.
17210         * config/s390/s390.c: Likewise.
17211         * config/sh/sh-c.c: Likewise.
17212         * config/sh/sh-mem.cc: Likewise.
17213         * config/sh/sh.c: Likewise.
17214         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
17215         * config/sh/sh_treg_combine.cc: Likewise.
17216         * config/sol2-c.c: Likewise.
17217         * config/sol2-cxx.c: Likewise.
17218         * config/sol2-stubs.c: Likewise.
17219         * config/sol2.c: Likewise.
17220         * config/sparc/sparc-c.c: Likewise.
17221         * config/sparc/sparc.c: Likewise.
17222         * config/spu/spu-c.c: Likewise.
17223         * config/spu/spu.c: Likewise.
17224         * config/stormy16/stormy16.c: Likewise.
17225         * config/tilegx/mul-tables.c: Likewise.
17226         * config/tilegx/tilegx-c.c: Likewise.
17227         * config/tilegx/tilegx.c: Likewise.
17228         * config/tilepro/mul-tables.c: Likewise.
17229         * config/tilepro/tilepro-c.c: Likewise.
17230         * config/tilepro/tilepro.c: Likewise.
17231         * config/v850/v850-c.c: Likewise.
17232         * config/v850/v850.c: Likewise.
17233         * config/vax/vax.c: Likewise.
17234         * config/visium/visium.c: Likewise.
17235         * config/vms/vms-c.c: Likewise.
17236         * config/vms/vms.c: Likewise.
17237         * config/vxworks.c: Likewise.
17238         * config/winnt-c.c: Likewise.
17239         * config/xtensa/xtensa.c: Likewise.
17240
17241 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
17242
17243         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
17244         function.
17245         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
17246
17247 2015-06-17  Richard Biener  <rguenther@suse.de>
17248
17249         PR tree-optimization/66251
17250         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
17251         stmts for SLP strided stores.
17252
17253         Revert
17254         2015-05-22  Richard Biener  <rguenther@suse.de>
17255
17256         PR tree-optimization/66251
17257         * tree-vect-stmts.c (vectorizable_conversion): Properly
17258         set STMT_VINFO_VEC_STMT even for the SLP case.
17259
17260         2015-05-26  Michael Matz  <matz@suse.de>
17261
17262         PR middle-end/66251
17263         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
17264         STMT_VINFO_VEC_STMT, also with SLP.
17265
17266 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
17267
17268         PR target/56766
17269         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
17270         (*avx_addsubv4df3_1s): Ditto.
17271         (*sse3_addsubv2df3_1): Ditto.
17272         (*sse3_addsubv2df3_1s): Ditto.
17273         (*avx_addsubv8sf3_1): Ditto.
17274         (*avx_addsubv8sf3_1s): Ditto.
17275         (*sse3_addsubv4sf3_1): Ditto.
17276         (*sse3_addsubv4sf3_1s): Ditto.
17277
17278 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
17279
17280         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
17281         (SYSROOT_SUFFIX_SPEC): Update.
17282         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
17283         (STARTFILE_PREFIX_SPEC): Update.
17284         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
17285         (MULTILIB_REQUIRED): New.
17286         (MULTILIB_OSDIRNAMES): New.
17287         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
17288         (MULTILIB_REQUIRED): New.
17289         (MULTILIB_OSDIRNAMES): New.
17290
17291 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
17292
17293         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
17294         * config/aarch64/aarch64-options-extensions.def: Update "fP",
17295         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
17296         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
17297         (AARCH64_FL_PAN): New.
17298         (AARCH64_FL_LOR): New.
17299         (AARCH64_FL_RDMA): New.
17300         (AARCH64_FL_FOR_ARCH8_1): New.
17301         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
17302         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
17303
17304 2015-06-16  Martin Liska  <mliska@suse.cz>
17305
17306         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
17307         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
17308         guard.
17309
17310 2015-06-16  Richard Biener  <rguenther@suse.de>
17311
17312         * tree-vect-stmts.c (vectorizable_store): Adjust.
17313         (vectorizable_load): Likewise.
17314         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17315         Simplify.
17316         (vect_create_data_ref_ptr): Likewise.
17317         (bump_vector_ptr): Adjust.
17318
17319 2015-06-16  Richard Biener  <rguenther@suse.de>
17320
17321         * tree-vect-stmts.c (vectorizable_load): Properly start loads
17322         with the first element if this is grouped loads.
17323
17324 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
17325
17326         * config/arm/arm-protos.h (struct tune_params): Rename
17327         log_op_non_sc to log_op_non_short_circuit, and rename enum
17328         values to expand SC to SHORT_CIRCUIT.
17329         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
17330         to LOG_OP_NON_SHORT_CIRCUIT.
17331         (arm_fastmul_tune):Likewise
17332         (arm_strongarm_tune): Likewise.
17333         (arm_xscale_tune): Likewise.
17334         (arm_9e_tune): Likewise.
17335         (arm_marvell_pj4_tune): Likewise.
17336         (arm_v6t2_tune): Likewise.
17337         (arm_cortex_tune): Likewise.
17338         (arm_cortex_a8_tune): Likewise.
17339         (arm_cortex_a7_tune): Likewise.
17340         (arm_cortex_a15_tune): Likewise.
17341         (arm_cortex_a53_tune): Likewise.
17342         (arm_cortex_a57_tune): Likewise.
17343         (arm_xgene1_tune): Likewise.
17344         (arm_cortex_a5_tune): Likewise.
17345         (arm_cortex_a9_tune): Likewise.
17346         (arm_cortex_a12_tune): Likewise.
17347         (arm_v7m_tune): Likewise.
17348         (arm_cortex_m7_tune): Likewise.
17349         (arm_v6m_tune): Likewise.
17350         (arm_fa726te_tune): Likewise.
17351
17352 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
17353
17354         * altivec.md: Delete UNSPEC_VMLADDUHM.
17355         (mulv4si3_p8): New pattern.
17356         (mulv4si3): Use it for POWER8.
17357         (mulv8hi3): Use vmladduhm with zero addend.
17358         (altivec_vmladduhm): Descriptive RTL.
17359
17360 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
17361
17362         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
17363         to use neon_move instead of mov_imm.
17364         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
17365         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
17366
17367         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
17368         aarch64_float_const_zero_rtx_p check before TFmode check.
17369         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
17370         an fp zero.
17371         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
17372         code and attributes to match.  Change condition from register_operand
17373         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
17374         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
17375         to store2.
17376
17377 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
17378
17379         PR debug/66535
17380         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
17381         there is no parent.
17382
17383 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
17384
17385         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
17386         HOST_WIDE_INT parameter.
17387
17388 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
17389
17390         PR ipa/66181
17391         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
17392         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
17393         TYPE_NO_FORCE_BLK.
17394         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
17395
17396 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
17397
17398         * rtl.h (classify_insn): Declare.
17399         * emit-rtl.c (classify_insn): Move to...
17400         * rtl.c: ...here and add generator support.
17401         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
17402         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
17403         * genemit.c (gen_emit_seq): New function.
17404         (gen_expand, gen_split): Use it.
17405
17406 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
17407
17408         * tree.c (make_vector_stat): Fix comment to state that the
17409         function returns a VECTOR_CST.
17410
17411 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
17412
17413         * gensupport.h (add_implicit_parallel): Declare.
17414         * genrecog.c (add_implicit_parallel): Move to...
17415         * gensupport.c (add_implicit_parallel): ...here.
17416         (process_one_cond_exec): Use it.
17417         * genemit.c (gen_insn): Likewise.
17418
17419 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
17420
17421         PR bootstrap/66448
17422         * passes.c (rest_of_decl_compilation): Do not register globals for
17423         early debug if they are declared in built-ins.
17424
17425 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
17426
17427         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
17428
17429 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17430
17431         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
17432         manually swapping.
17433         (noce_try_cmove_arith): Likewise.
17434         (noce_get_alt_condition): Likewise.
17435
17436 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
17437
17438         * common/config/i386/i386-common.c
17439         (OPTION_MASK_ISA_MWAITX_SET): New.
17440         (ix86_handle_option): Handle mwaitx.
17441         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
17442         (x86_64-*-*): Likewise.
17443         * config/i386/mwaitxintrin.h: New header.
17444         * config/i386/cpuid.h (bit_MWAITX):  Define.
17445         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
17446         MWAITX support.
17447         * config/i386/i386.opt (mwaitx): New.
17448         * config/i386/i386-builtin-types.def
17449         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
17450         * config/i386/i386-c.c: Define __MWAITX__ if needed.
17451         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
17452         (PTA_MWAITX): New.
17453         (ix86_option_override_internal): Handle new option.
17454         (processor_alias_table): Added PTA_MWAITX.
17455         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
17456         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
17457         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
17458         IX86_BUILTIN_MONITORX  built-ins.
17459         * config/i386/i386.h (TARGET_MWAITX): New.
17460         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
17461         UNSPEC_MONITORX.
17462         (mwaitx):  New pattern.
17463         (monitorx_<mode>): New pattern.
17464         * config/i386/x86intrin.h: Include mwaitxintrin.h.
17465         * doc/extend.texi: Document monitorx and mwaitx builtins.
17466         * doc/invoke.texi: Document -mmwaitx option.
17467
17468 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
17469
17470         * emit-rtl.c (need_atomic_barrier_p): Mask model with
17471         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
17472
17473 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17474
17475         * dbxout.c (xcoff_debug_hooks): Provide a function for
17476         register_main_translation_unit hook.
17477
17478 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17479
17480         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
17481         variants cases from switch.
17482         (rs6000_post_atomic_barrier): Same.
17483         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
17484         (rs6000_expand_atomic_exchange): Same.
17485         (rs6000_expand_atomic_op): Same.
17486         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
17487         SYNC variants cases from switch.
17488         (atomic_load): Same.
17489         (atomic_store): Same.
17490
17491 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
17492
17493         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
17494         CONST_INT for goto.
17495
17496 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
17497
17498         PR bootstrap/66448
17499         * dwarf2out.c (check_die): Check for common duplicate attributes.
17500         (add_location_or_const_value_attribute): Do not add duplicate
17501         attributes.
17502         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
17503         time around.
17504         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
17505         (gen_type_die_with_usage): Call check_die.
17506         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
17507
17508 2015-06-11  Jason Merrill  <jason@redhat.com>
17509
17510         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
17511         dies.
17512
17513 2015-06-11  Marek Polacek  <polacek@redhat.com>
17514
17515         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
17516
17517 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
17518
17519         PR bootstrap/66252
17520         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
17521         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
17522         (*addx_extend_sp32): Fix pasto.
17523         (*subx_extend): Rename into...
17524         (*subx_extend_sp32): ...this.
17525         (*adddi3_extend_sp32): Add earlyclobber.
17526         (*subdi3_insn_sp32): Likewise.
17527         (*subdi3_extend_sp32): Likewise.
17528         (*and_not_di_sp32): Likewise.
17529         (*or_not_di_sp32): Likewise.
17530         (*xor_not_di_sp32): Likewise.
17531         (*negdi2_sp32): Likewise.
17532         (*one_cmpldi2_sp32): Likewise.
17533
17534 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
17535
17536         * debug.h (struct gcc_debug_hooks): Add a
17537         register_main_translation_unit hook.
17538         * debug.c (do_nothing_debug_hooks): Provide a function for this
17539         new hook.
17540         * dbxout.c (dbx_debug_hooks): Likewise.
17541         * sdbout.c (sdb_debug_hooks): Likewise.
17542         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17543         * dwarf2out.c (main_translation_unit): New global variable.
17544         (dwarf2out_register_main_translation_unit): New function
17545         implementing the new hook.
17546         (dwarf2_debug_hooks): Assign
17547         dwarf2out_register_main_translation_unit to this new hook.
17548         (dwarf2out_init): Associate any main translation unit to
17549         comp_unit_die ().
17550
17551 2015-06-11  Marek Polacek  <polacek@redhat.com>
17552
17553         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
17554
17555 2015-06-11  Marek Polacek  <polacek@redhat.com>
17556
17557         * match.pd: Use single_use throughout.
17558
17559 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17560
17561         * config/arm/arm.c (arm_option_params_internal): When optimising
17562         for speed set max_insns_skipped when arm_restrict_it.
17563
17564 2015-06-11  Christian Bruel  <christian.bruel@st.com>
17565
17566         PR target/52144
17567         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
17568          macros in ...
17569         (arm_cpu_builtins): New function.
17570         (arm_pragma_target_parse): Call arm_cpu_builtins.
17571         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
17572         (arm_register_target_pragmas): Likewise.
17573         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
17574          Call arm_register_target_pragmas.
17575         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
17576         (arm_pragma_target_parse): Likewise.
17577
17578 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17579
17580         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
17581         of the second operand.
17582
17583 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
17584
17585         PR target/66473
17586         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
17587         to prepare mask operand for AVX512 modes.
17588
17589 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17590
17591         PR target/66474
17592         * doc/md.texi (Machine Constraints): Document that on the PowerPC
17593         if you use a constraint that targets a VSX register, you must use
17594         %x<n> in the template.
17595
17596 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
17597
17598         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
17599         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
17600         (define_insn "trap"): New definition.
17601
17602 2015-06-10  Richard Biener  <rguenther@suse.de>
17603
17604         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
17605         out from ...
17606         (vect_supported_load_permutation_p): ... here.  Handle
17607         supportable permutations in reductions.
17608         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
17609         for vectorizing strided group loads.
17610
17611 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
17612
17613         PR target/66470
17614         * config/i386/i386.c (ix86_split_long_move): For collisions
17615         involving direct tls segment refs, move the UNSPEC_TP possibly
17616         wrapped in ZERO_EXTEND out of the address for lea, to each of
17617         the memory loads.
17618
17619 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17620
17621         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
17622         dmb sy. Adjust tabs.
17623
17624 2015-06-10  Tom de Vries  <tom@codesourcery.com>
17625
17626         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
17627
17628 2015-06-10  Martin Liska  <mliska@suse.cz>
17629
17630         PR bootstrap/66471
17631         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
17632         all enum values in mem_alloc_origin.
17633         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
17634         name.
17635         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
17636         * bitmap.c (bitmap_register): Likewise.
17637         (dump_bitmap_statistics): Likewise.
17638         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
17639         (ggc_record_overhead): Likewise.
17640         * hash-map.h: Likewise.
17641         * hash-set.h: Likewise.
17642         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
17643         * hash-table.h: Likewise.
17644         * vec.c (vec_prefix::register_overhead): Likewise.
17645         (vec_prefix::release_overhead): Likewise.
17646         (dump_vec_loc_statistics): Likewise.
17647
17648 2015-06-09  Christian Bruel  <christian.bruel@st.com>
17649
17650         PR target/52144
17651         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
17652         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
17653         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
17654         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
17655         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
17656         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
17657         (arm_valid_target_attribute_p): Likewise.
17658         (arm_set_current_function, arm_can_inline_p): Likewise.
17659         (arm_valid_target_attribute_rec): Likewise.
17660         (arm_previous_fndecl): New variable.
17661         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17662         (TARGET_CAN_INLINE_P): Define.
17663         (arm_asm_trampoline_template): Emit mode.
17664         (arm_file_start): Don't set unified syntax.
17665         (arm_declare_function_name): Set unified syntax and mode.
17666         (arm_option_override): Init target_option_default_node.
17667         and target_option_current_node.
17668         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
17669         (*call_symbol): Likewise.
17670         * doc/extend.texi: Document ARM/Thumb target attribute.
17671         * doc/invoke.texi: Likewise.
17672
17673 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17674
17675         Revert:
17676         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17677         PR rtl-optimization/64164
17678         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17679         * tree-ssa-copyrename.c: Removed.
17680         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17681         -ftree-coalesce-vars.
17682         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17683         * common.opt (ftree-copyrename): Ignore.
17684         (ftree-coalesce-inlined-vars): Likewise.
17685         * doc/invoke.texi: Remove the ignored options above.
17686         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17687         * tree-ssa-coalesce.h: ... here.
17688         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17689         headers required by it.
17690         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17691         across variables when flag_tree_coalesce_vars.  Check register
17692         use and promoted modes to allow coalescing.  Moved to
17693         tree-ssa-coalesce.c.
17694         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17695         with its member functions to tree-ssa-coalesce.c.
17696         (var_map_base_init): Likewise.  Renamed to
17697         compute_samebase_partition_bases.
17698         (partition_view_normal): Drop want_bases parameter.
17699         (partition_view_bitmap): Likewise.
17700         * tree-ssa-live.h: Adjust declarations.
17701         * tree-ssa-coalesce.c: Include explow.h.
17702         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17703         default defs at the entry point.
17704         (dump_part_var_map): New.
17705         (compute_optimized_partition_bases): New, called by...
17706         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17707         of compute_samebase_partition_bases.  Adjust.
17708         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17709         * cfgexpand.c (leader_merge): New.
17710         (get_rtl_for_parm_ssa_default_def): New.
17711         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17712         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17713         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17714         redundant MEM attr setting.
17715         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17716         from...
17717         (expand_one_stack_var): ... this.  New wrapper to check and
17718         skip already expanded SSA partitions.
17719         (record_alignment_for_reg_var): New, factored out of...
17720         (expand_one_var): ... this.
17721         (expand_one_ssa_partition): New.
17722         (adjust_one_expanded_partition_var): New.
17723         (expand_one_register_var): Check and skip already expanded SSA
17724         partitions.
17725         (expand_used_vars): Don't create DECLs for anonymous SSA
17726         names.  Expand all SSA partitions, then adjust all SSA names.
17727         (pass::execute): Replace the loops that set
17728         SA.partition_to_pseudo from partition leaders and cleared
17729         DECL_RTL for multi-location variables, and that which used to
17730         rename vars and set attrs, with one that clears DECL_RTL and
17731         checks that PARMs and RESULTs default_defs match DECL_RTL.
17732         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17733         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17734         * explow.c (promote_ssa_mode): New.
17735         * explow.h (promote_ssa_mode): Declare.
17736         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17737         * function.c: Include cfgexpand.h.
17738         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17739         (use_register_for_parm_decl): Wrapper for the above to
17740         special-case the result_ptr.
17741         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17742         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17743         multiple locations.
17744         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17745         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17746         (assign_parm_setup_block): Prefer SSA-assigned location.
17747         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17748         if stack_parm is NULL.
17749         (assign_parm_setup_stack): Prefer SSA-assigned location.
17750         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17751         rtl before testing for pointer bounds.  Special-case result_ptr.
17752         (expand_function_start): Maybe reset DECL_RTL of result.
17753         Prefer SSA-assigned location for result and static chain.
17754         Factor out DECL_RESULT and SET_DECL_RTL.
17755         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17756         anonymous SSA names.  Use promote_ssa_mode.
17757         (get_temp_reg): Likewise.
17758         (remove_ssa_form): Adjust.
17759         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17760         and get its reg_usage for reg invalidation.
17761         (compute_bb_dataflow): Pass it insn.
17762         (emit_notes_in_bb): Likewise.
17763         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17764         fail assert on conversion between unsigned types.
17765
17766 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17767
17768         PR tree-optimization/65460
17769         * omp-low.c (expand_omp_target): Set parallelized_function on
17770         cgraph_node for child_fn.
17771
17772 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17773
17774         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
17775         parallelized_function before add_new_function.
17776
17777 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
17778
17779         * gcc-plugin.h: Move decls to plugin.h and include it.
17780         * plugin.h: Relocate decls from gcc-plugin.h
17781         * ggc-page.c: Include required header files.
17782         * passes.c: Likewise.
17783         * cgraphunit.c: Likewise.
17784
17785 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17786
17787         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
17788
17789 2015-06-09  Jason Merrill  <jason@redhat.com>
17790
17791         PR bootstrap/66448
17792         * toplev.c (check_global_declaration): Don't warn about a clone.
17793
17794 2015-06-09  Marek Polacek  <polacek@redhat.com>
17795
17796         PR tree-optimization/66299
17797         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
17798         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
17799         patterns.
17800
17801 2015-06-09  Richard Biener  <rguenther@suse.de>
17802
17803         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
17804         (vect_analyze_slp_instance): Instead do not falsely drop
17805         load permutations.
17806
17807 2015-06-09  Richard Biener  <rguenther@suse.de>
17808
17809         PR middle-end/66423
17810         * match.pd: Handle A % (unsigned)(1 << B).
17811
17812 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
17813
17814         * varasm.c (output_object_block_htab): Remove.
17815         (output_object_block_compare): New.
17816         (output_object_blocks): Sort named object_blocks before outputting
17817         them.
17818
17819 2015-06-09  Richard Biener  <rguenther@suse.de>
17820
17821         PR tree-optimization/66419
17822         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
17823         consider GROUP_GAP when detecting a perfect subchain.
17824
17825 2015-06-09  Nick Clifton  <nickc@redhat.com>
17826
17827         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
17828         place read only data in the .frodata section.
17829
17830 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
17831
17832         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
17833         (atomic_store<mode>): Likewise.
17834
17835 2015-06-09  Richard Biener  <rguenther@suse.de>
17836
17837         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
17838
17839 2015-06-09  Richard Biener  <rguenther@suse.de>
17840
17841         PR middle-end/66413
17842         * tree-inline.c (insert_init_debug_bind): Unshare value.
17843
17844 2015-06-09  Richard Biener  <rguenther@suse.de>
17845
17846         PR tree-optimization/66396
17847         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
17848         Rename virtual operands.
17849
17850 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17851
17852         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
17853         always return false.
17854
17855 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17856
17857         PR rtl-optimization/64164
17858         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17859         * tree-ssa-copyrename.c: Removed.
17860         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17861         -ftree-coalesce-vars.
17862         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17863         * common.opt (ftree-copyrename): Ignore.
17864         (ftree-coalesce-inlined-vars): Likewise.
17865         * doc/invoke.texi: Remove the ignored options above.
17866         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17867         * tree-ssa-coalesce.h: ... here.
17868         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17869         headers required by it.
17870         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17871         across variables when flag_tree_coalesce_vars.  Check register
17872         use and promoted modes to allow coalescing.  Moved to
17873         tree-ssa-coalesce.c.
17874         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17875         with its member functions to tree-ssa-coalesce.c.
17876         (var_map_base_init): Likewise.  Renamed to
17877         compute_samebase_partition_bases.
17878         (partition_view_normal): Drop want_bases parameter.
17879         (partition_view_bitmap): Likewise.
17880         * tree-ssa-live.h: Adjust declarations.
17881         * tree-ssa-coalesce.c: Include explow.h.
17882         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17883         default defs at the entry point.
17884         (dump_part_var_map): New.
17885         (compute_optimized_partition_bases): New, called by...
17886         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17887         of compute_samebase_partition_bases.  Adjust.
17888         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17889         * cfgexpand.c (leader_merge): New.
17890         (get_rtl_for_parm_ssa_default_def): New.
17891         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17892         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17893         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17894         redundant MEM attr setting.
17895         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17896         from...
17897         (expand_one_stack_var): ... this.  New wrapper to check and
17898         skip already expanded SSA partitions.
17899         (record_alignment_for_reg_var): New, factored out of...
17900         (expand_one_var): ... this.
17901         (expand_one_ssa_partition): New.
17902         (adjust_one_expanded_partition_var): New.
17903         (expand_one_register_var): Check and skip already expanded SSA
17904         partitions.
17905         (expand_used_vars): Don't create DECLs for anonymous SSA
17906         names.  Expand all SSA partitions, then adjust all SSA names.
17907         (pass::execute): Replace the loops that set
17908         SA.partition_to_pseudo from partition leaders and cleared
17909         DECL_RTL for multi-location variables, and that which used to
17910         rename vars and set attrs, with one that clears DECL_RTL and
17911         checks that PARMs and RESULTs default_defs match DECL_RTL.
17912         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17913         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17914         * explow.c (promote_ssa_mode): New.
17915         * explow.h (promote_ssa_mode): Declare.
17916         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17917         * function.c: Include cfgexpand.h.
17918         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17919         (use_register_for_parm_decl): Wrapper for the above to
17920         special-case the result_ptr.
17921         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17922         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17923         multiple locations.
17924         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17925         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17926         (assign_parm_setup_block): Prefer SSA-assigned location.
17927         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17928         if stack_parm is NULL.
17929         (assign_parm_setup_stack): Prefer SSA-assigned location.
17930         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17931         rtl before testing for pointer bounds.  Special-case result_ptr.
17932         (expand_function_start): Maybe reset DECL_RTL of result.
17933         Prefer SSA-assigned location for result and static chain.
17934         Factor out DECL_RESULT and SET_DECL_RTL.
17935         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17936         anonymous SSA names.  Use promote_ssa_mode.
17937         (get_temp_reg): Likewise.
17938         (remove_ssa_form): Adjust.
17939         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17940         and get its reg_usage for reg invalidation.
17941         (compute_bb_dataflow): Pass it insn.
17942         (emit_notes_in_bb): Likewise.
17943         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17944         fail assert on conversion between unsigned types.
17945
17946 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17947
17948         PR debug/58315
17949         * tree-inline.c (reset_debug_binding): New.
17950         (reset_debug_bindings): Likewise.
17951         (expand_call_inline): Call it.
17952
17953 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17954
17955         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
17956         TYPE_STRING_FLAG.
17957
17958 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17959
17960         * lto-streamer-out.c (lto_output_location): Stream
17961         reserved locations correctly.
17962         * lto-streamer-in.c (lto_output_location): Likewise.
17963
17964 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
17965
17966         * coretypes.h: Include hash-table.h and hash-set.h for host files.
17967         * ggc.h: Don't include statistics.h>
17968         * hash-map.h: Remove all includes.
17969         * hash-set.h: Likewise.
17970         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
17971         the include list. Remove <new>.
17972         * inchash.h: Remove all includes.
17973         * mem-stats.h: Likewise.
17974         * vec.h: No special processing for generators or ggc.
17975         * alias.c : Adjust include files.
17976         * alloc-pool.c : Likewise.
17977         * alloc-pool.h : Likewise.
17978         * asan.c : Likewise.
17979         * attribs.c : Likewise.
17980         * auto-inc-dec.c : Likewise.
17981         * auto-profile.c : Likewise.
17982         * bb-reorder.c : Likewise.
17983         * bitmap.c : Likewise.
17984         * bitmap.h : Likewise.
17985         * bt-load.c : Likewise.
17986         * builtins.c : Likewise.
17987         * caller-save.c : Likewise.
17988         * calls.c : Likewise.
17989         * ccmp.c : Likewise.
17990         * cfg.c : Likewise.
17991         * cfganal.c : Likewise.
17992         * cfgbuild.c : Likewise.
17993         * cfgcleanup.c : Likewise.
17994         * cfgexpand.c : Likewise.
17995         * cfghooks.c : Likewise.
17996         * cfgloop.c : Likewise.
17997         * cfgloop.h : Likewise.
17998         * cfgloopanal.c : Likewise.
17999         * cfgloopmanip.c : Likewise.
18000         * cfgrtl.c : Likewise.
18001         * cgraph.c : Likewise.
18002         * cgraphbuild.c : Likewise.
18003         * cgraphclones.c : Likewise.
18004         * cgraphunit.c : Likewise.
18005         * cilk-common.c : Likewise.
18006         * combine-stack-adj.c : Likewise.
18007         * combine.c : Likewise.
18008         * compare-elim.c : Likewise.
18009         * context.c : Likewise.
18010         * convert.c : Likewise.
18011         * coverage.c : Likewise.
18012         * cppbuiltin.c : Likewise.
18013         * cprop.c : Likewise.
18014         * cse.c : Likewise.
18015         * cselib.c : Likewise.
18016         * data-streamer-in.c : Likewise.
18017         * data-streamer-out.c : Likewise.
18018         * data-streamer.c : Likewise.
18019         * data-streamer.h : Likewise.
18020         * dbxout.c : Likewise.
18021         * dce.c : Likewise.
18022         * ddg.c : Likewise.
18023         * debug.c : Likewise.
18024         * df-core.c : Likewise.
18025         * df-problems.c : Likewise.
18026         * df-scan.c : Likewise.
18027         * df.h : Likewise.
18028         * dfp.c : Likewise.
18029         * dojump.c : Likewise.
18030         * dominance.c : Likewise.
18031         * domwalk.c : Likewise.
18032         * double-int.c : Likewise.
18033         * dse.c : Likewise.
18034         * dumpfile.c : Likewise.
18035         * dwarf2asm.c : Likewise.
18036         * dwarf2cfi.c : Likewise.
18037         * dwarf2out.c : Likewise.
18038         * emit-rtl.c : Likewise.
18039         * et-forest.c : Likewise.
18040         * except.c : Likewise.
18041         * except.h : Likewise.
18042         * explow.c : Likewise.
18043         * expmed.c : Likewise.
18044         * expr.c : Likewise.
18045         * final.c : Likewise.
18046         * fixed-value.c : Likewise.
18047         * fold-const.c : Likewise.
18048         * function.c : Likewise.
18049         * fwprop.c : Likewise.
18050         * gcc-plugin.h : Likewise.
18051         * gcc.c : Likewise.
18052         * gcse-common.c : Likewise.
18053         * gcse.c : Likewise.
18054         * genattrtab.c : Likewise.
18055         * genautomata.c : Likewise.
18056         * genconditions.c : Likewise.
18057         * genemit.c : Likewise.
18058         * generic-match-head.c : Likewise.
18059         * genextract.c : Likewise.
18060         * gengtype-state.c : Likewise.
18061         * gengtype.c : Likewise.
18062         * genhooks.c : Likewise.
18063         * genmatch.c : Likewise.
18064         * genmodes.c : Likewise.
18065         * genrecog.c : Likewise.
18066         * gensupport.c : Likewise.
18067         * ggc-common.c : Likewise.
18068         * ggc-internal.h : Likewise.
18069         * ggc-none.c : Likewise.
18070         * ggc-page.c : Likewise.
18071         * gimple-builder.c : Likewise.
18072         * gimple-expr.c : Likewise.
18073         * gimple-fold.c : Likewise.
18074         * gimple-iterator.c : Likewise.
18075         * gimple-low.c : Likewise.
18076         * gimple-match-head.c : Likewise.
18077         * gimple-pretty-print.c : Likewise.
18078         * gimple-ssa-isolate-paths.c : Likewise.
18079         * gimple-ssa-strength-reduction.c : Likewise.
18080         * gimple-ssa.h : Likewise.
18081         * gimple-streamer-in.c : Likewise.
18082         * gimple-streamer-out.c : Likewise.
18083         * gimple-streamer.h : Likewise.
18084         * gimple-walk.c : Likewise.
18085         * gimple.c : Likewise.
18086         * gimplify-me.c : Likewise.
18087         * gimplify.c : Likewise.
18088         * godump.c : Likewise.
18089         * graph.c : Likewise.
18090         * graphds.c : Likewise.
18091         * graphite-blocking.c : Likewise.
18092         * graphite-dependences.c : Likewise.
18093         * graphite-interchange.c : Likewise.
18094         * graphite-isl-ast-to-gimple.c : Likewise.
18095         * graphite-optimize-isl.c : Likewise.
18096         * graphite-poly.c : Likewise.
18097         * graphite-scop-detection.c : Likewise.
18098         * graphite-sese-to-poly.c : Likewise.
18099         * graphite.c : Likewise.
18100         * haifa-sched.c : Likewise.
18101         * hard-reg-set.h : Likewise.
18102         * hw-doloop.c : Likewise.
18103         * ifcvt.c : Likewise.
18104         * inchash.c : Likewise.
18105         * incpath.c : Likewise.
18106         * init-regs.c : Likewise.
18107         * input.c : Likewise.
18108         * internal-fn.c : Likewise.
18109         * ipa-chkp.c : Likewise.
18110         * ipa-comdats.c : Likewise.
18111         * ipa-cp.c : Likewise.
18112         * ipa-devirt.c : Likewise.
18113         * ipa-icf-gimple.c : Likewise.
18114         * ipa-icf.c : Likewise.
18115         * ipa-inline-analysis.c : Likewise.
18116         * ipa-inline-transform.c : Likewise.
18117         * ipa-inline.c : Likewise.
18118         * ipa-polymorphic-call.c : Likewise.
18119         * ipa-profile.c : Likewise.
18120         * ipa-prop.c : Likewise.
18121         * ipa-pure-const.c : Likewise.
18122         * ipa-ref.c : Likewise.
18123         * ipa-reference.c : Likewise.
18124         * ipa-split.c : Likewise.
18125         * ipa-utils.c : Likewise.
18126         * ipa-visibility.c : Likewise.
18127         * ipa.c : Likewise.
18128         * ira-build.c : Likewise.
18129         * ira-color.c : Likewise.
18130         * ira-conflicts.c : Likewise.
18131         * ira-costs.c : Likewise.
18132         * ira-emit.c : Likewise.
18133         * ira-lives.c : Likewise.
18134         * ira.c : Likewise.
18135         * jump.c : Likewise.
18136         * langhooks.c : Likewise.
18137         * lcm.c : Likewise.
18138         * libfuncs.h : Likewise.
18139         * lists.c : Likewise.
18140         * loop-doloop.c : Likewise.
18141         * loop-init.c : Likewise.
18142         * loop-invariant.c : Likewise.
18143         * loop-iv.c : Likewise.
18144         * loop-unroll.c : Likewise.
18145         * lower-subreg.c : Likewise.
18146         * lra-assigns.c : Likewise.
18147         * lra-coalesce.c : Likewise.
18148         * lra-constraints.c : Likewise.
18149         * lra-eliminations.c : Likewise.
18150         * lra-lives.c : Likewise.
18151         * lra-remat.c : Likewise.
18152         * lra-spills.c : Likewise.
18153         * lra.c : Likewise.
18154         * lto-cgraph.c : Likewise.
18155         * lto-compress.c : Likewise.
18156         * lto-opts.c : Likewise.
18157         * lto-section-in.c : Likewise.
18158         * lto-section-out.c : Likewise.
18159         * lto-streamer-in.c : Likewise.
18160         * lto-streamer-out.c : Likewise.
18161         * lto-streamer.c : Likewise.
18162         * lto-streamer.h : Likewise.
18163         * mcf.c : Likewise.
18164         * mode-switching.c : Likewise.
18165         * modulo-sched.c : Likewise.
18166         * omega.c : Likewise.
18167         * omp-low.c : Likewise.
18168         * optabs.c : Likewise.
18169         * opts-global.c : Likewise.
18170         * opts.h : Likewise.
18171         * passes.c : Likewise.
18172         * plugin.c : Likewise.
18173         * postreload-gcse.c : Likewise.
18174         * postreload.c : Likewise.
18175         * predict.c : Likewise.
18176         * print-rtl.c : Likewise.
18177         * print-tree.c : Likewise.
18178         * profile.c : Likewise.
18179         * read-md.c : Likewise.
18180         * read-md.h : Likewise.
18181         * read-rtl.c : Likewise.
18182         * real.c : Likewise.
18183         * realmpfr.c : Likewise.
18184         * recog.c : Likewise.
18185         * ree.c : Likewise.
18186         * reg-stack.c : Likewise.
18187         * regcprop.c : Likewise.
18188         * reginfo.c : Likewise.
18189         * regrename.c : Likewise.
18190         * regstat.c : Likewise.
18191         * reload.c : Likewise.
18192         * reload1.c : Likewise.
18193         * reorg.c : Likewise.
18194         * resource.c : Likewise.
18195         * rtl-chkp.c : Likewise.
18196         * rtl.c : Likewise.
18197         * rtl.h : Likewise.
18198         * rtlanal.c : Likewise.
18199         * rtlhash.c : Likewise.
18200         * rtlhash.h : Likewise.
18201         * rtlhooks.c : Likewise.
18202         * sanopt.c : Likewise.
18203         * sched-deps.c : Likewise.
18204         * sched-ebb.c : Likewise.
18205         * sched-rgn.c : Likewise.
18206         * sched-vis.c : Likewise.
18207         * sdbout.c : Likewise.
18208         * sel-sched-dump.c : Likewise.
18209         * sel-sched-ir.c : Likewise.
18210         * sel-sched-ir.h : Likewise.
18211         * sel-sched.c : Likewise.
18212         * sese.c : Likewise.
18213         * shrink-wrap.c : Likewise.
18214         * shrink-wrap.h : Likewise.
18215         * simplify-rtx.c : Likewise.
18216         * stack-ptr-mod.c : Likewise.
18217         * statistics.c : Likewise.
18218         * stmt.c : Likewise.
18219         * stor-layout.c : Likewise.
18220         * store-motion.c : Likewise.
18221         * stringpool.c : Likewise.
18222         * symtab.c : Likewise.
18223         * target-globals.c : Likewise.
18224         * targhooks.c : Likewise.
18225         * tlink.c : Likewise.
18226         * toplev.c : Likewise.
18227         * tracer.c : Likewise.
18228         * trans-mem.c : Likewise.
18229         * tree-affine.c : Likewise.
18230         * tree-affine.h : Likewise.
18231         * tree-browser.c : Likewise.
18232         * tree-call-cdce.c : Likewise.
18233         * tree-cfg.c : Likewise.
18234         * tree-cfgcleanup.c : Likewise.
18235         * tree-chkp-opt.c : Likewise.
18236         * tree-chkp.c : Likewise.
18237         * tree-chrec.c : Likewise.
18238         * tree-complex.c : Likewise.
18239         * tree-data-ref.c : Likewise.
18240         * tree-dfa.c : Likewise.
18241         * tree-diagnostic.c : Likewise.
18242         * tree-dump.c : Likewise.
18243         * tree-eh.c : Likewise.
18244         * tree-eh.h : Likewise.
18245         * tree-emutls.c : Likewise.
18246         * tree-hasher.h : Likewise.
18247         * tree-if-conv.c : Likewise.
18248         * tree-inline.c : Likewise.
18249         * tree-inline.h : Likewise.
18250         * tree-into-ssa.c : Likewise.
18251         * tree-iterator.c : Likewise.
18252         * tree-loop-distribution.c : Likewise.
18253         * tree-nested.c : Likewise.
18254         * tree-nrv.c : Likewise.
18255         * tree-object-size.c : Likewise.
18256         * tree-outof-ssa.c : Likewise.
18257         * tree-parloops.c : Likewise.
18258         * tree-phinodes.c : Likewise.
18259         * tree-predcom.c : Likewise.
18260         * tree-pretty-print.c : Likewise.
18261         * tree-profile.c : Likewise.
18262         * tree-scalar-evolution.c : Likewise.
18263         * tree-sra.c : Likewise.
18264         * tree-ssa-address.c : Likewise.
18265         * tree-ssa-alias.c : Likewise.
18266         * tree-ssa-ccp.c : Likewise.
18267         * tree-ssa-coalesce.c : Likewise.
18268         * tree-ssa-copy.c : Likewise.
18269         * tree-ssa-copyrename.c : Likewise.
18270         * tree-ssa-dce.c : Likewise.
18271         * tree-ssa-dom.c : Likewise.
18272         * tree-ssa-dse.c : Likewise.
18273         * tree-ssa-forwprop.c : Likewise.
18274         * tree-ssa-ifcombine.c : Likewise.
18275         * tree-ssa-live.c : Likewise.
18276         * tree-ssa-loop-ch.c : Likewise.
18277         * tree-ssa-loop-im.c : Likewise.
18278         * tree-ssa-loop-ivcanon.c : Likewise.
18279         * tree-ssa-loop-ivopts.c : Likewise.
18280         * tree-ssa-loop-manip.c : Likewise.
18281         * tree-ssa-loop-niter.c : Likewise.
18282         * tree-ssa-loop-prefetch.c : Likewise.
18283         * tree-ssa-loop-unswitch.c : Likewise.
18284         * tree-ssa-loop.c : Likewise.
18285         * tree-ssa-math-opts.c : Likewise.
18286         * tree-ssa-operands.c : Likewise.
18287         * tree-ssa-phiopt.c : Likewise.
18288         * tree-ssa-phiprop.c : Likewise.
18289         * tree-ssa-pre.c : Likewise.
18290         * tree-ssa-propagate.c : Likewise.
18291         * tree-ssa-reassoc.c : Likewise.
18292         * tree-ssa-sccvn.c : Likewise.
18293         * tree-ssa-scopedtables.c : Likewise.
18294         * tree-ssa-sink.c : Likewise.
18295         * tree-ssa-strlen.c : Likewise.
18296         * tree-ssa-structalias.c : Likewise.
18297         * tree-ssa-tail-merge.c : Likewise.
18298         * tree-ssa-ter.c : Likewise.
18299         * tree-ssa-threadedge.c : Likewise.
18300         * tree-ssa-threadupdate.c : Likewise.
18301         * tree-ssa-uncprop.c : Likewise.
18302         * tree-ssa-uninit.c : Likewise.
18303         * tree-ssa.c : Likewise.
18304         * tree-ssanames.c : Likewise.
18305         * tree-stdarg.c : Likewise.
18306         * tree-streamer-in.c : Likewise.
18307         * tree-streamer-out.c : Likewise.
18308         * tree-streamer.c : Likewise.
18309         * tree-streamer.h : Likewise.
18310         * tree-switch-conversion.c : Likewise.
18311         * tree-tailcall.c : Likewise.
18312         * tree-vect-data-refs.c : Likewise.
18313         * tree-vect-generic.c : Likewise.
18314         * tree-vect-loop-manip.c : Likewise.
18315         * tree-vect-loop.c : Likewise.
18316         * tree-vect-patterns.c : Likewise.
18317         * tree-vect-slp.c : Likewise.
18318         * tree-vect-stmts.c : Likewise.
18319         * tree-vectorizer.c : Likewise.
18320         * tree-vectorizer.h : Likewise.
18321         * tree-vrp.c : Likewise.
18322         * tree.c : Likewise.
18323         * tsan.c : Likewise.
18324         * ubsan.c : Likewise.
18325         * valtrack.c : Likewise.
18326         * valtrack.h : Likewise.
18327         * value-prof.c : Likewise.
18328         * var-tracking.c : Likewise.
18329         * varasm.c : Likewise.
18330         * varpool.c : Likewise.
18331         * vec.c: Likewise.
18332         * vmsdbgout.c : Likewise.
18333         * vtable-verify.c : Likewise.
18334         * vtable-verify.h : Likewise.
18335         * web.c : Likewise.
18336         * wide-int.cc : Likewise.
18337         * xcoffout.c : Likewise.
18338         * config/aarch64/aarch64-builtins.c : Likewise.
18339         * config/aarch64/aarch64.c : Likewise.
18340         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
18341         * config/alpha/alpha.c : Likewise.
18342         * config/arc/arc.c : Likewise.
18343         * config/arm/aarch-common.c : Likewise.
18344         * config/arm/arm-builtins.c : Likewise.
18345         * config/arm/arm-c.c : Likewise.
18346         * config/arm/arm.c : Likewise.
18347         * config/avr/avr-c.c : Likewise.
18348         * config/avr/avr-log.c : Likewise.
18349         * config/avr/avr.c : Likewise.
18350         * config/bfin/bfin.c : Likewise.
18351         * config/c6x/c6x.c : Likewise.
18352         * config/cr16/cr16.c : Likewise.
18353         * config/cris/cris.c : Likewise.
18354         * config/darwin-c.c : Likewise.
18355         * config/darwin.c : Likewise.
18356         * config/default-c.c : Likewise.
18357         * config/epiphany/epiphany.c : Likewise.
18358         * config/epiphany/mode-switch-use.c : Likewise.
18359         * config/epiphany/resolve-sw-modes.c : Likewise.
18360         * config/fr30/fr30.c : Likewise.
18361         * config/frv/frv.c : Likewise.
18362         * config/ft32/ft32.c : Likewise.
18363         * config/glibc-c.c : Likewise.
18364         * config/h8300/h8300.c : Likewise.
18365         * config/i386/i386-c.c : Likewise.
18366         * config/i386/i386.c : Likewise.
18367         * config/i386/msformat-c.c : Likewise.
18368         * config/i386/winnt-cxx.c : Likewise.
18369         * config/i386/winnt-stubs.c : Likewise.
18370         * config/i386/winnt.c : Likewise.
18371         * config/ia64/ia64-c.c : Likewise.
18372         * config/ia64/ia64.c : Likewise.
18373         * config/iq2000/iq2000.c : Likewise.
18374         * config/lm32/lm32.c : Likewise.
18375         * config/m32c/m32c-pragma.c : Likewise.
18376         * config/m32c/m32c.c : Likewise.
18377         * config/m32r/m32r.c : Likewise.
18378         * config/m68k/m68k.c : Likewise.
18379         * config/mcore/mcore.c : Likewise.
18380         * config/mep/mep-pragma.c : Likewise.
18381         * config/mep/mep.c : Likewise.
18382         * config/microblaze/microblaze-c.c : Likewise.
18383         * config/microblaze/microblaze.c : Likewise.
18384         * config/mips/mips.c : Likewise.
18385         * config/mmix/mmix.c : Likewise.
18386         * config/mn10300/mn10300.c : Likewise.
18387         * config/moxie/moxie.c : Likewise.
18388         * config/msp430/msp430-c.c : Likewise.
18389         * config/msp430/msp430.c : Likewise.
18390         * config/nds32/nds32-cost.c : Likewise.
18391         * config/nds32/nds32-fp-as-gp.c : Likewise.
18392         * config/nds32/nds32-intrinsic.c : Likewise.
18393         * config/nds32/nds32-isr.c : Likewise.
18394         * config/nds32/nds32-md-auxiliary.c : Likewise.
18395         * config/nds32/nds32-memory-manipulation.c : Likewise.
18396         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
18397         * config/nds32/nds32-predicates.c : Likewise.
18398         * config/nds32/nds32.c : Likewise.
18399         * config/nios2/nios2.c : Likewise.
18400         * config/nvptx/nvptx.c : Likewise.
18401         * config/pa/pa.c : Likewise.
18402         * config/pdp11/pdp11.c : Likewise.
18403         * config/rl78/rl78-c.c : Likewise.
18404         * config/rl78/rl78.c : Likewise.
18405         * config/rs6000/rs6000-c.c : Likewise.
18406         * config/rs6000/rs6000.c : Likewise.
18407         * config/rx/rx.c : Likewise.
18408         * config/s390/s390-c.c : Likewise.
18409         * config/s390/s390.c : Likewise.
18410         * config/sh/sh-c.c : Likewise.
18411         * config/sh/sh-mem.cc : Likewise.
18412         * config/sh/sh.c : Likewise.
18413         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
18414         * config/sh/sh_treg_combine.cc : Likewise.
18415         * config/sol2-c.c : Likewise.
18416         * config/sol2-cxx.c : Likewise.
18417         * config/sol2-stubs.c : Likewise.
18418         * config/sol2.c : Likewise.
18419         * config/sparc/sparc-c.c : Likewise.
18420         * config/sparc/sparc.c : Likewise.
18421         * config/spu/spu-c.c : Likewise.
18422         * config/spu/spu.c : Likewise.
18423         * config/stormy16/stormy16.c : Likewise.
18424         * config/tilegx/mul-tables.c : Likewise.
18425         * config/tilegx/tilegx-c.c : Likewise.
18426         * config/tilegx/tilegx.c : Likewise.
18427         * config/tilepro/mul-tables.c : Likewise.
18428         * config/tilepro/tilepro-c.c : Likewise.
18429         * config/tilepro/tilepro.c : Likewise.
18430         * config/v850/v850-c.c : Likewise.
18431         * config/v850/v850.c : Likewise.
18432         * config/vax/vax.c : Likewise.
18433         * config/visium/visium.c : Likewise.
18434         * config/vms/vms-c.c : Likewise.
18435         * config/vms/vms.c : Likewise.
18436         * config/vxworks.c : Likewise.
18437         * config/winnt-c.c : Likewise.
18438         * config/xtensa/xtensa.c : Likewise.
18439
18440 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
18441
18442         PR lto/65378
18443         * ipa-utils.h (warn_types_mismatch): Update prototype.
18444         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
18445         parameters.
18446         (type_mismatch_p): New function.
18447         (warn_types_mismatch): Reorg to work better on non-C++ types.
18448         (odr_types_equivalent_p): Add loc1/loc2 parameters.
18449         (add_type_duplicate): Update.
18450
18451 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18452
18453         PR rtl-optimization/66444
18454         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
18455         call_used_regs.
18456
18457 2015-06-08  Richard Biener  <rguenther@suse.de>
18458
18459         PR tree-optimization/66422
18460         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
18461         block after inserted gcc_unreachable.
18462
18463 2015-06-08  Nick Clifton  <nickc@redhat.com>
18464
18465         * config/rx/rx.c (rx_function_value): Do not promote vector types.
18466         (rx_promote_function_mode): Likewise.
18467         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
18468
18469 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
18470
18471         * genattrtab.c (insn_alternatives): Change type from int *
18472         to uint64_t *.
18473         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
18474         (get_attr_value): Change type of num_alt to uint64_t.
18475         (compute_alternative_mask): Change return type from
18476         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
18477         (make_alternative_compare, mk_attr_alt): Change argument type
18478         from int to uint64_t.
18479         (simplify_test_exp): Change type of i from int to uint64_t.
18480         Shift ((uint64_t) 1) instead of 1 up.
18481         (main): Adjust oballocvec first argument from int to uint64_t.
18482         Shift ((uint64_t) 1) instead of 1 up.
18483
18484 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
18485
18486         PR other/65366
18487         * gdbhooks.py: Import sys.
18488         (intptr): New function.  Replace int(...) by intptr(...).
18489
18490 2015-06-08  Richard Biener  <rguenther@suse.de>
18491
18492         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
18493         adjustment for gaps at the end of a SLP load group properly.
18494         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
18495         all permutations we can generate.
18496         (vect_transform_slp_perm_load): Use the correct group-size.
18497
18498 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
18499
18500         * genmatch.c (expr::gen_transform): For conditions, guess the type
18501         from the second operand.
18502
18503 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18504
18505         PR tree-optimization/66442
18506         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
18507         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
18508         if the loop latch is not a singleton.  Use
18509         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
18510
18511 2015-06-08  Marek Polacek  <polacek@redhat.com>
18512
18513         PR sanitizer/66452
18514         * toplev.c (check_global_declaration): Don't warn about artificial
18515         decls.
18516
18517 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18518
18519         PR tree-optimization/66436
18520         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
18521         dump file.
18522         * gimplify.c: Add tree-dump.h include.
18523         (gimplify_function_tree): Dump function to gimple dump file.
18524         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
18525         dump file.
18526
18527 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18528
18529         PR tree-optimization/66435
18530         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
18531         function.
18532
18533 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
18534
18535         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
18536         of ptr_type_node to not be ptr_to_node.
18537         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
18538         TREE_TYPE of pointers.
18539         * gimple-expr.c (useless_type_conversion): Reorder the check for
18540         function pointers and TYPE_CANONICAL.
18541
18542 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
18543
18544         PR bootstrap/66319
18545         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
18546         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
18547         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
18548         later.
18549         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
18550         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
18551         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
18552         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
18553         and non iso if unix2003.
18554
18555 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
18556
18557         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
18558
18559 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
18560
18561         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
18562         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
18563         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
18564         except.c, final.c, function.c, gcse-common.c, genemit.c,
18565         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
18566         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
18567         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
18568         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
18569         more derived ones.
18570
18571 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
18572
18573         * combine.c (combine_split_insns): Remove cast.
18574         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
18575         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
18576         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
18577         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
18578         * genemit.c (gen_split): Change return type of generated functions to
18579         rtx_insn.
18580         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
18581         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
18582         gen_peephole2_* functions.
18583         (print_subroutine, main): Likewise.
18584         * recog.c (peephole2_optimize): Remove cast.
18585         (peep2_next_insn): Promote return type to rtx_insn.
18586         * recog.h (peep2_next_insn): Fix prototype.
18587         * rtl.h (try_split, split_insns): Likewise.
18588
18589 2015-06-06  DJ Delorie  <dj@redhat.com>
18590
18591         * config/msp430/msp430.c (msp430_asm_integer): Support addition
18592         and subtraction too.
18593
18594 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18595
18596         PR target/66410
18597         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
18598         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
18599         instead of Snd.  Disparage Sid/z alternative with '^'.
18600
18601 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
18602
18603         * dwarf2out.c: Remove deferred_locations*.
18604         (dwarf2_debug_hooks): Add early_finish hook.
18605         Remove global_decl hook.
18606         Add early_global_decl and late_global_decl hook.
18607         New global early_dwarf.
18608         New structure set_early_dwarf.
18609         (output_die): Indicate whether a DIE was generated early
18610         when generating assembly with -dA.
18611         (struct limbo_die_struct): Document created_for field.
18612         Remove file_table_last_lookup.
18613         (remove_AT): Return TRUE if successful.
18614         (remove_child_TAG): Clear die_parent.
18615         (reparent_child): New function abstracted from...
18616         (splice_child_die): ...here.
18617         (new_die): ICE if a DIE ends up in limbo too late.
18618         (check_die): New.
18619         (defer_location): Remove.
18620         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
18621         (fill_variable_array_bounds): New.
18622         (decl_start_label): Call fill_variable_array_bounds.
18623         (gen_formal_parameter_die): Rewrite to reuse previously generated
18624         DIEs.
18625         (gen_subprogram_die): Same.
18626         (gen_variable_die): Same.
18627         (gen_const_die): Same.
18628         (gen_label_die): Same.
18629         (gen_lexical_block_die): Same.
18630         (decl_will_get_specification_p): New.
18631         (local_function_static): New.
18632         (gen_struct_or_union_type_die): Fill in variable-length fields.
18633         (gen_typedef_die): Fill in variable-length typedefs.
18634         (gen_tagged_type_die): Gracefully return on error_mark_node.
18635         Handle re-entrancy.
18636         (gen_type_die_with_usage): Handle variable-length types.
18637         Remove duplicate code for ARRAY_TYPE case.
18638         (process_scope_var): Only process imported modules during early
18639         dwarf.
18640         (dwarf2out_early_global_decl): New.
18641         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
18642         (dwarf2out_type_decl): Set early_dwarf while calling
18643         dwarf2out_decl.
18644         (dwarf2out_decl): Verify that we did not recreate a previously
18645         generated DIE.
18646         Do not return on DECL_EXTERNALs in VAR_DECLs.
18647         Abstract some code to local_function_static.
18648         (lookup_filename): Remove use of file_table_last_lookup.
18649         Gracefully exit on missing file_name.
18650         (dwarf2out_finish): Verify limbo list.
18651         Remove deferred_locations_list use.
18652         Move deferred_asm_name and limbo flushing to...
18653         (dwarf2out_early_finish): ...here.  New.
18654         (dwarf2out_c_finalize): Remove set of deferred_location_list,
18655         deferred_asm_name, and file_table_last_lookup.
18656         * cgraph.h (referred_to_p): Add default argument.
18657         * cgraphunit.c (referred_to_p): Add and handle include_self
18658         argument.
18659         (analyze_functions): Add first_time argument.
18660         Call check_global_declaration for all symbols.
18661         Call late_global_decl for nodes for moribund nodes.
18662         (finalize_compilation_unit): Add new argument to
18663         analyze_functions.
18664         Call early_global_decl for functions.
18665         Call early_finish debug hook.
18666         * dbxout.c (dbxout_early_global_decl): New.
18667         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
18668         (dbx_debug_hooks): Add new hooks.
18669         (xcoff_debug_hooks): Same.
18670         * debug.c (do_nothing_debug_hooks): Add early_finish field.
18671         Add early and late debug hooks.
18672         Remove global_decl hook.
18673         * debug.h (struct gcc_debug_hooks): Add early_finish,
18674         early_global_decl, and late_global_decl fields.
18675         Remove global_decl field.
18676         Document gcc_debug_hooks.
18677         * gengtype.c (output_typename): Remove.
18678         * godump.c (go_early_global_decl): New.
18679         (go_late_global_decl): New.
18680         (go_global_decl): Remove.
18681         (dump_go_spec_init): Remove global_decl.  Add
18682         {early,late}_global_decl.
18683         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
18684         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
18685         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
18686         (write_global_declarations): Remove.
18687         (global_decl_processing): New.
18688         * langhooks.h (struct lang_hooks_for_decls): Remove
18689         final_write_globals field.
18690         Add post_compilation_parsing_cleanups field.
18691         * passes.c (rest_of_decl_compilation): Call early_global_decl.
18692         * sdbout.c: Add early and late_global_decl hooks.  Remove
18693         sdbout_global_decl hook.
18694         Add early_finish field for sdb_debug_hooks.
18695         (sdbout_global_decl): Remove.
18696         (sdbout_early_global_decl): New.
18697         (sdbout_late_global_decl): New.
18698         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
18699         * toplev.c (check_global_declaration): Rename from
18700         check_global_declaration_1.
18701         Adapt to use symtab infrastructure.
18702         (check_global_declarations): Remove.
18703         (emit_debug_global_declarations): Remove.
18704         (compile_file): Remove call to final_write_globals langhook.
18705         Run the actual compilation process.
18706         Perform any post compilation parser cleanups.
18707         Generate late debug info.
18708         * toplev.h (check_global_declaration): New.
18709         (check_global_declaration_1): Remove.
18710         (check_global_declarations): Remove.
18711         (write_global_declarations): Remove.
18712         (emit_debug_global_declarations): Remove.
18713         (global_decl_processing): New.
18714         * tree-core.h (struct tree_block): Add DIE field.
18715         * tree.h (BLOCK_DIE): New.
18716         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
18717         throughout.
18718         (vmsdbgout_early_global_decl): New.
18719         (vmsdbgout_late_global_decl): New.
18720         Add early_finish debug hook field to vmsdbg_debug_hooks.
18721         Remove vmsdbgout_decl to vmsdbgout_function_decl.
18722         Add early and late_global_decl debug hooks.
18723
18724 2015-06-05  Julian Brown  <julian@codesourcery.com>
18725             Sandra Loosemore  <sandra@codesourcery.com>
18726
18727         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
18728         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
18729         to print-sysroot-suffix.sh script.
18730
18731 2015-06-05  Tom de Vries  <tom@codesourcery.com>
18732
18733         merge from gomp4 branch:
18734         2015-05-28  Tom de Vries  <tom@codesourcery.com>
18735
18736         PR tree-optimization/65443
18737         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
18738         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
18739         (try_transform_to_exit_first_loop_alt): New function.
18740         (transform_to_exit_first_loop): Use
18741         try_transform_to_exit_first_loop_alt.
18742
18743 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
18744
18745         * builtins.c (expand_builtin_atomic_compare_exchange): Call
18746         emit_cmp_and_jump_insns with the mode of target.
18747
18748 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18749
18750         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
18751
18752 2015-06-04  DJ Delorie  <dj@redhat.com>
18753
18754         * config/msp430/msp430.md (movsi_s): New.  Special case for
18755         storing a 20-bit symbol into a 32-bit register.
18756         * config/msp430/msp430.c (msp430_subreg): Add support for it.
18757         * config/msp430/predicates.md (msp430_symbol_operand): New.
18758
18759 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
18760
18761         * c-family/c-common.c (noplt): New attribute.
18762         (handle_noplt_attribute): New handler.
18763         * calls.c (prepare_call_address): Check for noplt
18764         attribute.
18765         * config/i386/i386.c (ix86_expand_call): Check
18766         for noplt attribute.
18767         (ix86_nopic_noplt_attribute_p): New function.
18768         (ix86_output_call_insn): Output indirect call for non-pic
18769         no plt calls.
18770         * doc/extend.texi (noplt): Document new attribute.
18771         * doc/invoke.texi: Document new attribute.
18772
18773 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
18774
18775         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
18776         real.h, and fixed-value.h when included in host source files.
18777         * double-int.h: Remove redundant #includes listed above.
18778         * fixed-value.h: Likewise.
18779         * real.h: Likewise.
18780         * wide-int.h: Likewise.
18781         * inchash.h: Likewise.
18782         * rtl.h: Add some include files When included from a generator file.
18783         * target.h: Remove wide-int.h and insn-modes.h from the include list.
18784         * internal-fn.h: Don't include coretypes.h.
18785         * alias.c: Adjust includes for restructured coretypes.h.
18786         * asan.c: Likewise.
18787         * attribs.c: Likewise.
18788         * auto-inc-dec.c: Likewise.
18789         * auto-profile.c: Likewise.
18790         * bb-reorder.c: Likewise.
18791         * bt-load.c: Likewise.
18792         * builtins.c: Likewise.
18793         * caller-save.c: Likewise.
18794         * calls.c: Likewise.
18795         * ccmp.c: Likewise.
18796         * cfg.c: Likewise.
18797         * cfganal.c: Likewise.
18798         * cfgbuild.c: Likewise.
18799         * cfgcleanup.c: Likewise.
18800         * cfgexpand.c: Likewise.
18801         * cfghooks.c: Likewise.
18802         * cfgloop.c: Likewise.
18803         * cfgloop.h: Likewise.
18804         * cfgloopanal.c: Likewise.
18805         * cfgloopmanip.c: Likewise.
18806         * cfgrtl.c: Likewise.
18807         * cgraph.c: Likewise.
18808         * cgraphbuild.c: Likewise.
18809         * cgraphclones.c: Likewise.
18810         * cgraphunit.c: Likewise.
18811         * cilk-common.c: Likewise.
18812         * combine-stack-adj.c: Likewise.
18813         * combine.c: Likewise.
18814         * compare-elim.c: Likewise.
18815         * convert.c: Likewise.
18816         * coverage.c: Likewise.
18817         * cppbuiltin.c: Likewise.
18818         * cprop.c: Likewise.
18819         * cse.c: Likewise.
18820         * cselib.c: Likewise.
18821         * data-streamer-in.c: Likewise.
18822         * data-streamer-out.c: Likewise.
18823         * data-streamer.c: Likewise.
18824         * dbxout.c: Likewise.
18825         * dce.c: Likewise.
18826         * ddg.c: Likewise.
18827         * debug.c: Likewise.
18828         * df-core.c: Likewise.
18829         * df-problems.c: Likewise.
18830         * df-scan.c: Likewise.
18831         * df.h: Likewise.
18832         * dfp.c: Likewise.
18833         * dojump.c: Likewise.
18834         * dominance.c: Likewise.
18835         * domwalk.c: Likewise.
18836         * double-int.c: Likewise.
18837         * dse.c: Likewise.
18838         * dumpfile.c: Likewise.
18839         * dwarf2asm.c: Likewise.
18840         * dwarf2cfi.c: Likewise.
18841         * dwarf2out.c: Likewise.
18842         * dwarf2out.h: Likewise.
18843         * emit-rtl.c: Likewise.
18844         * et-forest.c: Likewise.
18845         * except.c: Likewise.
18846         * explow.c: Likewise.
18847         * expmed.c: Likewise.
18848         * expr.c: Likewise.
18849         * final.c: Likewise.
18850         * fixed-value.c: Likewise.
18851         * fold-const.c: Likewise.
18852         * function.c: Likewise.
18853         * fwprop.c: Likewise.
18854         * gcc-plugin.h: Likewise.
18855         * gcse.c: Likewise.
18856         * generic-match-head.c: Likewise.
18857         * ggc-page.c: Likewise.
18858         * gimple-builder.c: Likewise.
18859         * gimple-expr.c: Likewise.
18860         * gimple-fold.c: Likewise.
18861         * gimple-iterator.c: Likewise.
18862         * gimple-low.c: Likewise.
18863         * gimple-match-head.c: Likewise.
18864         * gimple-pretty-print.c: Likewise.
18865         * gimple-ssa-isolate-paths.c: Likewise.
18866         * gimple-ssa-strength-reduction.c: Likewise.
18867         * gimple-streamer-in.c: Likewise.
18868         * gimple-streamer-out.c: Likewise.
18869         * gimple-streamer.h: Likewise.
18870         * gimple-walk.c: Likewise.
18871         * gimple.c: Likewise.
18872         * gimplify-me.c: Likewise.
18873         * gimplify.c: Likewise.
18874         * godump.c: Likewise.
18875         * graph.c: Likewise.
18876         * graphite-blocking.c: Likewise.
18877         * graphite-dependences.c: Likewise.
18878         * graphite-interchange.c: Likewise.
18879         * graphite-isl-ast-to-gimple.c: Likewise.
18880         * graphite-optimize-isl.c: Likewise.
18881         * graphite-poly.c: Likewise.
18882         * graphite-scop-detection.c: Likewise.
18883         * graphite-sese-to-poly.c: Likewise.
18884         * graphite.c: Likewise.
18885         * haifa-sched.c: Likewise.
18886         * hooks.h: Likewise.
18887         * hw-doloop.c: Likewise.
18888         * ifcvt.c: Likewise.
18889         * incpath.c: Likewise.
18890         * init-regs.c: Likewise.
18891         * internal-fn.c: Likewise.
18892         * ipa-chkp.c: Likewise.
18893         * ipa-comdats.c: Likewise.
18894         * ipa-cp.c: Likewise.
18895         * ipa-devirt.c: Likewise.
18896         * ipa-icf-gimple.c: Likewise.
18897         * ipa-icf.c: Likewise.
18898         * ipa-inline-analysis.c: Likewise.
18899         * ipa-inline-transform.c: Likewise.
18900         * ipa-inline.c: Likewise.
18901         * ipa-polymorphic-call.c: Likewise.
18902         * ipa-profile.c: Likewise.
18903         * ipa-prop.c: Likewise.
18904         * ipa-pure-const.c: Likewise.
18905         * ipa-ref.c: Likewise.
18906         * ipa-reference.c: Likewise.
18907         * ipa-split.c: Likewise.
18908         * ipa-utils.c: Likewise.
18909         * ipa-visibility.c: Likewise.
18910         * ipa.c: Likewise.
18911         * ira-build.c: Likewise.
18912         * ira-color.c: Likewise.
18913         * ira-conflicts.c: Likewise.
18914         * ira-costs.c: Likewise.
18915         * ira-emit.c: Likewise.
18916         * ira-lives.c: Likewise.
18917         * ira.c: Likewise.
18918         * jump.c: Likewise.
18919         * langhooks.c: Likewise.
18920         * lcm.c: Likewise.
18921         * loop-doloop.c: Likewise.
18922         * loop-init.c: Likewise.
18923         * loop-invariant.c: Likewise.
18924         * loop-iv.c: Likewise.
18925         * loop-unroll.c: Likewise.
18926         * lower-subreg.c: Likewise.
18927         * lra-assigns.c: Likewise.
18928         * lra-coalesce.c: Likewise.
18929         * lra-constraints.c: Likewise.
18930         * lra-eliminations.c: Likewise.
18931         * lra-lives.c: Likewise.
18932         * lra-remat.c: Likewise.
18933         * lra-spills.c: Likewise.
18934         * lra.c: Likewise.
18935         * lto-cgraph.c: Likewise.
18936         * lto-compress.c: Likewise.
18937         * lto-opts.c: Likewise.
18938         * lto-section-in.c: Likewise.
18939         * lto-section-out.c: Likewise.
18940         * lto-streamer-in.c: Likewise.
18941         * lto-streamer-out.c: Likewise.
18942         * lto-streamer.c: Likewise.
18943         * mcf.c: Likewise.
18944         * mode-switching.c: Likewise.
18945         * modulo-sched.c: Likewise.
18946         * omega.c: Likewise.
18947         * omp-low.c: Likewise.
18948         * optabs.c: Likewise.
18949         * opts-global.c: Likewise.
18950         * passes.c: Likewise.
18951         * plugin.c: Likewise.
18952         * postreload-gcse.c: Likewise.
18953         * postreload.c: Likewise.
18954         * predict.c: Likewise.
18955         * print-rtl.c: Likewise.
18956         * print-tree.c: Likewise.
18957         * profile.c: Likewise.
18958         * real.c: Likewise.
18959         * realmpfr.c: Likewise.
18960         * realmpfr.h: Likewise.
18961         * recog.c: Likewise.
18962         * ree.c: Likewise.
18963         * reg-stack.c: Likewise.
18964         * regcprop.c: Likewise.
18965         * reginfo.c: Likewise.
18966         * regrename.c: Likewise.
18967         * regs.h: Likewise.
18968         * regstat.c: Likewise.
18969         * reload.c: Likewise.
18970         * reload1.c: Likewise.
18971         * reorg.c: Likewise.
18972         * resource.c: Likewise.
18973         * rtl-chkp.c: Likewise.
18974         * rtlanal.c: Likewise.
18975         * rtlhooks.c: Likewise.
18976         * sanopt.c: Likewise.
18977         * sched-deps.c: Likewise.
18978         * sched-ebb.c: Likewise.
18979         * sched-rgn.c: Likewise.
18980         * sched-vis.c: Likewise.
18981         * sdbout.c: Likewise.
18982         * sel-sched-dump.c: Likewise.
18983         * sel-sched-ir.c: Likewise.
18984         * sel-sched.c: Likewise.
18985         * sese.c: Likewise.
18986         * shrink-wrap.c: Likewise.
18987         * shrink-wrap.h: Likewise.
18988         * simplify-rtx.c: Likewise.
18989         * stack-ptr-mod.c: Likewise.
18990         * statistics.c: Likewise.
18991         * stmt.c: Likewise.
18992         * stor-layout.c: Likewise.
18993         * store-motion.c: Likewise.
18994         * stringpool.c: Likewise.
18995         * symtab.c: Likewise.
18996         * target-globals.c: Likewise.
18997         * targhooks.c: Likewise.
18998         * toplev.c: Likewise.
18999         * tracer.c: Likewise.
19000         * trans-mem.c: Likewise.
19001         * tree-affine.c: Likewise.
19002         * tree-affine.h: Likewise.
19003         * tree-browser.c: Likewise.
19004         * tree-call-cdce.c: Likewise.
19005         * tree-cfg.c: Likewise.
19006         * tree-cfgcleanup.c: Likewise.
19007         * tree-chkp-opt.c: Likewise.
19008         * tree-chkp.c: Likewise.
19009         * tree-chrec.c: Likewise.
19010         * tree-complex.c: Likewise.
19011         * tree-data-ref.c: Likewise.
19012         * tree-dfa.c: Likewise.
19013         * tree-diagnostic.c: Likewise.
19014         * tree-dump.c: Likewise.
19015         * tree-eh.c: Likewise.
19016         * tree-emutls.c: Likewise.
19017         * tree-if-conv.c: Likewise.
19018         * tree-inline.c: Likewise.
19019         * tree-into-ssa.c: Likewise.
19020         * tree-iterator.c: Likewise.
19021         * tree-loop-distribution.c: Likewise.
19022         * tree-nested.c: Likewise.
19023         * tree-nrv.c: Likewise.
19024         * tree-object-size.c: Likewise.
19025         * tree-outof-ssa.c: Likewise.
19026         * tree-parloops.c: Likewise.
19027         * tree-phinodes.c: Likewise.
19028         * tree-predcom.c: Likewise.
19029         * tree-pretty-print.c: Likewise.
19030         * tree-pretty-print.h: Likewise.
19031         * tree-profile.c: Likewise.
19032         * tree-scalar-evolution.c: Likewise.
19033         * tree-sra.c: Likewise.
19034         * tree-ssa-address.c: Likewise.
19035         * tree-ssa-alias.c: Likewise.
19036         * tree-ssa-ccp.c: Likewise.
19037         * tree-ssa-coalesce.c: Likewise.
19038         * tree-ssa-copy.c: Likewise.
19039         * tree-ssa-copyrename.c: Likewise.
19040         * tree-ssa-dce.c: Likewise.
19041         * tree-ssa-dom.c: Likewise.
19042         * tree-ssa-dse.c: Likewise.
19043         * tree-ssa-forwprop.c: Likewise.
19044         * tree-ssa-ifcombine.c: Likewise.
19045         * tree-ssa-live.c: Likewise.
19046         * tree-ssa-loop-ch.c: Likewise.
19047         * tree-ssa-loop-im.c: Likewise.
19048         * tree-ssa-loop-ivcanon.c: Likewise.
19049         * tree-ssa-loop-ivopts.c: Likewise.
19050         * tree-ssa-loop-manip.c: Likewise.
19051         * tree-ssa-loop-niter.c: Likewise.
19052         * tree-ssa-loop-prefetch.c: Likewise.
19053         * tree-ssa-loop-unswitch.c: Likewise.
19054         * tree-ssa-loop.c: Likewise.
19055         * tree-ssa-loop.h: Likewise.
19056         * tree-ssa-math-opts.c: Likewise.
19057         * tree-ssa-operands.c: Likewise.
19058         * tree-ssa-phiopt.c: Likewise.
19059         * tree-ssa-phiprop.c: Likewise.
19060         * tree-ssa-pre.c: Likewise.
19061         * tree-ssa-propagate.c: Likewise.
19062         * tree-ssa-reassoc.c: Likewise.
19063         * tree-ssa-sccvn.c: Likewise.
19064         * tree-ssa-scopedtables.c: Likewise.
19065         * tree-ssa-sink.c: Likewise.
19066         * tree-ssa-strlen.c: Likewise.
19067         * tree-ssa-structalias.c: Likewise.
19068         * tree-ssa-tail-merge.c: Likewise.
19069         * tree-ssa-ter.c: Likewise.
19070         * tree-ssa-threadedge.c: Likewise.
19071         * tree-ssa-threadupdate.c: Likewise.
19072         * tree-ssa-uncprop.c: Likewise.
19073         * tree-ssa-uninit.c: Likewise.
19074         * tree-ssa.c: Likewise.
19075         * tree-ssanames.c: Likewise.
19076         * tree-stdarg.c: Likewise.
19077         * tree-streamer-in.c: Likewise.
19078         * tree-streamer-out.c: Likewise.
19079         * tree-streamer.c: Likewise.
19080         * tree-switch-conversion.c: Likewise.
19081         * tree-tailcall.c: Likewise.
19082         * tree-vect-data-refs.c: Likewise.
19083         * tree-vect-generic.c: Likewise.
19084         * tree-vect-loop-manip.c: Likewise.
19085         * tree-vect-loop.c: Likewise.
19086         * tree-vect-patterns.c: Likewise.
19087         * tree-vect-slp.c: Likewise.
19088         * tree-vect-stmts.c: Likewise.
19089         * tree-vectorizer.c: Likewise.
19090         * tree-vrp.c: Likewise.
19091         * tree.c: Likewise.
19092         * tsan.c: Likewise.
19093         * ubsan.c: Likewise.
19094         * valtrack.c: Likewise.
19095         * value-prof.c: Likewise.
19096         * var-tracking.c: Likewise.
19097         * varasm.c: Likewise.
19098         * varpool.c: Likewise.
19099         * vmsdbgout.c: Likewise.
19100         * vtable-verify.c: Likewise.
19101         * web.c: Likewise.
19102         * wide-int-print.cc: Likewise.
19103         * wide-int-print.h: Likewise.
19104         * wide-int.cc: Likewise.
19105         * xcoffout.c: Likewise.
19106         * config/aarch64/aarch64-builtins.c: Likewise.
19107         * config/aarch64/aarch64.c: Likewise.
19108         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
19109         * config/alpha/alpha.c: Likewise.
19110         * config/arc/arc.c: Likewise.
19111         * config/arm/aarch-common.c: Likewise.
19112         * config/arm/arm-builtins.c: Likewise.
19113         * config/arm/arm-c.c: Likewise.
19114         * config/arm/arm.c: Likewise.
19115         * config/avr/avr-c.c: Likewise.
19116         * config/avr/avr-log.c: Likewise.
19117         * config/avr/avr.c: Likewise.
19118         * config/bfin/bfin.c: Likewise.
19119         * config/c6x/c6x.c: Likewise.
19120         * config/cr16/cr16.c: Likewise.
19121         * config/cris/cris.c: Likewise.
19122         * config/darwin-c.c: Likewise.
19123         * config/darwin.c: Likewise.
19124         * config/default-c.c: Likewise.
19125         * config/epiphany/epiphany.c: Likewise.
19126         * config/epiphany/mode-switch-use.c: Likewise.
19127         * config/epiphany/resolve-sw-modes.c: Likewise.
19128         * config/fr30/fr30.c: Likewise.
19129         * config/frv/frv.c: Likewise.
19130         * config/ft32/ft32.c: Likewise.
19131         * config/glibc-c.c: Likewise.
19132         * config/h8300/h8300.c: Likewise.
19133         * config/i386/i386-c.c: Likewise.
19134         * config/i386/i386.c: Likewise.
19135         * config/i386/msformat-c.c: Likewise.
19136         * config/i386/winnt-cxx.c: Likewise.
19137         * config/i386/winnt-stubs.c: Likewise.
19138         * config/i386/winnt.c: Likewise.
19139         * config/ia64/ia64-c.c: Likewise.
19140         * config/ia64/ia64.c: Likewise.
19141         * config/iq2000/iq2000.c: Likewise.
19142         * config/lm32/lm32.c: Likewise.
19143         * config/m32c/m32c-pragma.c: Likewise.
19144         * config/m32c/m32c.c: Likewise.
19145         * config/m32r/m32r.c: Likewise.
19146         * config/m68k/m68k.c: Likewise.
19147         * config/mcore/mcore.c: Likewise.
19148         * config/mep/mep-pragma.c: Likewise.
19149         * config/mep/mep.c: Likewise.
19150         * config/microblaze/microblaze-c.c: Likewise.
19151         * config/microblaze/microblaze.c: Likewise.
19152         * config/mips/mips.c: Likewise.
19153         * config/mmix/mmix.c: Likewise.
19154         * config/mn10300/mn10300.c: Likewise.
19155         * config/moxie/moxie.c: Likewise.
19156         * config/msp430/msp430-c.c: Likewise.
19157         * config/msp430/msp430.c: Likewise.
19158         * config/nds32/nds32-cost.c: Likewise.
19159         * config/nds32/nds32-fp-as-gp.c: Likewise.
19160         * config/nds32/nds32-intrinsic.c: Likewise.
19161         * config/nds32/nds32-isr.c: Likewise.
19162         * config/nds32/nds32-md-auxiliary.c: Likewise.
19163         * config/nds32/nds32-memory-manipulation.c: Likewise.
19164         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19165         * config/nds32/nds32-predicates.c: Likewise.
19166         * config/nds32/nds32.c: Likewise.
19167         * config/nios2/nios2.c: Likewise.
19168         * config/nvptx/nvptx.c: Likewise.
19169         * config/pa/pa.c: Likewise.
19170         * config/pdp11/pdp11.c: Likewise.
19171         * config/rl78/rl78-c.c: Likewise.
19172         * config/rl78/rl78.c: Likewise.
19173         * config/rs6000/rs6000-c.c: Likewise.
19174         * config/rs6000/rs6000.c: Likewise.
19175         * config/rx/rx.c: Likewise.
19176         * config/s390/s390-c.c: Likewise.
19177         * config/s390/s390.c: Likewise.
19178         * config/sh/sh-c.c: Likewise.
19179         * config/sh/sh-mem.cc: Likewise.
19180         * config/sh/sh.c: Likewise.
19181         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19182         * config/sh/sh_treg_combine.cc: Likewise.
19183         * config/sol2-c.c: Likewise.
19184         * config/sol2-cxx.c: Likewise.
19185         * config/sol2-stubs.c: Likewise.
19186         * config/sol2.c: Likewise.
19187         * config/sparc/sparc-c.c: Likewise.
19188         * config/sparc/sparc.c: Likewise.
19189         * config/spu/spu-c.c: Likewise.
19190         * config/spu/spu.c: Likewise.
19191         * config/stormy16/stormy16.c: Likewise.
19192         * config/tilegx/mul-tables.c: Likewise.
19193         * config/tilegx/tilegx-c.c: Likewise.
19194         * config/tilegx/tilegx.c: Likewise.
19195         * config/tilepro/mul-tables.c: Likewise.
19196         * config/tilepro/tilepro-c.c: Likewise.
19197         * config/tilepro/tilepro.c: Likewise.
19198         * config/v850/v850-c.c: Likewise.
19199         * config/v850/v850.c: Likewise.
19200         * config/vax/vax.c: Likewise.
19201         * config/visium/visium.c: Likewise.
19202         * config/vms/vms-c.c: Likewise.
19203         * config/vms/vms.c: Likewise.
19204         * config/vxworks.c: Likewise.
19205         * config/winnt-c.c: Likewise.
19206         * config/xtensa/xtensa.c: Likewise.
19207         * common/config/bfin/bfin-common.c: Likewise.
19208
19209 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
19210
19211         * tree.h (tree_code_for_canonical_type_merging): New function.
19212         * tree.c (gimple_canonical_types_compatible_p): Use
19213         tree_code_for_canonical_type_merging..
19214
19215 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19216
19217         PR c++/66192
19218         PR target/66200
19219         * doc/tm.texi: Regenerate.
19220         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
19221         * target.def (TARGET_RELAXED_ORDERING): Likewise.
19222         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
19223         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
19224         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
19225         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
19226         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
19227         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
19228         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
19229
19230 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19231
19232         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
19233         register fma steering pass.
19234         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
19235         AARCH64_TUNE_FMA_STEERING.
19236
19237 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
19238
19239         * tree.c (verify_type_variant): Verify that type and variant is
19240         compatible.
19241         (gimple_canonical_types_compatible_p): Look for main variants.
19242
19243 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
19244
19245         * config.gcc (powerpc*-*-*): Add support for a new configure
19246         option --with-advance-toolchain=<xxx> which overrides using the
19247         default header files, libraries and dynamic linker.
19248
19249         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
19250         specs to support the configure --with-advance-toolchain=<xxx>
19251         option.
19252         (INCLUDE_EXTRA_SPEC): Likewise.
19253         (LINK_OS_EXTRA_SPEC32): Likewise.
19254         (LINK_OK_EXTRA_SPEC64): Likewise.
19255         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
19256         (DYNAMIC_LINKER_PREFIX): Likewise.
19257         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
19258         toolchain support.
19259         (GLIBC_DYNAMIC_LINKER32): Likewise.
19260         (GLIBC_DYNAMIC_LINKER64): Likewise.
19261         (LINK_OS_LINUX_SPEC32): Likewise.
19262         (LINK_OS_LINUX_SPEC64): Likewise.
19263
19264         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
19265         configuration option.
19266
19267 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
19268
19269         PR target/66275
19270         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
19271         to determine current function ABI.
19272         (ix86_function_value_regno_p): Ditto.
19273
19274 2015-06-03  Martin Liska  <mliska@suse.cz>
19275
19276         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
19277         * bitmap.h (struct bitmap_usage): Likewise.
19278         * ggc-common.c (struct ggc_usage): Likewise.
19279         * mem-stats.h (struct mem_location): Likewise.
19280         (struct mem_usage): Likewise.
19281         * vec.c (struct vec_usage): Likewise.
19282
19283 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
19284
19285         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
19286         -Bsymbolic.
19287
19288 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
19289
19290         * doc/plugins.texi (enum plugin_event): New event.
19291         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
19292         and PLUGIN_FINISH_FUNCTION.
19293         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
19294         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
19295
19296 2015-06-03  Richard Biener  <rguenther@suse.de>
19297
19298         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19299         compute GROUP_GAP for the first element.
19300         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
19301         on in-group gaps.
19302
19303 2015-06-03  Nick Clifton  <nickc@redhat.com>
19304
19305         * config/rl78/rl78-real.md: Add peepholes to avoid a register
19306         copy when calling a function.
19307         * config/rl78/rl78.c (need_to_save): Do not push the frame
19308         pointer in an interrupt handler prologue if it is never used.
19309
19310 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19311
19312         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
19313
19314 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19315
19316         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
19317         reference when cloning alias node.
19318
19319 2015-06-03  Martin Liska  <mliska@suse.cz>
19320
19321         * alloc-pool.h (struct pool_usage): Correct space padding.
19322         * ggc-page.c (ggc_print_statistics): Align columns in a report.
19323         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
19324         * tree.c (dump_tree_statistics): Align columns in a report.
19325
19326 2015-06-03  Martin Liska  <mliska@suse.cz>
19327
19328         * alloc-pool.c (allocate_pool_descriptor): Remove.
19329         (struct pool_output_info): Likewise.
19330         (print_alloc_pool_statistics): Likewise.
19331         (dump_alloc_pool_statistics): Likewise.
19332         * alloc-pool.h (struct pool_usage): New struct.
19333         (pool_allocator::initialize): Change usage of memory statistics
19334         to a new interface.
19335         (pool_allocator::release): Likewise.
19336         (pool_allocator::allocate): Likewise.
19337         (pool_allocator::remove): Likewise.
19338         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
19339         for a pool allocator.
19340         * mem-stats.h (struct mem_location): Add new ctor.
19341         (struct mem_usage): Add counter for number of
19342         instances.
19343         (mem_alloc_description::register_descriptor): New overload of
19344         * mem-stats.h (mem_location::to_string): New function.
19345         * bitmap.h (struct bitmap_usage): Use this new function.
19346         * ggc-common.c (struct ggc_usage): Likewise.
19347         the function.
19348
19349 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19350
19351         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
19352         of GCC_INSN_FLAGS_H block.
19353
19354 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
19355
19356         * explow.c (plus_constant): Update check after force_const_mem call
19357         to see if the value returned is not a NULL_RTX.
19358
19359 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19360
19361         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
19362         remove instumentation thunks calling reachable functions.
19363         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
19364         * lto/lto-partition.c (privatize_symbol_name_1): New.
19365         (privatize_symbol_name): Privatize both decl and orig_decl
19366         names for instrumented functions.
19367         * cgraph.c (cgraph_node::verify_node): Add transparent
19368         alias chain check for instrumented node.
19369
19370 2015-06-03  Marek Polacek  <polacek@redhat.com>
19371
19372         PR c/64223
19373         PR c/29358
19374         * tree.c (attribute_value_equal): Handle attribute format.
19375         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
19376
19377 2015-06-03  Richard Biener  <rguenther@suse.de>
19378
19379         PR tree-optimization/63916
19380         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19381         Forward-propagate non-invariant addresses by splicing their
19382         reference ops if the result isn't going to be used by PRE.
19383         (vn_reference_lookup_3): Remove pointless assert.
19384
19385 2015-06-03  Richard Biener  <rguenther@suse.de>
19386
19387         PR tree-optimization/66375
19388         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
19389         add to the evolution before following SSA edges.
19390
19391 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
19392
19393         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
19394         (dump_use, dump_cand, find_induction_variables): Pass new argument
19395         to dump_iv.
19396         (record_use): Preserve the ssa name information in IV.
19397
19398 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19399
19400         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
19401         NO_MODE_TEST.
19402         (add_mode_tests): Don't add mode tests if the predicate only
19403         accepts scalar constant integers.  Otherwise, allow the mode
19404         of "op" to be VOIDmode if the predicate does accept such integers.
19405
19406 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
19407
19408         PR target/66258
19409         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
19410         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
19411         (aarch64_secondary_reload): Likewise
19412         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
19413         to !TARGET_FLOAT.
19414         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
19415         Likewise.
19416
19417 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
19418             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19419
19420         PR target/65768
19421         * cprop.c (try_replace_reg): Check cost of constants before propagating.
19422
19423 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
19424
19425         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
19426         provide access to the IBM extended double floating point mode if
19427         long double is IEEE 128-bit floating point.
19428         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
19429         point if long double is the IBM extended double type.
19430
19431         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
19432         enable adding IEEE 128-bit floating point support.
19433         (-mfloat128-software): Likewise.
19434         (-mfloat128-sw): Likewise.
19435
19436         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
19437         128-bit floating point types to occupy any register if
19438         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
19439         -mfloat128-software is enabled.
19440         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
19441         support.
19442         (rs6000_option_override_internal): Add -mfloat128-* support.
19443         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
19444
19445         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
19446         and float128 type nodes.
19447         (ieee128_float_type_node): Likewise.
19448         (ibm128_float_type_node): Likewise.
19449
19450 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19451
19452         PR target/66136
19453         * config/aarch64/geniterators.sh: Rewrite in awk.
19454
19455 2015-06-02  Martin Liska  <mliska@suse.cz>
19456
19457         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
19458         values to avoid -Wmaybe-uninitialized errors.
19459
19460 2015-06-02  Richard Biener  <rguenther@suse.de>
19461
19462         PR debug/65549
19463         * dwarf2out.c (lookup_context_die): New function.
19464         (resolve_addr): Avoid forcing a full DIE for the
19465         target of a DW_TAG_GNU_call_site during late compilation.
19466         Instead create a stub DIE without a type if we have a
19467         context DIE present.
19468
19469 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
19470
19471         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
19472
19473 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19474
19475         PR tree-optimization/48052
19476         * cfgloop.h (struct control_iv): New.
19477         (struct loop): New field control_ivs.
19478         * tree-ssa-loop-niter.c : Include "stor-layout.h".
19479         (number_of_iterations_lt): Set no_overflow information.
19480         (number_of_iterations_exit): Init control iv in niter struct.
19481         (record_control_iv): New.
19482         (estimate_numbers_of_iterations_loop): Call record_control_iv.
19483         (loop_exits_before_overflow): New.  Interface factored out of
19484         scev_probably_wraps_p.
19485         (scev_probably_wraps_p): Factor loop niter related code into
19486         loop_exits_before_overflow.
19487         (free_numbers_of_iterations_estimates_loop): Free control ivs.
19488         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
19489
19490 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
19491
19492         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
19493         the target doesn't belong to the current function.
19494
19495 2015-06-02  Marek Polacek  <polacek@redhat.com>
19496
19497         PR middle-end/66345
19498         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
19499         get_maxval_strlen does not produce an INTEGER_CST.
19500
19501 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
19502
19503         * config/arc/constraints.md: Use lower-case names in match_code.
19504         * config/mmix/constraints.md: Likewise.
19505
19506 2015-06-02  Richard Biener  <rguenther@suse.de>
19507
19508         PR tree-optimization/65961
19509         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
19510         check and clarify dump message.
19511         (vect_build_slp_tree): If all children are built up from scalars
19512         build up the parent from scalars instead.
19513         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
19514
19515 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
19516
19517         PR other/65366
19518         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
19519         instead of print ... .
19520
19521 2015-06-02  Alan Modra  <amodra@gmail.com>
19522
19523         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
19524         2014-08-11 change.
19525
19526 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19527
19528         PR tree-optimization/52563
19529         PR tree-optimization/62173
19530         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
19531         (alloc_iv, set_iv): New parameter.
19532         (determine_biv_step): Delete.
19533         (find_bivs): Inline original determine_biv_step.  Pass new
19534         argument to set_iv.
19535         (idx_find_step): Use no_overflow information for conversion.
19536         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
19537         resolve_mixers handle folded_casts.
19538         (instantiate_scev_name): Change bool parameter to bool pointer.
19539         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
19540         (instantiate_array_ref, instantiate_scev_not): Ditto.
19541         (instantiate_scev_3, instantiate_scev_2): Ditto.
19542         (instantiate_scev_1, instantiate_scev_r): Ditto.
19543         (instantiate_scev_convert, ): Change parameter.  Pass argument
19544         to chrec_convert_aggressive.
19545         (instantiate_scev): Change argument.
19546         (resolve_mixers): New parameter and set it.
19547         (scev_const_prop): New argument.
19548         * tree-scalar-evolution.h (resolve_mixers): New parameter.
19549         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
19550         of chrec_conert_1.
19551         (chrec_convert): New parameter.  Move definition below.
19552         (chrec_convert_aggressive): New parameter and set it.  Call
19553         convert_affine_scev.
19554         * tree-chrec.h (chrec_convert): New parameter.
19555         (chrec_convert_aggressive): Ditto.
19556
19557 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19558
19559         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
19560         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
19561         the LHS of a no-return call if its type has variable size.
19562         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
19563         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
19564
19565 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
19566
19567         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
19568         * config.in: Regenerate.
19569
19570 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
19571
19572         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19573         consecutive accesses within outer-loop with force_vectorize
19574         for references with zero step in inner-loop.
19575
19576 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19577
19578         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
19579         rather than from gcc/build directory.
19580
19581 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19582
19583         PR target/65697
19584         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
19585         for __sync memory models, emit initial loads and final barriers as
19586         appropriate.
19587
19588 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19589
19590         PR target/65697
19591         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
19592         (aarch64_split_atomic_op): Check for __sync memory models, emit
19593         appropriate initial loads and final barriers.
19594
19595 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19596
19597         * Makefile.in: Fix gcov dependencies that should
19598         not point to a build folder.
19599
19600 2015-06-01  Richard Biener  <rguenther@suse.de>
19601
19602         Revert
19603         2015-05-29  Richard Biener  <rguenther@suse.de>
19604
19605         PR tree-optimization/66314
19606         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19607         parameter that says which loop the new block belongs to.
19608         (ssa_create_duplicates): Blocks duplicated for the threaded
19609         path belong to the loop of the thread destination.
19610
19611 2015-06-01  Martin Liska  <mliska@suse.cz>
19612
19613         * sched-deps.c: Include pool-alloc.h before
19614         cselib.h header file is included.
19615
19616 2015-06-01  Richard Biener  <rguenther@suse.de>
19617
19618         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
19619         functions.
19620
19621 2015-06-01  Martin Liska  <mliska@suse.cz>
19622
19623         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
19624         a function local variable.
19625
19626 2015-06-01  Martin Liska  <mliska@suse.cz>
19627
19628         * alloc-pool.c (create_alloc_pool): Remove.
19629         (empty_alloc_pool): Likewise.
19630         (free_alloc_pool): Likewise.
19631         (free_alloc_pool_if_empty): Likewise.
19632         (pool_alloc): Likewise.
19633         (pool_free): Likewise.
19634         * alloc-pool.h: Remove old declarations.
19635
19636 2015-06-01  Martin Liska  <mliska@suse.cz>
19637
19638         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
19639         (ira_create_object): Likewise.
19640         (ira_create_allocno): Likewise.
19641         (ira_create_live_range): Likewise.
19642         (copy_live_range): Likewise.
19643         (ira_finish_live_range): Likewise.
19644         (ira_free_allocno_costs): Likewise.
19645         (finish_allocno): Likewise.
19646         (finish_allocnos): Likewise.
19647         (initiate_prefs): Likewise.
19648         (ira_create_pref): Likewise.
19649         (finish_pref): Likewise.
19650         (finish_prefs): Likewise.
19651         (initiate_copies): Likewise.
19652         (ira_create_copy): Likewise.
19653         (finish_copy): Likewise.
19654         (finish_copies): Likewise.
19655         (finish_prefs): Likewise.
19656
19657 2015-06-01  Martin Liska  <mliska@suse.cz>
19658
19659         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
19660         (allocate_and_init_ipcp_value): Likewise.
19661         (ipcp_lattice::add_value): Likewise.
19662         (merge_agg_lats_step): Likewise.
19663         (ipcp_driver): Likewise.
19664         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
19665         (ipa_free_all_structures_after_iinln): Likewise.
19666         * ipa-prop.h: Likewise.
19667
19668 2015-06-01  Martin Liska  <mliska@suse.cz>
19669
19670         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
19671         pool allocator.
19672         (set_hint_predicate): Likewise.
19673         (inline_summary_alloc): Likewise.
19674         (reset_inline_edge_summary): Likewise.
19675         (reset_inline_summary): Likewise.
19676         (set_cond_stmt_execution_predicate): Likewise.
19677         (set_switch_stmt_execution_predicate): Likewise.
19678         (compute_bb_predicates): Likewise.
19679         (estimate_function_body_sizes): Likewise.
19680         (inline_free_summary): Likewise.
19681
19682 2015-06-01  Martin Liska  <mliska@suse.cz>
19683
19684         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
19685         (ipa_edge_duplication_hook): Likewise.
19686         (ipa_free_all_structures_after_ipa_cp): Likewise.
19687         (ipa_free_all_structures_after_iinln): Likewise.
19688
19689 2015-06-01  Martin Liska  <mliska@suse.cz>
19690
19691         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
19692         (ipa_profile_generate_summary): Likewise.
19693         (ipa_profile_read_summary): Likewise.
19694         (ipa_profile): Likewise.
19695
19696 2015-06-01  Martin Liska  <mliska@suse.cz>
19697
19698         * tree-ssa-structalias.c (new_var_info): Use new type-based
19699         pool allocator.
19700         (new_constraint): Likewise.
19701         (init_alias_vars): Likewise.
19702         (delete_points_to_sets): Likewise.
19703
19704 2015-06-01  Martin Liska  <mliska@suse.cz>
19705
19706         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
19707         (free_strinfo): Likewise.
19708         (pass_strlen::execute): Likewise.
19709
19710 2015-06-01  Martin Liska  <mliska@suse.cz>
19711
19712         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
19713         pool allocator.
19714         (vn_reference_insert_pieces): Likewise.
19715         (vn_phi_insert): Likewise.
19716         (visit_reference_op_call): Likewise.
19717         (copy_phi): Likewise.
19718         (copy_reference): Likewise.
19719         (process_scc): Likewise.
19720         (allocate_vn_table): Likewise.
19721         (free_vn_table): Likewise.
19722
19723 2015-06-01  Martin Liska  <mliska@suse.cz>
19724
19725         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
19726         pool allocator.
19727         (add_repeat_to_ops_vec): Likewise.
19728         (get_ops): Likewise.
19729         (maybe_optimize_range_tests): Likewise.
19730         (init_reassoc): Likewise.
19731         (fini_reassoc): Likewise.
19732
19733 2015-06-01  Martin Liska  <mliska@suse.cz>
19734
19735         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
19736         pool allocator.
19737         (bitmap_set_new): Likewise.
19738         (get_or_alloc_expr_for_constant): Likewise.
19739         (get_or_alloc_expr_for): Likewise.
19740         (phi_translate_1): Likewise.
19741         (compute_avail): Likewise.
19742         (init_pre): Likewise.
19743         (fini_pre): Likewise.
19744
19745 2015-06-01  Martin Liska  <mliska@suse.cz>
19746
19747         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
19748         (delete_dep_node): Likewise.
19749         (create_deps_list): Likewise.
19750         (free_deps_list): Likewise.
19751         (sched_deps_init): Likewise.
19752         (sched_deps_finish): Likewise.
19753
19754 2015-06-01  Martin Liska  <mliska@suse.cz>
19755
19756         * regcprop.c (free_debug_insn_changes): Use new type-based
19757         pool allocator.
19758         (replace_oldest_value_reg): Likewise.
19759         (pass_cprop_hardreg::execute): Likewise.
19760
19761 2015-06-01  Martin Liska  <mliska@suse.cz>
19762
19763         * ira-build.c (initiate_cost_vectors): Use new type-based
19764         pool allocator.
19765         (ira_allocate_cost_vector): Likewise.
19766         (ira_free_cost_vector): Likewise.
19767         (finish_cost_vectors): Likewise.
19768
19769 2015-06-01  Martin Liska  <mliska@suse.cz>
19770
19771         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
19772         pool allocator.
19773         (free_sched_pools): Likewise.
19774         * sel-sched-ir.h (_list_alloc): Likewise.
19775         (_list_remove): Likewise.
19776
19777 2015-06-01  Martin Liska  <mliska@suse.cz>
19778
19779         * stmt.c (add_case_node): Use new type-based pool allocator.
19780         (expand_case): Likewise.
19781         (expand_sjlj_dispatch_table): Likewise.
19782
19783 2015-06-01  Martin Liska  <mliska@suse.cz>
19784
19785         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
19786         (free_bb): Likewise.
19787         (pass_cse_reciprocals::execute): Likewise.
19788
19789 2015-06-01  Martin Liska  <mliska@suse.cz>
19790
19791         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
19792         (sra_deinitialize) Likewise.
19793         (create_access_1) Likewise.
19794         (build_accesses_from_assign) Likewise.
19795         (create_artificial_child_access) Likewise.
19796
19797 2015-06-01  Martin Liska  <mliska@suse.cz>
19798
19799         * dse.c (get_group_info):Use new type-based pool allocator.
19800         (dse_step0) Likewise.
19801         (free_store_info) Likewise.
19802         (delete_dead_store_insn) Likewise.
19803         (free_read_records) Likewise.
19804         (record_store) Likewise.
19805         (replace_read) Likewise.
19806         (check_mem_read_rtx) Likewise.
19807         (scan_insn) Likewise.
19808         (dse_step1) Likewise.
19809         (dse_step7) Likewise.
19810
19811 2015-06-01  Martin Liska  <mliska@suse.cz>
19812
19813         * df-scan.c (struct df_scan_problem_data):Use new type-based
19814         pool allocator.
19815         (df_scan_free_internal) Likewise.
19816         (df_scan_alloc) Likewise.
19817         (df_grow_reg_info) Likewise.
19818         (df_free_ref) Likewise.
19819         (df_insn_create_insn_record) Likewise.
19820         (df_mw_hardreg_chain_delete) Likewise.
19821         (df_insn_info_delete) Likewise.
19822         (df_free_collection_rec) Likewise.
19823         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
19824         (df_sort_and_compress_mws) Likewise.
19825         (df_ref_create_structure) Likewise.
19826         (df_ref_record) Likewise.
19827
19828 2015-06-01  Martin Liska  <mliska@suse.cz>
19829
19830         * df-problems.c (df_chain_create):Use new type-based pool allocator.
19831         (df_chain_unlink_1) Likewise.
19832         (df_chain_unlink) Likewise.
19833         (df_chain_remove_problem) Likewise.
19834         (df_chain_alloc) Likewise.
19835         (df_chain_free) Likewise.
19836         * df.h (struct dataflow) Likewise.
19837
19838 2015-06-01  Martin Liska  <mliska@suse.cz>
19839
19840         * cselib.c (new_elt_list):Use new type-based pool allocator.
19841         (new_elt_loc_list) Likewise.
19842         (unchain_one_elt_list) Likewise.
19843         (unchain_one_elt_loc_list) Likewise.
19844         (unchain_one_value) Likewise.
19845         (new_cselib_val) Likewise.
19846         (cselib_init) Likewise.
19847         (cselib_finish) Likewise.
19848
19849 2015-06-01  Martin Liska  <mliska@suse.cz>
19850
19851         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
19852         (sh_reorg) Likewise.
19853
19854 2015-06-01  Martin Liska  <mliska@suse.cz>
19855
19856         * cfg.c (initialize_original_copy_tables):Use new type-based
19857         pool allocator.
19858         (free_original_copy_tables) Likewise.
19859         (copy_original_table_clear) Likewise.
19860         (copy_original_table_set) Likewise.
19861
19862 2015-06-01  Martin Liska  <mliska@suse.cz>
19863
19864         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
19865         pool allocator.
19866         (asan_mem_ref_new) Likewise.
19867         (free_mem_ref_resources) Likewise.
19868
19869 2015-06-01  Martin Liska  <mliska@suse.cz>
19870
19871         * var-tracking.c (variable_htab_free):Use new type-based
19872         pool allocator.
19873         (attrs_list_clear) Likewise.
19874         (attrs_list_insert) Likewise.
19875         (attrs_list_copy) Likewise.
19876         (shared_hash_unshare) Likewise.
19877         (shared_hash_destroy) Likewise.
19878         (unshare_variable) Likewise.
19879         (var_reg_delete_and_set) Likewise.
19880         (var_reg_delete) Likewise.
19881         (var_regno_delete) Likewise.
19882         (drop_overlapping_mem_locs) Likewise.
19883         (variable_union) Likewise.
19884         (insert_into_intersection) Likewise.
19885         (canonicalize_values_star) Likewise.
19886         (variable_merge_over_cur) Likewise.
19887         (dataflow_set_merge) Likewise.
19888         (remove_duplicate_values) Likewise.
19889         (variable_post_merge_new_vals) Likewise.
19890         (dataflow_set_preserve_mem_locs) Likewise.
19891         (dataflow_set_remove_mem_locs) Likewise.
19892         (variable_from_dropped) Likewise.
19893         (variable_was_changed) Likewise.
19894         (set_slot_part) Likewise.
19895         (clobber_slot_part) Likewise.
19896         (delete_slot_part) Likewise.
19897         (loc_exp_insert_dep) Likewise.
19898         (notify_dependents_of_changed_value) Likewise.
19899         (emit_notes_for_differences_1) Likewise.
19900         (vt_emit_notes) Likewise.
19901         (vt_initialize) Likewise.
19902         (vt_finalize) Likewise.
19903
19904 2015-06-01  Martin Liska  <mliska@suse.cz>
19905
19906         * ira-color.c (init_update_cost_records):Use new type-based
19907         pool allocator.
19908         (get_update_cost_record) Likewise.
19909         (free_update_cost_record_list) Likewise.
19910         (finish_update_cost_records) Likewise.
19911         (initiate_cost_update) Likewise.
19912
19913 2015-06-01  Martin Liska  <mliska@suse.cz>
19914
19915         * lra.c (init_insn_regs): Use new type-based pool allocator.
19916         (new_insn_reg) Likewise.
19917         (free_insn_reg) Likewise.
19918         (free_insn_regs) Likewise.
19919         (finish_insn_regs) Likewise.
19920         (init_insn_recog_data) Likewise.
19921         (init_reg_info) Likewise.
19922         (finish_reg_info) Likewise.
19923         (lra_free_copies) Likewise.
19924         (lra_create_copy) Likewise.
19925         (invalidate_insn_data_regno_info) Likewise.
19926
19927 2015-06-01  Martin Liska  <mliska@suse.cz>
19928
19929         * lra-lives.c (free_live_range): Use new type-based pool allocator.
19930         (free_live_range_list) Likewise.
19931         (create_live_range) Likewise.
19932         (copy_live_range) Likewise.
19933         (lra_merge_live_ranges) Likewise.
19934         (remove_some_program_points_and_update_live_ranges) Likewise.
19935         (lra_live_ranges_init) Likewise.
19936         (lra_live_ranges_finish) Likewise.
19937
19938 2015-06-01  Martin Liska  <mliska@suse.cz>
19939
19940         * et-forest.c (et_new_occ): Use new type-based pool allocator.
19941         (et_new_tree): Likewise.
19942         (et_free_tree): Likewise.
19943         (et_free_tree_force): Likewise.
19944         (et_free_pools): Likewise.
19945         (et_split): Likewise.
19946
19947 2015-06-01  Martin Liska  <mliska@suse.cz>
19948
19949         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
19950         to header file.
19951         * alloc-pool.h (pool_allocator::pool_allocator): New function.
19952         (pool_allocator::release): Likewise.
19953         (inline pool_allocator::release_if_empty): Likewise.
19954         (inline pool_allocator::~pool_allocator): Likewise.
19955         (pool_allocator::allocate): Likewise.
19956         (pool_allocator::remove): Likewise.
19957
19958 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19959
19960         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
19961         in comment.
19962
19963 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19964
19965         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
19966         to fusible_ops.
19967         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
19968         (arm_macro_fusion_p): Likewise.
19969         (arm_macro_fusion_pair_p): Likewise.
19970
19971 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19972
19973         * config/aarch64/aarch64-protos.h (tune_params): Rename
19974         fuseable_ops to fusible_ops.
19975         * config/aarch64/aarch64.c (generic_tunings): Rename
19976         fuseable_ops to fusible_ops.
19977         (cortexa53_tunings): Likewise.
19978         (cortexa57_tunings): Likewise.
19979         (thunderx_tunings): Likewise.
19980         (xgene1_tunings): Likewise.
19981         (aarch64_macro_fusion_p): Likewise.
19982         (aarch64_macro_fusion_pair_p): Likewise.
19983
19984 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19985
19986         * config/s390/driver-native.c: New file.
19987         * config/s390/x-native: New file.
19988         * config.host: Add new files for s390.
19989         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
19990         and -march=native
19991         * config.gcc: Likewise.
19992         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
19993         * config/s390/s390-opts.h (enum processor_type): Ditto.
19994         * config/s390/s390.c (s390_option_override): Catch unhandled
19995         PROCESSOR_NATIVE
19996
19997 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
19998
19999         PR target/65527
20000         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
20001         redirection for instrumented calls.
20002         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
20003         (append_compiler_options): Append -fcheck-pointer-bounds.
20004         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
20005         (chkp_redirect_edge): New.
20006         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
20007         (chkp_redirect_edge): New.
20008
20009 2015-06-01  Richard Biener  <rguenther@suse.de>
20010
20011         PR tree-optimization/66280
20012         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
20013         def-use walking.
20014
20015 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20016
20017         * config/aarch64/aarch64.md
20018         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
20019         logic_shift_imm.
20020
20021 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
20022
20023         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
20024         Remove obsolete kludge.
20025
20026 2015-06-01  Richard Biener  <rguenther@suse.de>
20027
20028         * tree-ssa-reassoc.c (get_rank): Simplify.
20029
20030 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
20031
20032         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
20033         * configure: Regenerated.
20034
20035 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
20036
20037         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
20038         issue (add space between string literal and macro).
20039         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
20040
20041 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
20042
20043         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
20044         implict or explicit -fPIE or -fpie.
20045
20046 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
20047
20048         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
20049
20050 2015-05-28  DJ Delorie  <dj@redhat.com>
20051
20052         * expmed.c (extract_bit_field_1): Avoid clobbering a
20053         yet-to-be-used base/index register.
20054
20055 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
20056
20057         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
20058         (alias_stats): Add num_universal.
20059         (alias_set_subset_of): Special case pointers; be ready for NULL
20060         children.
20061         (alias_sets_conflict_p): Special case pointers; be ready for NULL
20062         children.
20063         (init_alias_set_entry): Break out from ...
20064         (record_alias_subset): ... here; propagate new fields;
20065         allocate children only when really needed.
20066         (get_alias_set): Do less generous pointer globbing.
20067         (dump_alias_stats_in_alias_c): Update statistics.
20068
20069 2015-05-30  Alan Modra  <amodra@gmail.com>
20070
20071         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
20072         correct block for use of r12.
20073         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
20074
20075 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
20076
20077         PR target/66215
20078         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
20079         with -mhotpatch=.
20080
20081 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
20082
20083         PR tree-optimization/66142
20084         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
20085         virtual phis that feed themselves.
20086
20087 2015-05-29  Richard Biener  <rguenther@suse.de>
20088
20089         PR tree-optimization/66314
20090         * tree-ssa-threadupdate.c (create_block_for_threading): Add
20091         parameter that says which loop the new block belongs to.
20092         (ssa_create_duplicates): Blocks duplicated for the threaded
20093         path belong to the loop of the thread destination.
20094
20095 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20096
20097         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
20098         to cleanup-saved-temps.
20099         * doc/sourcebuild.texi (Clean up generated test files): Expand
20100         introduction.
20101         (dg-keep-saved-temps): Document new proc.
20102         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
20103         cleanup-saved-temps): Remove.
20104
20105 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
20106
20107         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
20108         gcc_AC_CHECK_DECLS.
20109         * configure: Regenerate.
20110
20111 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
20112
20113         * config/nios2/linux.h (CPP_SPEC): Define.
20114
20115 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
20116
20117         * config/microblaze/linux.h (CPP_SPEC): Define.
20118
20119 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
20120
20121         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
20122         -pthread is specified.
20123
20124 2015-05-28  Richard Biener  <rguenther@suse.de>
20125
20126         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
20127         (vect_fixup_scalar_cycles_with_patterns): Likewise.
20128         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
20129         after pattern recog.
20130         (vect_create_epilog_for_reduction): Properly handle reductions
20131         with patterns.
20132         (vectorizable_reduction): Likewise.
20133         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
20134         reduction chains.
20135         (vect_get_constant_vectors): Create the correct number of
20136         initial values for reductions.
20137         (vect_schedule_slp_instance): Handle reduction chains that are
20138         type changing properly.
20139         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
20140
20141 2015-05-28  Richard Biener  <rguenther@suse.de>
20142
20143         PR tree-optimization/66142
20144         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
20145         values better in memcpy destination handling.  Handle non-aliasing
20146         we discover here.
20147
20148 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
20149
20150         PR target/63810
20151         * config/darwin-c.c (version_components): New global enum.
20152         (parse_version, version_as_legacy_macro)
20153         (version_as_modern_macro, macosx_version_as_macro): New functions.
20154         (version_as_macro): Remove.
20155         (darwin_cpp_builtins): Use new function.
20156
20157 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
20158
20159         * builtins.c (expand_builtin_acc_on_device): Mark parameters
20160         with ATTRIBUTE_UNUSED.
20161
20162 2015-05-28  Julian Brown  <julian@codesourcery.com>
20163
20164         PR libgomp/65742
20165
20166         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
20167         sequence for !ACCEL_COMPILER.
20168
20169 2015-05-28  Nick Clifton  <nickc@redhat.com>
20170
20171         * config/rx/rx.c (push_regs): New function.  Extracts code from...
20172         (rx_expand_prologue): ... here.  Use push_regs to push even small
20173         spans of registers.
20174         (pop_regs): New function.
20175         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
20176         registers.
20177
20178 2015-05-28  Richard Biener  <rguenther@suse.de>
20179
20180         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
20181         member.
20182         (SLP_INSTANCE_BODY_COST_VEC): Remove.
20183         (vect_update_slp_costs_according_to_vf): Likewise.
20184         (vect_slp_analyze_operations): Update prototype.
20185         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
20186         vect_update_slp_costs_according_to_vf, adjust.
20187         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
20188         (vect_analyze_slp_cost_1): Likewise.
20189         (vect_analyze_slp_cost): Likewise.  Properly deal with
20190         widening reduction ops.  Commit body costs.
20191         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
20192         cost for loops from here.
20193         (vect_slp_analyze_operations): But do it from here when
20194         the vectorization factor is known and stmts are analyzed.
20195         (vect_bb_vectorization_profitable_p): Simplify.
20196         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
20197         (vect_update_slp_costs_according_to_vf): Remove.
20198
20199 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
20200             H.J. Lu  <hongjiu.lu@intel.com>
20201
20202         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
20203         (BUILD_CFLAGS): Likewise.
20204         (BUILD_CXXFLAGS): Likewise.
20205         (LINKER): Add @NO_PIE_FLAG@.
20206         (BUILD_LDFLAGS): Likewise.
20207         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
20208         --enable-default-pie.
20209         * common.opt (fPIE): Initialize to -1.
20210         (fpie): Likewise.
20211         (no-pie): New option.
20212         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
20213         * configure.ac: Add --enable-default-pie.
20214         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
20215         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
20216         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
20217         * gcc.c (NO_PIE_SPEC): New.
20218         (PIE_SPEC): Likewise.
20219         (NO_FPIE1_SPEC): Likewise.
20220         (FPIE1_SPEC): Likewise.
20221         (NO_FPIE2_SPEC): Likewise.
20222         (FPIE2_SPEC): Likewise.
20223         (NO_FPIE2_SPEC): Likewise.
20224         (FPIE_SPEC): Likewise.
20225         (NO_FPIE_SPEC): Likewise.
20226         (NO_FPIC1_SPEC): Likewise.
20227         (FPIC1_SPEC): Likewise.
20228         (NO_FPIC2_SPEC): Likewise.
20229         (FPIC2_SPEC): Likewise.
20230         (NO_FPIC2_SPEC): Likewise.
20231         (FPIC_SPEC): Likewise.
20232         (NO_FPIC_SPEC): Likewise.
20233         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
20234         (FPIE1_OR_FPIC1_SPEC): Likewise.
20235         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
20236         (FPIE2_OR_FPIC2_SPEC): Likewise.
20237         (NO_FPIE_AND_FPIC_SPEC): Likewise.
20238         (FPIE_OR_FPIC_SPEC): Likewise.
20239         (LD_PIE_SPEC): Likewise.
20240         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
20241         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
20242         * config/darwin.h (PIE_SPEC): Renamed to ...
20243         (DARWIN_PIE_SPEC): This.
20244         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
20245         * config/darwin9.h (PIE_SPEC): Renamed to ...
20246         (DARWIN_PIE_SPEC): This.
20247         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
20248         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
20249         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
20250         FPIE2_OR_FPIC2_SPEC.
20251         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
20252         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
20253         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
20254         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20255         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20256         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20257         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
20258         * config/m32r/m32r.h (ASM_SPEC): Likewise.
20259         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
20260         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20261         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
20262         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
20263         * config/sparc/linux.h (ASM_SPEC): Likewise.
20264         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20265         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
20266         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
20267         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20268         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20269         * config/sparc/sparc.h (ASM_SPEC): Likewise.
20270         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
20271         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
20272         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
20273         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
20274         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
20275         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
20276         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
20277         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
20278         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
20279         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
20280         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
20281         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
20282         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20283         * config/vax/linux.h (ASM_SPEC): Likewise.
20284         * doc/install.texi: Document --enable-default-pie.
20285         * doc/invoke.texi: Document -no-pie.
20286         * config.in: Regenerated.
20287         * configure: Likewise.
20288
20289 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20290
20291         PR rtl-optimization/66168
20292         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
20293         can_move_invariant_reg.
20294
20295 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
20296
20297         PR target/66148
20298         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
20299         REG_EQUAL note when doing insert.
20300
20301         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
20302         instead of "%d" for 'o' operand.
20303
20304 2015-05-27  Nathan Sidwell  <nathan@acm.org>
20305
20306         PR c++/66270
20307         * tree.c (build_pointer_type_for_mode): Canonical type does not
20308         inherit can_alias_all.
20309         (build_reference_type_for_mode): Likewise.
20310
20311 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
20312
20313         * expr.h (array_at_struct_end_p): Move to...
20314         (array_ref_element_size): Likewise.
20315         (component_ref_field_offset): Likewise.
20316         * tree.h (array_ref_element_size): ...here.
20317         (array_at_struct_end_p): Likewise.
20318         (component_ref_field_offset): Likewise.
20319         * expr.c (array_ref_element_size): Move to...
20320         (array_ref_low_bound): Likewise.
20321         (array_at_struct_end_p): Likewise.
20322         (array_ref_up_bound): Likewise.
20323         (component_ref_field_offset): Likewise.
20324         * tree.c (array_ref_element_size): ...here.
20325         (array_ref_low_bound): Likewise.
20326         (array_ref_up_bound): Likewise.
20327         (array_at_struct_end_p): Likewise.
20328         (component_ref_field_offset): Likewise.
20329
20330 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20331             Szabolcs Nagy  <szabolcs.nagy@arm.com>
20332
20333         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
20334
20335 2015-05-27  Jason Merrill  <jason@redhat.com>
20336
20337         PR bootstrap/66304
20338         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
20339         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
20340         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
20341
20342 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
20343
20344         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
20345         is true.
20346
20347         * statistics.c (statistics_fini_pass): Print pass name.
20348
20349 2015-05-27  Richard Biener  <rguenther@suse.de>
20350
20351         PR tree-optimization/66272
20352         Revert parts of
20353         2014-08-15  Richard Biener  <rguenther@suse.de>
20354
20355         PR tree-optimization/62031
20356         * tree-data-ref.c (dr_analyze_indices): Do not set
20357         DR_UNCONSTRAINED_BASE.
20358         (dr_may_alias_p): All indirect accesses have to go the
20359         formerly DR_UNCONSTRAINED_BASE path.
20360         * tree-data-ref.h (struct indices): Remove
20361         unconstrained_base member.
20362         (DR_UNCONSTRAINED_BASE): Remove.
20363
20364 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
20365
20366         * dwarf2out.c: Remove block_map.
20367         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
20368         (gen_lexical_block_die): Same.
20369         (dwarf2out_function_decl): Remove block_map use.
20370         (dwarf2out_c_finalize): Same.
20371         * tree-core.h (struct tree_block): Add die field.
20372         * tree.h (BLOCK_DIE): New.
20373
20374 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20375
20376         PR target/65358
20377         * expr.c (memory_load_overlap): New function.
20378         (emit_push_insn): When pushing partial args to the stack would
20379         clobber the register part load the overlapping part into a pseudo
20380         and put it into the hard reg after pushing.  Change return type
20381         to bool.  Add bool argument.
20382         * expr.h (emit_push_insn): Change return type to bool.
20383         Add bool argument.
20384         * calls.c (expand_call): Cancel sibcall optimization when encountering
20385         partial argument on targets with ARGS_GROW_DOWNWARD and
20386         !STACK_GROWS_DOWNWARD.
20387         (emit_library_call_value_1): Update callsite of emit_push_insn.
20388         (store_one_arg): Likewise.
20389
20390 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20391
20392         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
20393
20394 2015-05-27  Martin Liska  <mliska@suse.cz>
20395
20396         * Makefile.in: Add additional dependencies related to memory report
20397         enhancement.
20398         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
20399         * bitmap.c (struct bitmap_descriptor_d): Remove.
20400         (struct loc): Likewise.
20401         (struct bitmap_desc_hasher): Likewise.
20402         (bitmap_desc_hasher::hash): Likewise.
20403         (bitmap_desc_hasher::equal): Likewise.
20404         (get_bitmap_descriptor): Likewise.
20405         (bitmap_register): User new memory descriptor API.
20406         (register_overhead): Likewise.
20407         (bitmap_find_bit): Register nsearches and search_iter statistics.
20408         (struct bitmap_output_info): Remove.
20409         (print_statistics): Likewise.
20410         (dump_bitmap_statistics): Use new memory descriptor.
20411         * bitmap.h (struct bitmap_usage): New class.
20412         * genmatch.c: Extend header file inclusion.
20413         * genpreds.c: Likewise.
20414         * ggc-common.c (struct ggc_usage): New class.
20415         (struct ggc_loc_desc_hasher): Remove.
20416         (ggc_loc_desc_hasher::hash): Likewise.
20417         (ggc_loc_desc_hasher::equal): Likewise.
20418         (struct ggc_ptr_hash_entry): Likewise.
20419         (struct ptr_hash_hasher): Likewise.
20420         (ptr_hash_hasher::hash): Likewise.
20421         (ptr_hash_hasher::equal): Likewise.
20422         (make_loc_descriptor): Likewise.
20423         (ggc_prune_ptr): Likewise.
20424         (dump_ggc_loc_statistics): Use new memory descriptor.
20425         (ggc_record_overhead): Likewise.
20426         (ggc_free_overhead): Likewise.
20427         (final_cmp_statistic): Remove.
20428         (cmp_statistic): Likewise.
20429         (ggc_add_statistics): Liekwise.
20430         (ggc_prune_overhead_list): Likewise.
20431         * hash-map-traits.h: New file.
20432         * hash-map.h (struct default_hashmap_traits): Move the traits to a
20433         separate header file.
20434         * hash-set.h: Pass memory statistics info to ctor.
20435         * hash-table.c (void dump_hash_table_loc_statistics): New function.
20436         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
20437         (hash_table::~hash_table): Register memory release operation.
20438         (hash_table::alloc_entries): Handle memory allocation operation.
20439         (hash_table::expand): Likewise.
20440         * inchash.c (iterative_hash_hashval_t): Move implementation to header
20441         file.
20442         (iterative_hash_host_wide_int): Likewise.
20443         * inchash.h (class hash): Likewise.
20444         * mem-stats-traits.h: New file.
20445         * mem-stats.h: New file.
20446         (mem_location): Add new class.
20447         (mem_usage): Likewise.
20448         (mem_alloc_description): Likewise.
20449         * sese.c: Add new header file inclusision.
20450         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
20451         and hash_set.
20452         * tree-sra.c: Add new header file inclusision.
20453         * vec.c (struct vec_descriptor): Remove.
20454         (hash_descriptor): Likewise.
20455         (struct vec_usage): Likewise.
20456         (struct ptr_hash_entry): Likewise.
20457         (hash_ptr): Likewise.
20458         (eq_ptr): Likewise.
20459         (vec_prefix::register_overhead): Use new memory descriptor API.
20460         (vec_prefix::release_overhead): Likewise.
20461         (add_statistics): Remove.
20462         (dump_vec_loc_statistics): Use new memory descriptor API.
20463         * vec.h (struct vec_prefix): Likewise.
20464         (va_heap::reserve): Likewise.
20465         (va_heap::release): Likewise.
20466         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
20467
20468 2015-05-27  Richard Biener  <rguenther@suse.de>
20469
20470         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
20471         earlier and remove ??? comment.
20472         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
20473         and got called from loop analysis bail out.  Always pass the SLP
20474         node to the vectorizable_* functions.
20475         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
20476         the premature SLP check here.
20477         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
20478         detected SLP stmts.
20479         (vect_detect_hybrid_slp_1): Likewise.
20480
20481 2015-05-26  Jeff Law  <law@redhat.com>
20482
20483         * combine.c (find_split_point): Verify that the shift count is a
20484         constant when choosing (plus (ashift ...)) as a split point.
20485
20486         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
20487         No functional changes.
20488
20489 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
20490
20491         * ipa-polymorphic-call.c
20492         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
20493         case when call target is already known.
20494
20495 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
20496
20497         PR target/65979
20498         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
20499         take into account the case that operands[1] and operands[2]
20500         are the same register.
20501
20502 2015-05-26  Michael Matz  <matz@suse.de>
20503
20504         PR middle-end/66251
20505
20506         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
20507         stores.
20508         (vect_create_vectorized_demotion_stmts): Always set
20509         STMT_VINFO_VEC_STMT, also with SLP.
20510         (vectorizable_store): Handle strided group stores.
20511
20512 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20513
20514         PR target/66049
20515         * config/aarch64/aarch64.md
20516         (*adds_shift_imm_<mode>):  New pattern.
20517         (*subs_shift_imm_<mode>):  Likewise.
20518         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
20519         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
20520         (*add_uxt<mode>_shift2): Likewise.
20521         (*add_uxtsi_shift2_uxtw): Likewise.
20522         (*sub_uxt<mode>_shift2): Likewise.
20523         (*sub_uxtsi_shift2_uxtw): Likewise.
20524
20525 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
20526
20527         * config/rs6000/constraints.md (Y, U): Use match_test.
20528
20529 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20530
20531         PR target/52144
20532         * config/arm/arm.c (arm_option_check_internal)
20533         (arm_option_params_internal): Check opts->target_flags to set macros.
20534         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20535         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
20536         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20537         (builtin_define): Replaced with def_or_undef_macro.
20538         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20539         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
20540         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20541         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
20542         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
20543         (TARGET_ARM_FEATURE_LDREX_P)
20544         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
20545         * config/arm/arm-c.c (def_or_undef_macro): New function.
20546         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
20547
20548 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20549
20550         * c-common.h (builtin_define_with_int_value)
20551         (builtin_define_type_sizeof): Declare.
20552         * c-cppbuiltin.c (builtin_define_with_int_value)
20553         (builtin_define_type_sizeof): Externalize.
20554         (builtin_define_std): Cleanup declaration.
20555         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
20556         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
20557         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
20558         (builtin_define, builtin_assert): New macros.
20559
20560 2015-05-26  Richard Biener  <rguenther@suse.de>
20561
20562         PR tree-optimization/66142
20563         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
20564         MEM_REFs for the same base address.
20565
20566 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20567
20568         PR ipa/66181
20569         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
20570
20571 2015-05-26  Jason Merrill  <jason@redhat.com>
20572
20573         * configure.ac: Set CXXFLAGS for ISL test.
20574         * configure: Regenerate.
20575
20576         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
20577         strstr and basename.
20578         * configure: Regenerate.
20579
20580 2015-05-26  Richard Biener  <rguenther@suse.de>
20581
20582         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
20583         X % C -> X & (C - 1) for C being a power-of two to ...
20584         * match.pd: ... patterns.
20585
20586 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
20587
20588         * match.pd (swapped_tcc_comparison): New operator list.
20589         (-A CMP -B): New simplification.
20590         * fold-const.c (fold_comparison): Remove corresponding code.
20591
20592 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20593
20594         * caller-save.c (init_caller_save): Base temporary register numbers
20595         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
20596         * cfgloopanal.c (init_set_costs): Likewise.
20597         * dojump.c (prefer_and_bit_test): Likewise.
20598         * expr.c (init_expr_target): Likewise.
20599         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20600         * lower-subreg.c (init_lower_subreg): Likewise.
20601         * postreload.c (reload_cse_regs_1): Likewise.
20602
20603 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20604
20605         * gensupport.h (compute_test_codes): Declare.
20606         * gensupport.c (compute_predicate_codes): Rename to...
20607         (compute_test_codes): ...this.  Generalize error message.
20608         (process_define_predicate): Update accordingly.
20609         * genpreds.c (compute_maybe_allows): Delete.
20610         (add_constraint): Use compute_test_codes to determine whether
20611         something can accept a SUBREG, REG or MEM.
20612
20613 2015-05-26  Torvald Riegel  <triegel@redhat.com>
20614
20615         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
20616         'memory model' to align with C++11; fix description of memory orders;
20617         fix a few typos.
20618
20619 2015-05-26  Richard Biener  <rguenther@suse.de>
20620
20621         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
20622         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
20623         detect whether we apply SLP.  Remove call to
20624         vect_update_slp_costs_according_to_vf.
20625         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
20626         vect_update_slp_costs_according_to_vf from here.  Dispatch
20627         to vect_slp_analyze_operations to analyze SLP stmts.
20628         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
20629         unused bb_vec_info parameter, adjust assert.
20630         (vect_slp_analyze_operations): Pass in the slp instance tree
20631         instead of bb_vec_info.
20632         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
20633         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
20634
20635 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20636
20637         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
20638         Q_REGS.  Expand comment.
20639         (REG_CLASS_NAMES): Ditto.
20640         (REG_CLASS_CONTENTS): Ditto.
20641
20642 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
20643
20644         PR target/66274
20645         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
20646         when LEGACY_INT_REGNO_P is processed.
20647
20648 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20649
20650         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
20651
20652 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
20653
20654         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
20655         register if not marked dead/unused, before return.
20656
20657 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20658
20659         PR lto/66180
20660         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
20661         is set; check for assembler name at LTO time.
20662         (type_in_anonymous_namespace): Remove hacks, check that all
20663         anonymous types are called "<anon>"
20664         (odr_type_p): Simplify; add check for "<anon>"
20665         (odr_subtypes_equivalent): Add odr_type_p check.
20666         * tree.c (need_assembler_name_p): Even anonymous namespace needs
20667         assembler name.
20668
20669 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20670
20671         * ipa-utils.h (method_class_type): Remove.
20672         * cgraphunit.c (walk_polymorphic_call_targets): Use
20673         TYPE_METHOD_BASETYPE.
20674         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
20675         on main variants only.
20676         (method_class_type): Remove.
20677         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
20678         (build_type_inheritance_graph): Likewise.
20679         * ipa-icf.c (sem_function::equals_wpa): Likewise.
20680         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
20681         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
20682
20683 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20684
20685         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
20686         is_typedef_decl, typedef_variant_p): Constify.
20687         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
20688         is_typedef_decl, typedef_variant_p): Constify.
20689
20690 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20691
20692         * defaults.h (gen_tablejump): New function.
20693         (HAVE_tablejump): Add default value.
20694         * expr.c: Adjust.
20695         * stmt.c: Likewise.
20696
20697 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20698
20699         * defaults.h (gen_store_multiple): New function.
20700         (HAVE_store_multiple): Add default value.
20701         * expr.c (move_block_from_reg): Adjust.
20702
20703 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20704
20705         * defaults.h (gen_load_multiple): New function.
20706         (HAVE_load_multiple): Add default value.
20707         * expr.c (move_block_to_reg): Adjust.
20708
20709 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20710
20711         * defaults.h (gen_mem_signal_fence): New function.
20712         (HAVE_mem_signal_fence): Add default value.
20713         * optabs.c: Adjust.
20714
20715 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20716
20717         * defaults.h (gen_memory_barrier): New function.
20718         (HAVE_memory_barrier): Add default value.
20719         * optabs.c: Adjust.
20720
20721 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20722
20723         * defaults.h (gen_mem_thread_fence): New function.
20724         (HAVE_mem_thread_fence): Add default definition.
20725         * optabs.c: Adjust.
20726
20727 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20728
20729         * combine.c (find_split_point): Check the value of HAVE_lo_sum
20730         instead of if it is defined.
20731         (combine_simplify_rtx): Likewise.
20732         * lra-constraints.c (process_address_1): Likewise.
20733         * config/darwin.c: Adjust.
20734         * genconfig.c (main): Always define HAVE_lo_sum.
20735
20736 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20737
20738         * genmatch.c (parser::parse_operation): Reject expanding
20739         operator-list inside 'for'.
20740
20741 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20742
20743         * genmatch.c (parser::parse_for): Reject iterator if used as
20744         operator-list.
20745
20746 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20747
20748         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
20749         after end of id-list.
20750
20751 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20752
20753         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
20754         we do not try to compute canonical type for type that does not need
20755         alias set.
20756         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
20757         FUNCITON_TYPE.
20758         * tree.h (type_with_alias_set_p): New.
20759
20760 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20761
20762         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
20763         function attributes.
20764         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
20765
20766 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
20767
20768         * Makefile.in (check_gcc_parallelize): Delete.
20769         (lang_checks_parallelized): Update comment.
20770
20771 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
20772
20773         PR rtl-optimization/66237
20774         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
20775         location of an "as_a" cast.
20776
20777 2015-05-22  Jeff Law  <law@redhat.com>
20778
20779         * config/pa/pa.md (non-canonical shift-add insns): Remove.
20780         (peepholes with non-canonical RTL sources): Remove.
20781         (peepholes for indexed stores of FP regs in integer modes): Match and
20782         generate canonical RTL.
20783
20784 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20785
20786         PR tree-optimization/63387
20787         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
20788         ((x ord x) & (y ord y) -> (x ord y),
20789         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20790         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
20791         vectors like scalars.
20792
20793 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20794
20795         * convert.c (convert_to_integer, convert_to_vector): Include the
20796         types in the error message.
20797
20798 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20799
20800         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
20801         simplifications.
20802
20803 2015-05-22  Jeff Law  <law@redhat.com>
20804
20805         * config/pa/pa.md (integer_indexed_store splitters): Use
20806         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
20807         insns -- adjusting the constant 2nd operand accordingly.
20808
20809         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
20810         (plus (ashift X log2) Y) if it is a split point.
20811
20812         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
20813         out of hppa_legitimize_address to handle both forms of a multiply
20814         by 2, 4 or 8.
20815         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
20816         Always generate the ASHIFT variant as the result is not directly
20817         used in a MEM.  Update comments and refactor slightly to improve
20818         readability.
20819
20820 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20821
20822         PR target/65491
20823         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
20824         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
20825         (aarch64_composite_type_p): Return false if given type and mode are
20826         for a short vector.
20827
20828 2015-05-22  Richard Biener  <rguenther@suse.de>
20829
20830         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
20831         member.
20832         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
20833         patterns when determining whether SLP is pure.
20834         (vect_is_slp_reduction): Remove check for pattern stmts.
20835         (vect_is_simple_reduction_1): Remove dead code.
20836         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
20837         (vect_get_and_check_slp_defs): Pass in the stmt number.
20838         Allow the first def in a reduction to be not a pattern stmt when
20839         the rest of the stmts def are patterns.
20840         (vect_build_slp_tree_1): Allow tcc_expression codes like
20841         SAD_EXPR and DOT_PROD_EXPR.
20842         (vect_build_slp_tree): Adjust.
20843         (vect_analyze_slp): Refactor and move BB vect error message ...
20844         (vect_slp_analyze_bb_1): ... here.
20845
20846 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
20847
20848         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
20849         for CSWTCH temporary.
20850
20851 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20852
20853         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
20854         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
20855         unknown unspecs.
20856
20857 2015-05-22  Richard Biener  <rguenther@suse.de>
20858
20859         PR tree-optimization/66251
20860         * tree-vect-stmts.c (vectorizable_conversion): Properly
20861         set STMT_VINFO_VEC_STMT even for the SLP case.
20862
20863 2015-05-22  Marek Polacek  <polacek@redhat.com>
20864
20865         * doc/extend.texi: Use @pxref instead of @xref.
20866
20867 2015-05-22  hiraditya  <hiraditya@msn.com>
20868
20869         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
20870         redundant if.
20871
20872 2015-05-22  Richard Biener  <rguenther@suse.de>
20873
20874         PR tree-optimization/65701
20875         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20876         Move peeling cost models into one place.  Peel for alignment
20877         for single loads only if an aligned load is cheaper than
20878         an unaligned load.
20879
20880 2015-05-22  Marek Polacek  <polacek@redhat.com>
20881
20882         PR c/47043
20883         * doc/extend.texi (Enumerator Attributes): New section.
20884         Document syntax of enumerator attributes.
20885
20886 2015-05-22  Richard Biener  <rguenther@suse.de>
20887
20888         * tree-vect-loop.c (get_reduction_op): New function.
20889         (vect_model_reduction_cost): Use it, add reduc_index parameter.
20890         Make ready for BB reductions.
20891         (vect_create_epilog_for_reduction): Use get_reduction_op.
20892         (vectorizable_reduction): Init reduc_index to a valid value.
20893         Adjust vect_model_reduction_cost call.
20894         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
20895         operand for reduction defaults.  Add SAD_EXPR support.
20896         Assert we have a neutral op for SLP reductions.
20897         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
20898         walking pattern stmt ops only recurse to SSA names.
20899
20900 2015-05-22  Richard Biener  <rguenther@suse.de>
20901
20902         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
20903         assert with guard, remove check on detected reduction.
20904         (vect_recog_sad_pattern): Likewise.
20905         (vect_recog_widen_sum_pattern): Likewise.
20906
20907 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20908
20909         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
20910         __always_inline__ attribute.
20911         (vaesdq_u8): Likewise.
20912         (vaesmcq_u8): Likewise.
20913         (vaesimcq_u8): Likewise.
20914         (vsha1cq_u32): Likewise.
20915         (vsha1mq_u32): Likewise.
20916         (vsha1pq_u32): Likewise.
20917         (vsha1h_u32): Likewise.
20918         (vsha1su0q_u32): Likewise.
20919         (vsha1su1q_u32): Likewise.
20920         (vsha256hq_u32): Likewise.
20921         (vsha256h2q_u32): Likewise.
20922         (vsha256su0q_u32): Likewise.
20923         (vsha256su1q_u32): Likewise.
20924         (vmull_p64): Likewise.
20925         (vmull_high_p64): Likewise.
20926
20927 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20928
20929         * final.c (final_scan_insn): Don't check HAVE_peephole with the
20930         preprocessor.
20931         * output.h: Likewise.
20932         * genconfig.c (main): Alwways define HAVE_peephole.
20933         * genpeep.c: Don't emit checks of HAVE_peephole.
20934
20935 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20936
20937         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
20938         check HAVE_conditional_move with the preprocessor.
20939
20940 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20941
20942         * genconfig.c (main): Always define HAVE_conditional_move.
20943         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
20944         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
20945         is defined.
20946
20947 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20948
20949         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
20950         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
20951         and FRAME_POINTER_REGNUM with the preprocessor.
20952
20953 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20954
20955         * defaults.h: Add default for STACK_PUSH_CODE.
20956         * expr.c: Don't redefine STACK_PUSH_CODE.
20957         * recog.c: Likewise.
20958
20959 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20960
20961         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
20962         sched-deps.c: Use if instead of preprocessor checks with
20963         STACK_GROWS_DOWNWARD.
20964
20965 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20966
20967         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
20968         is defined.
20969         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
20970         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
20971         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
20972         * doc/tm.texi: Regenerate.
20973
20974 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
20975
20976         PR target/66232
20977         * config/i386/constraints.md (Bg): New constraint for GOT memory
20978         operand.
20979         * config/i386/i386.md (*call_got_x32): New pattern.
20980         (*call_value_got_x32): Likewise.
20981         * config/i386/predicates.md (GOT_memory_operand): New predicate.
20982
20983 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
20984
20985         PR tree-optimization/66233
20986         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
20987         Simplify.
20988
20989 2015-05-21  Jeff Law  <law@redhat.com>
20990
20991         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
20992         than MULT for shadd sequences.
20993
20994 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
20995
20996         * alias.c (alias_stats): New static var.
20997         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
20998         (dump_alias_stats_in_alias_c): New function.
20999         * alias.h (dump_alias_stats_in_alias_c): Declare.
21000         * tree-ssa-alias.c (dump_alias_stats): Call it.
21001
21002 2015-05-08  Michael Matz  <matz@suse.de>
21003
21004         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
21005         to strided_p.
21006         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
21007         (STMT_VINFO_STRIDED_P): ... this.
21008         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
21009         (vect_verify_datarefs_alignment): Likewise.
21010         (vect_enhance_data_refs_alignment): Likewise.
21011         (vect_analyze_data_ref_access): Likewise.
21012         (vect_analyze_data_refs): Accept strided stores.
21013         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
21014         (vect_model_load_cost): Adjust for macro rename.
21015         (vectorizable_mask_load_store): Likewise.
21016         (vectorizable_load): Likewise.
21017         (vectorizable_store): Open code strided stores.
21018
21019 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21020
21021         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
21022         Document sqrt_insn.
21023
21024 2015-05-21  Richard Biener  <rguenther@suse.de>
21025
21026         PR c++/66211
21027         * match.pd: Guard pattern optimzing (int)(float)int
21028         conversions to apply only on GIMPLE.
21029
21030 2015-05-21  Jeff Law  <law@redhat.com>
21031
21032         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
21033         multiply-accumulate/shift-add insn generation.
21034
21035 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
21036
21037         PR target/54236
21038         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
21039         operands[1] are the same.
21040
21041 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
21042
21043         PR middle-end/66221
21044         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
21045         build_distinct_type_copy to copy bounds.
21046
21047 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
21048
21049         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
21050         Change to unsigned int.
21051
21052 2015-05-20  Jeff Law  <law@redhat.com>
21053
21054         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
21055         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
21056         (pa_shadd_constant_p): Allow constants for shadd insns rather
21057         than valid scaling constants for memory addresses.
21058         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
21059         * config/pa/predicates.md (mem_shadd_operand): New predicate.
21060         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
21061         (shift-add insns using ASHIFT): New patterns.
21062
21063 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
21064
21065         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
21066         feasible.
21067         (fix_up_fall_thru_edges): Likewise.
21068         (fix_crossing_conditional_branches): Likewise. Promote jump targets
21069         from to rtx_insn to rtx_code_label where feasible.
21070         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
21071         gen_move_insn (returned type changed to rtx_insn).
21072         * builtins.c (expand_errno_check): Fix arguments of
21073         do_compare_rtx_and_jump (now expects rtx_code_label).
21074         (expand_builtin_acc_on_device): Likewise.
21075         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
21076         invert_jump (now exprects rtx_jump_insn).
21077         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
21078         (construct_init_block): Use rtx_code_label.
21079         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
21080         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
21081         calling redirect_jump.
21082         (patch_jump_insn): Likewise.
21083         (redirect_branch_edge): Likewise.
21084         (force_nonfallthru_and_redirect): Likewise.
21085         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
21086         when suitable.
21087         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
21088         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
21089         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
21090         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
21091         to store the value retured by gen_label_rtx.
21092         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
21093         rtx_jump_insn.
21094         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
21095         (split_branches): Fix calls of redirect_jump.
21096         * dojump.c (jumpifnot): Promote argument type from rtx to
21097         rtx_code_label.
21098         (jumpifnot_1): Likewise.
21099         (jumpif): Likewise.
21100         (jumpif_1): Likewise.
21101         (do_jump_1): Likewise.
21102         (do_jump): Likewise. Use rtx_code_label when feasible.
21103         (do_jump_by_parts_greater_rtx): Likewise.
21104         (do_jump_by_parts_zero_rtx): Likewise.
21105         (do_jump_by_parts_equality_rtx): Likewise.
21106         (do_compare_rtx_and_jump): Likewise.
21107         * dojump.h: Update function prototypes.
21108         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
21109         returns rtx_insn).
21110         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
21111         rtx_jump_insn.
21112         (emit_label_before): Likewise.
21113         (emit_jump_insn_after_noloc): Likewise.
21114         (emit_jump_insn_after_setloc): Likewise.
21115         (emit_jump_insn_after): Likewise
21116         (emit_jump_insn_before_setloc): Likewise.
21117         (emit_jump_insn_before): Likewise.
21118         (emit_label_before): Promote return type to rtx_code_label.
21119         (emit_label): Likewise.
21120         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
21121         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
21122         gen_move_insn.
21123         (emit_stack_restore): Likewise.
21124         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
21125         (do_cmp_and_jump): Likewise.
21126         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
21127         from rtx to rtx_code_label.
21128         (gen_move_insn_uncast): New function.
21129         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
21130         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
21131         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
21132         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
21133         invert_jump_1 and redirect_jump_1.
21134         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
21135         do_compare_rtx_and_jump.
21136         (expand_addsub_overflow): Likewise.
21137         (expand_neg_overflow): Likewise.
21138         (expand_mul_overflow): Likewise.
21139         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
21140         return value of gen_move_insn.
21141         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
21142         * loop-doloop.c (add_test): Use rtx_code_label.
21143         (doloop_modify): Likewise.
21144         (doloop_optimize): Likewise.
21145         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
21146         * lra-constraints.c (emit_spill_move): Remove cast of value returned
21147         by gen_move_insn.
21148         (inherit_reload_reg): Add cast when calling dump_insn_slim.
21149         (split_reg): Likewise.
21150         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
21151         gen_move_insn.
21152         * optabs.c (expand_binop_directly): Remove casts of values returned by
21153         maybe_gen_insn.
21154         (expand_unop_direct): Likewise.
21155         (expand_abs): Likewise.
21156         (maybe_emit_unop_insn): Likewise.
21157         (maybe_gen_insn): Promote return type to rtx_insn.
21158         * optabs.h: Update prototype of maybe_gen_insn.
21159         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
21160         redundant cast.
21161         * recog.c (struct peep2_insn_data): Promote type of insn field to
21162         rtx_insn.
21163         (peep2_reinit_state): Use NULL instead of NULL_RTX.
21164         (peep2_attempt): Remove casts of insn in peep2_insn_data.
21165         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
21166         * recog.h (struct insn_gen_fn): Promote return types of function
21167         pointers and operator ().from rtx to rtx_insn.
21168         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
21169         (fill_eager_delay_slots): Likewise.
21170         (relax_delay_slots): Likewise.
21171         (make_return_insns): Likewise.
21172         (dbr_schedule): Likewise.
21173         (optimize_skips): Likewise.
21174         (reorg_redirect_jump): Likewise.
21175         (fill_slots_from_thread): Likewise.
21176         * reorg.h: Update prototypes.
21177         * resource.c (find_dead_or_set_registers): Use dyn_cast to
21178         rtx_jump_insn instead of check.  Use it's jump_target method.
21179         * rtl.h (rtx_jump_insn::jump_label): Define new method.
21180         (rtx_jump_insn::jump_target): Define new method.
21181         (rtx_jump_insn::set_jump_target): Define new method.
21182         * rtlanal.c (tablejump_p): Promote type of one local variable.
21183         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
21184         (sched_analyze_insn): Likewise.
21185         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
21186         (print_insn): Likewise.
21187         * stmt.c (label_rtx): Promote return type to rtx_insn.
21188         (force_label_rtx): Likewise.
21189         (jump_target_rtx): Define new function.
21190         (expand_label): Use it, get rid of one cast.
21191         (expand_naked_return): Promote rtx to rtx_code_label.
21192         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
21193         (expand_case): Use rtx_code_label instread of rtx where feasible.
21194         (expand_sjlj_dispatch_table): Likewise.
21195         (emit_case_nodes): Likewise.
21196         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
21197         * store-motion.c (insert_store): Make use of new return type of
21198         gen_move_insn and remove a cast.
21199         (replace_store_insn): Likewise.
21200
21201 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
21202
21203         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
21204         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
21205
21206 2015-05-20  Jeff Law  <law@redhat.com>
21207
21208         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
21209         dispose of the jump thread path when the jump threading
21210         opportunity is cancelled.
21211
21212 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21213
21214         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
21215         when printing the caret character.
21216
21217 2015-05-20  Marek Polacek  <polacek@redhat.com>
21218
21219         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
21220
21221 2015-05-20  Marek Polacek  <polacek@redhat.com>
21222
21223         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
21224         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
21225         * gimple-fold.c (canonicalize_bool): Likewise.
21226         (same_bool_result_p): Likewise.
21227         * tree-if-conv.c (parse_predicate): Likewise.
21228
21229 2015-05-20  Marek Polacek  <polacek@redhat.com>
21230
21231         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
21232         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
21233
21234 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21235
21236         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
21237         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
21238         values.
21239
21240 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
21241
21242         * config/mips/mips.h (micromips_globals): Declare.
21243
21244 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
21245
21246         * timevar.def (TV_INITIALIZE_RTL): New.
21247         * toplev.c (initialize_rtl): Use an auto_timevar to account this
21248         function's time to TV_INITIALIZE_RTL.
21249
21250 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
21251
21252         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
21253         gimple_build_nop calls.
21254         (chkp_find_bounds_for_elem): Likewise.
21255         (chkp_get_zero_bounds): Likewise.
21256         (chkp_get_none_bounds): Likewise.
21257         (chkp_get_bounds_by_definition): Likewise.
21258         (chkp_generate_extern_var_bounds): Likewise.
21259         (chkp_get_bounds_for_decl_addr): Likewise.
21260         (chkp_get_bounds_for_string_cst): Likewise.
21261
21262 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
21263
21264         PR tree-optimization/65447
21265         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
21266         (dump_use, dump_uses): Support to dump sub use.
21267         (record_use): New parameters to support sub use.  Remove call to
21268         dump_use.
21269         (record_sub_use, record_group_use): New functions.
21270         (compute_max_addr_offset, split_all_small_groups): New functions.
21271         (group_address_uses, rewrite_use_address): New functions.
21272         (strip_offset): New declaration.
21273         (find_interesting_uses_address): Call record_group_use.
21274         (add_candidate): New assertion.
21275         (infinite_cost_p): Move definition forward.
21276         (add_costs): Check INFTY cost and return immediately.
21277         (get_computation_cost_at): Clear setup cost and dependent bitmap
21278         for sub uses.
21279         (determine_use_iv_cost_address): Compute cost for sub uses.
21280         (rewrite_use_address_1): Rename from old rewrite_use_address.
21281         (free_loop_data): Free sub uses.
21282         (tree_ssa_iv_optimize_loop): Call group_address_uses.
21283
21284 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21285             Jim Wilson  <jim.wilson@linaro.org>
21286
21287         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
21288         new  fields loadv and storev.
21289         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
21290         Initialize loadv and storev.
21291         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
21292         (cortexa53_extra_costs): Likewise.
21293         (cortexa57_extra_costs): Likewise.
21294         (xgene1_extra_costs): Likewise.
21295         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
21296         rtx_costs.
21297
21298 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21299
21300         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
21301          storev.
21302         (cortexa8_extra_costs): Likewise.
21303         (cortexa5_extra_costs): Likewise.
21304         (cortexa7_extra_costs): Likewise.
21305         (cortexa12_extra_costs): Likewise.
21306         (cortexa15_extra_costs): Likewise.
21307         (v7m_extra_costs): Likewise.
21308
21309 2015-05-20  Jeff Law  <law@redhat.com>
21310
21311         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
21312         instead of open-coded version.  Also delete the jump thread created
21313         within this function.
21314
21315 2015-05-20  Alan Modra  <amodra@gmail.com>
21316
21317         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
21318         stack adjusting insn.  Formatting.
21319         (rs6000_emit_prologue): Track stack adjusting insn, and use of
21320         r12.  If possible, emit first -fsplit-stack arg pointer insn
21321         before stack adjust.  Don't use r12 to save cr if split-stack.
21322
21323 2015-05-20  Alan Modra  <amodra@gmail.com>
21324
21325         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
21326         Define.
21327         (rs6000_supports_split_stack): New function.
21328         * gcc/config/rs6000/rs6000.c (machine_function): Add
21329         split_stack_arg_pointer.
21330         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
21331         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
21332         rather than virtual_incoming_args_rtx.
21333         (rs6000_va_start): Likewise.
21334         (split_stack_arg_pointer_used_p): New function.
21335         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
21336         (morestack_ref): New var.
21337         (gen_add3_const, rs6000_expand_split_stack_prologue,
21338         rs6000_internal_arg_pointer, rs6000_live_on_entry,
21339         rs6000_split_stack_space_check): New functions.
21340         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
21341         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
21342         (UNSPECV_SPLIT_STACK_RETURN): Define.
21343         (split_stack_prologue, load_split_stack_limit,
21344         load_split_stack_limit_di, load_split_stack_limit_si,
21345         split_stack_return, split_stack_space_check): New expands and insns.
21346         * gcc/config/rs6000/rs6000-protos.h
21347         (rs6000_expand_split_stack_prologue): Declare.
21348         (rs6000_split_stack_space_check): Declare.
21349
21350 2015-05-20  Alan Modra  <amodra@gmail.com>
21351
21352         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
21353         (direct_return): Test vrsave_size rather than vrsave_mask.
21354         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
21355         (rs6000_emit_epilogue): Likewise.
21356
21357 2015-05-20  Alan Modra  <amodra@gmail.com>
21358
21359         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
21360         when not saving registers.
21361         (debug_stack_info): Adjust to omit printing unused offsets,
21362         as before.
21363         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
21364         expression.
21365
21366 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21367
21368         PR c++/65835
21369         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
21370         value_type to const char *.
21371
21372 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
21373
21374         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
21375         to build a biarch toolchain again.
21376
21377 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21378
21379         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
21380         or implicit declarations.
21381         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
21382         into it.
21383         (get_odr_type): Check type has linkage before adding bases.
21384         (register_odr_type): Check that type has linkage before adding it.
21385         (type_known_to_have_no_deriavations_p): Rename to ..
21386         (type_known_to_have_no_derivations_p): This one.
21387         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
21388         (type_known_to_have_no_derivations_p): This one.
21389         * ipa-polymorphic-call.c
21390         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
21391         type has linkage.
21392
21393 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21394
21395         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
21396         (layout_type): Use RECORD_OR_UNION_TYPE_P.
21397
21398 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21399
21400         * config/s390/s390.c (s390_vector_bool_type_p): New function.
21401         (s390_invalid_binary_op): New function.
21402         (TARGET_INVALID_BINARY_OP): Define macro.
21403
21404 2015-05-19  David Sherwood  <david.sherwood@arm.com>
21405
21406         * loop-invariant.c (create_new_invariant): Don't calculate address cost
21407         if mode is not a scalar integer.
21408         (get_inv_cost): Increase computational cost for unused invariants.
21409
21410 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21411
21412         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
21413         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
21414         * config/s390/s390-builtin-types.def: New file.
21415         * config/s390/s390-builtins.def: New file.
21416         * config/s390/s390-builtins.h: New file.
21417         * config/s390/s390-c.c: New file.
21418         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
21419         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
21420         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
21421         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
21422         prototypes.
21423         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
21424         Include.
21425         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
21426         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
21427         variable definitions.
21428         (s390_const_operand_ok): New function.
21429         (s390_expand_builtin): Rewrite.
21430         (s390_init_builtins): New function.
21431         (s390_handle_vectorbool_attribute): New function.
21432         (s390_attribute_table): Add s390_vector_bool attribute.
21433         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
21434         (s390_branch_condition_mask): Generate masks for new modes.
21435         (s390_expand_vec_compare_cc): New function.
21436         (s390_mangle_type): Add mangling for vector bool types.
21437         (enum s390_builtin): Remove.
21438         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
21439         efpc builtins.
21440         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
21441         s390_cpu_cpp_builtins.
21442         (REGISTER_TARGET_PRAGMAS): New macro.
21443         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
21444         (insn_cmp mode attribute): Add new CC modes.
21445         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
21446         (lcbb): New pattern definition.
21447         * config/s390/s390intrin.h: Include vecintrin.h.
21448         * config/s390/t-s390: New file.
21449         * config/s390/vecintrin.h: New file.
21450         * config/s390/vector.md: Include vx-builtins.md.
21451         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
21452         support.
21453
21454 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21455
21456         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
21457         CCVFHE.
21458         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
21459         (s390_select_ccmode): Likewise.
21460         (s390_canonicalize_comparison): Swap operands if necessary.
21461         (s390_expand_vec_compare_scalar): Expand DFmode compare using
21462         single element vector instructions.
21463         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
21464         (s390_branch_condition_mask): Generate CC masks for the new modes.
21465         * config/s390/s390.md (v0, vf, vd): New mode attributes.
21466         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
21467         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
21468         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
21469         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
21470         (*extend<DSF:mode><BFP:mode>2): New insn definition.
21471         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
21472         (extend<DSF:mode><BFP:mode>2): Turn into expander.
21473         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
21474         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
21475         (sqrt<mode>2): Add vector instruction.
21476
21477 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21478
21479         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
21480         constraints.
21481         * config/s390/predicates.md (const0_operand, constm1_operand)
21482         (constable_operand): Accept vector operands.
21483         * config/s390/s390-modes.def: Add supported vector modes.
21484         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
21485         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
21486         (s390_bytemask_vector_p, s390_expand_vec_strlen)
21487         (s390_expand_vec_compare, s390_expand_vcond)
21488         (s390_expand_vec_init): Add prototypes.
21489         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
21490         (s390_vector_mode_supported_p): New function.
21491         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
21492         (s390_contiguous_bitmask_vector_p): New function.
21493         (s390_bytemask_vector_p): New function.
21494         (s390_split_ok_p): Vector regs don't work either.
21495         (regclass_map): Add VEC_REGS.
21496         (s390_legitimate_constant_p): Handle vector constants.
21497         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
21498         (legitimate_reload_vector_constant_p): New function.
21499         (s390_preferred_reload_class): Handle CONST_VECTOR.
21500         (s390_reload_symref_address):  Likewise.
21501         (s390_secondary_reload): Vector memory instructions only support
21502         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
21503         (s390_emit_ccraw_jump): New function.
21504         (s390_expand_vec_strlen): New function.
21505         (s390_expand_vec_compare): New function.
21506         (s390_expand_vcond): New function.
21507         (s390_expand_vec_init): New function.
21508         (s390_dwarf_frame_reg_mode): New function.
21509         (print_operand): Handle addresses with 'O' and 'R' constraints.
21510         (NR_C_MODES, constant_modes): Add vector modes.
21511         (s390_output_pool_entry): Handle vector constants.
21512         (s390_hard_regno_mode_ok): Handle vector registers.
21513         (s390_class_max_nregs): Likewise.
21514         (s390_cannot_change_mode_class): New function.
21515         (s390_invalid_arg_for_unprototyped_fn): New function.
21516         (s390_function_arg_vector): New function.
21517         (s390_function_arg_float): Remove size variable.
21518         (s390_pass_by_reference): Handle vector arguments.
21519         (s390_function_arg_advance): Likewise.
21520         (s390_function_arg): Likewise.
21521         (s390_return_in_memory): Vector values are returned in a VR if
21522         possible.
21523         (s390_function_and_libcall_value): Handle vector arguments.
21524         (s390_gimplify_va_arg): Likewise.
21525         (s390_call_saved_register_used): Consider the arguments named.
21526         (s390_conditional_register_usage): Disable v16-v31 for non-vec
21527         targets.
21528         (s390_preferred_simd_mode): New function.
21529         (s390_support_vector_misalignment): New function.
21530         (s390_vector_alignment): New function.
21531         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
21532         (TARGET_VECTOR_MODE_SUPPORTED_P)
21533         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
21534         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
21535         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
21536         (TARGET_VECTOR_ALIGNMENT): Define target macro.
21537         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
21538         (FIRST_PSEUDO_REGISTER): Increase value.
21539         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
21540         (VECTOR_REG_P): Define macros.
21541         (FIXED_REGISTERS, CALL_USED_REGISTERS)
21542         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
21543         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
21544         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
21545         Add vector registers.
21546         (CANNOT_CHANGE_MODE_CLASS): Call C function.
21547         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
21548         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
21549         memory.
21550         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
21551         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
21552         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
21553         (VR*_REGNUM): New constants.
21554         (ALL): New mode iterator.
21555         (INTALL): Remove mode iterator.
21556         Include vector.md.
21557         (movti): Implement TImode moves for VRs.
21558         Disable TImode splitter for VR targets.
21559         Implement splitting TImode GPR<->VR moves.
21560         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
21561         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
21562         reload<mode>_la_in, reload<mode>_la_out.
21563         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
21564         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
21565         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
21566         (mov<mode> SF SD): Prefer lder, lde for loading.
21567         Add lrl and strl instructions.
21568         Add vector instructions.
21569         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
21570         Call s390_expand_vec_strlen on z13.
21571         (*cc_to_int): Change predicate to nonimmediate_operand.
21572         (addti3): Rename to *addti3.  New expander.
21573         (subti3): Rename to *subti3.  New expander.
21574         * config/s390/vector.md: New file.
21575
21576 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21577
21578         * common/config/s390/s390-common.c (processor_flags_table): Add
21579         z13.
21580         * config.gcc: Add z13.
21581         * config/s390/s390-opts.h (enum processor_type): Add
21582         PROCESSOR_2964_Z13.
21583         * config/s390/s390.c (s390_adjust_priority): Check for
21584         PROCESSOR_2964_Z13.
21585         (s390_reorg): Likewise.
21586         (s390_sched_reorder): Likewise.
21587         (s390_sched_variable_issue): Likewise.
21588         (s390_loop_unroll_adjust): Likewise.
21589         (s390_option_override): Likewise. Default to -mvx when available.
21590         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
21591         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
21592         (TARGET_VX_ABI): Define macros.
21593         macros.
21594         (TARGET_DEFAULT): Add MASK_OPT_VX.
21595         * config/s390/s390.md ("cpu" attribute): Add z13.
21596         ("cpu_facility" attribute): Add vec.
21597         * config/s390/s390.opt (processor_type): Add z13.
21598         (mvx): New options.
21599         * doc/invoke.texi: Add z13 option for -march.
21600
21601 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21602
21603         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
21604         mode check to make sure that only scalar integer values are
21605         accepted.
21606
21607 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21608
21609         * tree.c (verify_type_variant): Fix #undef.
21610         (gimple_canonical_types_compatible_p): Move here from lto.c
21611         (verify_type): Verify TYPE_CANONICAL compatibility.
21612         * tree.h (gimple_canonical_types_compatible_p): Declare.
21613
21614 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21615
21616         PR middle-end/66199
21617         * tree.h (OMP_TEAMS_COMBINED): Define.
21618         * gimplify.c (enum gimplify_omp_var_data): Add
21619         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
21620         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
21621         (omp_notice_variable): Accept both ORT_TEAMS
21622         and ORT_COMBINED_TEAMS.  Don't recurse if
21623         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
21624         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
21625         GOVD_FIRSTPRIVATE.
21626         (omp_no_lastprivate): New function.
21627         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
21628         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
21629         notice_outer and set appropriate bits, otherwise make
21630         sure default(none) combined constructs won't complain.
21631         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
21632         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
21633         omp_no_lastprivate either remove the clause or turn it
21634         into OMP_CLAUSE_PRIVATE.
21635         (gimplify_omp_for): Fix up handling of implicit
21636         lastprivate or linear iterators.
21637         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
21638         ORT_COMBINED_TEAMS.
21639         * omp-low.c (lower_omp_for_lastprivate): For combined
21640         for simd use fd.loop.n2 from the for rather than simd.
21641
21642 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21643
21644         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
21645         instead of gen_rtx_raw_REG.
21646         (cris_expand_epilogue): Likewise.
21647         * config/microblaze/microblaze.c (microblaze_classify_address):
21648         Likewise.
21649         * config/sparc/sparc.md: Likewise.
21650
21651 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
21652
21653         * config/alpha/alpha.c (alpha_legitimize_reload_address)
21654         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
21655         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
21656         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
21657         Use CASE_CONST_SCALAR_INT.
21658         (print_operand) <case 'M'>: Use mode_width_operand to check the
21659         value of the constant.
21660         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
21661         * config/alpha/predicates.md (input_operand): Use general_operand
21662         instead of match_code as operand check.
21663         (symbolic_operand): Use match_code with subexpression digits.
21664         * config/alpha/constraints.md (Q): Ditto.
21665
21666 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21667
21668         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
21669
21670 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21671
21672         * config/s390/s390.c (s390_secondary_reload): Fix check for
21673         load/store relative.
21674
21675 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21676
21677         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
21678         alternative_mask to uint64_t.
21679
21680 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21681
21682         PR tree-optimization/66187
21683         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
21684         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
21685         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
21686
21687 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
21688
21689         * diagnostic.c (diagnostic_report_current_module): Strengthen
21690         local "new_map" from const line_map * to
21691         const line_map_ordinary *.
21692         * genmatch.c (error_cb): Likewise for local "map".
21693         (output_line_directive): Likewise for local "map".
21694         * input.c (expand_location_1): Likewise for local "map".
21695         Pass NULL rather than &map to
21696         linemap_unwind_to_first_non_reserved_loc, since the value is never
21697         read from there, and the value written back not read from here.
21698         (is_location_from_builtin_token): Strengthen local "map" from
21699         const line_map * to const line_map_ordinary *.
21700         (dump_location_info): Strengthen locals "map" from
21701         line_map *, one to const line_map_ordinary *, the other
21702         to const line_map_macro *.
21703         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
21704         const line_map * to const line_map_macro *.
21705         (maybe_unwind_expanded_macro_loc): Add a call to
21706         linemap_check_macro when writing to the "map" field of the
21707         loc_map_pair.
21708         Introduce local const line_map_ordinary * "ord_map", using it in
21709         place of "map" in the part of the function where we know we have
21710         an ordinary map.  Strengthen local "m" from const line_map * to
21711         const line_map_ordinary *.
21712
21713 2015-05-19  Nick Clifton  <nickc@redhat.com>
21714
21715         PR target/66156
21716         * config/msp430/msp430.md (zero_extendhisi2): Add support for
21717         separate source and destination registers.
21718
21719 2015-05-19  Richard Biener  <rguenther@suse.de>
21720
21721         PR tree-optimization/66165
21722         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
21723         for no load permutation.
21724
21725         PR tree-optimization/66185
21726         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
21727         when building the SLP node from scalars.
21728
21729 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21730             Tristan Gingold  <gingold@adacore.com>
21731
21732         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
21733         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
21734         (expand_stack_restore): Call record_new_stack_level.
21735         (expand_stack_save): Do not call do_pending_stack_adjust.
21736         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
21737         * calls.c (expand_call): Call record_new_stack_level for alloca.
21738         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
21739         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
21740         (update_sjlj_context): New global function.
21741         * except.h (update_sjlj_context): Declare.
21742         * explow.c (record_new_stack_level): New global function.
21743         (allocate_dynamic_stack_space): Call record_new_stack_level.
21744         * explow.h (record_new_stack_level): Declare.
21745         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
21746         * cfgrtl.c (duplicate_insn_chain): Likewise.
21747
21748 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21749
21750         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
21751         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
21752         STACK_GROWS_DOWNWARD as normal if.
21753         (expand_call): Likewise.
21754
21755 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
21756
21757         PR target/54236
21758         * config/sh/sh.md (*round_int_even): New insn_and_split and
21759         accompanying new unnamed split.
21760
21761 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21762
21763         * bitmap.c (bitmap_set_range): Handle count==1 specially.
21764         (bitmap_clear_range): Likewise.
21765         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
21766         bitmap_set_range unconditionally.
21767         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21768         * df-scan.c (df_mark_reg): Likewise.
21769         * haifa-sched.c (setup_ref_regs): Likewise.
21770         * sched-rgn.c (update_live_1): Likewise.
21771
21772 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21773
21774         * regs.h (END_HARD_REGNO): Delete.
21775         (END_REGNO): Move to...
21776         * rtl.h: ...here.
21777         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
21778         * caller-save.c (mark_set_regs): Likewise.
21779         * combine.c (move_deaths, distribute_notes): Likewise.
21780         * cse.c (invalidate, invalidate_for_call): Likewise.
21781         * df-scan.c (df_ref_record): Likewise.
21782         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
21783         (record_last_reg_set_info): Likewise.
21784         * reg-stack.c (convert_regs_exit): Likewise.
21785         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
21786         * resource.c (update_live_status): Likewise.
21787         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
21788
21789 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21790
21791         * rtl.h (reg_info): Add an nregs field.
21792         (REG_NREGS): Use it.
21793         (SET_REGNO_RAW): Delete.
21794         (set_regno_raw): New function.
21795         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
21796         (END_REGNO): Redefine in terms of REG_NREGS.
21797         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
21798         SET_REGNO_RAW.
21799         * emit-rtl.c (set_mode_and_regno): Likewise.
21800         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
21801         instead of SET_REGNO_RAW.
21802
21803 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21804
21805         * rtl.h (PUT_MODE_RAW): New macro.
21806         (PUT_REG_NOTE_KIND): Use it.
21807         (set_mode_and_regno): Declare.
21808         (gen_raw_REG): Change regno to "unsigned int".
21809         (gen_rtx_REG): Change "unsigned" to "unsigned int".
21810         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
21811         use set_mode_and_regno to change the mode of registers.
21812         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
21813         * emit-rtl.c (set_mode_and_regno): New function.
21814         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
21815         * caller-save.c (reg_save_code): Use set_mode_and_regno.
21816         * expr.c (init_expr_target): Likewise.
21817         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21818         * postreload.c (reload_cse_simplify_operands): Likewise.
21819
21820 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21821
21822         * caller-save.c (init_caller_save): Use word_mode and
21823         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
21824         * expr.c (init_expr_target): Likewise.
21825         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21826         * postreload.c (reload_cse_regs_1): Likewise.
21827
21828 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21829
21830         * rtl.def (REG): Change format to "r".
21831         * rtl.h (rtunion): Remove rt_reg.
21832         (reg_info): New structure.
21833         (rtx_def): Add reg field to main union.
21834         (X0REGATTR): Delete.
21835         (REG_CHECK): New macro.
21836         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
21837         * rtl.c (rtx_format): Document "r".
21838         (rtx_code_size): Handle REG specially.
21839         * gengenrtl.c (special_format): Return true for formats
21840         that include 'r'.
21841         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
21842         Deal with REG_ATTRS after the field loop.
21843         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
21844         * expmed.c (init_expmed): Call gen_raw_REG instead of
21845         gen_rtx_raw_REG.
21846         * expr.c (init_expr_target): Likewise.
21847         * regcprop.c (maybe_mode_change): Likewise.
21848         * varasm.c (make_decl_rtl): Likewise.
21849         * final.c (leaf_renumber_regs_insn): Return early after
21850         handling REGs.
21851         * genemit.c (gen_exp): Handle 'r' fields.
21852         * genpeep.c (match_rtx): Likewise.
21853         * gensupport.c (subst_pattern_match): Likewise.
21854         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
21855         (alter_constraints, subst_dup): Likewise.
21856         * read-rtl.c (read_rtx_code): Likewise.
21857         * print-rtl.c (print_rtx): Likewise.
21858         * genrecog.c (find_operand, find_matching_operand): Likewise.
21859         (validate_pattern, match_pattern_2): Likewise.
21860         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
21861         (rtx_test::regno_field): New function.
21862         (operator ==, safe_to_hoist_p, transition_parameter_type)
21863         (parameter_type_string, print_parameter_value)
21864         (print_nonbool_test, print_test): Handle new enum values.
21865         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
21866         * lra-constraints.c (operands_match_p): Likewise.
21867
21868 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21869
21870         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
21871         Change type of new_regno to unsigned int.
21872         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
21873         new_regno to unsigned int.
21874         (df_ref_change_reg_with_loc): Remove old_regno parameter.
21875         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
21876         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
21877         (SET_REGNO_RAW): Add space after ",".
21878
21879 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21880
21881         * rtl.h (REG_NREGS): New macro
21882         * alias.c (record_set): Use it.
21883         * cfgcleanup.c (mark_effect): Likewise.
21884         * combine.c (likely_spilled_retval_1): Likewise.
21885         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
21886         (move_deaths, distribute_notes): Likewise.
21887         * cselib.c (cselib_record_set): Likewise.
21888         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21889         * df-scan.c (df_mark_reg): Likewise.
21890         * dse.c (look_for_hardregs): Likewise.
21891         * dwarf2out.c (reg_loc_descriptor): Likewise.
21892         (multiple_reg_loc_descriptor): Likewise.
21893         * expr.c (write_complex_part, read_complex_part): Likewise.
21894         (emit_move_complex): Likewise.
21895         * haifa-sched.c (setup_ref_regs): Likewise.
21896         * ira-lives.c (mark_hard_reg_live): Likewise.
21897         * lra.c (lra_set_insn_recog_data): Likewise.
21898         * mode-switching.c (create_pre_exit): Likewise.
21899         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
21900         (reload_combine_recognize_pattern): Likewise.
21901         (reload_combine_note_use, move2add_record_mode): Likewise.
21902         (reload_cse_move2add): Likewise.
21903         * reg-stack.c (subst_stack_regs_pat): Likewise.
21904         * regcprop.c (kill_value, copy_value): Likewise.
21905         (copyprop_hardreg_forward_1): Likewise.
21906         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
21907         (build_def_use): Likewise.
21908         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
21909         (deps_analyze_insn): Likewise.
21910         * sched-rgn.c (check_live_1, update_live_1): Likewise.
21911         * sel-sched.c (count_occurrences_equiv): Likewise.
21912         * valtrack.c (dead_debug_insert_temp): Likewise.
21913
21914 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21915
21916         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
21917         * dse.c (note_add_store): Likewise.
21918         * ira-lives.c (mark_hard_reg_dead): Likewise.
21919         * loop-invariant.c (mark_reg_store): Likewise.
21920         (mark_reg_death): Likewise.
21921         * postreload.c (reload_combine): Likewise.
21922         (reload_combine_note_store): Likewise.
21923         (reload_combine_note_use): Likewise.
21924         * recog.c (peep2_reg_dead_p): Likewise.
21925
21926 2015-05-19  Alan Modra  <amodra@gmail.com>
21927
21928         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
21929         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
21930         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
21931         unused predicates.
21932         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
21933         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
21934         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
21935         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
21936
21937 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
21938
21939         * config/mips/mips.md (JOIN_MODE): New mode iterator.
21940         (join2_load_Store<JOIN_MODE:mode>): New pattern.
21941         (join2_loadhi): Likewise.
21942         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
21943         load-load and store-stores.
21944         * config/mips/mips.opt (mload-store-pairs): New option.
21945         (TARGET_LOAD_STORE_PAIRS): New macro.
21946         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
21947         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
21948         * config/mips/mips.c (mips_load_store_bonding_p): New function.
21949
21950 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
21951
21952         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
21953         explicit swaps.
21954         * dojump.c (do_compare_rtx_and_jump): Likewise.
21955         * expmed.c (emit_store_flag_1): Likewise.
21956         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
21957         * final.c (sprint_ul): Use std::reverse for reversing a string.
21958         * fold-const.c (extract_muldiv_1): Use std::swap.
21959         * genmodes.c (emit_mode_int_n): Likewise.
21960         * ifcvt.c (dead_or_predicable): Likewise.
21961         * ira-build.c (ira_merge_live_ranges): Likewise.
21962         (swap_allocno_copy_ends_if_necessary): Likewise.
21963         * ira.c (ira_setup_alts): Likewise.
21964         * loop-iv.c (iv_analyze_expr): Likewise.
21965         (implies_p): Likewise.
21966         (canon_condition): Likewise.
21967         * lra-constraints.c (swap_operands): Likewise.
21968         * lra-lives.c (lra_merge_live_ranges): Likewise.
21969         * omega.c (swap): Remove.
21970         (bswap): Remove.
21971         (omega_unprotect_1): Use std::swap.
21972         (omega_solve_geq): Likewise.
21973         * optabs.c (expand_binop_directly): Likewise.
21974         (expand_binop): Likewise.
21975         (emit_conditional_move): Likewise.
21976         (emit_conditional_add): Likewise.
21977         * postreload.c (reload_cse_simplify_operands): Likewise.
21978         * reg-stack.c (emit_swap_insn): Likewise.
21979         (swap_to_top): Likewise.
21980         (compare_for_stack_reg): Likewise.
21981         (subst_asm_stack_regs): Likewise.
21982         * reload.c (find_reloads): Likewise.
21983         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
21984         * sel-sched.c (invoke_reorder_hooks): Likewise.
21985         (create_block_for_bookkeeping): Likewise.
21986         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
21987         (lambda_matrix_right_hermite): Use std::swap.
21988         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
21989         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21990         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
21991         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
21992         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
21993         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
21994         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21995         * tree-vrp.c (compare_ranges): Likewise.
21996         * var-tracking.c (add_with_sets): Likewise.
21997         (vt_find_locations): Likewise.
21998
21999 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
22000
22001         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
22002         pie executables.
22003         (FBSD_ENDFILE_SPEC): Likewise.
22004         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
22005         config/freebsd-spec.h.
22006         (ENDFILE_SPEC): Likewise.
22007
22008 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
22009             Richard Henderson  <rth@redhat.com>
22010
22011         PR target/57032
22012         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
22013         Check for a memory location that is not a reference (using an AND)
22014         to an unaligned location here.
22015         * config/alpha/predicates.md (normal_memory_operand): Remove.
22016
22017 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
22018
22019         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
22020         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
22021
22022 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
22023
22024         * config/mips/mips.c (micromips_globals): New variable.
22025         (mips_set_compression_mode): Save and reinitialize target-dependent
22026         state for microMIPS.
22027
22028 2015-05-18  Martin Liska  <mliska@suse.cz>
22029
22030         * dbgcnt.def: Add new counter.
22031         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
22032
22033 2015-05-18  Martin Liska  <mliska@suse.cz>
22034
22035         * dbgcnt.def: Sort counters.
22036         * opts.c (common_handle_option): Do not compile if
22037         -fdbg-cnt-list is enabled.
22038
22039 2015-05-18  Tom de Vries  <tom@codesourcery.com>
22040
22041         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
22042         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
22043         address operator to va_list operand.
22044         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
22045         unconditionally.
22046         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
22047         operand.
22048         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
22049         * config/s390/s390.c (s390_gimplify_va_arg): Same.
22050         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
22051
22052 2015-05-18  Tom de Vries  <tom@codesourcery.com>
22053
22054         * tree-ssa-tail-merge.c: Fix whitespace.
22055
22056 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
22057
22058         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
22059         cortex-a17, and cortex-a17.cortex-a7.
22060
22061 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
22062
22063         PR target/54236
22064         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
22065
22066 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
22067
22068         PR target/66174
22069         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
22070         QImode inner modes for TARGET_AVX512BW.  Force mask operand
22071         to a register for AVX512F modes.
22072
22073 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
22074
22075         * toplev.c (emit_debug_global_declarations): Do not output debug info
22076         when doing slim LTO objects.
22077
22078 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
22079
22080         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
22081         odr_types_equivalent_p): Declare.
22082         (odr_type_p): Use gcc_checking_assert.
22083         (type_in_anonymous_namespace_p) Declare.
22084         (type_with_linkage_p): Declare.
22085         * common.opt (Wlto-type-mismatch): New warning.
22086         * ipa-devirt.c (compound_type_base): New function.
22087         (odr_or_derived_type_p): New function.
22088         (odr_types_equivalent_p): New function.
22089         (add_type_duplicate): Simplify.
22090         (type_with_linkage_p): Add hack to prevent false positives on C types
22091         (type_in_anonymous_namespace_p): Likewise.
22092         * tree.c (need_assembler_name_p): Use type_with_linkage.
22093         * tree.h (type_in_anonymous_namespace_p): Remove.
22094         * doc/invoke.texi (-Wlto-type-mismatch): Document
22095
22096 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
22097
22098         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
22099         (verify_type): Verify STRING_FLAG.
22100
22101 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22102
22103         PR fortran/44054
22104         * tree-pretty-print.c (percent_K_format): Replace locus pointer
22105         with accessor function.
22106         * tree-diagnostic.c (diagnostic_report_current_function): Use
22107         diagnostic_location function.
22108         (maybe_unwind_expanded_macro_loc): Likewise.
22109         (virt_loc_aware_diagnostic_finalizer): Likewise.
22110         (default_tree_printer): Replace locus pointer with accessor function.
22111         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
22112         (diagnostic_set_info_translated): Initialize second location.
22113         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
22114         (diagnostic_show_locus): Handle two locations. Call
22115         diagnostic_print_caret_line.
22116         (diagnostic_print_caret_line): New.
22117         (default_diagnostic_starter): Use diagnostic_location function.
22118         (diagnostic_report_diagnostic): Use diagnostic_location function.
22119         (verbatim): Do not set text.locus.
22120         * diagnostic.h (struct diagnostic_info): Remove location field.
22121         (struct diagnostic_context): Make caret_chars an array of two.
22122         (diagnostic_location): New inline.
22123         (diagnostic_expand_location): Handle two locations.
22124         (diagnostic_same_line): New inline.
22125         (diagnostic_print_caret_line): Declare.
22126         (CARET_LINE_MARGIN): New constant.
22127         * pretty-print.c (pp_printf): Do not set text.locus.
22128         (pp_verbatim): Do not set text.locus.
22129         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
22130         (struct text_info): Replace locus pointer with locations
22131         array. Add accessor functions.
22132
22133 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
22134             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22135
22136         PR target/65768
22137         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
22138         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
22139          large constants in register instead of splitting them.
22140
22141 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
22142
22143         PR target/66140
22144         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
22145         replacements in memory addresses.
22146         (get_unaligned_address): Ditto.
22147
22148 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
22149
22150         * config/ft32/*: New files for FT32 port.
22151         * doc/install.texi: Add FT32 information.
22152         * doc/invoke.texi: Add FT32 information.
22153         * doc/md.texi: Add FT32 information.
22154         * doc/contrib.texi: Self added.
22155
22156 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
22157
22158         PR tree-optimization/64454
22159         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
22160         (-1 - A -> ~A): Remove unnecessary condition.
22161
22162 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
22163
22164         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
22165         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
22166         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
22167
22168 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
22169
22170         * ipa-chkp.h (chkp_wrap_function): New.
22171         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
22172         (chkp_wrap_function_name): New.
22173         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
22174         to get wrapper name.
22175         * lto-cgraph.c: Include ipa-chkp.h.
22176         (input_cgraph_1): Avoid alias chain for wrappers.
22177
22178 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
22179
22180         PR middle-end/66134
22181         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
22182         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
22183
22184 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22185
22186         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
22187         (AARCH64_FL_SLOWMUL): Delete.
22188         (AARCH64_FL_CRC): Redefine to 1<<3.
22189         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
22190
22191 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22192
22193         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
22194         casting.
22195
22196 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
22197
22198         * config/alpha/alpha.md (extendqidi2): Use general_operand
22199         instead of some_operand for operand[1] predicate.
22200         (extendhidi2): Ditto.
22201         (cbranchdi4): Use general_operand instead of some_operand
22202         for operand[1] and operands[2] predicates.
22203         (cstoredi4): Ditto.
22204         * config/alpha/predicates.md (some_operand): Remove unused predicate.
22205         (some_ni_operand): Ditto.
22206
22207 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
22208
22209         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
22210         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
22211         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
22212         low part of the constant using alpha_emit_set_const_1.
22213         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
22214
22215 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
22216
22217         * varasm.c (output_constant_pool_1): Pass down alignment from
22218         constant pool entry's descriptor to output_constant_pool_2.
22219         (output_object_block): Add comment prior to call to
22220         output_constant_pool_1.
22221
22222 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
22223
22224         PR rtl-optimization/65862
22225         * target.def (ira_change_pseudo_allocno_class): New hook.
22226         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
22227         value of the hook.
22228         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
22229         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
22230         hook.
22231         * ira-costs.c (find_costs_and_classes): Call the hook and change
22232         classes when it is necessary.
22233         * doc/tm.texi: Update.
22234
22235 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
22236
22237         * config/i386/i386.md (sibcall_memory): Check that register with
22238         callee address is not also used as one of the arguments, instead
22239         of checking that it is not live after the sibcall.
22240         (sibcall_pop_memory): Ditto.
22241         (sibcall_value_memory): Ditto.
22242         (sibcall_value_pop_memory): Ditto.
22243
22244 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
22245
22246         * generic-match-head.c (types_match): Handle non-types.
22247         * gimple-match-head.c (types_match): Likewise.
22248         * match.pd: Remove unnecessary TREE_TYPE for types_match.
22249
22250 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
22251
22252         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
22253         (csneg3<mode>_insn): Enable expansion of pattern.
22254
22255 2015-05-14  Nick Clifton  <nickc@redhat.com>
22256
22257         * config/rl78/rl78.c (rl78_select_section): Select the correct
22258         default section based upon the category of the decl.
22259
22260 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22261
22262         PR rtl-optimization/30967
22263         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
22264         destination mode for the cost of scc patterns.
22265
22266 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22267
22268         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
22269         using SWIM248 mode iterator.
22270         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
22271         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
22272         for operand[2] constraint.
22273         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
22274
22275 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22276
22277         PR middle-end/66133
22278         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
22279         make sure it is never noreturn, even when the task body does not
22280         return.
22281         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
22282         right before GIMPLE_OMP_RETURN.
22283         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
22284         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
22285         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
22286
22287 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22288
22289         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
22290         * tree-ssa-math-opts.c: Include params.h
22291         (pow_synth_sqrt_info): New struct.
22292         (representable_as_half_series_p): New function.
22293         (get_fn_chain): Likewise.
22294         (print_nested_fn): Likewise.
22295         (dump_fractional_sqrt_sequence): Likewise.
22296         (dump_integer_part): Likewise.
22297         (expand_pow_as_sqrts): Likewise.
22298         (gimple_expand_builtin_pow): Use above to attempt to expand
22299         pow as series of square roots.  Removed now unused variables.
22300
22301 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22302
22303         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
22304         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
22305         Remove *p0 and *p1 arguments.  Rewrite function.
22306         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
22307         (alpha_split_const_mov): Update calls to alpha_extract_integer and
22308         alpha_emit_set_long_const.
22309         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
22310         (alpha_output_mi_thunk_osf): Ditto.
22311         * config/alpha/alpha.md (movti): Do not check operands[1]
22312         for CONST_DOUBLE.
22313
22314 2015-05-13  Richard Biener  <rguenther@suse.de>
22315
22316         PR tree-optimization/66129
22317         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
22318         commutative.
22319         (vect_schedule_slp_instance): Fix typo.
22320
22321 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
22322
22323         * common.opt (fdump-internal-locations): New option.
22324         * input.c: Include diagnostic-core.h.
22325         (get_end_location): New function.
22326         (write_digit): New function.
22327         (write_digit_row): New function.
22328         (dump_location_range): New function.
22329         (dump_labelled_location_range): New function.
22330         (dump_location_info): New function.
22331         * input.h (dump_location_info): New prototype.
22332         * toplev.c (compile_file): Handle flag_dump_locations.
22333
22334 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
22335
22336         * gimple-expr.h (is_gimple_constant): Reorder.
22337         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
22338
22339 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22340
22341         * combine.c (simplify_set): When generating a CC set, if the
22342         source already is in the correct mode, do not wrap it in a
22343         compare.  Simplify the rest of that code.
22344
22345 2015-05-13  Richard Biener  <rguenther@suse.de>
22346
22347         PR tree-optimization/66123
22348         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
22349         a taken edge.
22350
22351 2015-05-13  Richard Biener  <rguenther@suse.de>
22352
22353         PR middle-end/66110
22354         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
22355         specially.
22356         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
22357
22358 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
22359
22360         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
22361         * aclocal.m4: Regenerated with automake-1.11.6.
22362
22363 2015-05-13  Tom de Vries  <tom@codesourcery.com>
22364
22365         PR tree-optimization/66010
22366         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
22367         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
22368         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
22369         and rval based on do_deref.
22370
22371 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22372
22373         PR target/65103
22374         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
22375         link time constants into adress expressions and therefore set
22376         their cost to 0.
22377
22378 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22379
22380         PR target/66112
22381         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
22382         Use SWI248 iterator instead of SWI.
22383         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
22384         Use eq_attr "alternative" "0" instead of match_test in
22385         length_immediate attribute computation.
22386         (*mulvhi4, *mulvhi4_1): New define_insns.
22387
22388         PR target/66112
22389         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
22390         SIGNED to get precision of non-negative value.
22391
22392 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22393
22394         PR target/66048
22395         * function.c (diddle_return_value_1): Process bounds first.
22396         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
22397         register.
22398
22399 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22400
22401         PR rtl-optimization/64616
22402         * loop-invariant.c (can_move_invariant_reg): New.
22403         (move_invariant_reg): Call above new function to decide whether
22404         instruction can just be moved, skipping creation of temporary
22405         register.
22406
22407 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22408
22409         PR target/pr66047.c
22410         * i386.c (ix86_function_sseregparm): Only return -1 if local function
22411         with implied regparm is called from -mno-sse function.
22412         (init_cumulative_args): Output error if ix86_function_sseregparm
22413         return -1 and SSE register would be needed.
22414         (function_arg_advance_32): Likewise.
22415         (function_arg_32): Likewise.
22416         * i386.h (ix86_args): Add decl field.
22417
22418 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22419
22420         PR ipa/65873
22421         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
22422         inlines across optimization boundary.
22423
22424 2015-05-12  Jason Merrill  <jason@redhat.com>
22425
22426         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
22427         string literal and macro name.
22428
22429 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
22430
22431         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
22432         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
22433         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
22434
22435 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22436
22437         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
22438         (-Wmisleading-indentation): New option.
22439         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
22440
22441 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
22442
22443         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
22444         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
22445         (alpha_extract_integer): Ditto.
22446         (alpha_legitimate_constant_p): Ditto.
22447         (alpha_split_tmode_pair): Ditto.
22448         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
22449         (alpha_expand_mov): Ditto.
22450         (print_operand): Remove handling of 'H' modifier.
22451         <case 'm'>: Remove CONST_DOUBLE handling.
22452         (summarize_insn): Handle CONST_WIDE_INT.
22453         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
22454         (anddi3): Ditto.
22455         (movti): Handle CONST_WIDE_INT.
22456         * config/alpha/constraints.md ('H'): Remove constraint definition.
22457         ('G'): Do not match MODE_FLOAT class.
22458         * config/alpha/predicates.md (const0_operand): Also match
22459         const_wide_int.
22460         (non_add_const_operand): Ditto.
22461         (non_zero_const_operand): Ditto.
22462         (some_operand): Ditto.
22463         (input_operand): Ditto.  Handle CONST_WIDE_INT.
22464         (and_operand): Do not match const_double.
22465         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
22466
22467 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
22468
22469         PR target/65697
22470         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
22471         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
22472         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
22473         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
22474         is_mm_seq_cst, is_mm_sync): New accessor functions.
22475         * builtins.c (expand_builtin_sync_operation,
22476         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
22477         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
22478         (get_memmodel,  expand_builtin_atomic_compare_exchange,
22479         expand_builtin_atomic_load, expand_builtin_atomic_store,
22480         expand_builtin_atomic_clear): Use new accessor routines.
22481         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
22482         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
22483         (maybe_emit_sync_lock_test_and_set): Use new accessors and
22484         MEMMODEL_SYNC_ACQUIRE.
22485         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
22486         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
22487         expand_atomic_store): Use new accessors.
22488         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
22489         * tsan.c (instrument_builtin_call): Update check for memory model beyond
22490         final enum to use MEMMODEL_LAST.
22491         * c-family/c-common.c: Use new accessor for memmodel_base.
22492         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
22493         accessors.
22494         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
22495         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
22496         mem_thread_fence, *dmb): Likewise.
22497         * config/alpha/alpha.c (alpha_split_compare_and_swap,
22498         alpha_split_compare_and_swap_12): Likewise.
22499         * config/arm/arm.c (arm_expand_compare_and_swap,
22500         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
22501         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
22502         atomic_loaddi): Likewise.
22503         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
22504         Likewise.
22505         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
22506         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
22507         use new accessors.
22508         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
22509         atomic_store<mode>, atomic_compare_and_swap<mode>,
22510         atomic_exchange<mode>): Use new accessors.
22511         * config/mips/mips.c (mips_process_sync_loop): Likewise.
22512         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
22513         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
22514         rs6000_post_atomic_barrier): Add new cases.
22515         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
22516         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
22517         (atomic_load<mode>): Add new cases and use new accessors.
22518         (store_quadpti): Add new cases.
22519         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
22520         accessors.
22521         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
22522         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
22523         model, not 8.
22524
22525 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22526
22527         * ipa-devirt.c (type_with_linkage_p): New function.
22528         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
22529         type has linkage.
22530         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
22531         (can_be_name_hashed_p): Simplify.
22532         (hash_odr_name): Check that type has linkage before checking if it is
22533         anonymous.
22534         (types_same_for_odr): Likewise.
22535         (odr_name_hasher::equal): Likewise.
22536         (odr_subtypes_equivalent_p): Likewise.
22537         (warn_types_mismatch): Likewise.
22538         (get_odr_type): Likewise.
22539         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
22540         * ipa-utils.h (odr_type_p): Move offline.
22541         * tree.c (need_assembler_name_p): Fix handling of types
22542         without linkages.
22543         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
22544
22545 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22546
22547         * timevar.c (timevar_enable): Delete in favor of...
22548         (g_timer): New global.
22549         (struct timevar_def): Move to timevar.h inside class timer.
22550         (struct timevar_stack_def): Likewise.
22551         (timevars): Delete global in favor of field "m_timevars" within
22552         class timer in timevar.h
22553         (stack): Likewise, in favor of field "m_stack".
22554         (unused_stack_instances): Likewise, in favor of field
22555         "m_unused_stack_instances".
22556         (start_time): Likewise, in favor of field "m_start_time".
22557         (get_time): Eliminate check for timevar_enable.
22558         (timer::timer): New function, built from part of timevar_init.
22559         (timevar_init): Rewrite idempotency test from using
22560         "timevar_enable" bool to using dynamic allocation of "g_timer".
22561         Move rest of implementation into timer's constructor.
22562         (timevar_push_1): Rename to...
22563         (timer::push): ...this, adding "m_" prefixes to variables that
22564         are now fields of timer.
22565         (timevar_pop_1): Likewise, rename to...
22566         (timer::pop): ...this, and add "m_" prefixes.
22567         (timevar_start): Replace test for "timevar_enable" with one for
22568         "g_timer", and move bulk of implementation to...
22569         (timer::start): ...here, adding "m_" prefixes.
22570         (timevar_stop): Likewise, from here...
22571         (timer::stop): ...to here.
22572         (timevar_cond_start): Likewise, from here...
22573         (timer::cond_start): ...to here.
22574         (timevar_cond_stop): Likewise, from here...
22575         (timer::cond_stop): ...to here.
22576         (validate_phases): Rename to...
22577         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
22578         locals "total" and "tv" const.
22579         (timevar_print): Rename to...
22580         (timer::print): ...this, and add "m_" prefixes.  Make locals
22581         "total" and "tv" const.  Eliminate test for timevar_enable.
22582         * timevar.h (timevar_enable): Eliminate.
22583         (g_timer): New declaration.
22584         (timevar_push_1): Eliminate.
22585         (timevar_pop_1): Eliminate.
22586         (timevar_print): Eliminate.
22587         (class timer): New class.
22588         (timevar_push): Rewrite to use g_timer.
22589         (timevar_pop): Likewise.
22590         * toplev.c (toplev::~toplev): Likewise.
22591
22592 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
22593
22594         * arm-protos.h (arm_sched_autopref): Delete.
22595         (tune_params): Re-organize, use enums for flag values.
22596         (FUSE_OPS): New macro.
22597         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
22598         (ARM_PREFETCH_BENEFICIAL): Likewise.
22599         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
22600         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22601         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
22602         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
22603         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
22604         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
22605         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
22606         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
22607         format.
22608         (arm_option_override, thumb2_reorg, arm_print_tune_info)
22609         (aarch_macro_fusion_pair_p): Update uses of current_tune.
22610         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
22611
22612 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
22613
22614         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
22615         "break".
22616
22617 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
22618             Sandra Loosemore <sandra@codesourcery.com>
22619
22620         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
22621         value.
22622         (REG_CLASS_NAMES): Add "IJMP_REGS".
22623         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
22624         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
22625         use new "c" register constraint.
22626         * config/nios2/constraint.md (c): New register constraint
22627         corresponding to IJMP_REGS.
22628
22629 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22630
22631         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
22632         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
22633         define_splits): Delete, revamp, transmogrify into ...
22634         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22635         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22636         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22637         New.
22638
22639 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22640
22641         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
22642         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
22643
22644 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22645
22646         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
22647         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
22648         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
22649         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
22650         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
22651         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
22652         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
22653         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
22654         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
22655         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
22656         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
22657         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
22658         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
22659         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
22660         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
22661         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
22662         and 30 corresponding splitters): Delete.
22663
22664 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22665
22666         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
22667         zero_extract.
22668
22669 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22670
22671         * combine.c (recog_for_combine_1): New function, factored out
22672         from recog_for_combine.
22673         (change_zero_ext): New function.
22674         (recog_for_combine): If recog fails, try again with the pattern
22675         modified by change_zero_ext; if that still fails, restore the
22676         pattern.
22677
22678 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22679
22680         * combine.c (get_undo_marker): New function.
22681         (undo_to_marker): New function, largely factored out from ...
22682         (undo_all): ... this.  Adjust.
22683
22684 2015-05-12  Richard Biener  <rguenther@suse.de>
22685
22686         PR tree-optimization/66101
22687         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
22688         fixup if we turn a loop exit edge to a fallthru edge.
22689
22690 2015-05-12  Richard Biener  <rguenther@suse.de>
22691
22692         PR tree-optimization/37021
22693         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
22694         (SLP_TREE_TWO_OPERATORS): New define.
22695         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
22696         SLP_TREE_TWO_OPERATORS.
22697         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
22698         SLP node.
22699         (vect_build_slp_tree): Adjust.
22700         (vect_analyze_slp_cost_1): Likewise.
22701         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
22702         emitting two vector stmts and mixing the results.
22703
22704 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22705
22706         * call.c (print_z_candidates): Remove dead code.
22707
22708 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22709
22710         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
22711         and zEC12_simple_fp.
22712         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
22713         to 1.
22714
22715 2015-05-12  Tom de Vries  <tom@codesourcery.com>
22716
22717         PR tree-optimization/66010
22718         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
22719         ifn_va_arg.
22720         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
22721         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
22722         va_lists are passed, and remove corresponding handling.
22723         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
22724         do_deref argument to ifn_va_arg.
22725         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
22726         ifn_va_arg.
22727
22728 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22729
22730         PR target/65955
22731         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
22732         REG before taking its REGNO.
22733
22734 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22735
22736         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
22737         rsp->sign_bit_copies and rsp->nonzero_bits into ...
22738         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
22739         present to get more accurate information about the number of sign bit
22740         copies and non zero bits.
22741
22742 2015-05-12  Richard Biener  <rguenther@suse.de>
22743
22744         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
22745         do not allow unrolling.
22746
22747 2015-05-11  Richard Henderson  <rth@redhat.com>
22748
22749         * config/i386/i386-modes.def (CCP): New.
22750         * config/i386/i386.c (put_condition_code): Handle it.
22751         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
22752
22753 2015-05-11  Richard Henderson  <rth@redhat.com>
22754
22755         * target.def (md_asm_clobbers): Replace with...
22756         (md_asm_adjust): this.
22757         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
22758         (TARGET_MD_ASM_ADJUST): New.
22759         * tm.texi: Rebuild.
22760         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
22761         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
22762         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
22763
22764         * cfgexpand.c (check_operand_nalternatives): Accept vector of
22765         constraints instead of lists of outputs and inputs.
22766         (expand_asm_stmt): Save and restore input_location around the
22767         body of the function.  Move asm data into vectors instead of
22768         building tree lists.  Generate cleanup sequences as needed,
22769         rather than waiting til the end.  Use new md_asm_adjust hook.
22770
22771         * config/vxworks.c: Include vec.h before target.h.
22772         * gimple.c: Likewise.
22773         * incpath.c: Likewise.
22774         * mode-switching.c: Likewise.
22775
22776         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
22777         (cris_md_asm_adjust): this.
22778         (TARGET_MD_ASM_CLOBBERS): Remove.
22779         (TARGET_MD_ASM_ADJUST): New.
22780         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
22781         (ix86_md_asm_adjust): this.
22782         (TARGET_MD_ASM_CLOBBERS): Remove.
22783         (TARGET_MD_ASM_ADJUST): New.
22784         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
22785         (mn10300_md_asm_adjust): this.
22786         (TARGET_MD_ASM_CLOBBERS): Remove.
22787         (TARGET_MD_ASM_ADJUST): New.
22788         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
22789         (rs6000_md_asm_adjust): this.
22790         (TARGET_MD_ASM_CLOBBERS): Remove.
22791         (TARGET_MD_ASM_ADJUST): New.
22792         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
22793         (visium_md_asm_adjust): this.
22794         (TARGET_MD_ASM_CLOBBERS): Remove.
22795         (TARGET_MD_ASM_ADJUST): New.
22796
22797 2015-05-11  Richard Henderson  <rth@redhat.com>
22798
22799         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
22800         if noutputs is zero.
22801         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
22802
22803         * cfgexpand.c (expand_asm_operands): Merge into...
22804         (expand_asm_stmt): ... here.
22805
22806         * cfgexpand.c (expand_asm_operands): Don't call
22807         resolve_asm_operand_names.
22808         * stmt.c (resolve_asm_operand_names): Clarify block comment.
22809
22810 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
22811
22812         * dwarf2out.c (gen_member_die): Sanity check that we access
22813         TYPE_MAIN_VARIANT for TYPE_METHODS.
22814         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
22815         checking TYPE_METHODS.
22816         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
22817         if non-null.
22818         (build_distinct_type_copy): Clear TYPE_METHODS.
22819         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
22820         (verify_type): Allow TYPE_METHODS to be error_mark_node.
22821         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
22822
22823 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
22824
22825         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
22826         (emit_pattern_before_setloc): Likewise.
22827
22828 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22829
22830         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
22831         for define_peephole2s.
22832         (get_peephole2_pattern): New function.
22833         (main): Use it.  Call validate_pattern.
22834
22835 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22836
22837         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
22838         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
22839         (Last callee saved reg is different for AVR_TINY architecture)
22840
22841 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22842
22843         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
22844         when looking for memory references.
22845
22846 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22847
22848         PR target/65753
22849         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
22850         via function pointers.
22851
22852 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22853
22854         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
22855         indirect call by forcing address into a pseudo with -fno-plt.
22856         * common.opt (flag_plt): New option.
22857         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
22858         ([-fno-plt]): Document.
22859
22860 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
22861
22862         PR bootstrap/66105
22863         * config/rs6000/option-defaults.h: Add space between string literal
22864         and macro name.
22865
22866 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22867
22868         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
22869         accross ARM targets.
22870
22871 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22872
22873         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
22874         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
22875
22876 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22877
22878         PR rtl-optimization/66076
22879         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
22880         Don't grow the heap array if it is already big enough from a
22881         previous iteration.
22882
22883 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22884
22885         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
22886         (is_called_in_ARM_mode): Remove.
22887         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
22888         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
22889         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
22890          arm_declare_function_name.
22891
22892 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22893
22894         * config/arm/arm.c (arm_option_override): Reoganized and split into :
22895         (arm_option_params_internal); New function.
22896         (arm_option_check_internal): New function.
22897         (arm_option_override_internal): New function.
22898         (thumb_code, thumb1_code): Remove.
22899         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
22900         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
22901         (thumb_code, thumb1_code): Remove.
22902         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
22903
22904 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22905
22906         * config/alpha/alpha.c (alpha_emit_set_const_1)
22907         (alpha_emit_set_long_const, alpha_extract_integer)
22908         (alpha_legitimate_constant_p, alpha_split_const_mov)
22909         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
22910         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22911         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
22912         HOST_WIDE_INT_1U.
22913         * config/alpha/predicates.md (mode_mask_operand): Do not match
22914         const_double RTX.
22915         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22916         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
22917         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
22918         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22919         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
22920
22921 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
22922
22923         PR target/65780
22924         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
22925         default_binds_local_p_2.
22926         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
22927         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
22928
22929 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22930
22931         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
22932
22933 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22934
22935         Patch by Richard Biener
22936         * coverage.c (coverage_obj_init): Delay building of type variant
22937         until the type is finished.
22938
22939 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22940
22941         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
22942         mismatch between C and C++ type; compoare correctly ARG_TYPES
22943         for non-prototypes and output correctly parameter index for METHOD_TYPE.
22944         (odr_types_equivalent_p): Fix wording of warning about attributes;
22945         it is OK to match prototype and non-prototype.
22946
22947 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22948
22949         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
22950         TYPE_ARG_TYPES list.
22951         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
22952         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
22953
22954 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22955
22956         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
22957         * tree.h (is_lang_specific): Constify.
22958
22959 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
22960
22961         PR tree-optimization/64454
22962         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
22963         Rewrite.
22964
22965 2015-05-08  Jason Merrill  <jason@redhat.com>
22966
22967         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
22968         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
22969         config/darwin.h, config/darwin9.h, config/elfos.h,
22970         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
22971         config/microblaze/microblaze.h, config/mips/mips.h,
22972         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
22973         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
22974         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
22975         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
22976         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
22977         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
22978         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
22979         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
22980         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
22981         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
22982         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
22983         between string literal and macro name.
22984
22985 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22986
22987         * jump.c: Change argument types to rtx_insn *.
22988         * rtl.h: Adjust.
22989
22990 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22991
22992         * lra-constraints.c: Change argument type to rtx_insn *.
22993
22994 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22995
22996         * df-problems.c: Change argument type to rtx_insn *.
22997
22998 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22999
23000         * combine.c: Change argument type to rtx_insn *.
23001
23002 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23003
23004         * rtl.h: Adjust.
23005         * rtlanal.c: Change argument type to rtx_insn *.
23006
23007 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23008
23009         * sched-deps.c: Change argument types to rtx_insn *.
23010         * sched-int.h: Adjust.
23011
23012 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23013
23014         * dwarf2cfi.c: Change argument type to rtx_insn *.
23015
23016 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23017
23018         * ira.c (decrease_live_ranges_number): Changetype of local
23019         variable to rtx_insn *.
23020         * recog.c: Change argument types to rtx_insn *.
23021         * recog.h: Adjust.
23022
23023 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23024
23025         * reorg.c: Change argument types to rtx_insn *.
23026
23027 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23028
23029         * ira-color.c: Change argument types to rtx_insn *.
23030         * lra-eliminations.c: Likewise.
23031         * ira.h: Adjust.
23032
23033 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23034
23035         * gcse.c: Change argument types to rtx_insn *.
23036
23037 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23038
23039         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
23040
23041 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23042
23043         * emit-rtl.c (emit_debug_insn_before): Change argument type to
23044         rtx_insn *.
23045         * rtl.h: Adjust.
23046
23047 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23048
23049         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
23050         * rtl.h: Adjust.
23051
23052 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23053
23054         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
23055         * rtl.h: Adjust.
23056
23057 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23058
23059         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
23060         * rtl.h: Adjust.
23061
23062 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23063
23064         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
23065         * rtl.h: Adjust.
23066
23067 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23068
23069         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
23070         to rtx_insn *.
23071         * rtl.h: Adjust.
23072
23073 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23074
23075         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
23076         to rtx_insn *.
23077         * rtl.h: Likewise.
23078
23079 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23080
23081         * except.c (can_nonlocal_goto): Change type of argument to
23082         rtx_insn *.
23083         * rtl.h: Adjust.
23084
23085 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23086
23087         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
23088         * rtl.h: Adjust.
23089
23090 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23091
23092         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
23093         * cfgrtl.c (can_delete_label_p): Adjust.
23094         * rtl.h: likewise.
23095
23096 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23097
23098         * reorg.c (stop_search_p): Change argument to rtx_insn *.
23099
23100 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23101
23102         * except.c (make_reg_eh_region_note): Change argument to
23103         rtx_insn *.
23104         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
23105         * except.h: Adjust.
23106
23107 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23108
23109         * mode-switching.c (commit_mode_sets): Change type of local
23110         variable from rtx to rtx_insn *.
23111
23112 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
23113
23114         * doc/install.texi (--enable-languages): Add missing jit and lto info.
23115         Add ^ to grep command.
23116         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
23117         arg to last gimple_simplify declaration.  Add missing gimple_build
23118         declaration for built-in function case with four tree args.
23119
23120 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
23121             Szabolcs Nagy  <szabolcs.nagy@arm.com>
23122
23123         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
23124         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
23125         (GNU_USER_DYNAMIC_LINKERN32): Update.
23126
23127 2015-05-08  Richard Biener  <rguenther@suse.de>
23128
23129         PR tree-optimization/66036
23130         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
23131         Handle strided group loads.
23132         (vect_verify_datarefs_alignment): Likewise.
23133         (vect_enhance_data_refs_alignment): Likewise.
23134         (vect_analyze_group_access): Likewise.
23135         (vect_analyze_data_ref_access): Likewise.
23136         (vect_analyze_data_ref_accesses): Likewise.
23137         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
23138         (vectorizable_load): Likewise.
23139
23140 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
23141
23142         * config/rs6000/rs6000.md: Require operand inequality in one
23143         of the peepholes.
23144
23145 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
23146             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23147
23148         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
23149         from (set ...).
23150         * config/rx/rx.md (movdi, movdf): Likewise.
23151         Likewise for define_peephole2s.
23152
23153 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23154
23155         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
23156         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
23157         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
23158         vtst_u64): Rewrite using gcc vector extensions.
23159
23160 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23161
23162         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
23163         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
23164
23165 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23166
23167         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
23168
23169 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23170
23171         * config/glibc-stdint.h (OPTION_MUSL): Define.
23172         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
23173         Change the definition based on OPTION_MUSL for 64 bit targets.
23174         * config/linux.h (OPTION_MUSL): Redefine.
23175         * config/alpha/linux.h (OPTION_MUSL): Redefine.
23176         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
23177         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
23178
23179 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
23180             Szabolcs Nagy  <szabolcs.nagy@arm.com>
23181
23182         * config.gcc (LIBC_MUSL): New tm_defines macro.
23183         * config/linux.h (OPTION_MUSL): Define.
23184         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
23185         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
23186         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
23187         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
23188         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
23189         * config/linux.opt (mmusl): New option.
23190         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
23191         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
23192         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
23193         * configure: Regenerate.
23194
23195 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
23196             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23197
23198         PR target/48904
23199         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
23200         * config/i386/knetbsd-gnu64.h: New file.
23201
23202 2015-05-08  Marek Polacek  <polacek@redhat.com>
23203
23204         PR c/64918
23205         * doc/invoke.texi: Document -Woverride-init-side-effects.
23206
23207 2015-05-07  Marek Polacek  <polacek@redhat.com>
23208
23209         PR c/65179
23210         * doc/invoke.texi: Document -Wshift-negative-value.
23211
23212 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
23213
23214         * gcov-tool.c (do_merge): Refactore to remove int ret.
23215         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
23216         !type == FUNC to type != FUNC.
23217         * reload.h (struct target_reload): Changee to type of
23218         x_spill_indirect_levels from bool to unsigned char.
23219
23220 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
23221
23222         * rtl.h (always_void_p): New function.
23223         * gengenrtl.c (always_void_p): Likewise.
23224         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
23225         with code foo are always VOIDmode.
23226         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
23227         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
23228         compare-elim.c, config/aarch64/aarch64.c,
23229         config/aarch64/aarch64.md, config/alpha/alpha.c,
23230         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
23231         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
23232         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
23233         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23234         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
23235         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
23236         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
23237         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
23238         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
23239         config/ia64/vect.md, config/iq2000/iq2000.c,
23240         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
23241         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
23242         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
23243         config/mep/mep.c, config/microblaze/microblaze.c,
23244         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
23245         config/mn10300/mn10300.c, config/msp430/msp430.c,
23246         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
23247         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
23248         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
23249         config/rs6000/altivec.md, config/rs6000/rs6000.c,
23250         config/rs6000/rs6000.md, config/rs6000/vector.md,
23251         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
23252         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
23253         config/sh/sh.md, config/sh/sh_treg_combine.cc,
23254         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
23255         config/spu/spu.md, config/stormy16/stormy16.c,
23256         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
23257         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
23258         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
23259         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
23260         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
23261         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
23262         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
23263         var-tracking.c: Update calls accordingly.
23264
23265 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
23266
23267         PR middle-end/192
23268         PR middle-end/54303
23269         * varasm.c (function_mergeable_rodata_prefix): New function.
23270         (mergeable_string_section): Use it.
23271         (mergeable_constant_section): Use it.
23272
23273 2015-05-07  Jeff Law  <law@redhat.com>
23274
23275         PR target/39726
23276         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23277         simplifier to narrow arithmetic.
23278         * generic-match-head.c: (types_match, single_use): New functions.
23279         * gimple-match-head.c: (types_match, single_use): New functions.
23280
23281 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
23282
23283         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
23284         rtx type.
23285
23286 2015-05-07  Richard Biener  <rguenther@suse.de>
23287
23288         PR tree-optimization/66002
23289         * passes.def: Schedule another pass_merge_phi after ifcombine, right
23290         before phiopt.
23291
23292 2015-05-07  Marek Polacek  <polacek@redhat.com>
23293             Martin Uecker  <uecker@eecs.berkeley.edu>
23294
23295         * doc/invoke.texi: Document -fsanitize=bounds-strict.
23296         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
23297         into SANITIZE_NONDEFAULT.
23298         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
23299
23300 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
23301
23302         PR target/66015
23303         * config/alpha/alpha.c (alpha_override_options_after_change): New.
23304         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
23305         (alpha_override_options): Move align_loops, align_jumps and
23306         align_functions handling into alpha_override_options_after_change.
23307
23308 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
23309             Chris Jones  <chrisj@nvidia.com>
23310             Joshua Conner  <jconner@nvidia.com>
23311
23312         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
23313         linking of crtfastmath.o.
23314         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
23315
23316 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23317
23318         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
23319         (cstore<mode>4_unsigned_imm): New expander.
23320         (cstore<mode>4): Remove empty constraint strings.  Use the new
23321         expanders.
23322
23323 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
23324
23325         PR target/64208
23326         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
23327         alternatives.
23328
23329 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23330
23331         * config/aarch64/geniterators.sh: Use standard BRE in sed.
23332
23333 2015-05-06  Alan Modra  <amodra@gmail.com>
23334
23335         PR target/66033
23336         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
23337         (UNSPEC_NOP): Define.
23338         (reload_vsx_from_gpr<mode>): Add missing DONE.
23339         (reload_gpr_from_vsx<mode>): Likewise.
23340         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
23341         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
23342
23343 2015-05-06  Christian Bruel  <christian.bruel@st.com>
23344
23345         PR target/66015
23346         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
23347         align_jumps, align_functions into aarch64_override_options_after_change.
23348
23349 2015-05-06  Richard Biener  <rguenther@suse.de>
23350
23351         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
23352         vect_transform_slp_perm_load to check if we support a permutation
23353         for basic-block vectorization.
23354
23355 2015-05-06  Nick Clifton  <nickc@redhat.com>
23356
23357         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
23358         used, even if it is not being used as a frame pointer.
23359
23360 2015-05-05  Jason Merrill  <jason@redhat.com>
23361
23362         * dwarf2out.c (gen_member_die): Don't emit anything for an
23363         anonymous class constructor.
23364
23365 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
23366
23367         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
23368         that it reflects the block structure.
23369         (afdo_propagate_edge): Likewise.
23370         (afdo_calculate_branch_prob): Likewise.
23371         (afdo_annotate_cfg): Likewise.
23372         * cfgcleanup.c (equal_different_set_p): Likewise.
23373         (try_crossjump_to_edge): Likewise.
23374         * cgraph.c (cgraph_node::verify_node): Likewise.
23375         * cgraphunit.c (expand_all_functions): Likewise.
23376         * config/i386/i386.c (ix86_expand_copysign): Likewise.
23377         (exact_dependency_1): Likewise.
23378         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
23379         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
23380         * gensupport.c (process_define_subst): Likewise.
23381         * lto-wrapper.c (merge_and_complain): Likewise.
23382         * tree-if-conv.c (if_convertible_bb_p): Likewise.
23383         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
23384         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
23385         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
23386         * tree-vect-loop.c (vectorizable_reduction): Likewise.
23387         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
23388         * tree-vect-stmts.c (vectorizable_shift): Likewise.
23389         * tree-vrp.c (vrp_finalize): Likewise.
23390         * tree.c (variably_modified_type_p): Likewise.
23391
23392 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
23393
23394         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
23395         on darwin12 and later.
23396         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
23397         file to pass -rdynamic on darwin12 and later.
23398         * config/darwin.opt (rdynamic): Add.
23399
23400 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23401
23402         * doc/extend.texi (C Extensions): Update menu for moved Variable
23403         Attributes and Type Attributes sections.
23404
23405 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23406
23407         PR target/65990
23408         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
23409         if rep_8byte stringop strategy was specified for 32-bit target.
23410
23411 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
23412
23413         PR target/65915
23414         * config/i386/i386.md (vector convert to float spltiter): Check for
23415         xmm16+, when splitting scalar float conversion.
23416         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
23417
23418 2015-05-05  Nick Clifton  <nickc@redhat.com>
23419
23420         * config/msp430/msp430-opts.h (enum msp430_regions): New.
23421         * config/msp430/msp430.c (msp430_override_options): Complain if
23422         -mcode-region or -mdata-region is used on a non MSP430X.
23423         (msp430_section_attr): New function.  Checks lower, upper and
23424         either attributes.
23425         (msp430_attribute_table): Add lower, upper and either.
23426         (gen_prefix): New function.  Generates a prefix for a section
23427         name.
23428         (msp430_select_section): New function - handles the choice of
23429         section for an object.  Takes into account memory region
23430         attributes and options.
23431         (msp430_function_section): Use gen_prefix.
23432         (TARGET_SECTION_TYPE_FLAGS): Define.
23433         (msp430_section_type_flags): New function.
23434         (TARGET_ASM_UNIQUE_SECTION): Define.
23435         (msp430_unique_section): New function.
23436         (msp430_output_aligned_decl_common): New function.
23437         (msp430_do_not_relax_short_jumps): New function.
23438         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
23439         Define.
23440         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
23441         * config/msp430/msp430-protos.h
23442         (msp430_do_not_relax_short_jumps): New prototype.
23443         (msp430_output_aligned_decl_common): New prototype.
23444         * config/msp430/msp430.md (length): New attribute.
23445         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
23446         then use a long code sequence for short jumps.
23447         * config/msp430/msp430.opt (mcode-region): New.
23448         (mdata-region): New.
23449         * doc/invoke.texi: Document new options.
23450         * doc/extend.texi: Document new attributes.
23451
23452 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23453
23454         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
23455         (tune_params): Add field branch_costs.
23456         (aarch64_branch_cost): Declare.
23457         * gcc/config/aarch64.c (generic_branch_cost): New.
23458         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
23459         (cortexa53_tunings): Likewise.
23460         (cortexa57_tunings): Likewise.
23461         (thunderx_tunings): Likewise.
23462         (xgene1_tunings): Likewise.
23463         (aarch64_branch_cost): Define.
23464         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
23465
23466 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23467
23468         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
23469         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
23470         * config/i386/i386.md: Ditto.
23471         * config/i386/winnt.c: Ditto.
23472
23473 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23474
23475         * doc/extend.texi (__atomic Builtins): Move implementation details
23476         to the end of the description, rewrite opening paragraphs, state
23477         difference with __sync builtins, state C11/C++11 assumptions,
23478         weaken itemized descriptions, add explanation of memory model
23479         behaviour, expand description of compare-exchange, simplify text.
23480
23481 2015-05-05  Renlin Li  <renlin.li@arm.com>
23482
23483         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
23484
23485 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
23486
23487         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
23488         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23489         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
23490         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23491         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
23492         * configure: Regenerate.
23493         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
23494         * doc/install.texi (aarch64*-*-*): Document new
23495         --enable-fix-cortex-a53-843419 option.
23496         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
23497         and -mno-fix-cortex-a53-843419 options.
23498
23499 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23500
23501         PR target/65871
23502         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
23503
23504 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
23505
23506         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
23507         fix overactive TYPE_MIN_VALUE check and add FIXME for type
23508         compatibility problems.
23509
23510 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23511
23512         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
23513         constraints.
23514         (cbranchsi4_reg): New.
23515         * config/microblaze/microblaze.c
23516         (microblaze_expand_conditional_branch_reg): New.
23517         * config/microblaze/microblaze-protos.h
23518         (microblaze_expand_conditional_branch_reg): New prototype.
23519
23520 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23521
23522         * config/microblaze/microblaze.md (peephole2): New.
23523
23524 2015-05-04  Jeff Law  <law@redhat.com>
23525
23526         Revert:
23527         2015-05-04  Jeff Law  <law@redhat.com>
23528
23529         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23530         simplifier to narrow arithmetic.
23531         * generic-match-head.c: (types_match, single_use): New functions.
23532         * gimple-match-head.c: (types_match, single_use): New functions.
23533
23534 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
23535
23536         PR target/65987
23537         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
23538         (split_branches): Likewise.
23539
23540 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
23541
23542         * common.opt (fdelete-null-pointer-checks): Init to -1.
23543         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
23544         override flag_delete_null_pointer_checks default.
23545         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
23546         behavior re address zero.  Better document target-specific behavior.
23547         (-fisolate-errneous-paths-dereference): Mention relationship to
23548         -fdelete-null-pointer-checks.
23549
23550 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23551
23552         PR tree-optimization/65984
23553         * ubsan.c: Include tree-cfg.h.
23554         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
23555         stmt_could_throw_p test, rename can_throw variable to ends_bb.
23556
23557 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23558
23559         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
23560         to CONST_DOUBLE_P predicate.
23561         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
23562         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
23563         allow only operands that satisfy standard_sse_constant_p predicate.
23564         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
23565         to CONST_DOUBLE_P predicate.
23566
23567 2015-05-04  Jeff Law  <law@redhat.com>
23568
23569         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23570         simplifier to narrow arithmetic.
23571         * generic-match-head.c: (types_match, single_use): New functions.
23572         * gimple-match-head.c: (types_match, single_use): New functions.
23573
23574 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
23575
23576         * config/arm/arm.c: Restore bootstrap.
23577
23578 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23579
23580         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
23581         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
23582         as CONST_WIDE_INT, not CONST_DOUBLE.
23583         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
23584         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
23585         (ix86_find_base_term): Do not check for CONST_DOUBLE.
23586         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
23587         (ix86_build_signbit_mask): Rewrite using wide ints.
23588         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
23589         (ix86_rtx_costs): Handle CONST_WIDE_INT.
23590         (find_constant): Ditto.
23591         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
23592         using gen_int_mode.
23593         * config/i386/predicates.md (x86_64_immediate_operand)
23594         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23595         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
23596         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23597         (const0_operand): Also match const_wide_int.
23598         (constm1_operand): Ditto.
23599         (const1_operand): Ditto.
23600
23601 2015-05-04  Richard Biener  <rguenther@suse.de>
23602
23603         PR tree-optimization/65965
23604         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
23605         store groups at gaps.
23606
23607 2015-05-04  Richard Biener  <rguenther@suse.de>
23608
23609         PR tree-optimization/65935
23610         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
23611         then make sure to apply that swapping to the IL.
23612
23613 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23614
23615         * Makefile.in (PATCHLEVEL_c): New variable.
23616         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
23617         expand the same way as if DEVPHASE_c was non-empty.
23618
23619 2015-05-04  Kai Tietz  <ktietz@redhat.com>
23620
23621         PR target/65559
23622         * lto-wrapper.c (run_gcc): Open filename
23623         in binary-mode.
23624
23625 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
23626
23627         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
23628         sections up in file, to immediately after the Function Attributes
23629         section.
23630
23631 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
23632
23633         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
23634
23635 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23636
23637         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
23638         (insert_partition_copy_on_edge): Adjust.
23639         (insert_rtx_to_part_on_edge): Likewise.
23640         (insert_part_to_rtx_on_edge): Likewise.
23641
23642 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23643
23644         * function.c (set_return_jump_label): Change type of argument to
23645         rtx_insn *.
23646         * function.h (set_return_jump_label): Adjust.
23647
23648 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23649
23650         * reload.h (struct reg_equivs_t): Change type of init to
23651         rtx_insn *.
23652         * ira.c (fix_reg_equiv_init): Adjust.
23653         * reload1.c (eliminate_regs_1): Likewise.
23654         (init_eliminable_invariants): Likewise.
23655
23656 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23657
23658         * cselib.c (fp_setter_insn): Take a rtx_insn *.
23659         * cselib.h (fp_setter_insn): Adjust.
23660
23661 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23662
23663         * recog.c (struct validate_replace_src_data): Change type of
23664         insn field to rtx_insn *.
23665         (validate_replace_src_group): Change type of argument to rtx_insn *.
23666         * recog.h (validate_replace_src_group): Adjust.
23667
23668 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23669
23670         * haifa-sched.c: Change the type of some variables to rtx_insn *.
23671         * sched-deps.c: Likewise.
23672         * sched-int.h: Likewise.
23673         * sched-rgn.c: Likewise.
23674         * sel-sched.c: Likewise.
23675
23676 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23677
23678         to rtx_insn *.
23679         * config/i386/i386.c: Change the type of some arguments to
23680         rtx_insn *.
23681         * config/arm/arm.c: Likewise.
23682
23683 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23684
23685         * lra-constraints.c: Change type of some arguments to rtx_insn *.
23686
23687 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23688
23689         * regcprop.c (kill_autoinc_value): Change type of argument to
23690         rtx_insn *.
23691
23692 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23693
23694         * genrecog.c (print_subroutine): Adjust.
23695         * recog.c (get_bool_attr_mask_uncached): Likewise.
23696         * recog.h (struct recog_data_d): Change the type of insn to
23697         rtx_insn *.
23698
23699 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23700
23701         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
23702
23703 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23704
23705         * df-problems.c (df_set_note): Change type of argument to
23706         rtx_insn *.
23707
23708 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23709
23710         * builtins.c (expand_builtin_trap): Change type of local
23711         variable to rtx_insn *.
23712         (add_sched_insns_for_speculation): Likewise.
23713         (ix86_emit_save_regs): Likewise.
23714         (get_scratch_register_on_entry): Likewise.
23715         (ix86_emit_restore_reg_using_pop): Likewise.
23716         (ix86_emit_leave): Likewise.
23717         (ix86_emit_restore_regs_using_mov): Likewise.
23718         (ix86_expand_epilogue): Likewise.
23719         Likewise.
23720         (rl78_alloc_physical_registers_umul): Likewise.
23721         * cselib.c (discard_useless_locs): Likewise.
23722         (cselib_invalidate_regno): Likewise.
23723         (cselib_invalidate_mem): Likewise.
23724         * function.c (expand_function_start): Likewise.
23725         (emit_use_return_register_into_block): Likewise.
23726         * gcse.c: Likewise.
23727         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
23728         * ifcvt.c (noce_get_alt_condition): Likewise.
23729         * loop-doloop.c (doloop_condition_get): Likewise.
23730         * lra-constraints.c (inherit_in_ebb): Likewise.
23731         * modulo-sched.c (sms_schedule_by_order): Likewise.
23732         * recog.c (next_insn_tests_no_inequality): Likewise.
23733         * reorg.c (emit_delay_sequence): Likewise.
23734         (update_reg_dead_notes): Likewise.
23735         (fix_reg_dead_note): Likewise.
23736         (fill_slots_from_thread): Likewise.
23737         (delete_computation): Likewise.
23738
23739 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
23740
23741         * doc/extend.texi (Variable Attributes): Add menu and proper
23742         @nodes to subsections.  Move Microsoft Windows attributes to
23743         their own subsection.
23744         (Type Attributes): Reorganize introduction to remove duplicate
23745         list of attributes.  Add menu and proper @nodes to subsections.
23746         Alphabetize the main table of common attributes.
23747
23748 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
23749
23750         * match.pd: New simplification patterns.
23751         (x + (x & 1))  -> ((x + 1) & ~1)
23752         (x & ~(x & y)) -> ((x & ~y))
23753         (x | ~(x | y)) -> ((x | ~y))
23754
23755 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23756
23757         * target.def (attribute_table): Mention that struct attribute_spec
23758         is defined in tree-core.h rather than tree.h
23759         * doc/tm.texi: Regenerate.
23760
23761 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
23762
23763         * genrecog.c (test): Rename to rtx_test.  Update rest of file
23764         accordingly.
23765
23766 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
23767
23768         PR translation/65959
23769         * params.h (DEFPARAM): Rename msgid to nocmsgid.
23770
23771 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23772
23773         * gcc/config/aarch64/aarch64-protos.h (tune_params):
23774         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
23775         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
23776         Return value depending on target.
23777         (generic_tunings): Initialize new target settings.
23778         (cortexa53_tunings): Likewise.
23779         (cortexa57_tunings): Likewise.
23780         (thunderx_tunings): Likewise.
23781         (xgene1_tunings): Likewise.
23782
23783 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23784
23785         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
23786         Make Cortex-A53 shift costs more accurate.
23787
23788 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23789
23790         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
23791         UNSIGNED_FLOAT.
23792
23793 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23794
23795         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
23796         Calculate cost of op0 and op1 in PLUS and MINUS cases.
23797
23798 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23799
23800         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23801         Add cost of op0 in the compare-with-fpzero case.
23802
23803 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
23804
23805         * builtins.c (fold_builtin_1): Remove spurious second
23806         semicolon.
23807         * cgraph.h (symtab_node::get_availability): Likewise.
23808         * opts.c (common_handle_option): Remove spurious second semicolon.
23809         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23810         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
23811
23812 2015-04-30  Caroline Tice  <cmtice@google.com>
23813
23814         PR gcov-profile/65929
23815         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
23816         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
23817         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
23818         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
23819         * doc/tm.texi: Regenerate.
23820         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
23821         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
23822         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
23823         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
23824
23825 2015-04-30  Marek Polacek  <polacek@redhat.com>
23826
23827         * varasm.c (handle_cache_entry): Fix logic.
23828
23829 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23830
23831         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
23832         (*extrsi5_insn_uxtw_alt): Likewise.
23833         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
23834         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
23835         operations.
23836
23837 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23838
23839         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
23840         fabd in ABS case.
23841
23842 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23843
23844         * config/aarch64/aarch64.md
23845         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
23846         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
23847         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
23848         appropriately.  Handle alternative EON form.
23849
23850 2015-04-30  Renlin Li  <renlin.li@arm.com>
23851
23852         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
23853         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
23854
23855 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23856
23857         PR ipa/65873
23858         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
23859         -fstrict-aliasing boundaries.
23860
23861 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23862
23863         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
23864         and [SU]MNEGL patterns.
23865
23866 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23867
23868         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
23869         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
23870         combined arithmetic-shift ops.  Properly handle all shift and extend
23871         operations that can occur in combination with PLUS/MINUS.
23872         Rename maybe_fma to compound_p.
23873         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
23874         arithmetic and shift operations.
23875
23876 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23877
23878         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
23879         rather than arith_shift cost when costing ADD/MINUS of an
23880         extended value.
23881
23882 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23883
23884         PR lto/65948
23885         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
23886         to itself.
23887
23888 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
23889
23890         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
23891         are for the same position.
23892
23893 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
23894
23895         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
23896         vectorize_loops.
23897         (vectorize_loops): Use it.
23898
23899 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23900
23901         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
23902         for aggregate types.
23903         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
23904         type to be non_ODR.
23905         * tree.c (need_assembler_name_p): Compute mangled name for
23906         non-fundamental types and integer types.
23907
23908 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
23909
23910         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
23911         manual swaps.
23912         * expr.c (expand_expr_real_2): Likewise.
23913
23914 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23915
23916         * tree.c (build_common_builtin_nodes): Do not build
23917         __builtin_alloca_with_align as equivalent of library alloca.
23918
23919 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23920
23921         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
23922         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
23923         bugus variants.
23924         * tree.c: Include print-tree.h and ipa-utils.h
23925         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
23926         (free_lang_data_in_cgraph): Call verify_type.
23927         (verify_type_variant): New function.
23928         (verify_type): New function.
23929         * tree.h (verify_type): Declare.
23930
23931 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
23932
23933         * config/mips/mips-cpus.def: (mips4): Change default processor
23934         from PROCESSOR_R8000 to PROCESSOR_R10000.
23935
23936 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
23937
23938         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
23939         la/jalr instead of jal.
23940
23941 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
23942
23943         PR target/65871
23944         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
23945         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
23946         (setcc+movzbl peephole2): Check also clobbered reg.
23947         (setcc+andl peephole2): Ditto.
23948
23949 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23950
23951         PR libgomp/65099
23952         * config/nvptx/mkoffload.c (target_ilp32): New variable.
23953         (main): Set it depending on "-foffload-abi=[...]".
23954         (compile_native, main): Use it to pass "-m32" or "-m64" to the
23955         compiler.
23956
23957 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23958
23959         PR target/65770
23960         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
23961         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
23962         Flip lane index back at assembly time for bigendian.
23963
23964 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23965
23966         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
23967         * gimplify.c (gimplify_omp_workshare): Use it.
23968
23969 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23970
23971         * Makefile.in (build/genrecog.o): Depend on inchash.h.
23972         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
23973         build/inchash.o
23974         * genrecog.c: Rewrite most of the code except for the third page.
23975
23976 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23977
23978         * inchash.h, inchash.c: Include bconfig.h for build objects.
23979         * Makefile.in (build/inchash.o): New rule.
23980
23981 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
23982
23983         PR target/65924
23984         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
23985         number in type attribute expression.
23986
23987 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23988
23989         * loop-iv.c (canon_condition): Generalize to all types of integer
23990         constant.
23991
23992 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
23993
23994         * gimple-walk.c: Prune duplicate or unneeded includes.
23995         (walk_gimple_asm): Only call parse_input_constraint or
23996         parse_output_constraint if their findings are used.
23997         Honour parse_input_constraint and parse_output_constraint
23998         result.
23999
24000 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
24001
24002         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
24003
24004 2015-04-29  Tom de Vries  <tom@codesourcery.com>
24005
24006         PR tree-optimization/65893
24007         * passes.def (pass_all_optimizations): Move pass_stdarg to after
24008         pass_dce.
24009
24010 2015-04-29  Richard Biener  <rguenther@suse.de>
24011
24012         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
24013         compute GROUP_SIZE for basic-block SLP.
24014         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
24015         take into account gaps.
24016         (vect_get_mask_element): Properly reject references to previous
24017         vectors.
24018         (vect_transform_slp_perm_load): Likewise.
24019
24020 2015-04-29  Christian Bruel  <christian.bruel@st.com>
24021
24022         PR target/64835
24023         * config/i386/i386.c (ix86_default_align): New function.
24024         (ix86_override_options_after_change): Call ix86_default_align.
24025         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
24026         (ix86_override_options_after_change): New function.
24027
24028 2015-04-28  Jeff Law  <law@redhat.com>
24029
24030         * tree-ssa-dom.c (record_equality); Fix comment typos.
24031
24032 2015-04-28  Tom de Vries  <tom@codesourcery.com>
24033
24034         PR tree-optimization/65887
24035         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
24036
24037 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
24038
24039         * doc/extend.texi (Declaring Attributes of Functions): Split into
24040         subsections by target.  Alphabetize the table of common attributes.
24041         Rewrite some of the introductory text to reflect the new structure.
24042         Update some cross-references to point to the new subsections.
24043         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
24044         duplicate copies in the discussion of function, label, and type
24045         attributes.
24046
24047 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
24048
24049         PR bootstrap/65910
24050         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
24051
24052 2015-04-28  Jason Merrill  <jason@redhat.com>
24053
24054         PR c++/65734
24055         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
24056         (finalize_type_size): Respect TYPE_USER_ALIGN.
24057         (layout_type) [ARRAY_TYPE]: Likewise.
24058
24059 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
24060
24061         * config/arm/arm.md (*arm_movt): Fix type attribute.
24062         (*cmpsi_shiftsi): Likewise.
24063         (*cmpsi_shiftsi_swp): Likewise.
24064         (*movsicc_insn): Likewise.
24065         (*cond_move): Likewise.
24066         (*if_plus_move): Likewise.
24067         (*if_move_plus): Likewise.
24068         (*if_arith_move): Likewise.
24069         (*if_move_arith): Likewise.
24070         (*if_shift_move): Likewise.
24071         (*if_move_shift): Likewise.
24072         (*arm_movtas_ze): Likewise.
24073         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
24074         redundancy and type attribute.
24075         (*thumb2_movsi_insn): Fix type attribute.
24076         (*thumb2_addsi_short): Likewise.
24077         (thumb2_addsi3_compare0): Likewise.
24078         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
24079         attributes accordingly.
24080
24081 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
24082
24083         PR other/65911
24084         * function.c (pad_to_arg_alignment): Add parentheses.
24085
24086 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
24087
24088         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
24089         libgcc/config/frv/elf-lib.h.
24090
24091 2015-04-28  Tom de Vries  <tom@codesourcery.com>
24092
24093         * tree-call-cdce.c: Fix example in header comment.
24094
24095 2015-04-28  Richard Biener  <rguenther@suse.de>
24096
24097         PR tree-optimization/62283
24098         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
24099         fails fatally and we are vectorizing a basic-block simply
24100         cause the child to be constructed piecewise.
24101         (vect_analyze_slp_cost_1): Adjust.
24102         (vect_detect_hybrid_slp_stmts): Likewise.
24103         (vect_bb_slp_scalar_cost): Likewise.
24104         (vect_get_constant_vectors): For piecewise constructed
24105         constants place them after the last def.
24106         (vect_get_slp_defs): Adjust.
24107         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
24108         externals for basic-block vectorization.
24109
24110 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24111
24112         PR target/63503
24113         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
24114         aarch64-*-*.
24115         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
24116         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
24117         (AARCH64_TUNE_FMA_STEERING): Likewise.
24118         * config/aarch64/aarch64-cores.def: Set
24119         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
24120         FMUL/FMADD instructions.
24121         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
24122         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
24123         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
24124         * config/aarch64/cortex-a57-fma-steering.h: New file.
24125         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24126
24127 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
24128
24129         * gensupport.c (std_preds): Add missing codes to address_operand entry.
24130
24131 2015-04-28  Richard Biener  <rguenther@suse.de>
24132
24133         PR tree-optimization/65851
24134         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
24135         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
24136         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
24137         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
24138         (ccp_visit_phi_node): Adjust.
24139         (evaluate_stmt): For simplifications to SSA names return its
24140         lattice value if that isn't VARYING.  Return immediately when
24141         simplified to a constant.
24142         (visit_assignment): Adjust.
24143         (ccp_visit_stmt): Likewise.
24144
24145 2015-04-28  Tom de Vries  <tom@codesourcery.com>
24146
24147         PR tree-optimization/65818
24148         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
24149         evaluated.
24150
24151 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24152
24153         * calls.c (save_fixed_argument_area): Don't check
24154         ARGS_GROW_DOWNWARD with the preprocessor.
24155         (restore_fixed_argument_area): Likewise.
24156         (mem_overlaps_already_clobbered_arg_p): Likewise.
24157         (check_sibcall_argument_overlap): Likewise.
24158         (expand_call): Likewise.
24159         (emit_library_call_value_1): Likewise.
24160         (store_one_arg): Likewise.
24161         * function.c (assign_parms): Likewise.
24162         (locate_and_pad_parm): Likewise.
24163         (pad_to_arg_alignment): Likewise.
24164         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
24165
24166 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24167
24168         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
24169         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
24170         * calls.c (save_fixed_argument_area): Don't chekc if
24171         ARGS_GROW_DOWNWARD is defined.
24172         (restore_fixed_argument_area): Likewise.
24173         (mem_overlaps_already_clobbered_arg_p): Likewise.
24174         (check_sibcall_argument_overlap): Likewise.
24175         (expand_call): Likewise.
24176         (emit_library_call_value_1): Likewise.
24177         (store_one_arg): Likewise.
24178         * function.c (assign_parms): Likewise.
24179         (locate_and_pad_parm): Likewise.
24180         (pad_to_arg_alignment): Likewise.
24181         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
24182
24183 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24184
24185         * defaults.h (gen_epilogue): New function.
24186         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
24187         defined.
24188         * cfgrtl.c (cfg_layout_finalize): Likewise.
24189         * df-scan.c: Likewise.
24190         * function.c (thread_prologue_and_epilogue_insns): Likewise.
24191         (reposition_prologue_and_epilogue_notes): Likewise.
24192         * reorg.c (find_end_label): Likewise.
24193         * toplev.c: Likewise.
24194
24195 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24196
24197         * bb-reorder.c (HAVE_return): Don't check if its undefined.
24198         * defaults.h (gen_simple_return): New function.
24199         (gen_simple_return): Likewise.
24200         (HAVE_return): Add default definition to false.
24201         (HAVE_simple_return): Likewise.
24202         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
24203         HAVE_return and HAVE_simple_return are defined.
24204         * function.c (gen_return_pattern): Likewise.
24205         (convert_jumps_to_returns): Likewise.
24206         (thread_prologue_and_epilogue_insns): Likewise.
24207         * reorg.c (find_end_label): Likewise.
24208         (dbr_schedule): Likewise.
24209         * shrink-wrap.c: Likewise.
24210         * shrink-wrap.h: Likewise.
24211
24212 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24213
24214         * defaults.h (EPILOGUE_USES): Add default definition of false.
24215         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
24216         * resource.c (init_resource_info): Likewise.
24217
24218 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24219
24220         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
24221         to false.
24222         * dwarf2out.c (field_byte_offset): REmove check if
24223         PCC_BITFIELD_TYPE_MATTERS is defined.
24224         * stor-layout.c (layout_decl): Likewise.
24225         (update_alignment_for_field): Likewise.
24226         (place_field): Likewise.
24227
24228 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24229
24230         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
24231         true.
24232         * regrename.c (check_new_reg_p): Remove check if
24233         HARD_REGNO_RENAME_OK is defined.
24234         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
24235
24236 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24237
24238         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
24239         * cse.c (fold_rtx): Likewise.
24240         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
24241         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
24242         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
24243         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
24244         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
24245         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
24246         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
24247         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
24248         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
24249         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
24250         * Likewise.
24251         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
24252         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
24253         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
24254         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
24255         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
24256         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
24257         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
24258         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
24259         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
24260         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
24261         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
24262         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
24263         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
24264         * doc/tm.texi: Regenerate.
24265         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
24266         either true or false.
24267
24268 2015-04-27  Jeff Law  <law@redhat.com>
24269
24270         PR tree-optimization/65217
24271         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
24272         of them has a single use, make sure it is the LHS of the implied
24273         copy.
24274
24275 2015-04-28  Alan Modra  <amodra@gmail.com>
24276
24277         PR target/65810
24278         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
24279         (offsettable_ok_by_alignment): Use minimum of decl and toc
24280         pointer alignment.  Replace dead code with assertion.
24281         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
24282         case if size exceeds toc pointer alignment.
24283         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
24284         (rs6000_emit_move): Likewise.
24285         * configure.ac: Add linker toc pointer alignment check.
24286         * configure: Regenerate.
24287         * config.in: Regenerate.
24288
24289 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
24290
24291         * config.gcc: Add h8300-*-linux.
24292         * config/h8300/linux.h: New.
24293         * config/h8300/t-linux: New.
24294         * config/h8300/h8300.c (h8300_option_override): Normal mode
24295         is not supported for h8300-*-linux.
24296         (h8300_file_start): Target priority change.
24297         (get_shift_alg): Likewise.
24298         (h8300_shift_need_scratch_p): Likewise.
24299         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
24300         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
24301
24302 2015-04-27  Caroline Tice  <cmtice@google.com>
24303
24304         * final.c (final_scan_insn):  Output cold_function_name as function
24305         type.
24306         * varasm.c (cold_function_name):  Make global.
24307         (assemble_start_function):  Re-set cold_function_name.
24308         (assemble_end_function): Output cold partition size.
24309         * varasm.h (cold_function_name):  Declare global.
24310
24311 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
24312
24313         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
24314         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
24315         constraint.
24316         (*movxi_internal_avx512f): Ditto.
24317         (define_split): Check for xmm16+, when splitting scalar float_extend.
24318         (*extendsfdf2_mixed): Use "v" constraint.
24319         (define_split): Check for xmm16+, when splitting scalar float_truncate.
24320         (*truncdfsf_fast_sse): Use "v" constraint.
24321         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
24322         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
24323         (define_peephole2): Check for xmm16+, when converting scalar
24324         float_truncate.
24325         (define_peephole2): Check for xmm16+, when converting scalar
24326         float_extend.
24327         (*fop_<mode>_comm_mixed): Use "v" constraint.
24328         (*fop_<mode>_comm_sse): Ditto.
24329         (*fop_<mode>_1_mixed): Ditto.
24330         (*sqrt<mode>2_sse): Ditto.
24331         (*ieee_s<ieee_maxmin><mode>3): Ditto.
24332
24333 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24334
24335         * combine.c (simplify_if_then_else): Use std::swap instead
24336         of manually swapping.
24337         (known_cond): Likewise.
24338         (simplify_comparison): Likewise.
24339
24340 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
24341
24342         PR target/64579
24343         * config/rs6000/htm.md: Remove all define_expands.
24344         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
24345         UNSPECV_HTM_TABORTWCI): Remove.
24346         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
24347         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
24348         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
24349         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
24350         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
24351         tabortwci_internal): Remove define_insns.
24352         (tabort<wd>c, tabort<wd>ci): New define_insns.
24353         (tabort): Use gpc_reg_operand.
24354         (tcheck): Remove operand.
24355         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
24356         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
24357         expected value.
24358         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
24359         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
24360         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
24361         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
24362         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
24363         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
24364         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
24365         (tcheck): Remove builtin argument.
24366         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
24367         not TARGET_64BIT.
24368         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
24369         tabortdc and tabortdci builtins when not in 64-bit mode.
24370         Modify code to handle the loss of the HTM define_expands.
24371         Emit code to copy the CR register to TARGET.
24372         (htm_init_builtins): Modify code to handle the loss of the HTM
24373         define_expands.
24374         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
24375         (RS6000_BTC_64BIT): Likewise.
24376         (RS6000_BTC_CR): New macro.
24377         * doc/extend.texi: Update documentation for htm builtins.
24378
24379 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24380
24381         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
24382         of manually swapping.
24383         (simplify_associative_operation): Likewise.
24384         (simplify_binary_operation): Likewise.
24385         (simplify_plus_minus): Likewise.
24386         (simplify_relational_operation): Likewise.
24387         (simplify_ternary_operation): Likewise.
24388
24389 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24390
24391         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
24392         (xs_hi_nonmemory_operand): Remove error.
24393         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
24394         general_operand rather than xs_hi_general_operand.
24395
24396 2015-04-27  Richard Biener  <rguenther@suse.de>
24397
24398         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
24399         (record_equivalences_from_stmt): Valueize rhs.
24400         (record_equality): Canonicalize x and y order via
24401         tree_swap_operands_p.  Do not swap operands for same loop depth.
24402
24403 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
24404
24405         PR target/65296
24406         PR target/65895
24407         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
24408         Add hint how to use own spec file.
24409
24410 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
24411
24412         PR tree-optimization/65875
24413         * tree-vrp.c (update_value_range): If in is_new case setting
24414         old_vr to VR_VARYING, also set new_vr to it.  Remove
24415         old_vr->type == VR_VARYING test.
24416         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
24417         SSA_PROP_INTERESTING if update_value_range returned true,
24418         but new range is VR_VARYING.
24419
24420 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24421
24422         * combine.c (sign_extend_short_imm): New.
24423         (set_nonzero_bits_and_sign_copies): Use above new function for sign
24424         extension of src short immediate.
24425         (reg_nonzero_bits_for_combine): Likewise for tem.
24426
24427 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24428
24429         * stor-layout.c (self_referential_component_ref_p): New predicate.
24430         (copy_self_referential_tree_r): Use it.
24431         (self_referential_size): Punt for simple operations directly involving
24432         self-referential component references.
24433         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
24434
24435 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24436
24437         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
24438
24439 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24440
24441         * vec.h (vec): Make splice arguments const.  Update definitions
24442         accordingly.
24443
24444 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
24445
24446         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
24447         alternatives.
24448
24449 2015-04-26  Tom de Vries  <tom@codesourcery.com>
24450
24451         PR tree-optimization/65826
24452         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
24453
24454 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
24455
24456         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
24457         (*madd3<mode>): Ditto.
24458         (*msub4<mode>): Ditto.
24459         (*msub3<mode>): Ditto.
24460         (*nmadd4<mode>): Ditto.
24461         (*nmadd3<mode>): Ditto.
24462         (*nmadd4<mode>_fastmath): Ditto.
24463         (*nmadd3<mode>_fastmath): Ditto.
24464         (*nmsub4<mode>): Ditto.
24465         (*nmsub3<mode>): Ditto.
24466         (*nmsub4<mode>_fastmath): Ditto.
24467         (*nmsub3<mode>_fastmath): Ditto.
24468
24469 2015-04-24  Jason Merrill  <jason@redhat.com>
24470
24471         PR c++/50800
24472         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
24473         down when building TYPE_CANONICAL.
24474         (build_pointer_type_for_mode): Likewise.
24475
24476 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
24477
24478         * genrecog.c (validate_pattern): Check matching constraint refers
24479         to a lower numbered operand.
24480
24481 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24482
24483         PR target/65849
24484         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
24485         save to independent variables use the Save attribute.  This will
24486         allow these options to be modified with the #pragma/attribute
24487         target support.
24488         (-mallow-movmisalign): Likewise.
24489         (-mallow-df-permute): Likewise.
24490         (-msched-groups): Likewise.
24491         (-malways-hint): Likewise.
24492         (-malign-branch-targets): Likewise.
24493         (-mvectorize-builtins): Likewise.
24494         (-msave-toc-indirect): Likewise.
24495
24496         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
24497         can be set via the #pragma/attribute target support.
24498         (rs6000_opt_vars): Likewise.
24499         (rs6000_inner_target_options): If VSX was set, also set
24500         -mno-avoid-indexed-addresses.
24501
24502 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24503
24504         * config/arm/iterators.md (shiftable_ops): Rename to...
24505         (SHIFTABLE_OPS): ... This.  Update use in comments.
24506         (ior_xor): Rename to...
24507         (IOR_XOR): ... This.
24508         (vqh_ops): Rename to...
24509         (VQH_OPS): ... This.
24510         (vqhs_ops): Rename to...
24511         (VQHS_OPS): ... This.
24512         (rshifts): Rename to...
24513         (RSHIFTS): ... This.
24514         (returns): Rename to...
24515         (RETURNS): ... This.
24516         * config/arm/arm.md: Update uses of the above.
24517         * config/arm/neon.md: Likewise.
24518
24519 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24520
24521         * config.host (case ${host}): Add aarch64*-*-linux case.
24522         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
24523         fields to all the cores.
24524         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
24525         Add MCPU_MTUNE_NATIVE_SPECS.
24526         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
24527         field to all extensions.
24528         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
24529         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
24530         Adjust definition of AARCH64_OPT_EXTENSION.
24531         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
24532         (MCPU_MTUNE_NATIVE_SPECS): Define.
24533         * config/aarch64/driver-aarch64.c: New file.
24534         * config/aarch64/x-arch64: New file.
24535         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
24536         -mtune and -march.
24537
24538 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24539             Wei Mi  <wmi@google.com>
24540
24541         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
24542         * config/i386/i386.c (extract_base_offset_in_addr): New function.
24543         (ix86_operands_ok_for_move_multiple): Ditto.
24544         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
24545         (movlpd/movhpd to movupd peephole2): Ditto.
24546
24547 2015-04-24  Marek Polacek  <polacek@redhat.com>
24548
24549         PR c/61534
24550         * input.h (from_macro_expansion_at): Define.
24551
24552         PR c/63357
24553         * doc/invoke.texi: Update description of -Wlogical-op.
24554
24555 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24556
24557         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
24558         ternary operator in fprintf and harmonize spacing.
24559
24560 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24561
24562         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
24563         Mark operand1 commutative.
24564
24565 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24566
24567         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
24568         input operands in memory.
24569         (*vec_concatv2si_sse4_1): Ditto.
24570         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
24571         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
24572         register_operand.
24573         (vec_extract_hi_v32hi): Ditto.
24574         (vec_extract_hi_v64hi): Ditto.
24575         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
24576
24577 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24578             Steven Bosscher <steven@gcc.gnu.org>
24579
24580         PR rtl-optimization/34503
24581         * cprop.c (cprop_reg_p): New.
24582         (hash_scan_set): Use above function to check if register can be
24583         propagated.
24584         (find_avail_set): Return up to two sets, one whose source is a
24585         register and one whose source is a constant.  Sets are returned in an
24586         array passed as parameter rather than as a return value.
24587         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
24588         sets returned by find_avail_set, starting with the one whose source is
24589         a constant. Use cprop_reg_p to check if register can be propagated.
24590         (do_local_cprop): Use cprop_reg_p to check if register can be
24591         propagated.
24592         (implicit_set_cond_p): Likewise.
24593
24594 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24595
24596         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
24597         (sem_function::equals): IGNORED_NODES parameter is now unused;
24598         update call of equals_private.
24599         (sem_function::equals_private): Do not call equals_wpa; skip
24600         gimple body matching if there is no body.
24601         (sem_function::init): Add logic to hash tthunk info.
24602         (sem_function::parse): Also parse thunks.
24603         * ipa-icf.h (equals_private): Update declaration.
24604
24605 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24606
24607         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
24608         asterisk from name so this can be generated directly.
24609         (*altivec_stvx_<mode>_internal): Likewise.
24610         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
24611         that this is never called during or after reload/lra.
24612         (rs6000_frame_related): Remove split_reg
24613         argument and logic that references it.
24614         (emit_frame_save): Remove last parameter from call to
24615         rs6000_frame_related.
24616         (rs6000_emit_prologue): Remove last parameter from eight calls to
24617         rs6000_frame_related.  Force generation of stvx instruction for
24618         Altivec register saves.  Remove split_reg handling, which is no
24619         longer needed.
24620         (rs6000_emit_epilogue):  Force generation of lvx instruction for
24621         Altivec register restores.
24622
24623 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24624
24625         * config/rs6000/rs6000.opt (mcrypto): Change option description to
24626         match category changes in ISA 2.07B.
24627
24628 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24629
24630         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
24631         iterators.
24632         (cmp_op, cmp_type): New code attributes.
24633         (NEON_VCMP, NEON_VACMP): New int iterators.
24634         (cmp_op_unsp): New int attribute.
24635         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
24636         (neon_vceq<mode>): Delete.
24637         (neon_vc<cmp_op><mode>_insn): New pattern.
24638         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
24639         (neon_vcgeu<mode>): Delete.
24640         (neon_vcle<mode>): Likewise.
24641         (neon_vclt<mode>: Likewise.
24642         (neon_vcage<mode>): Likewise.
24643         (neon_vcagt<mode>): Likewise.
24644         (neon_vca<cmp_op><mode>): New define_expand.
24645         (neon_vca<cmp_op><mode>_insn): New pattern.
24646         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
24647
24648 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24649
24650         * tree.h (attribute_value_equal): Declare.
24651         * tree.c (attribute_value_equal): Export.
24652
24653 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24654
24655         * ipa-icf.c (sem_item::compare_attributes): New function.
24656         (sem_item::compare_referenced_symbol_properties): Compare variable
24657         attributes.
24658         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
24659         (sem_function::param_used_p): New function.
24660         (sem_function::equals_wpa): Fix attribute comparsion; match
24661         parameter type codes; do not compare paremter flags when
24662         they are not used; compare edge flags; compare indirect calls.
24663         (sem_item::update_hash_by_addr_refs): Hash reference type.
24664         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
24665         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
24666         reference use type.
24667         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
24668         * ipa-icf.h (compare_attributes, param_used_p): Declare.
24669
24670 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24671
24672         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
24673         cleanup.
24674         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
24675         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
24676         (sem_item::compare_referenced_symbol_properties): New.
24677         (sem_item::hash_referenced_symbol_properties): New.
24678         (sem_item::compare_cgraph_references): Rename to ...
24679         (sem_item::compare_symbol_references): ... this one; use
24680         compare_referenced_symbol_properties.
24681         (sem_function::equals_wpa): Do not compare
24682         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
24683         DECL_IS_OPERATOR_NEW; compare pointer sizes.
24684         (sem_item::update_hash_by_addr_refs): Call
24685         hash_referenced_symbol_properties.
24686         (sem_item::update_hash_by_local_refs): Cleanup.
24687         (sem_function::merge): Do not mix up symbol properties.
24688         (sem_variable::equals_wpa): Use compare_symbol_references.
24689         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
24690         (sem_item::hash_referenced_symbol_properties): New.
24691         (sem_item::compare_symbol_references): New.
24692         (sem_item::compare_cgraph_references): Remove.
24693
24694 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
24695
24696         PR target/26702
24697         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
24698         Emit size of local.
24699
24700 2015-04-23  Nick Clifton  <nickc@redhat.com>
24701
24702         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
24703         ATTRIBUTE_UNUSED to x parameter.
24704         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
24705
24706 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24707
24708         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
24709         TARGET_CRYPTO to TARGET_P8_VECTOR>
24710         (crypto_vpermxor_<mode>): Likewise.
24711         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
24712         (BU_CRYPTO_3A): Likewise.
24713         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
24714         (BU_CRYPTO_OVERLOAD_3A): New #define.
24715         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
24716         (VPMSUMH): Likewise.
24717         (VPMSUMW): Likewise.
24718         (VPMSUMD): Likewise.
24719         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
24720         (VPERMXOR_V4SI): Likewise.
24721         (VPERMXOR_V8HI): Likewise.
24722         (VPERMXOR_V16QI): Likewise.
24723         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
24724         BU_CRYPTO_OVERLOAD_2A.
24725         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
24726         BU_CRYPTO_OVERLOAD_3A.
24727         * config/rs6000/rs6000.opt (mcrypto): Change description of
24728         option.
24729
24730 2015-04-23  Richard Biener  <rguenther@suse.de>
24731
24732         * passes.def: Remove copy propagation passes run directly after CCP.
24733         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
24734         SSA names.
24735         (ccp_visit_phi_node): Rework to handle first executable edge
24736         specially.
24737
24738 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
24739
24740         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24741         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24742         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24743         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
24744         (thumb_legimitimize_reload_address): Remove.
24745         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
24746         Remove.
24747         (thumb_legimitimize_reload_address): Remove.
24748
24749 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24750
24751         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
24752
24753 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24754
24755         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
24756         MAX_LDM_STM_OPS.
24757         (store_multiple): Likewise.
24758
24759 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24760
24761         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
24762         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
24763         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
24764         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
24765         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
24766         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
24767         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
24768         Specify issue_rate value.
24769         (arm_issue_rate): Look up issue rate from tuning structs. Remove
24770         large switch statement.
24771         (arm_marvell_pj4_tune): New struct.
24772         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
24773         struct.
24774
24775 2015-04-23  Richard Biener  <rguenther@suse.de>
24776
24777         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
24778         (vect_find_last_store_in_slp_instance): Rename to ...
24779         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
24780         (vect_analyze_slp_cost_1): Use vector_load for constant defs
24781         and vec_construct for external defs when estimating prologue cost.
24782         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
24783         Compute costs here only when vectorizing loops.
24784         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
24785         have been determined.
24786         (vect_schedule_slp_instance): Simplify vectorized code placement
24787         and prepare for in-BB external defs.
24788         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
24789         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
24790         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
24791         guard.
24792         (vect_model_load_cost): Likewise.
24793         (vectorizable_store): Instead add it here.
24794         (vectorizable_load): Likewise.
24795         (vect_is_simple_use): Dump def type textually.
24796
24797 2015-04-23  Richard Biener  <rguenther@suse.de>
24798
24799         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
24800         * cfgloop.c (verify_loop_structure): Verify the root loop node.
24801         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
24802         instead of get_eh_region_from_lp_number.
24803         * loop-init.c (fix_loop_structure): If we removed a loop, reset
24804         the SCEV cache.
24805
24806 2015-04-23  Anton Blanchard  <anton@samba.org>
24807
24808         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
24809         need for -mprofile-kernel to save LR to stack.
24810
24811 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24812
24813         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
24814         adjustments.
24815         (insn_is_swappable_p): Return 1 for a convert from double to
24816         single precision when all of its uses are splats of BE element
24817         zero.
24818
24819 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24820
24821         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
24822
24823 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24824
24825         PR target/65456
24826         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
24827         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
24828         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
24829         option.
24830         (rs6000_builtin_mask_for_load): Return 0 for targets with
24831         efficient unaligned VSX accesses so that the vectorizer will use
24832         direct unaligned loads.
24833         (rs6000_builtin_support_vector_misalignment): Always return true
24834         for targets with efficient unaligned VSX accesses.
24835         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
24836         stores on targets with efficient unaligned VSX accesses is almost
24837         always the same as the cost of an aligned load or store, so model
24838         it that way.
24839         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
24840         unaligned vectors if we have efficient unaligned VSX accesses.
24841         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
24842         undocumented option.
24843
24844 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24845
24846         Revert:
24847         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24848
24849         * config.gcc (LIBC_MUSL): New tm_defines macro.
24850         * config/linux.h (OPTION_MUSL): Define.
24851         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24852         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24853         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24854
24855         * config/linux.opt (mmusl): New option.
24856         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24857         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24858
24859         * configure: Regenerate.
24860
24861 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24862
24863         * config.gcc (LIBC_MUSL): New tm_defines macro.
24864         * config/linux.h (OPTION_MUSL): Define.
24865         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24866         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24867         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24868
24869         * config/linux.opt (mmusl): New option.
24870         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24871         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24872
24873         * configure: Regenerate.
24874
24875 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
24876
24877         * doc/invoke.texi (-fsanitize-sections): Update description.
24878         * asan.c (set_sanitized_sections): Parse incoming arg.
24879         (section_sanitized_p): Support wildcards.
24880
24881 2015-04-22  Tom de Vries  <tom@codesourcery.com>
24882
24883         PR tree-optimization/65823
24884         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
24885         equality between ap_copy and ap.
24886
24887 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24888
24889         PR target/47098
24890         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
24891
24892 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24893
24894         PR target/47122
24895         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
24896
24897 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24898
24899         PR target/55144
24900         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
24901         remove already contained t-files.
24902
24903 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24904
24905         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
24906         Remove unneeded forward declarations.
24907         (suitable_for_tail_call_opt_p): Commentary typo fix.
24908
24909 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24910
24911         * varasm.c (emit_bss): Remove redundant guard.
24912
24913 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24914
24915         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
24916
24917 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24918
24919         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
24920
24921 2015-04-22  Hale Wang  <hale.wang@arm.com>
24922             Terry Guo  <terry.guo@arm.com>
24923
24924         PR rtl-optimization/64818
24925         * combine.c (can_combine_p): Don't combine user-specified
24926         register if it is in an asm input.
24927
24928 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
24929
24930         PR ipa/65076
24931         * passes.def (early_optimizations): Add pass_dse.
24932
24933 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24934
24935         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
24936         * reorg.c (redundant_insn): Remove ifdef
24937         INSN_REFERENCES_ARE_DELAYED.
24938         * resource.c (mark_referenced_resources): Likewise.
24939
24940 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24941
24942         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
24943         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
24944         * resource.c (mark_set_resources): Likewise.
24945
24946 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24947
24948         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
24949         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24950         (flow_find_head_matching_sequence): Likewise.
24951         (try_head_merge_bb): Likewise.
24952         * combine.c (can_combine_p): Likewise.
24953         (try_combine): Likewise.
24954         (distribute_notes): Likewise.
24955         * df-problems.c (can_move_insns_across): Likewise.
24956         * final.c (final): Likewise.
24957         * gcse.c (insert_insn_end_basic_block): Likewise.
24958         * ira.c (find_moveable_pseudos): Likewise.
24959         * reorg.c (try_merge_delay_insns): Likewise.
24960         (fill_simple_delay_slots): Likewise.
24961         (fill_slots_from_thread): Likewise.
24962         * sched-deps.c (sched_analyze_2): Likewise.
24963
24964 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24965
24966         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
24967         PIC_OFFSET_TABLE_REGNUM.
24968
24969 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24970
24971         * alias.c (init_alias_target): Remove ifdef
24972         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
24973         * df-scan.c (df_insn_refs_collect): Likewise.
24974         (df_get_regular_block_artificial_uses): Likewise.
24975         (df_get_eh_block_artificial_uses): Likewise.
24976         (df_get_entry_block_def_set): Likewise.
24977         (df_get_exit_block_use_set): Likewise.
24978         * emit-rtl.c (gen_rtx_REG): Likewise.
24979         * ira.c (ira_setup_eliminable_regset): Likewise.
24980         * reginfo.c (init_reg_sets_1): Likewise.
24981         * regrename.c (rename_chains): Likewise.
24982         * reload1.c (reload): Likewise.
24983         (eliminate_regs_in_insn): Likewise.
24984         * resource.c (mark_referenced_resources): Likewise.
24985         (init_resource_info): Likewise.
24986
24987 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24988
24989         * defaults.h (MASK_RETURN_ADDR): New definition.
24990         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24991         MASK_RETURN_ADDR.
24992
24993 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24994
24995         * defaults.h (RETURN_ADDR_OFFSET): New definition.
24996         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24997         RETURN_ADDR_OFFSET.
24998         (expand_builtin_frob_return_addr): Likewise.
24999
25000 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25001
25002         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
25003         (try_redirect_by_replacing_jump): Likewise.
25004         (rtl_tidy_fallthru_edge): Likewise.
25005         * combine.c (insn_a_feeds_b): Likewise.
25006         (find_split_point): Likewise.
25007         (simplify_set): Likewise.
25008         * cprop.c (cprop_jump): Likewise.
25009         * cse.c (cse_extended_basic_block): Likewise.
25010         * df-problems.c (can_move_insns_across): Likewise.
25011         * function.c (emit_use_return_register_into_block): Likewise.
25012         * haifa-sched.c (sched_init): Likewise.
25013         * ira.c (find_moveable_pseudos): Likewise.
25014         * loop-invariant.c (find_invariant_insn): Likewise.
25015         * lra-constraints.c (curr_insn_transform): Likewise.
25016         * postreload.c (reload_combine_recognize_const_pattern):
25017         * Likewise.
25018         * reload.c (find_reloads): Likewise.
25019         * reorg.c (delete_scheduled_jump): Likewise.
25020         (steal_delay_list_from_target): Likewise.
25021         (steal_delay_list_from_fallthrough): Likewise.
25022         (redundant_insn): Likewise.
25023         (fill_simple_delay_slots): Likewise.
25024         (fill_slots_from_thread): Likewise.
25025         (delete_computation): Likewise.
25026         * sched-rgn.c (add_branch_dependences): Likewise.
25027
25028 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25029
25030         * genconfig.c (main): Always define HAVE_cc0.
25031         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
25032         HAVE_cc0.
25033         * cfgcleanup.c (flow_find_cross_jump): Likewise.
25034         (flow_find_head_matching_sequence): Likewise.
25035         (try_head_merge_bb): Likewise.
25036         * cfgrtl.c (rtl_merge_blocks): Likewise.
25037         (try_redirect_by_replacing_jump): Likewise.
25038         (rtl_tidy_fallthru_edge): Likewise.
25039         * combine.c (do_SUBST_MODE): Likewise.
25040         (insn_a_feeds_b): Likewise.
25041         (combine_instructions): Likewise.
25042         (can_combine_p): Likewise.
25043         (try_combine): Likewise.
25044         (find_split_point): Likewise.
25045         (subst): Likewise.
25046         (simplify_set): Likewise.
25047         (distribute_notes): Likewise.
25048         * cprop.c (cprop_jump): Likewise.
25049         * cse.c (cse_extended_basic_block): Likewise.
25050         * df-problems.c (can_move_insns_across): Likewise.
25051         * final.c (final): Likewise.
25052         (final_scan_insn): Likewise.
25053         * function.c (emit_use_return_register_into_block): Likewise.
25054         * gcse.c (insert_insn_end_basic_block): Likewise.
25055         * haifa-sched.c (sched_init): Likewise.
25056         * ira.c (find_moveable_pseudos): Likewise.
25057         * loop-invariant.c (find_invariant_insn): Likewise.
25058         * lra-constraints.c (curr_insn_transform): Likewise.
25059         * optabs.c (prepare_cmp_insn): Likewise.
25060         * postreload.c (reload_combine_recognize_const_pattern):
25061         * Likewise.
25062         * reload.c (find_reloads): Likewise.
25063         (find_reloads_address_1): Likewise.
25064         * reorg.c (delete_scheduled_jump): Likewise.
25065         (steal_delay_list_from_target): Likewise.
25066         (steal_delay_list_from_fallthrough): Likewise.
25067         (try_merge_delay_insns): Likewise.
25068         (redundant_insn): Likewise.
25069         (fill_simple_delay_slots): Likewise.
25070         (fill_slots_from_thread): Likewise.
25071         (delete_computation): Likewise.
25072         (relax_delay_slots): Likewise.
25073         * sched-deps.c (sched_analyze_2): Likewise.
25074         * sched-rgn.c (add_branch_dependences): Likewise.
25075
25076 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25077
25078         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
25079         that is trivially ded on non cc0 targets.
25080         (simplify_set): Likewise.
25081         (mark_used_regs_combine): Likewise.
25082         * cse.c (new_basic_block): Likewise.
25083         (fold_rtx): Likewise.
25084         (cse_insn): Likewise.
25085         (cse_extended_basic_block): Likewise.
25086         (set_live_p): Likewise.
25087         * rtlanal.c (canonicalize_condition): Likewise.
25088         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
25089
25090 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25091
25092         * conditions.h: Define macros even if HAVE_cc0 is undefined.
25093         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
25094         * final.c: Likewise.
25095         * jump.c: Likewise.
25096         * recog.c: Likewise.
25097         * recog.h: Declare functions even when HAVE_cc0 is undefined.
25098         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
25099
25100 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25101
25102         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
25103         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
25104         * builtins.c (expand_builtin): Remove check if
25105         EH_RETURN_DATA_REGNO is defined.
25106         * df-scan.c (df_bb_refs_collect): Likewise.
25107         (df_get_exit_block_use_set): Likewise.
25108         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
25109         * ira-lives.c (process_bb_node_lives): Likewise.
25110         * lra-lives.c (process_bb_lives): Likewise.
25111
25112 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
25113
25114         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
25115         FIRST_PSEUDO_REG): New.
25116         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
25117         (ARG_POINTER_REGNUM): Define to ARGP_REG.
25118         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
25119         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
25120         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
25121         (FIRST_INT_REG): New.
25122         (LAST_INT_REG): New.
25123         (FIRST_*_REG): Define using *_REG.
25124         (LAST_*_REG): Ditto.
25125         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
25126         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
25127         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
25128
25129 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25130
25131         * expmed.c: (synth_mult): Only assume overlapping
25132         shift with previous steps in alg_sub_t_m2 case.
25133
25134 2015-04-21  Richard Biener  <rguenther@suse.de>
25135
25136         PR tree-optimization/65650
25137         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
25138         transitions involving copies.
25139         (set_lattice_value): Adjust for copy lattice state.
25140         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
25141         if that doesn't dominate the merge point.
25142         (bit_value_unop): Adjust what we treat as varying mask.
25143         (bit_value_binop): Likewise.
25144         (bit_value_assume_aligned): Likewise.
25145         (evaluate_stmt): When we simplified to a SSA name record a copy
25146         instead of dropping to varying.
25147         (visit_assignment): Simplify.
25148
25149         * gimple-match.h (gimple_simplify): Add another callback.
25150         * gimple-fold.c (fold_stmt_1): Adjust caller.
25151         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
25152         for the 2nd callback.
25153         * gimple-match-head.c (gimple_simplify): Add a callback that is
25154         used to valueize the stmt operands and use it that way.
25155
25156 2015-04-21  Richard Biener  <rguenther@suse.de>
25157
25158         PR tree-optimization/65788
25159         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
25160
25161 2015-04-21  Richard Biener  <rguenther@suse.de>
25162
25163         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
25164         vec_construct cost by vec_stmt_cost.
25165
25166 2015-04-21  Richard Biener  <rguenther@suse.de>
25167
25168         * cfghooks.h (create_basic_block): Replace with two overloads
25169         for RTL and GIMPLE.
25170         (split_block): Likewise.
25171         * cfghooks.c (split_block): Rename to ...
25172         (split_block_1): ... this.
25173         (split_block): Add two type-safe overloads for RTL and GIMPLE.
25174         (split_block_after_labels): Call split_block_1.
25175         (create_basic_block): Rename to ...
25176         (create_basic_block_1): ... this.
25177         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
25178         (create_empty_bb): Call create_basic_block_1.
25179         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
25180         split_block_after_labels.
25181         * omp-low.c (expand_parallel_call): Likewise.
25182         (expand_omp_target): Likewise.
25183         (simd_clone_adjust): Likewise.
25184         * tree-chkp.c (chkp_get_entry_block): Likewise.
25185         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
25186         create_basic_block overload.
25187         (cgraph_node::expand_thunk): Likewise.
25188         * tree-cfg.c (make_blocks): Likewise.
25189         (handle_abnormal_edges): Likewise.
25190         * tree-inline.c (copy_bb): Likewise.
25191
25192 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25193
25194         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
25195         New pattern.
25196         (*xor_one_cmplsidi3_ze): Likewise.
25197
25198 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25199
25200         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
25201         use df_remove_problem rather than manually removing problems, leaving
25202         holes in df->problems_in_order[].
25203
25204 2015-04-21  Tom de Vries  <tom@codesourcery.com>
25205
25206         PR tree-optimization/65802
25207         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
25208
25209 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25210
25211         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
25212         Increase to 128.
25213         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
25214         at '.'.  Assert that there's enough space for everything.
25215
25216 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
25217
25218         PR tree-optimization/64950
25219         Revert:
25220         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
25221
25222         PR target/41089
25223         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
25224         as volatile.
25225
25226 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
25227
25228         PR rtl-optimization/64916
25229         * cfgcleanup.c (values_equal_p): New function.
25230         (can_replace_by): Use it.
25231
25232 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
25233
25234         PR c++/65801
25235         * doc/invoke.texi ([-Wnarrowing]): Update.
25236
25237 2015-04-20  Jeff Law  <law@redhat.com>
25238
25239         PR tree-optimization/65658
25240         * tree-ssa-threadupdate.c (redirection_block_p): Remove
25241         redundant test for GIMPLE_ASSIGN in last change.
25242
25243 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
25244
25245         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
25246         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
25247         (legitimize_tls_address): Ditto.
25248         (ix86_expand_move): Ditto.
25249         (ix86_expand_binary_operator): Remove reload_in_progress checks.
25250         (ix86_expand_unary_operator): Ditto.
25251         * config/i386/predicates.md (index_register_operand): Ditto.
25252
25253 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
25254
25255         * reorg.c (try_merge_delay_insns): Improve correctness checking
25256         for targets with multiple delay slots.
25257
25258 2015-04-20  Jeff Law  <law@redhat.com>
25259
25260         PR tree-optimization/65658
25261         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
25262         statements too.
25263
25264 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25265
25266         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
25267         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
25268         Delete.
25269
25270 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
25271
25272         PR debug/65807
25273         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
25274
25275 2015-04-20  Richard Biener  <rguenther@suse.de>
25276
25277         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
25278         * gimple-fold.c (gimple_build_valueize): New function.
25279         (gimple_build): Always use gimple_build_valueize as valueize hook.
25280
25281 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25282
25283         PR target/64134
25284         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
25285         and overwrite variable parts if <= 1/2 the elements are variable.
25286
25287 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
25288
25289         PR rtl-optimization/65805
25290         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
25291         Don't use difference of offset and previous offset if
25292         update_sp_offset is non-zero.
25293         (eliminate_regs_in_insn): Ditto.
25294         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
25295         lra_eliminate_regs_1 call.
25296         * lra-constraints.c (get_equiv_with_elimination): Ditto.
25297
25298 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
25299
25300         * hash-table.h: Remove version of hash_table that stored value_type *.
25301         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
25302         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
25303         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
25304         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
25305         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
25306         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
25307         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
25308         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
25309         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
25310         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
25311         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
25312         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
25313         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
25314         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
25315         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
25316         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
25317
25318 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25319             Jakub Jelinek  <jakub@redhat.com>
25320
25321         PR target/65787
25322         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
25323         subsequent SH_NONE operand does not overwrite an existing *special
25324         value.
25325         (adjust_extract): Handle case where a vec_extract operation is
25326         wrapped in a PARALLEL.
25327
25328 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25329
25330         PR target/65780
25331         * config/i386/i386.c (ix86_binds_local_p): Define only if
25332         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
25333
25334 2015-04-17  Jeff Law  <law@redhat.com>
25335
25336         PR tree-optimization/47679
25337         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
25338         * tree-ssa-scopedtables.c: New file.
25339         * tree-ssa-scopedtables.h: New file.
25340         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
25341         (const_and_copies): Change name/type.
25342         (record_const_or_copy): Move into tree-ssa-scopedtables.c
25343         (record_const_or_copy_1): Similarly.
25344         (restore_vars_to_original_value): Similarly.
25345         (pass_dominator::execute): Create and destroy const_and_copies table.
25346         (thread_across_edge): Update passing of const_and_copies.
25347         (record_temporary_equivalence): Use method calls rather than
25348         manipulating const_and_copies directly.
25349         (record_equality, cprop_into_successor_phis): Similarly.
25350         (dom_opt_dom_walker::before_dom_children): Similarly.
25351         (dom_opt_dom_walker::after_dom_children): Similarly.
25352         (eliminate_redundant_computations): Similarly.
25353         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
25354         (record_temporary_equivalence): Likewise.
25355         (invalidate_equivalences): Likewise.
25356         (record_temporary_equivalences_from_phis): Update due to type
25357         change of const_and_copies.  Use method calls rather than
25358         manipulating the stack directly.
25359         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
25360         (thread_through_normal_block, thread_across_edge): Likewise.
25361         (thread_across_edge): Likewise.
25362         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
25363         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
25364         of equiv_stack.
25365         (identify_jump_threads): Update due to type change of equiv_stack.
25366         (finalize_jump_threads): Delete the equiv_stack when complete.
25367
25368 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
25369
25370         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
25371         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
25372         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
25373
25374 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
25375
25376         PR target/65535
25377         * config.gcc: Exit with a comment when we do not have a major version
25378         number for the FreeBSD target.
25379
25380 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25381
25382         PR target/65689
25383         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
25384         maybe_allows_mem bitfields.
25385         (maybe_allows_none_start, maybe_allows_none_end,
25386         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
25387         maybe_allows_mem_end): New variables.
25388         (compute_maybe_allows): New function.
25389         (add_constraint): Use it to initialize maybe_allows_reg and
25390         maybe_allows_mem fields.
25391         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
25392         is_address constraints such that those that allow neither mem nor
25393         reg come first, then those that only allow reg but not mem, then
25394         those that only allow mem but not reg, then the rest.
25395         (write_allows_reg_mem_function): New function.
25396         (write_tm_preds_h): Call it.
25397         * stmt.c (parse_output_constraint, parse_input_constraint): Use
25398         the generated insn_extra_constraint_allows_reg_mem function
25399         instead of always setting *allows_reg = true; *allows_mem = true;
25400         for unknown extra constraints.
25401
25402 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25403
25404         PR target/65780
25405         * output.h (default_binds_local_p_3): New.
25406         * varasm.c (default_binds_local_p_3): Make it public.  Take an
25407         argument to indicate if common symbol may be local.  If common
25408         symbol may be local, treat non-external variable as defined
25409         locally.
25410         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
25411         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
25412         * config/i386/i386.c (ix86_binds_local_p): New.
25413         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
25414         ix86_binds_local_p.
25415
25416 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25417
25418         PR debug/65771
25419         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
25420         trying mem_loc_descriptor on XEXP (rtl, 0).
25421
25422 2015-04-17  Martin Liska  <mliska@suse.cz>
25423
25424         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
25425         Release symbol_compare_collection.
25426         * ipa-reference.c: Add TODO that a vector should be released.
25427
25428 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
25429
25430         PR target/65296
25431         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
25432         to new AVR-LibC file layout (bug #44574).
25433         (*avrlibc_devicelib): Same.
25434         * config/avr/avr-mcus.def: Adjust comments.
25435         * config/avr/avr.opt (nodevicelib): Adjust help.
25436
25437 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
25438
25439         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
25440
25441 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
25442
25443         PR c++/64527
25444         * gimplify.c (gimplify_init_constructor): Always emit a
25445         side-effecting constructor.
25446
25447 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25448
25449         PR tree-optimization/64950
25450         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
25451         in cfun->curr_properties.
25452         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
25453         if we generate an IFN_VA_ARG.
25454         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
25455         function if PROP_gimple_lva is not set in src function.
25456
25457 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25458             Michael Matz  <matz@suse.de>
25459
25460         PR tree-optimization/64950
25461         * gimple-iterator.c (update_modified_stmts): Remove static.
25462         * gimple-iterator.h (update_modified_stmts): Declare.
25463         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
25464         (gimplify_va_arg_internal): New function.
25465         (gimplify_va_arg_expr): Use IFN_VA_ARG.
25466         * gimplify.h (gimplify_va_arg_internal): Declare.
25467         * internal-fn.c (expand_VA_ARG): New unreachable function.
25468         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
25469         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
25470         (expand_ifn_va_arg): New function.
25471         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
25472         (pass_stdarg::execute): Call expand_ifn_va_arg.
25473         (pass_data_lower_vaarg): New pass_data.
25474         (pass_lower_vaarg): New gimple_opt_pass.
25475         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
25476         (make_pass_lower_vaarg): New function.
25477         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
25478         properties_required field.
25479         * passes.def (all_passes): Add pass_lower_vaarg.
25480         * tree-pass.h (PROP_gimple_lva): Add define.
25481         (make_pass_lower_vaarg): Declare.
25482
25483 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25484
25485         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
25486         * calls.c (call_expr_flags): Same.
25487
25488 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25489
25490         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
25491         (pass_stdarg::execute): ... here.
25492
25493 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25494             Michael Matz  <matz@suse.de>
25495
25496         * tree-cfg.c (make_blocks_1): Factor out of ...
25497         (make_blocks): ... here.
25498         (make_edges_bb): Factor out of ...
25499         (make_edges): ... here.
25500         (gimple_find_sub_bbs): New function.
25501         * tree-cfg.h (gimple_find_sub_bbs): Declare.
25502
25503 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25504
25505         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
25506
25507 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
25508
25509         * asan.c (set_sanitized_sections): New function.
25510         (section_sanitized_p): Ditto.
25511         (asan_protect_global): Optionally sanitize user-defined
25512         sections.
25513         * asan.h (set_sanitized_sections): Declare new function.
25514         * common.opt (fsanitize-sections): New option.
25515         * doc/invoke.texi (-fsanitize-sections): Document new option.
25516         * opts-global.c (handle_common_deferred_options): Handle new
25517         option.
25518
25519 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25520
25521         PR debug/65771
25522         * dwarf2out.c (loc_list_from_tree): Return NULL
25523         for DEBUG_EXPR_DECL.
25524
25525 2015-04-17  Christian Bruel  <christian.bruel@st.com>
25526
25527         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
25528         same attributes.
25529
25530 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
25531
25532         * ira-color.c (setup_left_conflict_sizes_p): Do not process
25533         node itself when computing left conflict subnode size.
25534
25535 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25536
25537         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
25538         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
25539         *fop_<mode>_1_sse using enabled attribute.  Use
25540         register_mixssei387nonimm_operand operand 1 predicate. Change
25541         alternative 3 constraints from "x" to "v".
25542
25543 2015-04-16  Richard Biener  <rguenther@suse.de>
25544
25545         PR tree-optimization/65774
25546         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
25547         bit-value tracking on.
25548
25549 2015-04-16  Richard Biener  <rguenther@suse.de>
25550
25551         PR tree-optimization/64277
25552         * tree-vrp.c (check_array_ref): Fix anti-range handling,
25553         simplify upper bound handling.
25554         (search_for_addr_array): Simplify.
25555         (check_array_bounds): Handle ADDR_EXPRs here.
25556         (check_all_array_refs): Simplify.
25557
25558 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25559
25560         * config/i386/i386.c (print_reg): Rewrite function.
25561
25562 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25563
25564         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
25565         Invert the condition.
25566
25567 2015-04-16  Renlin Li  <renlin.li@arm.com>
25568
25569         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
25570         simplifications for UNSIGNED_FLOAT.
25571
25572 2015-04-16  Nick Clifton  <nickc@redhat.com>
25573
25574         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
25575         MUL_UNINIT.
25576         (enum rl78_cpu_type): New.
25577         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
25578         (umulhi3_shift_virt): Remove m constraint from operand 1.
25579         (umulqihi3_virt): Likewise.
25580         * config/rl78/rl78.c (rl78_option_override): Add code to process
25581         -mcpu and -mmul options.
25582         (rl78_alloc_physical_registers): Add code to handle divhi and
25583         divsi valloc attributes.
25584         (set_origin): Likewise.
25585         * config/rl78/rl78.h (RL78_MUL_G14): Define.
25586         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
25587         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
25588         __RL78_Gxx__.
25589         (ASM_SPEC): Pass -mcpu on to assembler.
25590         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
25591         (mulqi3_rl78): Likewise.
25592         (mulhi3_g13): Likewise.
25593         (mulhi3): Generate the G13 or G14 versions of the insn directly.
25594         (mulsi3): Likewise.
25595         (mulhi3_g14): Add clobbers of AX and BC.
25596         (mulsi3_g14): Likewise.
25597         (mulsi3_g13): Likewise.
25598         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
25599         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
25600         * config/rl78/rl78.opt (mmul): Initialise value to
25601         RL78_MUL_UNINIT.
25602         (mcpu): New option.
25603         (m13, m14, mrl78): New option aliases.
25604         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
25605         (MULTILIB_DIRNAMES): Add g13 and g14.
25606         * doc/invoke.texi: Document -mcpu and -mmul options.
25607
25608 2015-04-16  Richard Biener  <rguenther@suse.de>
25609
25610         * tree-ssa-ccp.c (likely_value): See if we have operands that
25611         are marked as never simulate again and return CONSTANT in this
25612         case.
25613         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
25614         not have any operands that will be simulated again as
25615         not being simulated again.
25616
25617 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
25618
25619         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
25620         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
25621         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
25622         attribute.
25623         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
25624         enabled attribute.
25625         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
25626         *float<SWI48:mode><MODEF:mode>2_sse.
25627         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
25628         enabled attribute.
25629         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
25630         enabled attribute.
25631
25632 2015-04-15  Tom de Vries  <tom@codesourcery.com>
25633
25634         PR other/65487
25635         * function.c (push_dummy_function): New function.
25636         (init_dummy_function_start): Use push_dummy_function.
25637         (pop_dummy_function): New function.  Factored out of ...
25638         (expand_dummy_function_end): ... here.
25639         * function.h (push_dummy_function, pop_dummy_function): Declare.
25640         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
25641         pop_dummy_function.
25642         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
25643
25644 2015-04-15  Jeff Law  <law@redhat.com>
25645
25646         PR tree-optimization/47679
25647         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
25648         need for forward declaration in upcoming changes.
25649         (record_conditions, record_edge_info): Likewise.
25650
25651         PR rtl-optimization/42522
25652         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
25653         SIGN_EXTRACT as a whole object rather than simplifying
25654         its operand.
25655
25656 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
25657
25658         PR ipa/65765
25659         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
25660         and GIMPLE_PREDICT use break instead of return true. For
25661         GIMPLE_EH_DISPATCH, compare dispatch region.
25662
25663 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
25664
25665         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
25666         details about the implementation.  Make clear preference for
25667         __atomic builtins.  Reduce possibility of future change.
25668
25669 2015-04-15  Nick Clifton  <nickc@redhat.com>
25670
25671         * config/rx/rx.opt (mallow-string-insns): New option.
25672         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
25673         builtin if string instructions are denied.
25674         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
25675         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
25676         appropriate.
25677         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
25678         * config/rx/rx.md (movstr): Enable pattern only if string
25679         instructions are allowed.
25680         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
25681         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
25682         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
25683         (MULTILIB_DIRNAMES): Add no-strings.
25684         * doc/invoke.texi: Document -mno-allow-string-insns.
25685
25686 2015-04-15  Alan Modra  <amodra@gmail.com>
25687
25688         PR target/65408
25689         PR target/58744
25690         PR middle-end/36043
25691         * calls.c (load_register_parameters): Don't load past end of
25692         mem unless suitably aligned.
25693
25694 2015-04-15  Nick Clifton  <nickc@redhat.com>
25695
25696         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
25697         decrement instruction as being frame related.
25698         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
25699         based addresses.
25700         If zero extending a function address enclose the operation in
25701         %code(...).
25702         (rl78_preferred_reload_class): New function.
25703         (TARGET_PREFERRED_RELOAD_CLASS): Define.
25704         * config/rl78/rl78.md: Remove useless constraints in expanders.
25705         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
25706         (mulhi3_rl78): Likewise.
25707         (mulhi3_g13): Likewise.
25708         (mulsi3_rl78): Likewise.
25709         (es_addr): Move to before the multiply patterns.
25710
25711 2015-04-15  Alan Modra  <amodra@gmail.com>
25712
25713         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
25714         and sequence_stack.  Add seq.
25715         (seq_stack): Delete.
25716         * function.c (prepare_function_start): Don't access x_last_insn.
25717         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
25718         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
25719         * emit_rtl.c (start_sequence, push_topmost_sequence,
25720         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
25721         sequence accessors.
25722         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
25723         remove_insn): Likewise.  Simplify.
25724         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
25725         and pop_topmost_sequence.
25726         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
25727         debug insns.
25728         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
25729
25730 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
25731
25732         PR target/65729
25733         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
25734         the assertiion.
25735
25736 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25737
25738         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
25739         (LEGACY_INT_REGNO_P): Ditto.
25740         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
25741         (ANY_MASK_REG_P): Remove.
25742         (BND_REG_P): Rename from ANY_BND_REG_P.
25743         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
25744         legacy integer registers.  Do not handle MMX_REG_P in a special way.
25745         Merge 64byte and 32byte SSE handling.
25746
25747 2015-04-14  Nick Clifton  <nickc@redhat.com>
25748
25749         * expr.c (expand_assignment): Force an address offset computation
25750         into a register before changing its mode.
25751         (expand_expr_real_1): Likewise.
25752
25753 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
25754
25755         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
25756         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
25757         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
25758         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
25759         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
25760         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
25761         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
25762         and __aarch64_vget_lane_any.
25763
25764 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
25765
25766         PR rtl-optimization/65761
25767         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
25768         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
25769
25770 2015-04-14  Richard Biener  <rguenther@suse.de>
25771
25772         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
25773         (graphite_can_represent_scev): Use POINTER_TYPE_P.
25774
25775 2015-04-14  Richard Biener  <rguenther@suse.de>
25776
25777         PR tree-optimization/65758
25778         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
25779         against -1.
25780         (ccp_lattice_meet): Likewise.
25781         (bit_value_unop): Likewise.
25782         (bit_value_binop): Likewise.
25783         (bit_value_assume_aligned): Likewise.
25784
25785 2015-04-14  Christian Bruel  <christian.bruel@st.com>
25786
25787         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
25788         function.
25789
25790 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
25791
25792         PR tree-optimization/63387
25793         * match.pd ((x unord x) | (y unord y) -> (x unord y),
25794         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
25795
25796 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25797
25798         * config/i386/predicates.md (any_QIreg_operand): Rename from
25799         q_regs_operand.  Do not process subregs.
25800         (QIreg_operand): Use QI_REGNO_P predicate.
25801         (ext_QIreg_operand): Ditto.
25802         (ext_register_operand): Ditto.
25803         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
25804         (AND splitters): Ditto.
25805         (AND with -65536 splitter): Add SWI48 mode for operand 0.
25806         (AND with -256 splitter): Use any_QIreg_operand predicate and
25807         SWI248 mode for operand 0.
25808         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
25809         mode for operand 0.
25810         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
25811
25812 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
25813
25814         * doc/plugins.texi: Rewrite first introductory paragraph.
25815
25816 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25817
25818         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
25819         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
25820
25821 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25822
25823         * ipa-profie.c (ipa_profile): Check number of parameters
25824         and possible polymorphic call targets before
25825         devirtualizing.
25826
25827 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
25828
25829         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
25830         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
25831
25832 2015-04-13  Richard Biener  <rguenther@suse.de>
25833
25834         PR tree-optimization/65204
25835         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
25836         takens for bit-CCP.
25837
25838 2015-04-13  Richard Biener  <rguenther@suse.de>
25839
25840         PR target/65660
25841         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
25842         and cond_not_taken_branch_cost to 4 and 2.
25843         (bdver2_cost): Likewise.
25844         (bdver3_cost): Likewise.
25845         (bdver4_cost): Likewise.
25846
25847 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25848
25849         * hash-table.h (hash_table constructor): Add mem stats.
25850         (alloc_entries): Likewise.
25851
25852 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25853
25854         * ipa-cp.c (ipcp_driver): Relase prev_edge.
25855         * passes.c (execute_one_pass): Only add transform if pass has one.
25856
25857 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
25858
25859         * config/i386/i386.c (ix86_option_override_internal): Don't set
25860         -fprefetch-loop-arrays if optimizing for size.
25861
25862 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25863             Gerald Pfeifer  <gerald@pfeifer.com>
25864
25865         * doc/contrib.texi (Contributors): Add Martin Jambor and
25866         Michael Matz.
25867
25868 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
25869
25870         * BASE-VER: Set to 6.0.0.
25871
25872         PR tree-optimization/65747
25873         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
25874         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
25875
25876 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25877
25878         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
25879         sentence.  Improve grammar.
25880
25881 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25882
25883         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
25884
25885 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25886
25887         PR ipa/65743
25888         * ipa-inline-transform.c (speculation_removed): Remove static var.
25889         (check_speculations): New function.
25890         (clone_inlined_nodes): Do not check spculations.
25891         (inline_call): Call check_speculations.
25892         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
25893         consider non-invariants.
25894
25895 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25896             Martin Liska  <mliska@suse.cz>
25897
25898         PR ipa/65722
25899         * ipa-icf.c (sem_item::compare_cgraph_references): function and
25900         variable can not match.
25901         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
25902         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
25903
25904 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
25905
25906         PR tree-optimization/65735
25907         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
25908         Remove visited_phis argument, add visited_bbs, avoid recursing into the
25909         same bb rather than just into the same phi node.
25910         (thread_through_normal_block): Adjust caller.
25911
25912 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25913
25914         * doc/contrib.texi (Contributors): Add Ira Rosen.
25915
25916 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
25917
25918         * gcov.c (find_source): Fix miswording in error message.
25919         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
25920         (ix86_expand_sse_comi_round): Fix typo in error message.
25921
25922 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25923
25924         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
25925
25926 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
25927
25928         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
25929
25930 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25931
25932         PR target/65710
25933         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
25934         Print bad_spills_num and insn_pseudos_num.
25935
25936 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25937
25938         PR target/65694
25939         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
25940         when creating +1 values for SImode.
25941
25942 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25943
25944         PR target/65729
25945         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
25946         assert.
25947
25948 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
25949             Iain Sandoe  <iain@codesourcery.com>
25950
25951         PR target/65351
25952         * configure: Regenerate.
25953
25954 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25955
25956         PR target/65671
25957         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
25958
25959 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
25960
25961         * doc/contrib.texi (Contributors): Add John Marino.
25962
25963 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25964
25965         PR tree-optimization/65709
25966         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
25967         TREE_TYPE (TREE_TYPE (t)).
25968
25969 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
25970
25971         PR target/65710
25972         * lra-int.h (lra_bad_spill_regno_start): New.
25973         * lra.c (lra_bad_spill_regno_start): New.
25974         (lra): Set up lra_bad_spill_regno_start.  Set up
25975         lra_constraint_new_regno_start unconditionally.
25976         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
25977         spill preferences.
25978
25979 2015-04-09  Marek Polacek  <polacek@redhat.com>
25980             Jakub Jelinek  <jakub@redhat.com>
25981
25982         PR middle-end/65554
25983         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
25984         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
25985         of STRIP_NOPS.
25986
25987 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
25988
25989         PR rtl-optimization/65693
25990         * combine.c (is_parallel_of_n_reg_sets): Move outside of
25991         #ifndef HAVE_cc0.
25992
25993 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
25994
25995         PR target/65296
25996         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
25997         device specs file if "device-specs%s" didn't resolve to a path.
25998
25999 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
26000
26001         PR target/65676
26002         * config/i386/i386.c (fixup_modeless_constant): New.
26003         (ix86_expand_args_builtin): Fixup modeless constant operand.
26004         (ix86_expand_round_builtin): Ditto.
26005         (ix86_expand_special_args_builtin): Ditto.
26006         (ix86_expand_builtin): Ditto.
26007
26008 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
26009
26010         PR target/65693
26011         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
26012         any pow2 integer in between 2 and 0x80000000U inclusive.
26013
26014 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
26015
26016         PR rtl-optimization/65693
26017         * combine.c (is_parallel_of_n_reg_sets): Change first argument
26018         from an rtx_insn * to an rtx.
26019         (try_combine): Adjust both callers.  Use it once more.
26020
26021 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
26022
26023         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
26024         (chkp_make_static_const_bounds): Search existing
26025         symbol by assembler name.  Use make_decl_one_only.
26026         (chkp_get_zero_bounds_var): Remove node search which
26027         is now performed in chkp_make_static_const_bounds.
26028         (chkp_get_none_bounds_var): Likewise.
26029
26030 2015-04-08  Michael Witten  <mfwitten@gmail.com>
26031
26032         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
26033         to an example.
26034
26035 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26036
26037         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
26038
26039 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
26040
26041         * doc/extend.texi (__sync Builtins): Fix grammar.
26042
26043 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26044
26045         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
26046
26047 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26048
26049         * varasm.c (emit_local): Move definition of align.
26050
26051 2015-04-08  Julian Brown  <julian@codesourcery.com>
26052
26053         * config/nvptx/mkoffload.c (process): Support variable mapping.
26054
26055 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
26056
26057         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
26058         alpha_links **.
26059         (alpha_write_one_linkage): Correct typo.
26060
26061 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
26062
26063         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
26064
26065 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
26066
26067         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
26068
26069 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
26070
26071         * tree-chkp.h (chkp_insert_retbnd_call): New.
26072         * tree-chkp.c (chkp_insert_retbnd_call): New.
26073         * ipa-split.c (insert_bndret_call_after): Remove.
26074         (split_function): Use chkp_insert_retbnd_call.
26075         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
26076         bounds for instrumented functions.
26077
26078 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
26079
26080         PR ipa/65540
26081         * calls.c (initialize_argument_information): When producing tail
26082         call also turn SSA_NAMES passed by references to original PARM_DECLs
26083
26084 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
26085
26086         PR target/65648
26087         * lra-remat.c (do_remat): Process input and non-input insn
26088         registers separately.
26089
26090 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
26091
26092         PR debug/65678
26093         * valtrack.c (debug_lowpart_subreg): New function.
26094         (dead_debug_insert_temp): Use it.
26095
26096         PR middle-end/65680
26097         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
26098         into signed HOST_WIDE_INT the same as negative bit_offset.
26099
26100 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
26101
26102         * ipa-comdats.c (ipa_comdats): Visit all thunks
26103         to set proper comdat group.
26104
26105 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26106
26107         PR target/65489
26108         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
26109         on constants for NEON VSTRUCT modes.
26110
26111 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
26112             Iain Sandoe  <iain@codesourcery.com>
26113
26114         PR target/65351
26115         * configure: Regenerate.
26116
26117 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
26118
26119         PR target/65614
26120         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
26121         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
26122         that LFD is used to load double constants instead of LFS.  Add
26123         defaults for all costs structures.  Add comments for missing
26124         initialization fields.
26125         (size32_cost): Likewise.
26126         (size64_cost): Likewise.
26127         (rs64a_cost): Likewise.
26128         (mpccore_cost): Likewise.
26129         (ppc403_cost): Likewise.
26130         (ppc405_cost): Likewise.
26131         (ppc440_cost): Likewise.
26132         (ppc476_cost): Likewise.
26133         (ppc601_cost): Likewise.
26134         (ppc603_cost): Likewise.
26135         (ppc604_cost): Likewise.
26136         (ppc604e_cost): Likewise.
26137         (ppc620_cost): Likewise.
26138         (ppc630_cost): Likewise.
26139         (ppccell_cost): Likewise.
26140         (ppc750_cost): Likewise.
26141         (ppc7450_cost): Likewise.
26142         (ppc8540_cost): Likewise.
26143         (ppce300c2c3_cost): Likewise.
26144         (ppce500mc_cost): Likewise.
26145         (ppce500mc64_cost): Likewise.
26146         (ppce5500_cost): Likewise.
26147         (ppce6500_cost): Likewise.
26148         (titan_cost): Likewise.
26149         (power4_cost): Likewise.
26150         (power6_cost): Likewise.
26151         (power7_cost): Likewise.
26152         (power8_cost): Likewise.
26153         (ppca2_cost): Likewise.
26154         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
26155
26156         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
26157         instead of XXLOR to copy SFmode to clear out dirty bits created
26158         when SFmode denormals are generated.
26159         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
26160         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
26161
26162 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
26163
26164         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
26165         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
26166         * config/aarch64/aarch64-tune.md: Regenerate.
26167
26168 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
26169
26170         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
26171         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
26172         * config/arm/arm-cores.def (exynos-m1): New core.
26173         * config/arm/arm-tune.md: Regenerate.
26174         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
26175         * config/arm/bpabi.h: Likewise.
26176
26177 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
26178
26179         * ipa-cp (set_single_call_flag): Remove too
26180         restrictive assert.
26181
26182 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
26183
26184         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
26185         GOMP_offload_unregister from the destructor.
26186
26187 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
26188
26189         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
26190         flags for instrumentation thunk.
26191         (chkp_produce_thunks): Likewise.
26192
26193 2015-04-05  Martin Liska  <mliska@suse.cz>
26194
26195         PR ipa/65665
26196         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
26197         has computed data structure.
26198         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26199
26200 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
26201
26202         * invoke.texi (inline-unit-growth): Increase growth to 20%
26203         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
26204
26205 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
26206
26207         PR target/65647
26208         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
26209         value checking.
26210         (lra_rematerialization_iter): New.
26211         * lra.c (lra): Initialize lra_rematerialization_iter.
26212         Stop updating lra_constraint_new_regno_start after switching of
26213         inheritance and rematerialization.
26214         * lra-remat.c (lra_rematerialization_iter): New.
26215         (lra_remat): Add printing pass iteration.  Do rematerialization
26216         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
26217
26218 2015-04-04  Richard Biener  <rguenther@suse.de>
26219
26220         PR tree-optimization/64909
26221         PR tree-optimization/65660
26222         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
26223         to take a cost vector for scalar iteration cost.
26224         (vect_get_single_scalar_iteration_cost): Likewise.
26225         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
26226         Compute the scalar iteration cost into a cost vector.
26227         (vect_get_known_peeling_cost): Use the scalar cost vector to
26228         account for the cost of the peeled iterations.
26229         (vect_estimate_min_profitable_iters): Likewise.
26230         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
26231         Likewise.
26232
26233 2015-04-04  Alan Modra  <amodra@gmail.com>
26234
26235         PR target/65576
26236         PR target/65240
26237         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
26238         0.0 constant unless TARGET_VSX.
26239         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
26240         alternative.
26241
26242 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26243
26244         PR ipa/65654
26245         * ipa-inline-transform.c (inline_call): Skip sanity check to work
26246         around the ICE
26247
26248 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26249
26250         PR ipa/65655
26251         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
26252         speculative indirect edges to avoid ordering issue.
26253
26254 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26255
26256         PR ipa/65076
26257         * ipa-inline.c (edge_badness): Add combined size to the denominator.
26258
26259 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
26260
26261         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
26262         TYPE_ARTIFICIAL on the .omp_data* types.
26263
26264 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26265
26266         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
26267         instrumentation thunks.
26268
26269 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26270
26271         * config/i386/i386.c (ix86_expand_call): Avoid nested
26272         PARALLEL in returned call value.
26273
26274 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26275
26276         * lto-cgraph.c (input_cgraph_1): Always link instrumented
26277         assembler name with original one.
26278
26279 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26280
26281         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
26282
26283 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26284
26285         Revert parts of r216820.
26286         * config/i386/i386.md (movqi_internal): Correct type calculation
26287         for alternatives 3 and 5.
26288
26289 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
26290
26291         PR preprocessor/61977
26292         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
26293         predefine __vector/__bool/__pixel macros nor context sensitive
26294         macros for CLK_ASM.
26295         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
26296
26297 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
26298
26299         * config/pa/pa.c (pa_output_move_double): Directly handle register
26300         indexed memory operand.  Simplify handling of scaled register indexed
26301         memory operands.
26302
26303 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26304
26305         PR driver/65444
26306         * config/i386/linux-common.h (MPX_SPEC): New.
26307         (CHKP_SPEC): Add MPX_SPEC.
26308         * doc/invoke.texi (-fcheck-pointer-boudns): Document
26309         possible issues with '-z bndplt' support in linker.
26310
26311 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26312
26313         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
26314         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
26315         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
26316         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
26317         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
26318
26319 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
26320
26321         * config/i386/sync.md (UNSPEC_MOVA): Remove.
26322         (atomic_load<mode>): Change operand 0 predicate to
26323         nonimmediate_operand and fix up the destination when needed.
26324         Use UNSPEC_LDA.
26325         (atomic_loaddi_fpu): Use UNSPEC_LDA.
26326         (atomic_store<mode>): Change operand 1 predicate to
26327         nonimmendate_operand and move the source to register when needed.
26328         Use UNSPEC_STA.
26329         (atomic_store<mode>_1): Use UNSPEC_STA.
26330         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
26331         Fix moves from memory operand.  Use UNSPEC_STA.
26332
26333 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26334
26335         * expmed.c (strict_volatile_bitfield_p): Check that the access will
26336         not cross a MODESIZE boundary.
26337         (store_bit_field, extract_bit_field): Added assertions in the
26338         strict volatile bitfields code path.
26339
26340 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
26341
26342         PR target/65624
26343         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
26344         Increase args array size by one to avoid buffer overflow.
26345
26346 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26347
26348         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26349         split_part.
26350         * ipa-inline.c (edge_badness): Add wrapper penalty.
26351         (sum_callers): Move up.
26352         (inline_small_functions): Set single_caller.
26353         * ipa-inline.h (inline_summary): Add single_caller.
26354         * ipa-split.c (split_function): Set split_part.
26355         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
26356         * cgraph.h (cgraph_node): Add split_part.
26357
26358 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
26359
26360         PR target/58945
26361         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
26362         Do not split operands 0 and operands 2 to halfmode.
26363         (atomic_compare_and_swap<mode>): Update for
26364         atomic_compare_and_swap<dwi>_doubleword changes.
26365
26366 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26367
26368         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
26369         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
26370         no caching is done.
26371
26372 2015-03-31  Martin Liska  <mliska@suse.cz>
26373
26374         PR ipa/65557
26375         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
26376         has already filled up function summary.
26377         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26378
26379 2015-03-31  Richard Biener  <rguenther@suse.de>
26380
26381         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
26382         of types.
26383
26384 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26385
26386         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
26387         nested functions.
26388         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
26389         (s390_asm_output_function_label): Adapt to new signature of
26390         s390_function_num_hotpatch_hw
26391         Optimise the code generating assembler output.
26392         Add comments to assembler file.
26393
26394 2015-03-31  Richard Biener  <rguenther@suse.de>
26395
26396         PR middle-end/65626
26397         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
26398         of the noreturn call so it is last and cleanup_control_flow_bb
26399         can do the CFG part.
26400
26401 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
26402
26403         PR target/65531
26404         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
26405         same_comdat_group for external symbols.
26406         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
26407         infinite same_comdat_group traversal loop.
26408
26409 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
26410
26411         PR plugins/61176
26412         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
26413         automatically to $headers.
26414
26415 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
26416
26417         PR ipa/65610
26418         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
26419         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
26420         function.
26421         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
26422         Use it.
26423         * ipa-prop.c (param_type_may_change_p): Likewise.
26424         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
26425         (remove_unused_scope_block_p): Add in_ctor_dtor_block
26426         argument.  Before inlining, preserve
26427         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
26428         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
26429         recursive calls.
26430         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
26431
26432 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26433
26434         PR ipa/65076
26435         * ipa-inline.c (edge_badness): Base denominator on callee's
26436         grwoth squared.
26437
26438 2015-03-27  Martin Jambor  <mjambor@suse.cz>
26439
26440         PR ipa/65478
26441         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
26442         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
26443         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
26444         node_calling_single_call.
26445         * ipa-cp.c (count_callers): New function.
26446         (set_single_call_flag): Likewise.
26447         (initialize_node_lattices): Count callers and set single_flag_call if
26448         necessary.
26449         (incorporate_penalties): New function.
26450         (good_cloning_opportunity_p): Use it, dump new flags.
26451         (propagate_constants_topo): Set node_within_scc flag if appropriate.
26452         * doc/invoke.texi (ipa-cp-recursion-penalty,
26453         ipa-cp-single-call-pentalty): Document.
26454
26455 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26456
26457         PR ipa/65588
26458         * symtab.c (symtab_node::get_partitioning_class): Register vars
26459         are duplicated.
26460         * varpool.c (symbol_table::output_variables) Do not assemble unefined
26461         decls for non-symbols.
26462
26463 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
26464
26465         PR target/65248
26466         * output.h (default_binds_local_p_2): New.
26467         * varasm.c (default_binds_local_p_2): Renamed to ...
26468         (default_binds_local_p_3): This.  Don't return true on protected
26469         data symbol if protected data may be external.
26470         (default_binds_local_p): Use default_binds_local_p_3.
26471         (default_binds_local_p_1): Likewise.
26472         (default_binds_local_p_2): New.
26473         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
26474         default_binds_local_p_2 if TARGET_MACHO is undefined.
26475
26476 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
26477
26478         PR target/65593
26479         * config/i386/i386.c (legitimize_pic_address): If base
26480         is SYMBOL_REF or LABEL_REF using %rip addressing, force
26481         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
26482
26483 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26484
26485         PR target/65531
26486         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
26487         comdat groups.
26488
26489 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26490
26491         PR ipa/65600
26492         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
26493         of optimized out indirect call.
26494         (redirect_to_unreachable): Always build symbol table node for
26495         BUILT_IN_UNREACHABLE
26496
26497 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
26498
26499         PR target/65407
26500         * ira-costs.c (record_reg_classes): Process all constraint string
26501         containing 0-9.
26502
26503 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
26504
26505         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
26506         memory_operand.
26507
26508         PR target/65052
26509         * config/c6x/constraints.md (S3): New constraint.
26510         * config/c6x/c6x.md (real_jump): Use it.
26511
26512 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26513
26514         PR middle-end/65595
26515         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
26516         do redirection if the call is not optimized out.
26517
26518 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
26519
26520         PR target/65495
26521         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
26522         (fchkp-check-incomplete-type): Add LTO.
26523         (fchkp-zero-input-bounds-for-main): Likewise.
26524         (fchkp-first-field-has-own-bounds): Likewise.
26525         (fchkp-narrow-bounds): Likewise.
26526         (fchkp-narrow-to-innermost-array): Likewise.
26527         (fchkp-use-static-bounds): Likewise.
26528         (fchkp-use-static-const-bounds): Likewise.
26529         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26530
26531 2015-03-27  Marek Polacek  <polacek@redhat.com>
26532
26533         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
26534
26535 2015-03-27  Marek Polacek  <polacek@redhat.com>
26536
26537         PR sanitizer/65583
26538         * ubsan.c (ubsan_create_edge): New function.
26539         (instrument_bool_enum_load): Call it.
26540         (instrument_nonnull_arg): Likewise.
26541         (instrument_nonnull_return): Likewise.
26542         (instrument_object_size): Likewise.
26543
26544 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26545
26546         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
26547         auto_vec.
26548
26549 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26550
26551         PR lto/65536
26552         * lto-streamer.h (class lto_location_cache): New.
26553         (struct data_in): Add location_cache.
26554         (lto_input_location): Update prototype.
26555         (stream_input_location_now): New.
26556         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
26557         pointer to location.
26558         (stream_input_location): Update.
26559         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
26560         (warn_odr): Apply location cache before warning.
26561         (lto_input_location): Update prototype.
26562         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
26563         Use stream_input_location_now.
26564         * lto-streamer-in.c (lto_location_cache::current_cache): New static
26565         variable.
26566         (lto_location_cache::cmp_loc): New function.
26567         (lto_location_cache::apply_location_cache): New function.
26568         (lto_location_cache::accept_location_cache): New function.
26569         (lto_location_cache::revert_location_cache): New function.
26570         (lto_location_cache::input_location): New function.
26571         (lto_input_location): Do location caching.
26572         (stream_input_location_now): New function.
26573         (input_eh_region, input_struct_function_base): Use
26574         stream_input_location_now.
26575         (lto_data_in_create): use new.
26576         (lto_data_in_delete): Use delete.
26577         * tree-streamer-in.c (unpack_ts_block_value_fields,
26578         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
26579         lto_input_ts_exp_tree_pointers): Update for cached location api.
26580
26581 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26582
26583         PR ipa/65076
26584         * passes.def: Add pass_nothrow.
26585         * ipa-pure-const.c: (pass_data_nothrow): New.
26586         (pass_nothrow): New.
26587         (pass_nothrow::execute): New.
26588         (make_pass_nothrow): New.
26589         * tree-pass.h (make_pass_nothrow): Declare.
26590
26591 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26592
26593         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
26594         edge to change by speculation resolution or redirection.
26595         (edge_set_predicate): Likewise.
26596         (inline_summary_t::duplicate): Likewise.
26597         (remap_edge_summaries): Likewise.
26598
26599 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26600
26601         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
26602         New macros.
26603         (can_inline_edge_p): Relax option matching for always inline functions.
26604
26605 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
26606
26607         PR target/65561
26608         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
26609         Check operand 4 and operand 0 for equality.
26610         (avx512f_vextract<shuffletype>32x4_1_maskm):
26611         Check operand 6 and operand 0 for equality.
26612         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
26613         for equality.
26614         (vec_extract_hi_<mode>_maskm): Ditto.
26615
26616 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26617
26618         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
26619         dead calls back to live.
26620         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
26621         cross check to ...
26622         (cgraph_node::verify_node): ... here; verify only callee edges,
26623         not caller.
26624         * cif-code.def (CILK_SPAWN): New code.
26625
26626 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26627
26628         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
26629         (edge_set_predicate): Use it to mark unreachable edges.
26630         (inline_summary_t::duplicate): Remove unnecesary code.
26631         (remap_edge_summaries): Likewise.
26632         (dump_inline_summary): Report contains_cilk_spawn.
26633         (compute_inline_parameters): Compute contains_cilk_spawn.
26634         (inline_read_section, inline_write_summary): Stream
26635         contains_cilk_spawn.
26636         * ipa-inline.c (can_inline_edge_p): Do not touch
26637         DECL_STRUCT_FUNCTION that may not be available;
26638         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
26639         remove check for callee_fun->can_throw_non_call_exceptions and
26640         replace it by optimization attribute check; check for flag_exceptions.
26641         * ipa-inline-transform.c (inline_call): Maintain
26642         DECL_FUNCTION_PERSONALITY
26643         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
26644
26645 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26646
26647         PR tree-optimization/65551
26648         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
26649         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
26650
26651 2015-03-26  Richard Biener  <rguenther@suse.de>
26652
26653         PR middle-end/65555
26654         * tree-cfg.c (verify_gimple_call): Do not require a call to
26655         have no LHS if it wasn't recognized as control altering yet.
26656
26657 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26658
26659         PR tree-optimization/64715
26660         * passes.def: Add another instance of pass_object_sizes before ccp1.
26661         * tree-object-size.c (pass_object_sizes::execute): In
26662         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
26663         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
26664         __bos result and the computed constant.  Remove redundant
26665         checks, obsoleted by gimple_call_builtin_p test.
26666
26667         * var-tracking.c (variable_tracking_main_1): Don't track
26668         variables for targetm.no_register_allocation targets.
26669
26670 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
26671
26672         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
26673         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
26674
26675 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26676
26677         PR target/65569
26678         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
26679         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
26680         0.0 is correctly setup.
26681         (extenddftf2_internal): Likewise.
26682
26683 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
26684
26685         PR tree-optimization/65177
26686         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
26687         (bb_in_bbs): New.
26688         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
26689         edges not adjacent on the path to the original code.
26690
26691 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
26692
26693         PR bootstrap/65537
26694         * doc/install.texi (Building a native compiler): Document new
26695         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
26696         configuration assumes that the host supports the linker plugin.
26697
26698 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
26699
26700         PR target/65508
26701         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
26702         chain for generated call.
26703
26704 2015-03-25  Richard Biener  <rguenther@suse.de>
26705
26706         * passes.c (pass_manager::execute_early_local_passes): Guard
26707         execution of pass_chkp_instrumentation_passes with
26708         flag_check_pointer_bounds.
26709         (pass_chkp_instrumentation_passes::gate): Likewise.
26710
26711 2015-03-25  Martin Liska  <mliska@suse.cz>
26712
26713         PR tree-optimization/65538
26714         * symbol-summary.h (function_summary::~function_summary):
26715         Relese memory for allocated summaries.
26716         (function_summary::release): New function.
26717
26718 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
26719
26720         PR lto/65515
26721         * lto-streamer-out.c (DFS::worklist): New struct.
26722         (DFS::worklist_vec): New data member.
26723         (DFS::next_dfs_num): Remove.
26724         (DFS::DFS): Rewritten using worklist instead of recursion,
26725         using most of code from DFS::DFS_write_tree.
26726         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
26727         pass it to DFS_write_tree calls.
26728         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
26729         quick initial checks push it into worklist_vec and return.
26730
26731 2015-03-25  Richard Biener  <rguenther@suse.de>
26732
26733         PR middle-end/65519
26734         * genmatch.c (expr::gen_transform): Re-write to avoid
26735         using gimple_build.
26736
26737 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26738
26739         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
26740
26741 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26742
26743         * config/arm/arm.opt (print_tune_info): New option.
26744         * config/arm/arm.c (arm_print_tune_info): New function.
26745         (arm_file_start): Call arm_print_tune_info.
26746         * config/arm/arm-protos.h (struct tune_params): Add comment.
26747         * doc/invoke.texi (@item -mprint-tune-info): New item.
26748         (-mtune): mention it in ARM Option Summary.
26749
26750 2015-03-25  DJ Delorie  <dj@redhat.com>
26751
26752         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
26753         correct clause.
26754
26755 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
26756             Martin Liska  <mliska@suse.cz>
26757
26758         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
26759         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
26760         (sem_item::add_type): New function.
26761         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
26762         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
26763         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
26764         (sem_function::equals_wpa): Fix typo.
26765         * ipa-icf.h (sem_item::add_type): New function.
26766         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
26767         order.
26768
26769 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
26770
26771         PR tree-optimization/65533
26772         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
26773         with swapped operands, call vect_free_slp_tree on
26774         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
26775         vector.
26776
26777 2015-03-24  Richard Biener  <rguenther@suse.de>
26778
26779         PR middle-end/65517
26780         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
26781         for fixup if necessary.
26782
26783 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
26784
26785         * doc/extend.texi (Function Attributes): Add @cindex entries
26786         for all attributes and regularize their format.  Delete text
26787         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
26788         information about "eightbit_data", "tiny_data", and "model"
26789         variable attributes to the Variable Attributes section.  Fix
26790         some obvious typos and copy-editing issues.
26791         (Variable Attributes, Type Attributes): Likewise add/fix
26792         @cindex entries for all attributes.
26793
26794 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26795
26796         PR target/65523
26797         * tree-chkp.c (chkp_build_returned_bound): Ignore
26798         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
26799
26800 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
26801
26802         PR target/65505
26803         * config/sh/predicates.md (simple_mem_operand,
26804         displacement_mem_operand): Add test for reg.
26805         (short_displacement_mem_operand): Test for displacement_mem_operand
26806         before invoking sh_disp_addr_displacement.
26807         * config/sh/constraints.md (Sdd, Sra): Simplify.
26808         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
26809         Remove redundant displacement_mem_operand tests.
26810
26811 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
26812
26813         PR target/65296
26814         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
26815         the same -mmcu=MCU more than once.
26816
26817 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26818
26819         PR bootstrap/65522
26820         * ipa-devirt.c: Remove duplicate demangle.h include.
26821
26822         PR target/65504
26823         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
26824         on the pseudo.
26825         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
26826         REG_POINTER on *destptr after adjusting it for prologue size.
26827
26828         PR ipa/65521
26829         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
26830         ultimate_alias_target ()->order ints instead of
26831         ultimate_alias_target () pointers.
26832
26833 2015-03-23  Richard Biener  <rguenther@suse.de>
26834
26835         PR tree-optimization/65518
26836         * tree-vect-stmts.c (vectorizable_load): Reject single-element
26837         interleaving cases we generate absymal code for.
26838
26839 2015-03-23  Richard Biener  <rguenther@suse.de>
26840
26841         PR tree-optimization/65494
26842         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
26843         matches here.
26844         (vect_analyze_slp_instance): But do that here, always and once.
26845
26846 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26847
26848         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
26849         adding T or multiplying by T+1 and subracting T.
26850
26851 2015-03-22  Jeff Law  <law@redhat.com>
26852
26853         PR rtl-optimization/64317
26854         * Makefile.in (OBJS): Add gcse-common.c
26855         * gcse.c: Include gcse-common.h
26856         (struct modify_pair_s): Move structure definition to gcse-common.h
26857         (compute_transp): Move function to gcse-common.c.
26858         (canon_list_insert): Similarly.
26859         (record_last_mem_set_info): Break out some code and put it into
26860         gcse-common.c.  Call into the new common code.
26861         (compute_local_properties): Pass additional arguments to compute_transp.
26862         * postreload-gcse.c: Include gcse-common.h and df.h
26863         (modify_mem_list_set, blocks_with_calls): New variables.
26864         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
26865         (get_bb_avail_insn): Pass in the expression index too.
26866         (alloc_mem): Allocate memory for the new bitmaps and lists.
26867         (free_mem): Free memory for the new bitmaps and lists.
26868         (insert_expr_in_table): Record a bitmap index for each entry we
26869         add to the table.
26870         (record_last_mem_set_info): Call into common code in gcse-common.c.
26871         (get_bb_avail_insn): If no available insn was found in the requested
26872         BB.  If BB has a single predecessor, see if the expression is
26873         transparent in BB and available in that single predecessor.
26874         (compute_expr_transp): New wrapper for compute_transp.
26875         (eliminate_partially_redundant_load): Pass expression's bitmap_index
26876         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
26877         (gcse_after_reload_main): If there are elements in the hash table,
26878         then compute transparency for all the elements in the hash table.
26879         * gcse-common.h: New file.
26880         * gcse-common.c: New file.
26881
26882 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
26883
26884         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
26885         as an adjective.
26886         (System Headers): Likewise.
26887         (Ifdef): Likewise.
26888         (Traditional macros): Likewise.
26889         (Invocation): Likewise.
26890         (Option Index): Likewise.
26891         * doc/cppopts.texi (-M): Likewise.
26892         (-finput-charset): Likewise.
26893         (--help): Likewise.
26894         * doc.invoke.texi (AVR Options): Likewise.
26895         (V850 Options): Likewise.
26896
26897 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
26898
26899         PR ipa/65475
26900         * ipa-devirt.c: Include demangle.h
26901         (odr_type_d): Add field rtti_broken.
26902         (odr_subtypes_equivalent_p): Do not require name to match.
26903         (compare_virtual_tables): Fix typo; if type already has ODR violation,
26904         bypass the tests; be ready for function referneces in vtables that are
26905         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
26906         (warn_odr): Give up for nameless types.
26907         (warn_types_mismatch): Report mismatch in mangled names;
26908         report mismatch in anonymous namespaces; look into component types to
26909         give useful error; report when mismatch is dragged in from other ODR
26910         type.
26911         (odr_types_equivalent_p): Match types for being polymorphic; avoid
26912         duplicated diagnostics.
26913         (add_type_duplicate): Reorder checks so more informative ones come
26914         first; fix typo; do not output "the extra base is defined here" when
26915         we did not warn.
26916         (BINFO_N_BASE_BINFOS): Relax sanity check.
26917
26918 2015-03-22  Martin Liska  <mliska@suse.cz>
26919             Jakub Jelinek  <jakub@redhat.com>
26920
26921         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
26922         masks that can potentially include a builtin.
26923         (ix86_add_new_builtins): Introduce fast filter for isa values
26924         that cannot trigger builtin inclusion.
26925
26926 2015-03-22  Martin Liska  <mliska@suse.cz>
26927
26928         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
26929         (sem_item::update_hash_by_local_refs): Likewise.
26930         (sem_variable::get_hash): Empty line is fixed.
26931         (sem_item_optimizer::execute): Include adding of hash references.
26932         (sem_item_optimizer::update_hash_by_addr_refs): New function.
26933         (sem_item_optimizer::build_hash_based_classes): Use local hash.
26934         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
26935         (sem_item::update_hash_by_local_refs): Likewise.
26936
26937 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26938
26939         PR ipa/65502
26940         * ipa-comdats.c (enqueue_references): Walk through thunks.
26941         (ipa_comdats): Likewise.
26942         (set_comdat_group_1): New function.
26943
26944 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26945
26946         PR ipa/65475
26947         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
26948         non-polymorphic
26949
26950 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26951             Gerald Pfeifer  <gerald@pfeifer.com>
26952
26953         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
26954
26955 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26956             Sandra Loosemore  <sandra@codesourcery.com>
26957
26958         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
26959         function parameter declaration.
26960         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
26961         Update arguments to nios2_adjust_call_address().
26962         (sibcall_internal): Rename from *sibcall.
26963         (sibcall_value_internal): Rename from *sibcall_value.
26964         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
26965         (nios2_large_got_address): Add target temp reg parameter.
26966         (nios2_got_address): Adjust call to nios2_large_got_address, add
26967         force_reg around it.
26968         (nios2_load_pic_address): Add target temp reg parameter, replace call
26969         to nios2_got_address with corresponding code.
26970         (nios2_legitimize_constant_address): Update call to
26971         nios2_load_pic_address.
26972         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
26973         to use temp reg for PIC loading purposes.
26974         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
26975         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26976         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
26977
26978 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26979
26980         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
26981         usage of "the @option{...}".
26982         (-Wopenmp-simd): Likewise.
26983         (-fsanitize-recover): Likewise.
26984         (-fsanitize-undefined-trap-on-error): Likewise.
26985         (-flto): Likewise.
26986         (tracer-dynamic-coverage-feedback): Likewise.
26987         (reorder-block-duplicate-feedback): Likewise.
26988         (loop-unroll-jam-size): Likewise.
26989         (-B): Likewise.
26990         (-I-): Likewise.
26991         (-mabs=legacy): Likewise.
26992         (-mupper-regs-df): Likewise.
26993         (-mupper-regs-sf): Likewise.
26994         (-mpointers-to-nested-functions): Likewise.
26995
26996 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26997
26998         * doc/extend.texi (Cilk Plus Builtins): Add markup.
26999
27000 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
27001
27002         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
27003         additional index entries and cross-references.
27004         (-fchkp-check-incomplete-type): Likewise.
27005         (-fchkp-first-field-has-own-bounds): Likewise.
27006         (-fchkp-narrow-to-innermost-array): Likewise.
27007         (-fchkp-use-fast-string-functions): Likewise.
27008         (-fchkp-use-nochk-string-functions): Likewise.
27009         (-fchkp-use-static-const-bounds): Likewise.
27010         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
27011         (-fchkp-instrument-marked-only): Likewise.
27012         (-fchkp-use-wrappers): Likewise.
27013         (-static-libmpx): Likewise.
27014         (-static-libmpxwrappers): Likewise.
27015         * doc/extend.texi (bnd_legacy): Likewise.
27016         (bnd_instrument): Likewise.
27017         (bnd_variable_size): Likewise.
27018         (Pointer Bounds Checker builtins): Likewise.
27019
27020 2015-03-21  Tom de Vries  <tom@codesourcery.com>
27021
27022         PR tree-optimization/65458
27023         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
27024         * cgraph.h (cgraph_node): Add parallelized_function field.
27025         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
27026         (input_overwrite_node): Read parallelized_function field.
27027         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
27028         parallelized_function on cgraph_node for child_fn.
27029         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
27030         Remove include of gt-tree-parloops.h.
27031         (parallelized_functions): Remove static variable.
27032         (parallelized_function_p): Rewrite using parallelized_function field of
27033         cgraph_node.
27034         (create_loop_fn): Remove adding to parallelized_functions.
27035         * Makefile.in (GTFILES): Remove tree-parloops.c
27036
27037 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
27038
27039         PR rtl-optimization/64366
27040         * lra.c (lra_update_insn_regno_info): Consider regs in
27041         CALL_INSN_FUNCTION_USAGE memory.
27042
27043 2015-03-20  Richard Biener  <rguenther@suse.de>
27044
27045         PR middle-end/64715
27046         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
27047         for type comparison and gcc_checking_assert.
27048         (chrec_fold_plus_poly_poly): Likewise.
27049         (chrec_fold_multiply_poly_poly): Likewise.
27050         (chrec_convert_1): Likewise.
27051         * gimplify.c (gimplify_expr): Remove premature folding of
27052         &X + CST to &MEM[&X, CST].
27053
27054 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
27055
27056         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
27057         already is final.
27058         (ipa_inline): Recompute inline_failed codes.
27059         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
27060         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
27061         CIF_FINAL_ERROR.
27062
27063 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
27064
27065         PR rtl-optimization/60851
27066         * recog.c (constrain_operands): Accept a pseudo register before reload
27067         for LRA enabled targets.
27068
27069 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
27070
27071         PR target/65240
27072         * config/rs6000/predicates.md (easy_fp_constant): Remove special
27073         -ffast-math handling that kept non-0 constants live in the RTL
27074         until reload.  Remove logic testing the number of instructions it
27075         took to create a constant in a GPR that was never used, due to a
27076         test for soft-float earlier.
27077         (memory_fp_constant): Delete, no longer used.
27078
27079         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
27080         alternatives for loading non-0 constants into GPRs for hard
27081         floating point that is no longer needed due to changes in
27082         easy_fp_constant.  Add support for loading 0.0 into GPRs.
27083         (mov<mode>_hardfloat32): Likewise.
27084         (mov<mode>_hardfloat64): Likewise.
27085         (mov<mode>_64bit_dm): Likewise.
27086         (movtd_64bit_nodm): Likewise.
27087         (pre-reload move FP constant define_split): Delete define_split,
27088         since it is no longer used.
27089         (extenddftf2_internal): Remove GHF constraints that are not valid
27090         for extenddftf2.
27091
27092 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
27093
27094         PR rtl-optimization/63491
27095         * lra-constraints.c (check_and_process_move): Use src instead of
27096         sreg.  Remove some dead code.
27097
27098 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
27099
27100         PR ipa/65380
27101         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
27102         (sem_variable::merge): Likewise.
27103
27104 2015-03-19  Martin Liska  <mliska@suse.cz>
27105
27106         PR ipa/65465
27107         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
27108         all fields of cgraph_thunk_info.
27109
27110 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
27111
27112         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
27113         clone instrumented thunks.
27114
27115 2015-03-19  Richard Biener  <rguenther@suse.de>
27116
27117         Revert
27118         2015-03-10  Richard Biener  <rguenther@suse.de>
27119
27120         PR middle-end/63155
27121         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27122         * tree-ssa-coalesce.c: Include timevar.h.
27123         (attempt_coalesce): Handle graph being NULL.
27124         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27125         Split out abnormal coalescing to ...
27126         (perform_abnormal_coalescing): ... this function.
27127         (coalesce_ssa_name): Perform abnormal coalescing without computing
27128         live/conflict.
27129         (verify_ssa_coalescing_worker): New function.
27130         (verify_ssa_coalescing): Likewise.
27131
27132 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27133             Jakub Jelinek  <jakub@redhat.com>
27134
27135         PR sanitizer/65400
27136         * tsan.c (instrument_gimple): Clear tail call flag on
27137         calls.
27138
27139 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
27140
27141         PR sanitizer/65400
27142         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
27143         call in the return bb.
27144         (find_split_points): Add RETURN_BB argument, don't call
27145         find_return_bb.
27146         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
27147         if true append TSAN_FUNC_EXIT internal call after the call to
27148         the split off function.
27149         (execute_split_functions): Call find_return_bb here.
27150         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
27151         Adjust find_split_points and split_function calls.
27152
27153 2015-03-18  DJ Delorie  <dj@redhat.com>
27154
27155         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
27156         (iorqi3_virt): Likewise.
27157
27158 2015-03-18  Tom de Vries  <tom@codesourcery.com>
27159
27160         * tree-parloops.c (parallelize_loops): Make static.
27161         * tree-parloops.h (parallelize_loops): Remove extern declaration.
27162
27163 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
27164
27165         PR middle-end/64491
27166         Revert:
27167         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
27168
27169         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
27170         condition would be removed due to undefined behaviour.
27171
27172 2015-03-18  Martin Liska  <mliska@suse.cz>
27173
27174         PR ipa/65432
27175         * cgraph.c (cgraph_node::get_create): Remove unnecessary
27176         xstrdup_for_dump wrapper.
27177         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
27178         sem_item::name.
27179         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
27180         with xstrdup_for_dump.
27181         (sem_variable::equals): Likewise.
27182         (sem_item_optimizer::read_section): Use symtab_node::name instead of
27183         sem_item::name.
27184         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
27185         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
27186         symtab_node::asm_name with xstrdup_for_dump.
27187         (congruence_class::dump): Use symtab_node::name instead of
27188         sem_item::name.
27189         * ipa-icf.h (symtab_node::name): Remove.
27190         (symtab_node::asm_name): Likewise.
27191
27192 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
27193
27194         PR tree-optimization/65450
27195         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
27196         function.
27197         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
27198         it instead of duplicate_ssa_name_ptr_info.
27199
27200         PR target/65222
27201         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
27202
27203 2015-03-18  Richard Biener  <rguenther@suse.de>
27204
27205         * tree-data-ref.h (struct access_matrix): Remove.
27206         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
27207         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
27208         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
27209         (am_vector_index_for_loop): Likewise.
27210         (struct data_reference): Remove access_matrix member.
27211         (DR_ACCESS_MATRIX): Remove.
27212         (lambda_vector_new): Add comment.
27213         (lambda_matrix_new): Use XOBNEWVEC.
27214
27215 2015-03-18  Richard Biener  <rguenther@suse.de>
27216
27217         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
27218         (pass_ch::execute): Cleanup the CFG only if we did sth.
27219         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
27220
27221 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27222
27223         * expmed.c (synth_mult): Use std::swap instead of manually
27224         swapping algorithms.
27225
27226 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
27227
27228         PR target/65078
27229         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
27230
27231 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
27232
27233         PR target/65296
27234         * config/avr/avr.opt (-nodevicelib): New option.
27235         * doc/invoke.texi (AVR Options): Document it.
27236         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
27237         libgcc.a, libc.a, libm.a.
27238         * config/avr/specs.h: Same.
27239         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
27240         which don't (directly) depend on the device.  Print more help.
27241         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
27242         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
27243         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
27244         case of an error.
27245         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
27246         for specs file name.
27247         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
27248         * config/avr/avr-mcus.def: Adjust initializers and comments.
27249
27250 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
27251
27252         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
27253         DECL_ONE_ONLY to check if decl is one only.
27254         * ipa-split.c (consider_split): Limit splitt of one only functions.
27255
27256 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27257
27258         PR tree-optimization/65427
27259         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
27260         functions.
27261         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
27262
27263 2015-03-16  Marek Polacek  <polacek@redhat.com>
27264
27265         * cgraph.h (add_new_static_var): Remove declaration.
27266         * varpool.c (add_new_static_var): Remove function.
27267
27268 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27269
27270         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
27271         instead of vec<tree> * with vec_alloc and release for args.
27272         Adjust all users.
27273
27274         PR middle-end/65431
27275         * omp-low.c (delete_omp_context): Only splay_tree_delete
27276         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
27277         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
27278
27279 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
27280
27281         PR sanitizer/64820
27282         * cfgexpand.c (align_base): New function.
27283         (alloc_stack_frame_space): Call it.
27284         (expand_stack_vars): Align prev_frame to be sure
27285         data->asan_vec elements aligned properly.
27286
27287 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
27288
27289         PR middle-end/65409
27290         * expr.c (store_field): Do not do a direct block copy if the source is
27291         a PARALLEL with BLKmode.
27292
27293 2015-03-16  Tom de Vries  <tom@codesourcery.com>
27294
27295         PR middle-end/65414
27296         Revert:
27297         2015-03-12  Tom de Vries  <tom@codesourcery.com>
27298
27299         PR rtl-optimization/64895
27300         * lra-lives.c (check_pseudos_live_through_calls): Use
27301         actual_call_used_reg_set instead of call_used_reg_set, if available.
27302
27303 2015-03-16  Alan Modra  <amodra@gmail.com>
27304
27305         PR target/63150
27306         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
27307         Modify Z->r bswapdi splitter to use dest in place of scratch.
27308         In r->Z and Z->r bswapdi splitter rename word_high, word_low
27309         to word1, word2 and rearrange logic to suit.
27310         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
27311         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
27312         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
27313         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
27314         early clobber.
27315
27316 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
27317
27318         PR tree-optimization/65369
27319         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
27320         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
27321         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
27322
27323         PR tree-optimization/65418
27324         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
27325         are casts in the first PLUS_EXPR operand, ensure tbias and
27326         *totallowp are in the inner type.
27327
27328         PR rtl-optimization/65401
27329         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
27330         argument.  If true, adjust_address_nv of x with big-endian
27331         correction for the mode widening to GET_MODE (y).
27332         (make_field_assignment): Don't do MEM mode widening here.
27333         Use MEM_P instead of GET_CODE == MEM.
27334
27335 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
27336
27337         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
27338         the external decls.
27339
27340 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27341
27342         PR target/64600
27343         * config/arm/arm.c (arm_gen_constant, AND case): Use
27344         ARM_SIGN_EXTEND when constructing AND mask.
27345
27346 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27347
27348         * graph.c (print_graph_cfg): Make function names visible and append
27349         parenthesis to it.  Also make groups of basic blocks belonging to the
27350         same function visible.
27351
27352 2015-03-12  Richard Biener  <rguenther@suse.de>
27353
27354         PR middle-end/44563
27355         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
27356         to avoid quadratic behavior with inline expansion splitting blocks.
27357         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
27358         with the successor if the predecessor will be merged with it.
27359         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
27360         entry block with its successor.
27361
27362 2015-03-13  Richard Biener  <rguenther@suse.de>
27363
27364         PR middle-end/44563
27365         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
27366         (cleanup_tree_cfg_1): Do not call it.
27367         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
27368         (fixup_noreturn_call): Mark the stmt as control altering.
27369         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
27370         here.
27371         (pass_data_fixup_cfg): Produce a dump file.
27372         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
27373         (need_noreturn_fixup): New global.
27374         (pass_dominator::execute): Fixup queued noreturn calls.
27375         (optimize_stmt): Queue calls that became noreturn for fixup.
27376         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
27377         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
27378         (el_to_fixup): New global.
27379         (eliminate_dom_walker::before_dom_childre): Queue calls that
27380         became noreturn for fixup.
27381         (eliminate): Fixup queued noreturn calls.
27382         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
27383         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
27384         (substitute_and_fold_dom_walker::before_dom_children): Queue
27385         alls that became noreturn for fixup.
27386         (substitute_and_fold): Fixup queued noreturn calls.
27387
27388 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
27389
27390         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
27391         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
27392         are building; for methods check ODR type of class they belong to if
27393         they may lead to a polymorphic call.
27394         (sem_function::compare_polymorphic_p): Be bit smarter about testing
27395         when function may lead to a polymorphic call.
27396         (sem_function::compare_type_list): Remove.
27397         (sem_variable::equals): Update use of compatible_types_p.
27398         (sem_variable::parse_tree_refs): Remove.
27399         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
27400         cdtor.
27401         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
27402         matching here.
27403         (func_checker::compatible_polymorphic_types_p): Break out from ...
27404         (unc_checker::compatible_types_p): ... here.
27405         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
27406         Declare.
27407         (unc_checker::compatible_types_p): Update.
27408         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
27409         Remove.
27410
27411 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27412
27413         PR rtl-optimization/65235
27414         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
27415         When first element of vec_concat is const_int, calculate its size
27416         using second element.
27417
27418 2015-03-12  Richard Biener  <rguenther@suse.de>
27419
27420         PR middle-end/65270
27421         * fold-const.c (operand_equal_p): Fix ordering of resetting
27422         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
27423
27424 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27425
27426         * config/s390/s390.c (s390_reorg): Move code to output nops after label
27427         to s390_reorg ().
27428         (s390_asm_output_function_label): Likewise.
27429         * config/s390/s390.c (s390_asm_output_function_label):
27430         Fix function label alignment with -mhtopatch.
27431         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
27432         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
27433         ("nop_2_byte"): New define_insn.
27434         ("nop_4_byte"): Likewise.
27435         ("nop_6_byte"): Likewise.
27436         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
27437         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
27438
27439 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27440
27441         PR target/65103
27442         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
27443         register.
27444
27445 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27446
27447         PR target/65044
27448         * toplev.c (process_options): Restrict Pointer Bounds Checker
27449         usage with Address Sanitizer.
27450
27451 2015-03-12  Richard Biener  <rguenther@suse.de>
27452
27453         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
27454         to split on.
27455         * omp-low.c (expand_omp_taskreg): Split block before removing
27456         the stmt.
27457         (expand_omp_target): Likewise.
27458         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
27459         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
27460         stmt to split_block.
27461
27462 2015-03-12  Tom de Vries  <tom@codesourcery.com>
27463
27464         PR rtl-optimization/64895
27465         * lra-lives.c (check_pseudos_live_through_calls): Use
27466         actual_call_used_reg_set instead of call_used_reg_set, if available.
27467
27468 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27469
27470         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
27471         (cgraph_node::remove): Likewise.
27472         (cgraph_node::get_untransformed_body): Likewise.
27473         * varpool.c (varpool_node::remove): Likewise.
27474         (varpool_node::get_constructor): Add sanity check.
27475
27476 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
27477
27478         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
27479         old GCC versions.
27480         (-fabi-compat-version): Likewise.
27481         (-ffriend-injection): Likewise.
27482         (-Wdeclaration-after-statement): Likewise.
27483         (-fomit-frame-pointer): Likewise.
27484         (-ftree-coalesce-inlined-vars): Likewise.
27485         (-fvisibility=): Likewise.
27486         * doc/extend.texi (Typeof): Likewise.
27487         (Zero Length): Likewise.
27488         (Escaped Newlines): Likewise.
27489         (Compound Literals): Likewise.
27490         (Function Attributes): Likewise.
27491         (Label Attributes): Likewise.
27492         (Type Attributes): Likewise.
27493         (Function Names): Likewise.
27494         (Other Builtins): Likewise.
27495         (Function Specific Option Pragmas): Likewise.
27496         (C++ Interface): Likewise.
27497
27498 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
27499
27500         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
27501
27502 2015-03-11  Marek Polacek  <polacek@redhat.com>
27503
27504         PR tree-optimization/65388
27505         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
27506
27507 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27508
27509         PR target/65296
27510         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
27511         * configure: Regenerate.
27512         * config.in: Regenerate.
27513         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
27514         [-mn-flash]: Document it.
27515         [__AVR_ARCH__]: Document avrtiny.
27516
27517         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
27518         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
27519         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
27520
27521 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27522
27523         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
27524
27525 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
27526
27527         PR target/65242
27528         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
27529         allow reloads of PLUS in floating point/VSX registers.
27530
27531 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
27532
27533         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
27534         crypto_sha256_fast.
27535         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
27536
27537 2015-03-11  Richard Biener  <rguenther@suse.de>
27538
27539         PR tree-optimization/65310
27540         * tree-sra.c (build_ref_for_offset): Also preserve larger
27541         alignment.
27542
27543 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
27544
27545         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
27546
27547 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27548
27549         PR target/65368
27550         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
27551         new define_expand.
27552         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
27553
27554 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27555
27556         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
27557         (sem_function::equals_wpa): ... here.
27558
27559 2015-03-10  Marek Polacek  <polacek@redhat.com>
27560             Jakub Jelinek  <jakub@redhat.com>
27561
27562         PR sanitizer/65367
27563         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
27564         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
27565         separately.
27566
27567 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27568
27569         PR target/65286
27570         * config/rs6000/t-linux: For powerpc64* target set
27571         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
27572
27573 2015-03-10  Richard Biener  <rguenther@suse.de>
27574
27575         PR middle-end/44563
27576         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
27577         for redirect_all_calls.
27578
27579 2015-03-10  Marek Polacek  <polacek@redhat.com>
27580
27581         * gdbinit.in (pcfun): Define and document.
27582
27583 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
27584
27585         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
27586         of libgomp-plugin.h.
27587         (find_target_compiler): Support a case when the path to gcc is
27588         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
27589         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
27590         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
27591         libgomp-plugin.h.
27592         (main): Use GCC_INSTALL_NAME as target_driver_name.
27593         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
27594         define.
27595         (mkoffload.o): Remove obsolete include path and defines.
27596         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
27597
27598 2015-03-10  Richard Biener  <rguenther@suse.de>
27599
27600         PR middle-end/63155
27601         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27602         * tree-ssa-coalesce.c: Include timevar.h.
27603         (attempt_coalesce): Handle graph being NULL.
27604         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27605         Split out abnormal coalescing to ...
27606         (perform_abnormal_coalescing): ... this function.
27607         (coalesce_ssa_name): Perform abnormal coalescing without computing
27608         live/conflict.
27609         (verify_ssa_coalescing_worker): New function.
27610         (verify_ssa_coalescing): Likewise.
27611
27612 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27613
27614         PR target/65296
27615         * config.gcc (extra_options) [avr]: Remove.
27616         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
27617         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
27618         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
27619
27620         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
27621         (-mmcu=): Add Var and MissingArgError properties.
27622         (-march=): Remove.
27623         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
27624         * config/avr/t-multilib: Regenerate.
27625         * config/avr/specs.h: New file.
27626         * config/avr/driver-avr.c: New file.
27627         * config/avr/genopt.sh: Remove file.
27628         * config/avr/avr-tables.opt: Remove file.
27629         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
27630         * config/avr/avr-c.c: Same.
27631         * avr-arch.h: Same.
27632         (avr_current_device): Remove proto.
27633         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
27634         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
27635         (EXTRA_SPEC_FUNCTIONS): Define.
27636         (avr_devicespecs_file): New specs function proto.
27637         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
27638         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
27639         (avr_current_device): Remove definition and usage.
27640         (avr_set_core_architecture): New static function.
27641         (avr_option_override): Use it.
27642         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
27643         (mcu_name): New static array.
27644         (comparator, avr_archs_str, avr_mcus_str): New static functions.
27645         (avr_inform_devices, avr_inform_core_architectures): New functions.
27646         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
27647         (avrlibc.h) [WITH_AVRLIBC]: Include.
27648         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
27649         (print_mcu): Rewrite from scratch.
27650         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
27651         Forward to avr-specific specs defined in device-specs file.
27652         * config/avr/t-avr (driver-avr.o): New rule.
27653         (avr-devices.o): Depend on avr-arch.h.
27654         (avr-mcus): No more depend on avr-tables.opt.
27655         (avr-tables.opt): Remove rule.
27656         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
27657
27658 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27659
27660         * c-family/c.opt (fchkp-use-wrappers): New.
27661         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
27662         (chkp_wrap_function): New.
27663         (chkp_build_instrumented_fndecl): Support wrapped
27664         functions.
27665         * doc/invoke.texi (-fcheck-pointer-bounds): New.
27666         (-fchkp-check-incomplete-type): New.
27667         (-fchkp-first-field-has-own-bounds): New.
27668         (-fchkp-narrow-bounds): New.
27669         (-fchkp-narrow-to-innermost-array): New.
27670         (-fchkp-optimize): New.
27671         (-fchkp-use-fast-string-functions): New.
27672         (-fchkp-use-nochk-string-functions): New.
27673         (-fchkp-use-static-bounds): New.
27674         (-fchkp-use-static-const-bounds): New.
27675         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
27676         (-fchkp-check-read): New.
27677         (-fchkp-check-write): New.
27678         (-fchkp-store-bounds): New.
27679         (-fchkp-instrument-calls): New.
27680         (-fchkp-instrument-marked-only): New.
27681         (-fchkp-use-wrappers): New.
27682         (-static-libmpx): New.
27683         (-static-libmpxwrappers): New.
27684
27685 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27686
27687         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
27688         (CHKP_SPEC): Add wrappers library.
27689         * c-family/c.opt (static-libmpxwrappers): New.
27690
27691 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27692
27693         * config/i386/linux-common.h (LIBMPX_LIBS): New.
27694         (LIBMPX_SPEC): New.
27695         (CHKP_SPEC): New.
27696         * gcc.c (CHKP_SPEC): New.
27697         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
27698         * c-family/c.opt (static-libmpx): New.
27699
27700 2015-03-10  Richard Biener  <rguenther@suse.de>
27701
27702         PR middle-end/44563
27703         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
27704         for compare_type.
27705         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
27706         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
27707         (cgraph_add_edge_to_call_site_hash): Likewise.
27708         (cgraph_node::get_edge): Likewise.
27709         (cgraph_edge::set_call_stmt): Likewise.
27710         (cgraph_edge::remove_caller): Likewise.
27711
27712 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
27713
27714         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
27715         (callee_saved_gpr_regs_size): ... this.
27716         (callee_saved_regs_first_regno): Rename to ...
27717         (callee_saved_first_gpr_regno): ... this.
27718         (callee_saved_regs_last_regno) Rename to ...
27719         (callee_saved_last_gpr_regno): ... this.
27720         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
27721         variables.
27722         (nds32_initial_elimination_offset): Likewise.
27723         (nds32_expand_prologue): Likewise.
27724         (nds32_expand_epilogue): Likewise.
27725         (nds32_expand_prologue_v3push): Likewise.
27726         (nds32_expand_epilogue_v3pop): Likewise.
27727         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
27728         Adjust renamed variables.
27729         (nds32_output_stack_pop): Likewise.
27730
27731 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27732
27733         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
27734         code in comment.
27735
27736 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27737
27738         PR rtl-optimization/65321
27739         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
27740         than shift mode.
27741         * var-tracking.c (use_narrower_mode): Likewise.
27742
27743 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27744
27745         PR tree-optimization/65355
27746         * varasm.c (notice_global_symbol): Do not produce RTL.
27747         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
27748         anchor.
27749         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
27750         check for section anchors.
27751
27752 2015-03-10  Alan Modra  <amodra@gmail.com>
27753
27754         PR target/65286
27755         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
27756         to be single-arch by default.  Set cpu_is_64bit for powerpc64
27757         given --with-cpu=native.
27758         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
27759         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
27760         and powerpc64le.
27761         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
27762         rs6000_isa_flags rather than TARGET_64BIT.
27763
27764 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
27765             Kaz Kojima  <kkojima@gcc.gnu.org>
27766
27767         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
27768
27769 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
27770
27771         PR lto/65361
27772         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
27773         on a TREE_BINFO, instead use BINFO_TYPE.
27774
27775 2015-03-09  Richard Biener  <rguenther@suse.de>
27776
27777         PR middle-end/65270
27778         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
27779         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
27780         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
27781         of that.  When comparing dereferences compare alignment.
27782         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
27783
27784 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27785
27786         * ipa-inline-analysis.c (check_callers): Check
27787         node->can_remove_if_no_direct_calls_and_refs_p.
27788         (growth_likely_positive): Reorganize to call
27789         can_remove_if_no_direct_calls_p later.
27790         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
27791         will_be_removed_from_program_if_no_direct_calls_p): Add
27792         will_inline parameter.
27793         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
27794         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27795         Handle inliner case correctly.
27796
27797 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27798
27799         PR tree-optimization/63743
27800         * cfgexpand.c (reorder_operands): Also reorder if only second operand
27801         had its definition forwarded by TER.
27802
27803 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27804
27805         PR lto/65316
27806         * ipa-utils.h (types_odr_comparable): Add strict argument.
27807         * ipa-devirt.c: Fix whitespace;
27808         (odr_hasher): Remove.
27809         (odr_name_hasher, odr_vtable_hasher): New hashers.
27810         (can_be_name_hashed_p): New predicate.
27811         (hash_type_name): remove.
27812         (hash_odr_name): New.
27813         (odr_name_hasher::hash): new.
27814         (can_be_vtable_hashed_p): New.
27815         (hash_odr_vtable): New.
27816         (odr_vtable_hasher::hash): New.
27817         (types_same_for_odr): Add strict parameter.
27818         (types_odr_comparable): Likewise.
27819         (odr_name_hasher::equal): New.
27820         (odr_vtable_hasher::equal): New.
27821         (odr_name_hasher::remove): New.
27822         (odr_hash_type): Change to hash_table<odr_name_hasher>.
27823         (odr_vtable_hash_type): New.
27824         (odr_vtable_hash): New.
27825         (odr_subtypes_equivalent_p): Do strict comparsion.
27826         (add_type_duplicate): Merge type names; cleanup; avoid type
27827         duplicates.
27828         (register_odr_type): Initialize vtable hash.
27829         (build_type_inheritance_graph): Likewise
27830         (get_odr_type): Reorg to use two hashes.
27831         (dump_possible_polymorphic_call_targets): Move sanity check after debug
27832         output.
27833         (ipa_devirt): Dump type_inheritance_graph.
27834         (types_same_for_odr): Add strict mode.
27835
27836 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27837
27838         PR ipa/65334
27839         * cgraph.h (symtab_node): Add definition_alignment,
27840         can_increase_alignment_p and increase_alignment.
27841         * symtab.c (symtab_node::can_increase_alignment_p,
27842         increase_alignment_1, symtab_node::increase_alignment,
27843         symtab_node::definition_alignment): New.
27844         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
27845         can_increase_alignment_p.
27846         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
27847         * tree-vect-stmts.c (ensure_base_align): Likewise.
27848         * varasm.c (function_section_1): Use definition_alignment.
27849         (assemble_start_function): Likewise.
27850         (emit_local): likewise.
27851         (build_constant_desc): Likewsie.
27852         (output_constant_def_contents): Likewise.
27853         (place_block_symbol): Likewise.
27854         (output_object_block): Likewise.
27855
27856 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27857
27858         PR ipa/65316
27859         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
27860         when outputting debug.
27861
27862 2015-03-07  Marek Polacek  <polacek@redhat.com>
27863             Martin Uecker  <uecker@eecs.berkeley.edu>
27864
27865         PR sanitizer/65280
27866         * doc/invoke.texi: Update description of -fsanitize=bounds.
27867
27868 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
27869
27870         * tree-ssa-phiopt.c (neg_replacement): Remove.
27871         (tree_ssa_phiopt_worker): Remove negate optimization.
27872
27873 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27874
27875         PR ipa/65302
27876         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
27877
27878 2015-03-06  Richard Biener  <rguenther@suse.de>
27879
27880         PR middle-end/64928
27881         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
27882         and liveout_obstack members.
27883         (calculate_live_on_exit): Remove.
27884         (calculate_live_ranges): Change declaration.
27885         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
27886         (new_tree_live_info): Adjust.
27887         (calculate_live_ranges): Delete livein when not wanted.
27888         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
27889         Deal with partly deleted live info.
27890         (loe_visit_block): Remove temporary bitmap by using
27891         bitmap_ior_and_compl_into.
27892         (live_worklist): Adjust accordingly.
27893         (calculate_live_on_exit): Make static.
27894         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
27895         we do not need livein.
27896
27897 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
27898
27899         * real.c (real_from_string): Fix typo in assertion.
27900
27901 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
27902
27903         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
27904         the patch.
27905
27906 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27907
27908         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
27909
27910 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
27911
27912         PR target/64342
27913         * lra-assigns.c (find_hard_regno_for): Rename to
27914         find_hard_regno_for_1.  Add a new parameter.
27915         (find_hard_regno_for): New function using find_hard_regno_for_1.
27916
27917 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27918
27919         PR rtl-optimization/65067
27920         * expmed.c (store_bit_field, extract_bit_field): Reworked the
27921         strict volatile bitfield handling.
27922
27923 2015-03-05  Martin Liska  <mliska@suse.cz>
27924
27925         PR ipa/65318
27926         * ipa-icf.c (sem_variable::equals): Compare variables types.
27927
27928 2015-03-05  Richard Henderson  <rth@redhat.com>
27929
27930         PR target/65121
27931         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
27932         correctly check weak symbol binding.
27933
27934 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
27935
27936         PR middle-end/65315
27937         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
27938         needed alignment.
27939
27940 2015-03-05  Martin Liska  <mliska@suse.cz>
27941
27942         * ipa-inline.c (inline_small_functions): Set default value to
27943         prevent warning during bootstrap.
27944         * tree.h: Add pragma guard that ignores false positives during
27945         bootstrap.
27946
27947 2015-03-05  Richard Biener  <rguenther@suse.de>
27948
27949         PR tree-optimization/65310
27950         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
27951         Properly preserve alignment of the base of the access.
27952
27953 2015-03-05  Richard Biener  <rguenther@suse.de>
27954
27955         PR ipa/65270
27956         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
27957         Compare dependence info.
27958
27959 2015-03-05  Richard Biener  <rguenther@suse.de>
27960
27961         PR middle-end/65233
27962         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
27963         tree-into-ssa.h.
27964         (walk_ssa_copies): Revert last chage.  Instead do not walk
27965         SSA names registered for SSA update.
27966
27967 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27968
27969         PR ipa/65270
27970         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
27971         vtable references for their containing type.
27972         (sem_function::equals_wpa): Compare TYPE_RESTRICT
27973         and type attributes.
27974
27975 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
27976
27977         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
27978         before negating it.
27979         * stor-layout.c (finalize_record_size): Revert latest change.
27980
27981 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
27982
27983         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
27984
27985 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27986
27987         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
27988         for correct comdat handling.
27989         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27990         Likewise.
27991         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
27992         (used_from_object_file_p_worker): Remove.
27993         (cgraph_node::only_called_directly_or_alised): Add
27994         used_from_object_file_p.
27995         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
27996         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
27997         can_remove_if_no_direct_calls_and_refs_p.
27998
27999 2015-03-04  Nick Clifton  <nickc@redhat.com>
28000
28001         * config/rl78/rl78.h (enum reg_class): Remove real registers from
28002         General register class.
28003         * config/rl78/rl78-real.md: Replace general register constraints
28004         with real+virtual register constraints.
28005
28006 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28007
28008         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
28009         from checking for -mhtm option.
28010
28011 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
28012
28013         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
28014         (struct ipa_sra_check_caller_data): Add has_thunk field.
28015         (ipa_sra_check_caller): Check for thunk.
28016         (ipa_sra_preliminary_function_checks): Give up on function with
28017         thunks.
28018         (ipa_early_sra): Use call_for_symbol_and_aliases.
28019
28020 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
28021
28022         PR target/65249
28023         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
28024         called for __stack_chk_guard symbol.
28025
28026 2015-03-03  DJ Delorie  <dj@redhat.com>
28027
28028         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
28029         inc/dec.
28030         (*addhi3_real): Likewise.
28031         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
28032         pattern to match incrementing memory.
28033         * config/rl78/predicates.md (rl78_1_2_operand): New.
28034         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
28035         it's the same and only mem.
28036         (rl78_alloc_physical_registers_op2): If there's effectively only
28037         one MEM, transcode it into HL.
28038         (rl78_far_p): Reject addresses that aren't legitimate.
28039
28040 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
28041
28042         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
28043         negating it.
28044
28045         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
28046
28047 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
28048
28049         Implement call0 ABI for xtensa
28050         * config/xtensa/constraints.md ("a" constraint): Include stack
28051         pointer in case of call0 ABI.
28052         ("q" constraint): Make empty in case of call0 ABI.
28053         ("D" constraint): Include stack pointer in case of call0 ABI.
28054         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
28055         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
28056         prototypes.
28057         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
28058         variable.
28059         (xtensa_regno_to_class): Make it a local variable in the
28060         function xtensa_regno_to_class.
28061         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
28062         macro, function prototype and implementation.
28063         (reg_nonleaf_alloc_order): Make it a local variable in the
28064         function order_regs_for_local_alloc.
28065         (xtensa_conditional_register_usage): New function.
28066         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
28067         (xtensa_valid_move): Allow direct moves to stack pointer
28068         register in call0 ABI.
28069         (xtensa_setup_frame_addresses): Only spill register windows in
28070         windowed ABI.
28071         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
28072         call0 ABI respectively.
28073         (xtensa_function_arg_1): Only mark a7 register for copying in
28074         windowed ABI.
28075         (xtensa_call_save_reg): New function.
28076         (compute_frame_size): Add space for callee saved register
28077         storage to the frame size in call0 ABI.
28078         (xtensa_expand_prologue): Generate code to set up stack frame
28079         and save callee-saved registers in call0 ABI.
28080         (xtensa_expand_epilogue): New function.
28081         (xtensa_set_return_address): New function.
28082         (xtensa_return_addr): Calculate return address in call0 ABI.
28083         (xtensa_builtin_saveregs): Only mark a7 register for copying and
28084         emit copying code in windowed ABI.
28085         (order_regs_for_local_alloc): Add preferred register allocation
28086         order for non-leaf function in call0 ABI.
28087         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
28088         (xtensa_asm_trampoline_template): Add trampoline generation for
28089         call0 ABI.
28090         (xtensa_trampoline_init): Add trampoline initialization for
28091         call0 ABI.
28092         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
28093         functions.
28094         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
28095         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
28096         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
28097         ABI call-used registers.
28098         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
28099         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
28100         call0 ABI.
28101         (REG_CLASS_CONTENTS): Include all registers into the preferred
28102         reload registers set, adjust the set in the
28103         xtensa_conditional_register_usage.
28104         (xtensa_regno_to_class): Drop variable declaration.
28105         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
28106         function.
28107         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
28108         respectively.
28109         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
28110         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
28111         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
28112         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
28113         location in call0 ABI.
28114         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
28115         stack adjustment size when handling exception.
28116         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
28117         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
28118         definitions.
28119         ("return" pattern): Generate ret.n/ret in call0 ABI.
28120         ("epilogue" pattern): Expand epilogue.
28121         ("nonlocal_goto" pattern): Use default in call0 ABI.
28122         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
28123         emit eh_set_a0_* depending on ABI.
28124         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
28125         ("eh_set_a0_call0", "blockage"): New patterns.
28126
28127 2015-03-03  Martin Liska  <mliska@suse.cz>
28128
28129         PR ipa/65287
28130         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
28131
28132 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
28133
28134         PR 65138/target
28135         * config/rs6000/rs6000-tables.opt: Regenerate table.
28136
28137 2015-03-03  Renlin Li  <renlin.li@arm.com>
28138
28139         * doc/md.texi (@item ^): Change ? into ^.
28140
28141 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
28142
28143         * doc/tm.texi: Regenerated.
28144
28145 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
28146
28147         * builtins.c (expand_builtin_return_addr): Add
28148         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
28149         surrounding #ifdef.
28150         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
28151         definition to 1.
28152         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
28153         Likewise.
28154         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
28155         undefined.
28156         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
28157         paragraph.
28158
28159 2015-03-03  Martin Jambor  <mjambor@suse.cz>
28160             Eric Botcazou  <ebotcazou@adacore.com>
28161
28162         * tree-sra.c (ipa_sra_check_caller_data): New type.
28163         (has_caller_p): Removed.
28164         (ipa_sra_check_caller): New function.
28165         (ipa_sra_preliminary_function_checks): Use it.
28166
28167 2015-03-03  Martin Liska  <mliska@suse.cz>
28168
28169         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
28170         instead of if branch.
28171
28172 2015-03-03  Martin Liska  <mliska@suse.cz>
28173
28174         PR ipa/65282
28175         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
28176
28177 2015-03-23  Jeff Law  <law@redhat.com>
28178
28179         PR tree-optimization/65241
28180         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
28181         hash table if INSERT is true.
28182
28183 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28184
28185         PR target/65296
28186         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
28187
28188 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28189
28190         PR target/64331
28191         * config/avr/avr.c (context.h, tree-pass.h): Include them.
28192         (avr_pass_data_recompute_notes): New static variable.
28193         (avr_pass_recompute_notes): New class.
28194         (avr_register_passes): New static function.
28195         (avr_option_override): Call it.
28196
28197 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28198
28199         Fix various problems with specs file generation.
28200
28201         PR target/65296
28202         * config.gcc (extra_gcc_objs) [avr]: Remove.
28203         * config/avr/driver-avr.c: Remove file.
28204         * config/avr/t-avr (driver-avr.o): Remove rule.
28205         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
28206         INCLUDES to build.  Depend on TM_H.
28207         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
28208         build warnings.  Fix non-matching types and non-existing %-codes.
28209         (tm.h): Include.
28210         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
28211         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
28212         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
28213         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
28214         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
28215         (LIBGCC_SPEC): Remove definitions.
28216
28217 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
28218
28219         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
28220         to create a register in testing mode.
28221
28222 2015-03-03  Martin Liska  <mliska@suse.cz>
28223             Jan Hubicka  <hubicka@ucw.cz>
28224
28225         PR ipa/65263
28226         * cgraph.c (cgraph_node::has_thunk_p): New function.
28227         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
28228         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
28229         (sem_function::merge): Assert is changed.
28230
28231 2015-03-03  Martin Liska  <mliska@suse.cz>
28232             Martin Jambor  <mjambor@suse.cz>
28233
28234         PR ipa/65087
28235         * ipa-icf.c (sem_item_optimizer::execute): Change function
28236         return value to boolean.
28237         (sem_item_optimizer::merge_classes): Likewise.
28238         (ipa_icf_driver): Return TODO_remove_functions in case there's
28239         a merge operation processed.
28240         * ipa-icf.h: Change function return value to boolean.
28241
28242 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28243
28244         PR 65138/target
28245         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
28246         processor type for 64-bit little endian PowerPC.
28247
28248         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
28249         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
28250         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
28251         printing built-in mask so it does not pass NULL pointers.
28252
28253         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
28254         -mcpu=powerpc64le.
28255
28256 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
28257
28258         PR target/58158
28259         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
28260         !ISA_HAS_FP_CONDMOVE.
28261
28262 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
28263
28264         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
28265         reload_completed.
28266
28267 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
28268
28269         * doc/invoke.texi (Options for Code Generation Conventions):
28270         Fix URL of DSO paper.
28271
28272 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28273
28274         PR ipa/65130
28275         * ipa-inline.c (check_callers): Looks for recursion.
28276         (inline_to_all_callers): Give up on uninlinable or recursive edges.
28277         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
28278         summary of inline clones.
28279         (do_estimate_growth_1): Fix recursion check.
28280
28281 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28282
28283         PR ipa/64988
28284         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
28285         comdat groups.
28286
28287 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28288             Aldy Hernandez  <aldyh@redhat.com>
28289
28290         PR lto/65276
28291         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
28292         when checking TYPE_BINFO.
28293
28294 2015-03-02  Richard Biener  <rguenther@suse.de>
28295
28296         PR ipa/65270
28297         * ipa-icf-gimple.c: Include builtins.h.
28298         (func_checker::compare_memory_operand): Compare base alignment.
28299
28300 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28301
28302         PR target/65184
28303         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
28304         are never passed by reference.
28305
28306 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28307
28308         PR target/65183
28309         * tree-chkp.c (chkp_check_lower): Don't check against
28310         zero bounds for already instrumented functions.
28311         (chkp_check_upper): Likewise.
28312         (chkp_fini): Clean pass local data to avoid wrong reusage.
28313
28314 2015-02-28  Martin Liska  <mliska@suse.cz>
28315             Jan Hubicka  <hubicka@ucw.cz>
28316
28317         * ipa-icf.c (sem_variable::equals): Improve debug output;
28318         get variable constructor.
28319         (sem_variable::parse): Do not filter out too early; give up on
28320         volatile and register vars.
28321         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
28322         variables.
28323         * ipa-icf.h (sem_variable::init): Do not set ctor.
28324         (sem_variable::ctor): Remove.
28325
28326 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
28327
28328         PR middle-end/65233
28329         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
28330
28331 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28332
28333         * ipa-icf.c: Include stor-layout.h
28334         (sem_function::compare_cgraph_references): Rename to ...
28335         (sem_item::compare_cgraph_references): ... this one.
28336         (sem_variable::equals_wpa): New function
28337         (sem_variable::equals): Do not check stuff already verified by
28338         equals_wpa.
28339         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
28340         * ipa-icf.h (sem_item): Add compare_cgraph_references.
28341         (sem_function): Remove compare_cgraph_references.
28342         (sem_variable): Turns equals_wpa into non-inline.
28343
28344 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28345
28346         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
28347         (sem_item::add_expr): New function.
28348         (sem_function::hash_stmt): Handle operands of most statements.
28349         (sem_variable::get_hash): Hash the actual constructor.
28350         * ipa-icf.h (sem_item): Add add_expr.
28351         (sem_function): Update prototype of hash_stmt
28352
28353 2015-02-28  Martin Liska  <mliska@suse.cz>
28354             Jan Hubicka  <hubicka@ucw.cz>
28355
28356         PR ipa/65245
28357         * ipa-icf-gimple.c (func_checker::compare_function_decl):
28358         Remove.
28359         (func_checker::compare_variable_decl): Skip symtab vars.
28360         (func_checker::compare_cst_or_decl): Update.
28361         * ipa-icf.c (sem_function::parse): Do not consider aliases.
28362         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
28363         use correct symtab predicates.
28364         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
28365         (sem_variable::parse):  Update comment.
28366         (sem_item_optimizer::build_graph): Consider ultimate aliases
28367         for references.
28368
28369 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28370
28371         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
28372         of OBJ_TYPE_REF.
28373
28374 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28375
28376         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
28377         (sem_variable::merge) Likewise.
28378
28379 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28380
28381         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
28382         target; also match flag_ipa_devirt.
28383
28384 2015-03-01  Martin Liska  <mliska@suse.cz>
28385             Jan Hubicka  <hubicka@ucw.cz>
28386
28387         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
28388         Validate variable alignment.
28389         * ipa-icf.c (sem_function::equals_private): Be more precise
28390         about non-common function attributes.
28391         (sem_variable::equals): Likewise.
28392
28393 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28394
28395         PR ipa/65237
28396         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
28397         across COMDAT group boundary.
28398
28399 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28400
28401         PR ipa/65232
28402         * ipa-icf.c (clear_decl_rtl): New function.
28403         (sem_function::merge): Clear RTL before forming alias.
28404         (sem_variable::merge): Clear RTL before forming alias.
28405
28406 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28407
28408         PR ipa/65236
28409         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
28410
28411 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
28412
28413         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
28414         to neon_to_gp<q>.
28415
28416 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28417
28418         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
28419         a typo in the description.
28420
28421 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28422
28423         PR target/64317
28424         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28425         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28426         * lra-constraints.c: Include "params.h".
28427         (EBB_PROBABILITY_CUTOFF): Use
28428         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
28429         (lra_inheritance): Use '<' instead of '<=' for
28430         EBB_PROBABILITY_CUTOFF.
28431         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
28432         Document change.
28433
28434 2015-02-27  Martin Liska  <mliska@suse.cz>
28435
28436         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
28437         vector length condition.
28438
28439 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
28440
28441         * doc/extend.texi (x86 transactional memory intrinsics):
28442         Reorganize discussion of _xbegin.  Clarify that the return
28443         value is a bit mask.  Expand example and move to end of section.
28444
28445 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28446             Aldy Hernandez  <aldyh@redhat.com>
28447
28448         PR rtl-optimization/65220
28449         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
28450
28451 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28452
28453         PR target/65032
28454         * lra-remat.c (update_scratch_ops): New.
28455         (do_remat): Call it.
28456         * lra.c (lra_register_new_scratch_op): New. Take code from ...
28457         (remove_scratches): ... here.
28458         * lra-int.h (lra_register_new_scratch_op): New prototype.
28459
28460 2015-02-27  Marek Polacek  <polacek@redhat.com>
28461
28462         PR c/65040
28463         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
28464         -Wformat-signedness anymore.
28465
28466 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28467
28468         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
28469         function.
28470         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
28471
28472 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28473
28474         * config/s390/s390.c (enum s390_builtin):
28475         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
28476         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
28477         (s390_init_builtins): Generate new builtin functions.
28478         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
28479         (s390_sfpc, s390_efpc): New pattern definitions.
28480
28481 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28482
28483         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
28484         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
28485         (s390_builtin_decls): New array.
28486         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
28487         (s390_builtin_decl): New function.
28488         (TARGET_BUILTIN_DECL): Define macro.
28489
28490 2015-02-27  Richard Biener  <rguenther@suse.de>
28491
28492         PR middle-end/63175
28493         * builtins.c (get_object_alignment_2): Make sure to re-apply
28494         the ANDed mask after recursing to its operand gets us a new
28495         misalignment bit position.
28496
28497 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
28498             Martin Liska  <mliska@suse.cz>
28499
28500         PR bootstrap/65150
28501         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
28502         Use address_matters_p.
28503         (redirect_all_callers, set_addressable): New functions.
28504         (sem_function::merge): Reorganize and fix merging issues.
28505         (sem_variable::merge): Likewise.
28506         (sem_variable::compare_sections): Remove.
28507         * common.opt (fmerge-all-constants, fmerge-constants): Remove
28508         Optimization flag.
28509         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
28510         redirect them.
28511         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
28512         decl is used.
28513         (address_matters_1): New function.
28514         (symtab_node::address_matters_p): New function.
28515         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
28516         check for merged flag.
28517         * cgraph.h (address_matters_p): Declare.
28518         (symtab_node::address_taken_from_non_vtable_p): Remove.
28519         (symtab_node::address_can_be_compared_p): New method.
28520         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
28521         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
28522         Remove.
28523         (comdat_can_be_unshared_p_1) Use address_matters_p.
28524         (update_vtable_references): Fix formating.
28525         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
28526         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
28527         * cgraphclones.c: Preserve merged and icf_merged flags.
28528
28529 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
28530
28531         * doc/extend.texi (Function Attributes): Fix spelling and typos.
28532         (Label Attributes): Likewise.
28533         (Cilk Plus Builtins): Likewise.
28534         (ARC SIMD Built-in Functions): Likewise.
28535         (ARM C Language Extensions (ACLE)): Likewise.
28536         (PowerPC Built-in Functions): Likewise.
28537         (PowerPC Hardware Transactional Memory Built-in Functions):
28538         Likewise.
28539
28540 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28541
28542         PR tree-optimization/65216
28543         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
28544         new stmt and new SSA_NAME for lhs whenever the arguments have
28545         changed and weren't just swapped.  Fix comment typo.
28546
28547         PR tree-optimization/65215
28548         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
28549         for PDP endian targets.
28550         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
28551         Fix up formatting issues.
28552         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
28553         size is smaller than the original, adjust MEM_REF offset by the
28554         difference of sizes.  Use is_gimple_mem_ref_addr instead of
28555         is_gimple_min_invariant test to avoid adding address temporaries.
28556
28557 2015-02-26  Martin Liska  <mliska@suse.cz>
28558             Jan Hubicka  <hubicka@ucw.cz>
28559
28560         PR ipa/64693
28561         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
28562         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
28563         (sem_item_optimizer::process_cong_reduction): Include division by
28564         sensitive references.
28565         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
28566         * ipa-ref.c (ipa_ref::address_matters_p): New function.
28567         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
28568
28569 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
28570
28571         PR target/65192
28572         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
28573         Remove.
28574         * config/avr/avr.c: Same.
28575         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
28576         Refuse any constant address not in 0..0xbf.
28577         * config/avr/avr.md (*mov<mode>, *movsf): Remove
28578         tiny_valid_direct_memory_access_range from insn conditions.
28579         (mov<mode>): Don't special-case expansion of avrtiny addresses.
28580
28581 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
28582
28583         PR target/61142
28584         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
28585         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
28586         * config/sh/predicates.md (const_logical_operand): New predicate.
28587         * config/sh/sh.md: Add new peephole2 patterns.
28588
28589 2015-02-26  Marek Polacek  <polacek@redhat.com>
28590
28591         PR ipa/65008
28592         * ipa-inline.c (early_inliner): Recompute inline parameters.
28593
28594 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28595
28596         PR target/65171
28597         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
28598         instructions with TImode operands are included in the analysis.
28599
28600 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28601
28602         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
28603         of an EDGE_FSM_THREAD.
28604
28605 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
28606
28607         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
28608
28609 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
28610
28611         PR debug/46102
28612         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
28613
28614 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28615
28616         PR tree-optimization/65048
28617         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
28618         (thread_through_all_blocks): Call valid_jump_thread_path.
28619         Remove invalid FSM jump-thread paths.
28620
28621 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28622
28623         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
28624         (ipa_write_optimization_summaries): Likewise.
28625         * tree-streamer.h: Include data-streamer.h.
28626         (streamer_mode_table): Declare extern variable.
28627         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
28628         * lto-streamer-out.c (lto_output_init_mode_table,
28629         lto_write_mode_table): New functions.
28630         (produce_asm_for_decls): Call lto_write_mode_table when streaming
28631         offloading LTO.
28632         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
28633         (lto_create_simple_input_block): Add mode_table argument to the
28634         lto_input_block constructors.
28635         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
28636         Likewise.
28637         * data-streamer-in.c (string_for_index): Likewise.
28638         * ipa-inline-analysis.c (inline_read_section): Likewise.
28639         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
28640         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28641         * lto-streamer-in.c (lto_read_body_or_constructor,
28642         lto_input_toplevel_asms): Likewise.
28643         (lto_input_mode_table): New function.
28644         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
28645         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
28646         Use bp_pack_machine_mode.
28647         * real.h (struct real_format): Add name field.
28648         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
28649         (class lto_input_block): Add mode_table member.
28650         (lto_input_block::lto_input_block): Add mode_table_ argument,
28651         initialize mode_table.
28652         (struct lto_file_decl_data): Add mode_table field.
28653         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
28654         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
28655         unpack_ts_decl_common_value_fields,
28656         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
28657         * tree-streamer.c (streamer_mode_table): New variable.
28658         * real.c (ieee_single_format, mips_single_format,
28659         motorola_single_format, spu_single_format, ieee_double_format,
28660         mips_double_format, motorola_double_format,
28661         ieee_extended_motorola_format, ieee_extended_intel_96_format,
28662         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
28663         ibm_extended_format, mips_extended_format, ieee_quad_format,
28664         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
28665         decimal_single_format, decimal_double_format, decimal_quad_format,
28666         ieee_half_format, arm_half_format, real_internal_format): Add name
28667         field.
28668         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
28669
28670 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
28671
28672         PR target/65161
28673         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
28674         reordering for selective scheduling.
28675
28676 2015-02-26  Terry Guo  <terry.guo@arm.com>
28677
28678         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
28679         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
28680         (arm_arch_no_volatile_ce): Declare new global variable.
28681         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
28682         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
28683         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
28684         (TARGET_NO_VOLATILE_CE): New macro.
28685         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
28686         volatile memory access in IT block
28687
28688 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28689
28690         PR tree-optimization/61917
28691         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
28692         that reduc_def_stmt is null.
28693
28694 2015-02-25  Martin Liska  <mliska@suse.cz>
28695
28696         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
28697         hard register variables.
28698
28699 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28700
28701         PR target/64212
28702         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
28703         (symtab::noninterposable_alias): Likewise.
28704
28705 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
28706
28707         PR target/65167
28708         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
28709         bounds registers.
28710         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
28711
28712 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
28713
28714         PR target/64997
28715         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
28716         as split condition; force split via '#' in output pattern.
28717
28718 2015-02-25  Richard Biener  <rguenther@suse.de>
28719             Kai Tietz  <ktietz@redhat.com>
28720
28721         PR tree-optimization/61917
28722         * tree-vect-loop.c (vectorizable_reduction): Allow
28723         vect_internal_def without reduction to exit graceful.
28724
28725 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28726
28727         PR target/65196
28728         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
28729         only with NONDEBUG_INSN_P.
28730
28731 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28732
28733         Use variadic macros with avr-log.c.
28734
28735         * config/avr/avr-protos.h (avr_vdump): New prototype.
28736         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
28737         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
28738         * config/avr/avr-log.c: Adjust comments.
28739         (avr_vdump): New function.
28740         (avr_vadump): Pass caller as 2nd argument instead of format string.
28741         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
28742         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
28743
28744 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
28745
28746         PR lto/64374
28747         * target.def (target_option_stream_in): New target hook.
28748         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
28749         targetm.target_option.post_stream_in if non-NULL.
28750         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
28751         * doc/tm.texi: Updated.
28752         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
28753         function.
28754         (TARGET_OPTION_POST_STREAM_IN): Redefine.
28755
28756 2015-02-24  Jeff Law  <law@redhat.com>
28757
28758         PR target/65117
28759         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
28760         of operand 0 and operand 2.
28761         (zero_cost_loop_end, loop_end): Similarly.
28762
28763 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
28764
28765         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
28766         CXX_MEM_STAT_INFO.
28767
28768 2015-02-24  DJ Delorie  <dj@redhat.com>
28769
28770         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
28771         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
28772         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
28773         instead of hardcoding SImode.
28774
28775 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
28776
28777         * omp-low.c (create_omp_child_function): Tag entrypoint
28778         functions with a special attribute.
28779
28780 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
28781
28782         PR target/65058
28783         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
28784
28785 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
28786
28787         PR rtl-optimization/65123
28788         * lra-remat.c (operand_to_remat): Check hard regs in insn
28789         definition too.
28790
28791 2015-02-24  Nick Clifton  <nickc@redhat.com>
28792
28793         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
28794         to the assembler.
28795
28796 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
28797
28798         PR libgomp/64625
28799         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
28800         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
28801         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
28802         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
28803         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
28804         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
28805         (BUILT_IN_GOACC_PARALLEL): Specify as
28806         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
28807         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
28808         * builtin-types.def
28809         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28810         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28811         Remove function types.
28812         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
28813         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28814         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28815         New function types.
28816
28817 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
28818
28819         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
28820
28821 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
28822
28823         PR tree-optimization/65170
28824         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
28825         if val[1] < 0, clear also val[2] and return 3.
28826
28827 2015-02-24  Alan Modra  <amodra@gmail.com>
28828
28829         PR target/65172
28830         * config/rs6000/rs6000.c (get_memref_parts): Only return true
28831         when *base is a reg.  Handle nested plus addresses.  Simplify
28832         pre_modify test.
28833
28834 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
28835
28836         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
28837         use natural alignment when optimizing for size.
28838
28839 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
28840
28841         PR target/65153
28842         * config/sh/sh.md (movsicc_true+3): Remove peephole.
28843         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
28844         * config/sh/sh.c (replace_n_hard_rtx): Remove.
28845
28846 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
28847
28848         PR fortran/63427
28849         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
28850         too big for a wide_int.  Implement missing wrapping operation.
28851
28852 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
28853
28854         PR target/65163
28855         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
28856         instead of const_int 4294901760.
28857
28858 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
28859
28860         * config/avr/t-avr: Fix typo in comment.
28861
28862 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
28863
28864         * doc/rtl.texi (fma): Clarify documentation.
28865
28866 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
28867
28868         PR debug/58123
28869         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
28870         over input_location.
28871
28872 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28873
28874         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
28875         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
28876         restrict alignments to absolute_biggest_alignment.
28877         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
28878         Define.
28879         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
28880         * doc/tm.texi: Regenerate.
28881         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
28882
28883 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
28884
28885         PR target/64172
28886         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
28887
28888 2015-02-20  Richard Biener  <rguenther@suse.de>
28889
28890         PR tree-optimization/65136
28891         * tree-ssa-propagate.c: Include cfgloop.h.
28892         (replace_phi_args_in): Avoid replacing loop latch edge PHI
28893         arguments with constants.
28894
28895 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
28896             Martin Liska  <mliska@suse.cz>
28897
28898         PR target/63892
28899         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
28900         don't try to create_thunk if stdarg_p.  If
28901         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
28902         redirect_callers if possible.
28903         (sem_item_optimizer::execute): Call unregister_hooks here...
28904         (ipa_icf_driver): ... instead of here.
28905
28906 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28907
28908         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
28909         Mark operand 0 as earlyclobber in 2nd alternative.
28910         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
28911         Write negated shift amount into QI lowpart operand 0 and use it
28912         in the shift step.
28913         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
28914
28915 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28916
28917         * cgraph.h (clone_function_name_1): Declare.
28918         * cgraphclones.c (clone_function_name_1): New function.
28919         (clone_function_name): Use it.
28920         * lto-partition.c: Include "stringpool.h".
28921         (must_not_rename, maybe_rewrite_identifier)
28922         (validize_symbol_for_target): New static functions.
28923         (privatize_symbol_name): Use must_not_rename.
28924         (promote_symbol): Call validize_symbol_for_target.
28925         (lto_promote_cross_file_statics): Likewise.
28926         (lto_promote_statics_nonwpa): Likewise.
28927
28928 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
28929
28930         PR target/64452
28931         * config/avr/avr.md (pushhi_insn): New insn.
28932         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
28933
28934 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28935             Jakub Jelinek  <jakub@redhat.com>
28936
28937         * tree-streamer.c (preload_common_nodes): Don't preload
28938         TI_VA_LIST* for offloading.
28939         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
28940         in_lto_p.
28941
28942 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
28943
28944         * config/pa/pa.c (pa_emit_move_sequence): Always force
28945         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
28946         note on insn.
28947
28948         * config/pa/pa.c (pa_reloc_rw_mask): New function.
28949         (TARGET_ASM_RELOC_RW_MASK): Define.
28950         (pa_cannot_force_const_mem): Revert previous change.
28951
28952 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
28953             Jan Hubicka  <hubicka@ucw.cz>
28954
28955         PR ipa/65028
28956         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
28957         across jump functions.
28958
28959 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
28960
28961         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
28962
28963 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
28964
28965         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
28966
28967 2015-02-19  Richard Henderson  <rth@redhat.com>
28968
28969         PR middle-end/65074
28970         * varasm.c (default_binds_local_p_2): Don't test node->definition;
28971         test DECL_EXTERNAL independent of symtab_node.
28972
28973 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
28974
28975         PR lto/65012
28976         * varpool.c (varpool_node::get_constructor): Return early
28977         if this->lto_file_data is NULL.
28978
28979 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28980
28981         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
28982         (rank_for_schedule_debug): Update.
28983         (ready_sort): Make static.  Move sorting logic to ...
28984         (ready_sort_debug, ready_sort_real): New static functions.
28985         (schedule_block): Sort both debug insns and real insns in preparation
28986         for ready list trimming.  Improve debug output.
28987         * sched-int.h (ready_sort): Remove global declaration.
28988
28989 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
28990
28991         * ipa-icf.c (sem_function::equals_private): Adjust.
28992         (sem_function::bb_dict_test): Take a vec<int> * instead of
28993         auto_vec<int>.
28994         * ipa-icf.h (bb_dict_test): Likewise.
28995
28996 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28997
28998         PR gcov-profile/64634
28999         * tree-eh.c (frob_into_branch_around): Fix up typos
29000         in function comment.
29001         (lower_catch): Put eh_seq resulting from EH lowering of
29002         the cleanup sequence after the cleanup rather than before it.
29003
29004 2015-02-18  Tom de Vries  <tom@codesourcery.com>
29005
29006         * common.opt (fstdarg-opt): New option.
29007         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
29008         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
29009         (@item -fstdarg-opt): New item.
29010
29011 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
29012
29013         PR target/65064
29014         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
29015         for common symbols.
29016
29017 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
29018
29019         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
29020         insn-modes.h.
29021         (ALL_HOST_OBJS): Add mkoffload.o.
29022         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
29023
29024 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
29025
29026         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
29027         (compare_virtual_tables): Be smarter about skipping typeinfos;
29028         do sane output on virtual table table mismatch.
29029         (warn_odr): Be ready for forward declarations of enums;
29030         output sane info on base mismatch and virtual table mismatch.
29031         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
29032         when only one type is polymorphic.
29033         (get_odr_type): Fix hashtable corruption.
29034         (dump_odr_type): Dump mangled names.
29035
29036 2015-02-18  Richard Biener  <rguenther@suse.de>
29037
29038         PR tree-optimization/65063
29039         * tree-predcom.c (determine_unroll_factor): Return 1 if we
29040         have replaced looparound PHIs.
29041
29042 2015-02-18  Martin Liska  <mliska@suse.cz>
29043
29044         * lto-streamer.c (lto_streamer_init): Encapsulate
29045         streamer_check_handled_ts_structures with checking macro.
29046
29047 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
29048
29049         PR ipa/65087
29050         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
29051         section if !implicit_section.
29052         (cgraph_node::create_version_clone_with_body): Likewise.
29053         * trans-mem.c (ipa_tm_create_version): Likewise.
29054
29055 2015-02-18  Richard Biener  <rguenther@suse.de>
29056
29057         PR tree-optimization/62217
29058         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
29059         into BIVs.
29060
29061 2015-02-18  Marek Polacek  <polacek@redhat.com>
29062
29063         PR sanitizer/65081
29064         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
29065         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
29066         is in range [-16K, -1].  Don't issue run-time error if
29067         (ptr > ptr + offset).
29068
29069 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
29070
29071         * doc/install.texi (nvptx-*-none): New section.
29072         * doc/invoke.texi (Nvidia PTX Options): Likewise.
29073         * config/nvptx/nvptx.opt: Update.
29074
29075         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
29076         (access_check): New functions, copied from
29077         config/i386/intelmic-mkoffload.c.
29078         (main): For non-installed testing, look in all COMPILER_PATHs for
29079         GCC_INSTALL_NAME.
29080
29081         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
29082
29083 2015-02-18  Andrew Pinski  <apinski@cavium.com>
29084             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
29085
29086         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
29087         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
29088
29089 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
29090
29091         * ipa-visibility.c (function_and_variable_visibility): Only
29092         check locality if node is not already local.
29093         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
29094         call_for_symbol_and_aliases instead of
29095         call_for_symbol_thunks_and_aliases.
29096         (ipa_inline): Likewise.
29097         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
29098         first walk aliases.
29099         * ipa.c (symbol_table::remove_unreachable_nodes): Use
29100         call_for_symbol_and_aliases.
29101         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
29102         (ipa_propagate_frequency_1): Use it; use opt_for_fn
29103         (ipa_propagate_frequency): Update.
29104         (ipa_profile): Add opt_for_fn gueards.
29105
29106 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
29107
29108         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
29109         * doc/invoke.texi (SH options): Document it.
29110         * config/sh/sh.c (sh_insn_length_adjustment): Check
29111         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
29112
29113 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
29114
29115         * common.opt (fipa-cp-alignment): New.
29116         * ipa-cp.c (ipcp_store_alignment_results): Check
29117         flag_ipa_cp_alignment.
29118         * opts.c (default_options_table): Enable -fipa-cp-alignment for
29119         -O2.
29120         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
29121         * doc/invoke.texi: Document -fipa-cp-alignment.
29122
29123 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
29124
29125         PR target/64793
29126         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
29127         to nil.  Adjust comments.
29128
29129 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
29130
29131         * ipa-visibility.c (function_and_variable_visibility): Only
29132         check locality if node is not already local.
29133         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
29134         call_for_symbol_and_aliases instead of
29135         call_for_symbol_thunks_and_aliases.
29136         (ipa_inline): Likewise.
29137         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
29138         first walk aliases.
29139         * ipa.c (symbol_table::remove_unreachable_nodes): Use
29140         call_for_symbol_and_aliases.
29141         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
29142         (ipa_propagate_frequency_1): Use it; use opt_for_fn
29143         (ipa_propagate_frequency): Update.
29144         (ipa_profile): Add opt_for_fn guards.
29145
29146 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
29147
29148         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
29149         skipping of "strange" tokens.
29150
29151 2015-02-17  Jeff Law  <law@redhat.com>
29152
29153         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
29154         obsolete comment.
29155
29156 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
29157
29158         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
29159         as forcing a HARD_DEP between instructions, thereby
29160         disallowing rewriting to break dependencies.
29161
29162 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
29163
29164         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
29165         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
29166         variables in boundary that have no inlitalizer encoded and are
29167         not aliases.
29168         * varasm.c (default_binds_local_p_2): External definitions do not
29169         count as definitions here.
29170
29171 2015-02-16  Jeff Law  <law@redhat.com>
29172
29173         PR tree-optimization/64823
29174         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
29175         statements.
29176         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29177         threading through blocks with PHIs, but no statements.
29178         (thread_through_normal_block): Distinguish between blocks where
29179         we did not process all the statements and blocks with no statements.
29180
29181 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
29182             James Greenhalgh  <james.greenhalgh@arm.com>
29183
29184         PR ipa/64963
29185         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
29186         section if not linkonce.  Fix up formatting.
29187         (cgraph_node::create_version_clone_with_body): Copy section.
29188         * trans-mem.c (ipa_tm_create_version): Likewise.
29189
29190 2015-02-16  Richard Biener  <rguenther@suse.de>
29191
29192         PR tree-optimization/65077
29193         * tree-ssa-structalias.c (get_constraint_for_1): Handle
29194         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
29195         (find_func_aliases): Allow float values to carry pointers again.
29196
29197 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
29198
29199         * doc/install.texi (Specific): Reorder targets list to put
29200         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
29201         from the top menu.
29202
29203 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29204             David Edelsohn  <dje.gcc@gmail.com>
29205
29206         PR target/65058
29207         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
29208         mapping class to external variable or function reference.
29209         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
29210         mapping class.
29211
29212 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
29213
29214         PR target/53348
29215         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
29216         ASM_WEAKEN_DECL if defined.
29217
29218 2015-02-16  Richard Biener  <rguenther@suse.de>
29219
29220         PR lto/65015
29221         * varasm.c (default_file_start): For LTO produced units
29222         emit <artificial> as file directive.
29223
29224 2015-02-16  Richard Biener  <rguenther@suse.de>
29225
29226         PR tree-optimization/63593
29227         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
29228         stmts and releasing SSA names until...
29229         (execute_pred_commoning): ... after processing all chains.
29230
29231 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
29232
29233         PR ipa/65059
29234         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
29235         external functions.
29236
29237 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
29238
29239         * doc/bugreport.texi: Adjust section titles throughout the file
29240         to use "Title Case".
29241         * doc/extend.texi: Likewise.
29242         * doc/gcov.texi: Likewise.
29243         * doc/implement-c.texi: Likewise.
29244         * doc/implement-cxx.texi: Likewise.
29245         * doc/invoke.texi: Likewise.
29246         * doc/objc.texi: Likewise.
29247         * doc/standards.texi: Likewise.
29248         * doc/trouble.texi: Likewise.
29249
29250 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
29251
29252         * cgraph.h (symtab_node::has_aliases_p): Simplify.
29253         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
29254         * tree.c (lookup_binfo_at_offset): Make static.
29255         (get_binfo_at_offset): Do not shadow offset; add explanatory
29256         comment.
29257
29258 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
29259
29260         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
29261         for all floading point loads and stores except those using a register
29262         index address.
29263         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
29264         to a register.
29265
29266 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29267
29268         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
29269         (do_estimate_growth_1): Record if any uninlinable edge was seen.
29270         (estimate_growth): Handle uninlinable edges correctly.
29271         (check_callers): New.
29272         (growth_likely_positive): Handle aliases correctly.
29273
29274 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29275
29276         * ipa-chkp.c: Use iterate_direct_aliases.
29277         * symtab.c (resolution_used_from_other_file_p): Move inline.
29278         (symtab_node::create_reference): Fix formating.
29279         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29280         (symtab_node::iterate_reference): Move inline.
29281         (symtab_node::iterate_referring): Move inline.
29282         (symtab_node::iterate_direct_aliases): Move inline.
29283         (symtab_node::used_from_object_file_p_worker): Inline into ...
29284         (symtab_node::used_from_object_file_p): ... this one; move inline.
29285         (symtab_node::call_for_symbol_and_aliases): Move inline;
29286         use iterate_direct_aliases.
29287         (symtab_node::call_for_symbol_and_aliases_1): New method.
29288         (cgraph_node::call_for_symbol_and_aliases): Move inline;
29289         use iterate_direct_aliases.
29290         (cgraph_node::call_for_symbol_and_aliases_1): New method.
29291         (varpool_node::call_for_node_and_aliases): Rename to ...
29292         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
29293         use iterate_direct_aliases.
29294         (varpool_node::call_for_symbol_and_aliases_1): New method.
29295         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
29296         (ipa_discover_readonly_nonaddressable_var): Update.
29297         * ipa-devirt.c: Fix formating.
29298         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
29299         Move inline.
29300         (cgraph_node::call_for_symbol_and_aliases): Move inline.
29301         (cgraph_node::call_for_symbol_and_aliases_1): New function..
29302         * cgraph.h (used_from_object_file_p_worker): Remove.
29303         (resolution_used_from_other_file_p): Move inline.
29304         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29305         (symtab_node::iterate_reference): Move inline.
29306         (symtab_node::iterate_referring): Move inline.
29307         (symtab_node::iterate_direct_aliases): Move inline.
29308         (symtab_node::used_from_object_file_p_worker): Inline into ...
29309         (symtab_node::used_from_object_file_p): Move inline.
29310         * tree-emutls.c (ipa_lower_emutls): Update.
29311         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
29312         (varpool_node::call_for_node_and_aliases): Remove.
29313
29314 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
29315
29316         PR tree-optimization/62209
29317         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
29318         op == range->exp, insert seq and gimplified code after labels
29319         instead of after the phi.
29320
29321 2015-02-13  Jeff Law  <law@redhat.com>
29322
29323         PR bootstrap/65060
29324         Revert my change for tree-optimization/64823.
29325
29326 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29327
29328         PR tree-optimization/65053
29329         * tree-ssa-phiopt.c (value_replacement): When moving assign before
29330         cond, either reset VR on lhs or set it to phi result VR.
29331
29332 2015-02-13  Jeff Law  <law@redhat.com>
29333
29334         PR tree-optimization/64823
29335         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
29336         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29337         threading through blocks with PHIs, but no statements.
29338         (thread_through_normal_block): Distinguish between blocks where
29339         we did not process all the statements and blocks with no statements.
29340
29341         PR rtl-optimization/47477
29342         * match.pd (convert (plus/minus (convert @0) (convert @1): New
29343         simplifier to narrow arithmetic.
29344
29345 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
29346
29347         PR ipa/65028
29348         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
29349         polymorphic call info when type is not known to be preserved.
29350
29351 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
29352
29353         PR ipa/65028
29354         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
29355         (inline_call): Use it.
29356
29357 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
29358
29359         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
29360         GOMP_DEVICE_NVIDIA_PTX.
29361
29362 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29363
29364         PR ipa/65034
29365         * stmt.c (emit_case_nodes): Use void_type_node instead of
29366         NULL_TREE as LABEL_DECL type.
29367
29368 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
29369
29370         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
29371         constraints.
29372         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
29373         symbolic references to data to be forced to constant memory on the
29374         SOM target.
29375
29376 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29377
29378         PR tree-optimization/65002
29379         * tree-cfg.c (pass_data_fixup_cfg): Don't update
29380         SSA on start.
29381         * tree-sra.c (some_callers_have_no_vuse_p): New.
29382         (ipa_early_sra): Reject functions whose callers
29383         assume function is read only.
29384
29385 2015-02-13  Richard Biener  <rguenther@suse.de>
29386
29387         PR lto/65015
29388         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
29389         for LTO produced CUs.
29390
29391 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
29392
29393         PR tree-optimization/64705
29394         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
29395         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
29396         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
29397         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
29398         expand_simple_operations.
29399
29400 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
29401             Richard Henderson  <rth@redhat.com>
29402
29403         PR rtl/32219
29404         * cgraphunit.c (cgraph_node::finalize_function): Set definition
29405         before notice_global_symbol.
29406         (varpool_node::finalize_decl): Likewise.
29407         * varasm.c (default_binds_local_p_2): Rename from
29408         default_binds_local_p_1, add weak_dominate argument.  Use direct
29409         returns instead of assigning to local variable.  Unify varpool and
29410         cgraph paths via symtab_node.  Reject undef weak variables before
29411         testing visibility.  Reorder tests for simplicity.
29412         (default_binds_local_p): Use default_binds_local_p_2.
29413         (default_binds_local_p_1): Likewise.
29414         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
29415         via symtab_node.
29416         (default_elf_asm_output_external): Emit visibility when specified.
29417
29418 2015-02-13  Alan Modra  <amodra@gmail.com>
29419
29420         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
29421         code setting up r11 for out-of-line fp restore.
29422
29423 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
29424
29425         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
29426         (muser-mode): Likewise.
29427
29428 2015-02-13  Alan Modra  <amodra@gmail.com>
29429
29430         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
29431         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
29432
29433 2015-02-12  David Howells  <dhowells@redhat.com>
29434
29435         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
29436         warning.
29437         * tree-ssa-uninit.c (dump_predicates): Likewise.
29438         * opts.c (print_filtered_help): Likewise.
29439
29440 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29441
29442         * dwarf2out.c (output_die): Use "%s", name instead of name to
29443         avoid -Wformat-security warning.
29444
29445         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
29446         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29447         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
29448         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29449
29450 2015-02-12  Jason Merrill  <jason@redhat.com>
29451
29452         * common.opt (-flifetime-dse): New.
29453
29454 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29455
29456         PR sanitizer/65019
29457         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
29458
29459         PR tree-optimization/65014
29460         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
29461         use original second operand of arg0 or arg1 instead of
29462         that adjusted by STRIP_NOPS.
29463
29464 2015-02-11  Jeff Law  <law@redhat.com>
29465
29466         PR target/63347
29467         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
29468         that needs to be queued, just queue it for a single cycle.
29469
29470 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
29471
29472         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
29473         bodies of thunks; comment on why.
29474         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
29475         symbols are extern.
29476
29477 2015-02-11  Richard Henderson  <rth@redhat.com>
29478
29479         PR sanitize/65000
29480         * tree-eh.c (mark_reachable_handlers): Mark source and destination
29481         regions of __builtin_eh_copy_values.
29482
29483 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29484
29485         PR middle-end/65003
29486         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
29487         ultimate alias is MEM with SYMBOL_REF satisfying
29488         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
29489         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
29490
29491 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
29492
29493         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
29494         "diagnostic-core.h".
29495         (main): Initialize progname, and call diagnostic_initialize.
29496
29497         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
29498         instead of __OPENMP_TARGET__.
29499
29500         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
29501         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
29502         hard-coding PTX_ID.
29503
29504 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
29505
29506         * doc/sourcebuild.texi (pie_enabled): Document.
29507
29508 2015-02-11  Martin Liska  <mliska@suse.cz>
29509
29510         PR ipa/64813
29511         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
29512         a return value for call to a function that is noreturn.
29513
29514 2015-02-11  Richard Biener  <rguenther@suse.de>
29515
29516         PR lto/65015
29517         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
29518         and -fresolution.
29519
29520 2015-02-11  Andrew Pinski  <apinski@cavium.com>
29521
29522         PR target/64893
29523         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
29524         Change the first argument type to size_type_node and add another
29525         size_type_node.
29526         (aarch64_simd_expand_builtin): Handle the new argument to
29527         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
29528         print an out when the first two arguments are not
29529         nonzero integer constants.
29530         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
29531         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
29532
29533 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29534
29535         PR target/61925
29536         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
29537         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
29538         (ix86_set_current_function): Rewritten.
29539         (ix86_add_new_builtins): Temporarily clear current_target_pragma
29540         when creating builtin fndecls.
29541
29542 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29543
29544         PR ipa/65005
29545         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
29546         function.
29547         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
29548         have no comdat group.
29549         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
29550         (lto_output_varpool_node): Always output alias info.
29551         (output_refs): Output refs of boundary aliases, too.
29552         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
29553         (output_symtab): Output call eges in thunks in boundary.
29554         (get_alias_symbol): Remove.
29555         (input_node, input_varpool_node): Do not special case weakrefs.
29556         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
29557         alias and thunks targets in the boundary; do not take removed symbols
29558         from their comdat groups.
29559         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
29560         (cgraph_node::global_info): Remove.
29561         (cgraph_node::rtl_info): Look through aliases and thunks.
29562         * cgrpah.h (global_info): Remove.
29563         (non_local_p): Remove.
29564
29565 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29566             Sandra Loosemore  <sandra@codesourcery.com>
29567
29568         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
29569         to inline asm.  List dialects in proper order.
29570
29571 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29572             Sandra Loosemore  <sandra@codesourcery.com>
29573
29574         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
29575
29576 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29577
29578         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
29579         modified) reference to Solaris.
29580
29581 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
29582
29583         * doc/extend.texi (Extended Asm): Fix typos.
29584
29585 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
29586
29587         PR sanitizer/65004
29588         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
29589
29590 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
29591
29592         PR target/64661
29593         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
29594         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
29595         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
29596         * config/sh/constraints.md (Ara, Add): New constraints.
29597         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
29598         predicates.
29599         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
29600         atomic_mem_operand_0.  Don't use force_reg on the memory address.
29601         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
29602         Sra constraint.  Convert to insn_and_split.  Add workaround for
29603         PR 64974.
29604         (atomic_compare_and_swap<mode>_hard): Copy to
29605         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
29606         Use atomic_mem_operand_0 predicate.
29607         (atomic_compare_and_swap<mode>_soft_gusa,
29608         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
29609         AraAdd constraints.
29610         (atomic_compare_and_swap<mode>_soft_tcb,
29611         atomic_compare_and_swap<mode>_soft_imask,
29612         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
29613         atomic_mem_operand_0 predicate and SraSdd constraints.
29614         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
29615         constraint.
29616         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
29617         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
29618         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
29619         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
29620         force_reg on the memory address.
29621         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
29622         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
29623         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
29624         atomic_mem_operand_1 predicate and Sra constraint.
29625         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
29626         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29627         Use atomic_mem_operand_1 predicate.
29628         (atomic_<fetchop_name><mode>_hard): Copy to
29629         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29630         Use atomic_mem_operand_1 predicate.
29631         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
29632         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29633         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
29634         insn_and_split.  Use atomic_mem_operand_1 predicate.
29635         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
29636         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
29637         Use atomic_mem_operand_1 predicate.
29638         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
29639         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29640         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
29641         in generated insn with original mem operand before emitting the insn.
29642         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
29643         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
29644         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
29645         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
29646         Use atomic_mem_operand_1 predicate and AraAdd constraints.
29647         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
29648         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
29649         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
29650         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
29651         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
29652         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
29653         atomic_not_fetch<mode>_soft_tcb,
29654         atomic_<fetchop_name>_fetch<mode>_soft_imask,
29655         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
29656         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
29657         Use atomic_mem_operand_1 predicate and SraSdd constraints.
29658
29659 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
29660
29661         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
29662         and 3 earlyclobber operands.
29663
29664 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29665
29666         * common.opt (fstack-reuse): Mark as optimization.
29667
29668 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29669
29670         PR ipa/64982
29671         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
29672
29673 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
29674
29675         PR tree-optimization/64326
29676         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
29677
29678 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
29679
29680         PR gcov-profile/61889
29681         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
29682
29683 2015-02-10  Richard Biener  <rguenther@suse.de>
29684
29685         PR tree-optimization/64995
29686         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
29687         value we use is final.
29688         (visit_reference_op_store): Always valueize op.
29689         (visit_use): Properly valueize vuses.
29690
29691 2015-02-10  Richard Biener  <rguenther@suse.de>
29692
29693         PR tree-optimization/64909
29694         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
29695         pass a scalar-stmt count estimate to the cost model.
29696         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
29697
29698 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
29699
29700         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
29701         enabled by default together with var-tracking.
29702
29703 2015-02-10  Nick Clifton  <nickc@redhat.com>
29704
29705         * config/rl78/rl78.c: Remove DIV attribute code accidentally
29706         included in previous rl78 commit.
29707
29708 2015-02-10  Richard Biener  <rguenther@suse.de>
29709
29710         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
29711         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
29712         return the bitpack.
29713
29714 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29715
29716         PR gcov-profile/61889
29717         * config.in: regenerate.
29718         * configure.in: Likewise.
29719         * configure.ac: Check for ftw.h.
29720         * gcov-tool.c: Check for ftw.h before using nftw.
29721
29722 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29723
29724         PR lto/64076
29725         * ipa-visibility.c (update_visibility_by_resolution_info): Only
29726         assert when not in lto mode.
29727
29728 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
29729
29730         * ira-color.c (setup_left_conflict_sizes_p): Simplify
29731         initialization/assignment of conflict_size.
29732
29733 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
29734
29735         PR ipa/64978
29736         * ipa-cp.c (gather_caller_stats): Skip thunks.
29737         (propagate_constants_topo): Skip aliases.
29738
29739 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
29740
29741         PR target/64761
29742         * config/sh/sh.c (sh_option_override): Don't change
29743         -freorder-blocks-and-partition to -freorder-blocks even when
29744         unwinding is enabled.
29745         (sh_can_follow_jump): Return false if the followee jump is
29746         a crossing jump when -freorder-blocks-and-partition is specified.
29747         * config/sh/sh.md (*jump_compact_crossing): New insn.
29748
29749 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
29750             Kaz Kojima  <kkojima@gcc.gnu.org>
29751
29752         PR target/64761
29753         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
29754         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
29755         (sh_can_redirect_branch): Rename to ...
29756         (sh_can_follow_jump): ... this.  Constify argument types.
29757         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
29758         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
29759         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
29760         * doc/tm.texi: Regenerate.
29761
29762 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29763
29764         PR sanitizer/64981
29765         * builtins.c (expand_builtin): Call targetm.expand_builtin
29766         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
29767
29768 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29769
29770         PR ipa/61548
29771         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
29772
29773 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29774
29775         PR ipa/63566
29776         * ipa-icf.c (set_local): New function.
29777         (sem_function::merge): Use it.
29778
29779 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29780
29781         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
29782         (add_type_duplicate): Fix comparison of BINFOs.
29783
29784 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29785
29786         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
29787         on getting VOID pointer.
29788
29789 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29790
29791         PR target/64979
29792         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
29793         va_list escapes.
29794
29795 2015-02-09  Richard Biener  <rguenther@suse.de>
29796
29797         * genmatch.c (replace_id): Copy expr_type.
29798
29799 2015-02-09  Richard Biener  <rguenther@suse.de>
29800
29801         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
29802         (streamer_write_tree_bitfields): Declare.
29803         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
29804         properly unpack padding.
29805         (unpack_value_fields): Inline ...
29806         (streamer_read_tree_bitfields): ... here.
29807         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
29808         and properly add padding bits.
29809         (streamer_pack_tree_bitfields): Fold into ...
29810         (streamer_write_tree_bitfields): ... this new function,
29811         exposing the bitpack object.
29812         * lto-streamer-out.c (lto_write_tree_1): Call
29813         streamer_write_tree_bitfields.
29814
29815 2015-02-09  Richard Biener  <rguenther@suse.de>
29816
29817         PR tree-optimization/54000
29818         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
29819         (struct ivopts_data): Add loop_loc member.
29820         (tree_ssa_iv_optimize_loop): Dump loop location.
29821         (create_new_ivs): Likewise, also dump number of IVs generated.
29822
29823 2015-02-09  Martin Liska  <mliska@suse.cz>
29824
29825         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
29826         just if not yet registered.
29827         (ipa_icf_generate_summary): Register callgraph hooks.
29828
29829 2015-02-08  Andrew Pinski  <apinski@cavium.com>
29830
29831         * config/aarch64/aarch64.c (gty_dummy): Delete.
29832
29833 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29834
29835         PR ipa/63566
29836         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
29837         (cgraph_node::local_p): Remove thunk related FIXME.
29838
29839 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29840
29841         PR ipa/63566
29842         * i386.c (ix86_function_regparm): Look through aliases to see if callee
29843         is local and optimized.
29844         (ix86_function_sseregparm): Likewise; also use target's SSE math
29845         settings; error out instead of silently generating wrong code
29846         on mismatches.
29847         (init_cumulative_args): Look through aliases.
29848
29849 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29850
29851         PR ipa/63566
29852         * ipa-split.c (execute_split_functions): Split if function has aliases.
29853
29854 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29855
29856         PR ipa/63566
29857         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
29858         aliases before trying to expand it.
29859         (cgraph_node::expand_thunk): Fix formating.
29860
29861 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
29862
29863         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
29864         (Using Assembly Language with C): Expand introduction.
29865         (Basic Asm): Copy-edit.  Add more information about uses of
29866         basic asm.
29867         (Extended Asm): Copy-edit.  Document new escape syntax and
29868         %l[label] syntax.
29869         (Global Reg Vars): Copy-edit.
29870         (Local Reg Vars): Likewise.
29871
29872 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
29873
29874         PR debug/2714
29875         PR bootstrap/64256
29876         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
29877         (DBX_CONTIN_CHAR): Define.
29878
29879 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
29880             Brian Rzycki  <b.rzycki@samsung.com>
29881
29882         PR tree-optimization/64878
29883         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
29884         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
29885         Stop recursion at loop phi nodes after having visited a loop phi node.
29886
29887 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29888
29889         * toplev.c (process_options): Change flag_ipa_ra before creating
29890         optimization_{default,current}_node.
29891
29892         PR ipa/64896
29893         * cgraphunit.c (cgraph_node::expand_thunk): If
29894         restype is not is_gimple_reg_type nor the thunk_fndecl
29895         returns aggregate_value_p, set restmp to a temporary variable
29896         instead of resdecl.
29897
29898 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29899
29900         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
29901
29902 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29903
29904         PR target/64205
29905         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
29906         add a general secondary reload handler for SDmode, unless we have
29907         both read/write support for SDmode.
29908
29909 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29910
29911         PR middle-end/64937
29912         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
29913         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
29914         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
29915         1 before, push it to abstract_vec.
29916         (dwarf2out_abstract_function): Adjust caller.  Don't call
29917         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
29918         DECL_ABSTRACT_P flags for all abstract_vec elts.
29919
29920 2015-02-06  Renlin Li  <renlin.li@arm.com>
29921
29922         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
29923         complex gimple.
29924         * tree-ssa.c (execute_update_addresses_taken): Likewise.
29925
29926 2015-02-06  Jeff Law  <law@redhat.com>
29927
29928         PR target/64889
29929         * config/h8300/h8300.c (push): New argument "in_prologue".
29930         Pass "in_prologue" along to "F".
29931         (h8300_push_pop): Corresponding changes.
29932         (h8300_expand_prologue): Likewise.
29933         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
29934
29935 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29936
29937         PR rtl-optimization/64957
29938         PR debug/64817
29939         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
29940         IOR rather than for AND.
29941
29942 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29943
29944         PR target/62631
29945         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
29946         of shift-add and (add + shift) operations.  Rename local variable.
29947
29948 2015-02-05  Jeff Law  <law@redhat.com>
29949
29950         PR target/17306
29951         * config/h8300/constraints.md (U): Correctly dectect
29952         "eightbit_data" memory addresses.
29953         * config/h8300/h8300.c (eightbit_constant_address_p): Also
29954         handle (const (plus (symbol_ref (x)))) where x is declared
29955         as an 8-bit data memory address.
29956         * config/h8300/h8300.md (call, call_value): Correctly detect
29957         "funcvec" functions.
29958
29959         PR target/43264
29960         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
29961         24 to 28 bits for the H8/300.
29962
29963 2015-02-06  Alan Modra  <amodra@gmail.com>
29964
29965         PR target/64876
29966         * config/rs6000/rs6000.c (chain_already_loaded): New function.
29967         (rs6000_call_aix): Use it.
29968
29969 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
29970
29971         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
29972         check.
29973
29974 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
29975
29976         * config/h8300/constraints.md ("U" constraint): Use strict
29977         variant of REG_OK_FOR_BASE_P after reload has started.
29978
29979 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
29980
29981         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
29982         define to zero if !TARGET_NEON.
29983         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
29984
29985 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29986             Trevor Saunders  <tsaunders@mozilla.com>
29987
29988         PR ipa/61548
29989         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
29990
29991 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29992
29993         PR ipa/61548
29994         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
29995         when removing varpool nodes.
29996
29997 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29998
29999         PR ipa/61548
30000         * varpool.c (varpool_node::remove): Fix order of variables.
30001
30002 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30003
30004         PR ipa/64686
30005         * ipa-inline.c (inline_small_functions): Fix ordering issue between
30006         speculation resolution and key updates.
30007
30008 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30009
30010         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
30011         about not letting any speculative edges unupdated.
30012
30013 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30014
30015         PR gcov/64123
30016         * gcov-io.c (gcov_var): Export.
30017
30018 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30019
30020         PR middle-end/64922
30021         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
30022         edges that become speculative.
30023
30024 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
30025
30026         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
30027         or DW_LANG_Fortran08.
30028         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
30029         DW_LANG_Fortran08.
30030         (gen_compile_unit_die): Handle "GNU Fortran2003" and
30031         "GNU Fortran2008" language strings.
30032         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
30033         * langhooks.h (lang_GNU_Fortran): New prototype.
30034         * langhooks.c (lang_GNU_Fortran): New function.
30035         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
30036         lang_GNU_Fortran.
30037
30038 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
30039
30040         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
30041         (RTX_OK_FOR_OLO10_P): Likewise.
30042
30043 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
30044
30045         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
30046
30047 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30048
30049         PR middle-end/64922
30050         * gimple.c: Include gimple-ssa.h.
30051         (maybe_remove_unused_call_args): New function.
30052         * gimple.h (maybe_remove_unused_call_args): Declare.
30053         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
30054         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
30055         * gimple-fold.c (gimple_fold_call): Likewise.
30056
30057 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
30058
30059         PR rtl-optimization/64905
30060         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
30061         pointer alignment if it isn't needed.
30062
30063 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
30064
30065         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
30066         cortex-a72.cortex-a53.
30067         * config/aarch64/aarch64-tune.md: Regenerate.
30068         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
30069
30070 2015-02-04  Nick Clifton  <nickc@redhat.com>
30071
30072         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
30073         inside a MEM.
30074
30075 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
30076
30077         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
30078         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
30079         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
30080         of DEF_BUILTIN.
30081         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
30082         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
30083         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
30084         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
30085         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
30086         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
30087         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
30088         * tree-core.h (enum built_in_function): In between
30089         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
30090         for builtins that use DEF_BUILTIN_CHKP macro.
30091
30092 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
30093
30094         PR debug/64817
30095         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
30096         operands for tcc_comparison exprs.  Fix typos.
30097
30098         PR debug/64817
30099         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
30100         of two XORs that have an intervening AND or IOR.
30101
30102         PR debug/64817
30103         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
30104         simplification of XOR of AND to not allocate new rtx before
30105         committing to a simplification.
30106
30107 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30108
30109         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
30110         manual swaps in all peepholes.
30111
30112 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30113
30114         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
30115         of manual swapping implementation.
30116         (aarch64_expand_vec_perm_const_1): Likewise.
30117
30118 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
30119
30120         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
30121         (generic_addrcost_table): Remove NAMED_PARAM.
30122         (cortexa57_addrcost_table): Likewise.
30123         (xgene1_addrcost_table): Likewise.
30124         (generic_regmove_table): Likewise.
30125         (cortexa53_regmove_table): Likewise.
30126         (xgene1_regmove_table): Likewise.
30127         (generic_vector_table): Likewise.
30128         (cortexa57_vector_table): Likewise.
30129         (xgene1_vector_table): Likewise.
30130         (generic_tunings): Likewise.
30131         (cortexa53_tunings): Likewise.
30132         (cortexa57_tunings): Likewise.
30133         (xgene1_tunings): Likewise.
30134
30135 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
30136
30137         * config/arm/arm-cores.def: Add cortex-a72 and
30138         cortex-a72.cortex-a53.
30139         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
30140         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
30141         * config/arm/arm-tune.md: Regenerate.
30142         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
30143         "cortex-a72.cortex-a53".
30144         * doc/invoke.texi (ARM Options/-mtune): Likewise.
30145
30146 2015-02-04  Nick Clifton  <nickc@redhat.com>
30147
30148         PR target/64408
30149         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
30150         of accepted codes.
30151         (nonimmediate_di_operand): Likewise.
30152
30153         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
30154         prefixes of known F5 using MSP430 MCUs.
30155
30156 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30157
30158         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
30159         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
30160         instead of __builtin_sqrt.
30161
30162 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
30163
30164         * varasm.c (do_assemble_alias): Follow transparent alias
30165         chain for target.
30166         (default_assemble_visibility): Follow transparent alias
30167         chain for decl name.
30168
30169 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30170
30171         PR middle-end/62103
30172         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
30173         to compute size of referenced value in the constant case.
30174
30175 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30176
30177         PR rtl-optimization/64756
30178         * cse.c (invalidate_dest): New function.
30179         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
30180         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
30181         invalidate and do not record it.
30182
30183 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
30184
30185         PR target/64660
30186         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
30187         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
30188         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
30189         atomic_nand<mode>_soft_tcb): New insns.
30190         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
30191         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
30192         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
30193         Split into atomic_not_fetchsi_hard if operands[0] is unused.
30194         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
30195         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
30196         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
30197         atomic_not<mode>_hard if operands[0] is unused.
30198         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
30199         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
30200         if operands[0] is unused.
30201         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
30202         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
30203         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
30204         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
30205         unused.
30206         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
30207         into atomic_not<mode>_soft_tcb if operands[0] is unused.
30208         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
30209         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
30210         if operands[0] is unused.
30211         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
30212         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
30213         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
30214         atomic_nand_fetchsi_hard if operands[0] is unused.
30215         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
30216         atomic_nand<mode>_hard if operands[0] is unused.
30217         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
30218         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
30219         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
30220         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
30221         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
30222         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
30223         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
30224         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
30225         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
30226         atomic_not<mode>_hard if operands[0] is unused.
30227         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
30228         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
30229         unused.
30230         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
30231         into atomic_not<mode>_soft_tcb if operands[0] is unused.
30232         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
30233         atomic_nand<mode>_hard if operands[0] is unused.
30234         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
30235         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
30236
30237 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
30238
30239         PR jit/64810
30240         * Makefile.in (GCC_OBJS): Add gcc-main.o.
30241         * gcc-main.c: New file, containing "main" taken from gcc.c.
30242         * gcc.c (do_self_spec): Free decoded_options.
30243         (class driver): Move declaration to gcc.h.
30244         (main): Move declaration and implementation to new file
30245         gcc-main.c.
30246         (driver_get_configure_time_options): New function.
30247         * gcc.h (class driver): Move this declaration here, from
30248         gcc.c.
30249         (driver_get_configure_time_options): New declaration.
30250
30251 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
30252
30253         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
30254         cross-module inlining.
30255         * cgraph.h (cgraph_node): Add flag merged.
30256         * ipa-icf.c (sem_function::merge): Maintain it.
30257
30258 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
30259
30260         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
30261         instead of OBJECT_P.
30262
30263 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
30264
30265         PR target/62631
30266         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
30267         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
30268         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
30269         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
30270
30271 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30272
30273         PR other/63504
30274         * combine.c (reg_n_sets_max): New variable.
30275         (can_change_dest_mode, reg_nonzero_bits_for_combine,
30276         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
30277         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
30278         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
30279         (rest_of_handle_combine): Initialize reg_n_sets_max.
30280
30281 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
30282
30283         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
30284         if some always_inline was inlined, apply changes before inlining
30285         heuristically.
30286
30287 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
30288
30289         PR jit/64810
30290         * config/arm/arm.c (arm_option_override): Set
30291         arm_selected_arch/cpu/tune to NULL on entry.
30292
30293 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
30294             Andrew Pinski  <pinskia@gcc.gnu.org>
30295             Jakub Jelinek  <jakub@gcc.gnu.org>
30296
30297         PR target/64231
30298         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
30299         integer typing for small model. Use IN_RANGE.
30300
30301 2015-02-02  Richard Biener  <rguenther@suse.de>
30302
30303         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
30304         * tree-vrp.c (vrp_valueize_1): Likewise.
30305
30306 2015-02-02  Alan Modra  <amodra@gmail.com>
30307
30308         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
30309         than mem for toc_restore.
30310         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
30311         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
30312         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
30313
30314 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
30315
30316         PR target/64047
30317         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
30318         explicit default options.
30319
30320 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
30321
30322         PR ipa/64872
30323         * ipa-utils.c (ipa_merge_profiles): Add release argument.
30324         * ipa-icf.c (sem_function::merge): Do not release body when merging.
30325         * ipa-utils.h (ipa_merge_profiles): Update prototype.
30326
30327 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
30328
30329         PR debug/64817
30330         * cfgexpand.c (deep_ter_debug_map): New variable.
30331         (avoid_deep_ter_for_debug): New function.
30332         (expand_debug_expr): If TERed SSA_NAME is in
30333         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
30334         instead of trying to expand SSA_NAME's def stmt.
30335         (expand_debug_locations): When expanding debug bind
30336         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
30337         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
30338         value.
30339         (pass_expand::execute): Call avoid_deep_ter_for_debug on
30340         all debug bind stmts.  Delete deep_ter_debug_map after
30341         expand_debug_location if non-NULL and clear it.
30342
30343 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
30344
30345         PR target/64851
30346         * config/sh/sync.md (atomic_fetch_notsi_hard,
30347         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
30348         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
30349         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
30350         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
30351         atomic_not_fetch<mode>_soft_imask): New insns.
30352
30353 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
30354
30355         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
30356         (rank_for_schedule_debug): Split from ...
30357         (rank_for_schedule): ... this.
30358         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
30359         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
30360
30361 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30362
30363         * doc/md.texi (Machine Constraints): Alphabetize table by target.
30364         * doc/extend.texi (x86 Variable Attributes): Move section to
30365         correct alphabetization after renaming.
30366         (x86 Type Attributes): Likewise.
30367         (Target Builtins): Re-alphabetize menu.
30368         (x86 Built-in Functions): Move section to correct alphabetization
30369         after renaming.
30370         (x86 transactional memory intrinsics): Likewise.
30371         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
30372         and x86 Windows Options in table and menu.
30373         (x86 Options): Move section to correct alphabetization after
30374         renaming.
30375         (x86 Windows Options): Likewise.
30376
30377 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30378
30379         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
30380         preferred names of the architecture and its 32- and 64-bit
30381         variants.
30382         * doc/invoke.texi: Likewise.
30383         * doc/md.texi: Likewise.
30384
30385 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30386
30387         PR target/64882
30388         * config/i386/predicates.md (address_no_seg_operand): Reject
30389         non-CONST_INT_P operands in invalid mode.
30390
30391 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30392
30393         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
30394         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
30395         * config/i386/predicates.md (address_no_seg_operand): Call
30396         address_operand with VOIDmode.
30397         (vsib_address_operand): Ditto.
30398         (address_mpx_no_base_operand): Ditto.
30399         (address_mpx_no_index_operand): Ditto.
30400
30401 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30402
30403         PR target/64688
30404         * lra-constraints.c (original_subreg_reg_mode): New.
30405         (simplify_operand_subreg): Try to simplify subreg of const.  Use
30406         original_subreg_reg_mode for it.
30407         (swap_operands): Update original_subreg_reg_mode.
30408         (curr_insn_transform): Set up original_subreg_reg_mode.
30409
30410 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30411
30412         PR target/64617
30413         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
30414         function.
30415         (process_alt_operands): Use it.
30416         (curr_insn_transform): Check the optional reload pseudo class is
30417         ok for the mode.
30418
30419 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
30420
30421         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
30422         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
30423         prototype.
30424         * toplev.h (init_asm_output): Update comment on use of
30425         UNKNOWN_LOCATION with fatal_error.
30426         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
30427         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
30428         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
30429         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
30430         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
30431         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
30432         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
30433         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
30434         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
30435         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
30436         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
30437         fatal_error changed to pass input_location as first argument.
30438
30439 2015-01-30  Martin Liska  <mliska@suse.cz>
30440
30441         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
30442         in #pragma GCC diagnostic guards.
30443
30444 2015-01-30  Richard Biener  <rguenther@suse.de>
30445
30446         PR tree-optimization/64829
30447         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
30448         not add a widening conversion pattern but hand off extra
30449         widenings to callers.
30450         (vect_recog_widen_mult_pattern): Handle extra widening produced
30451         by vect_handle_widen_op_by_const.
30452         (vect_recog_widen_shift_pattern): Likewise.
30453         (vect_pattern_recog_1): Remove excess vertical space in dumping.
30454         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
30455         (vect_init_vector_1): Likewise.
30456         (vect_get_vec_def_for_operand): Likewise.
30457         (vect_finish_stmt_generation): Likewise.
30458         (vectorizable_load): Likewise.
30459         (vect_analyze_stmt): Likewise.
30460         (vect_is_simple_use): Likewise.
30461
30462 2015-01-29  Jeff Law  <law@redhat.com>
30463
30464         * combine.c (try_combine): Fix typo in comment.
30465
30466 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
30467
30468         PR target/64580
30469         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
30470         (rs6000_stack_info): Add assert.
30471         (rs6000_output_savres_externs): New function, split off from...
30472         (rs6000_output_function_prologue): ... here.  Do not call it for
30473         thunks.
30474
30475 2015-01-29  Jeff Law  <law@redhat.com>
30476
30477         PR target/15184
30478         * combine.c (try_combine): If I0 is a memory load and I3 a store
30479         to a related address, increase the "goodness" of doing a 4-insn
30480         combination with I0-I3.
30481         (make_field_assignment): Handle SUBREGs in the ior+and case.
30482
30483 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
30484
30485         PR tree-optimization/64746
30486         * tree-if-conv.c (mask_exists): New function.
30487         (predicate_mem_writes): Save created mask with given size for further
30488         use.
30489         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
30490         (ifcvt_repair_bool_pattern): Collect all statements that are root
30491         of bool pattern and use iterative algorithm to remove multiple uses
30492         of predicates, display number of required iterations.
30493
30494 2015-01-29  Richard Biener  <rguenther@suse.de>
30495
30496         PR tree-optimization/64853
30497         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
30498         stmt will get simulated again.
30499         * tree-ssa-ccp.c (valueize_op_1): Likewise.
30500
30501 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30502
30503         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
30504         return_in_pc.  Remove redundant assignments.
30505         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
30506         (arm_expand_epilogue): Don't compare boolean with true in if condition.
30507
30508 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
30509
30510         * config/i386/i386.c (ix86_mode_after): Make static.
30511
30512 2015-01-29  Richard Biener  <rguenther@suse.de>
30513
30514         PR tree-optimization/64844
30515         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
30516         dump cost model analysis.
30517         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30518         Do not register adjusted load/store costs here.
30519
30520 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30521             Uros Bizjak  <ubizjak@gmail.com>
30522
30523         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
30524         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
30525         using x86_use_pseudo_pic_reg.
30526         * config/i386/i386.c (ix86_conditional_register_usage): Remove
30527         support for fixed PIC register.
30528         (ix86_use_pseudo_pic_reg): Not static any more.
30529
30530 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30531
30532         PR middle-end/64805
30533         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
30534         to avoid error in cgraph node verification.
30535
30536 2015-01-29  Marek Polacek  <polacek@redhat.com>
30537
30538         * doc/standards.texi: Reflect that the default for C is gnu11.
30539
30540 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
30541
30542         PR target/64761
30543         * reorg.c (switch_text_sections_between_p): New function.
30544         (relax_delay_slots): Call it when testing if the jump insn
30545         is removable.  Use targetm.can_follow_jump when testing if
30546         the conditional branch can follow an unconditional jump.
30547
30548 2015-01-27  Caroline Tice  <cmtice@google.com>
30549
30550         Committing VTV Cywin/Ming patch for Patrick Wollgast
30551         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
30552         if -fvtable-verify=preinit/std is used.
30553         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
30554         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
30555         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
30556         if -fvtable-verify=preinit/std is used.
30557         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30558         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
30559         if -fvtable-verify=preinit/std is used.
30560         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
30561         * config/i386/mingw32.h (LIB_SPEC): Likewise.
30562         * varasm.c (assemble_variable): Add code to properly set the comdat
30563         section and name for the .vtable_map_vars section in case the
30564         target is PE or COFF.
30565
30566 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30567
30568         PR ipa/64801
30569         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
30570         make sane BB profile.
30571         (cgraph_node::expand_thunk): Make sane BB profile.
30572         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
30573         * cgraph.h (init_lowered_empty_function): Update prototype.
30574         * config/i386/i386.c (make_resolver_func): Update call.
30575         * predict.c (gate): Disable branch prediction pass if
30576         profile is already there.
30577
30578 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30579
30580         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
30581         * opth-gen.awk: Likewise.
30582         * common.opt: Mark flag_fp_contract_mode as Optimization.
30583
30584 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30585
30586         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
30587         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
30588
30589 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
30590
30591         PR target/64659
30592         * config/sh/predicates.md (atomic_arith_operand,
30593         atomic_logical_operand): Remove.
30594         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
30595         (atomic_arith_operand_0): New predicate.
30596         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
30597         Use atomic_arith_operand_0 for input values.
30598         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
30599         atomic_compare_and_swap<mode>_soft_gusa,
30600         atomic_compare_and_swap<mode>_soft_tcb,
30601         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
30602         arith_reg_operand instead of register_operand.
30603         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
30604         atomic_arith_operand_0 for newval input.
30605         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
30606         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
30607         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
30608         arith_reg_operand instead of register_operand.
30609         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
30610         fetchop_predicate_1, fetchop_constraint_1_llcs,
30611         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
30612         fetchop_constraint_1_imask): New code iterator attributes.
30613         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
30614         register_operand.  Use fetchop_predicate_1.
30615         (atomic_fetch_<fetchop_name>si_hard,
30616         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
30617         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
30618         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
30619         and arith_reg_operand instead of register_operand.  Use
30620         fetchop_predicate_1, fetchop_constraint_1_gusa.
30621         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
30622         and arith_reg_operand instead of register_operand.  Use
30623         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
30624         to allow R0 usage.
30625         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
30626         and arith_reg_operand instead of register_operand.  Use
30627         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
30628         to allow R0 usage.
30629         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
30630         register_operand.  Use atomic_logical_operand_1.
30631         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
30632         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
30633         arith_reg_operand instead of register_operand.
30634         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
30635         Use arith_reg_dest and arith_reg_operand instead of register_operand.
30636         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
30637         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
30638         register_operand.  Use fetchop_predicate_1.
30639         (atomic_<fetchop_name>_fetchsi_hard,
30640         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
30641         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30642         fetchop_constraint_1_llcs.
30643         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
30644         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30645         fetchop_constraint_1_gusa.
30646         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
30647         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30648         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
30649         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
30650         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30651         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
30652         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
30653         register_operand.  Use atomic_logical_operand_1.
30654         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
30655         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
30656         arith_reg_operand instead of register_operand.
30657         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
30658         arith_reg_operand instead of register_operand.  Use logical_operand
30659         and K08.  Adjust asm sequence to allow R0 usage.
30660         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
30661         arith_reg_operand instead of register_operand.  Use logical_operand
30662         and K08.
30663
30664 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30665
30666         PR other/63504
30667         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
30668         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
30669         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
30670         only get_full_len HOST_WIDE_INTs from get_val () array rather than
30671         all bits in *val_wide.
30672
30673 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
30674
30675         * varpool.c (tls_model_names): Fix names.
30676         (varpool_node::dump): Dump tls- prefix for tls models.
30677
30678 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
30679             Bernd Schmidt  <bernds@codesourcery.com>
30680             Nathan Sidwell  <nathan@codesourcery.com>
30681
30682         * config/nvptx/mkoffload.c: New file.
30683         * config/nvptx/t-nvptx: Add build rules for it.
30684         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
30685         (extra_programs): Add mkoffload.
30686         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
30687         function.
30688         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
30689
30690 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
30691
30692         PR middle-end/64809
30693         * cfgexpand.c (reorder_operands): Skip debug gimples.
30694
30695 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
30696
30697         PR tree-optimization/64277
30698         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
30699         range info when possible to refine estimation.
30700
30701 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30702
30703         PR tree-optimization/64718
30704         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
30705         be a 16bit unsigned integer when n->range is 16.
30706         (bswap_replace): Convert src to that type if necessary for all bswap
30707         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
30708         set in pass_optimize_bswap::execute ().
30709
30710 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
30711
30712         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
30713         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
30714         integer and floating point variants.
30715         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
30716
30717 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
30718
30719         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
30720         for all vector modes.
30721
30722 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30723
30724         PR bootstrap/64612
30725         * doc/sourcebuild.texi (comdat_group): Document.
30726
30727 2015-01-28  Terry Guo  <terry.guo@arm.com>
30728
30729         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
30730
30731 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
30732
30733         * toplev.c (print_version): Add param "show_global_state", and
30734         only print GGC and plugin information if it is true.
30735         (init_asm_output): Pass in "true" for the new param when calling
30736         print_version.
30737         (process_options): Likewise.
30738         (toplev::main): Likewise.
30739         * toplev.h (print_version): Add new param to decl.
30740
30741 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30742
30743         PR ipa/60871
30744         PR ipa/64139
30745         * tree.c (lookup_binfo_at_offset): New function.
30746         (get_binfo_at_offset): Use it.
30747
30748 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30749
30750         PR ipa/64282
30751         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
30752         on vtable being vtable.
30753
30754 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30755
30756         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
30757         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
30758         -mhotpatch= option.
30759         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
30760         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
30761         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
30762         Renamed.
30763         (s390_hotpatch_trampoline_halfwords_max): Renamed.
30764         (s390_hotpatch_hw_max): New name.
30765         (s390_hotpatch_trampoline_halfwords): Renamed.
30766         (s390_hotpatch_hw_before_label): New name.
30767         (get_hotpatch_attribute): Removed.
30768         (s390_hotpatch_hw_after_label): New name.
30769         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
30770         attribute.
30771         (s390_attribute_table): Ditto.
30772         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
30773         (s390_function_num_hotpatch_hw): New name.
30774         Remove special handling of inline functions and hotpatching.
30775         Return number of nops before and after the function label.
30776         (s390_can_inline_p): Removed.
30777         (s390_asm_output_function_label): Emit a configurable number of nops
30778         after the function label.
30779         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
30780         (TARGET_CAN_INLINE_P) Removed.
30781         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
30782
30783 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30784             Jiong Wang  <jiong.wang@arm.com>
30785
30786         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
30787         of scratch reg.
30788         (cb<optab><mode>1): Likewise.
30789         * config/aarch64/iterators.md (bcond): New define_code_attr.
30790
30791 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30792
30793         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
30794         memory accesses.
30795
30796 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30797
30798         * config/s390/s390.c (s390_register_move_cost): Increase costs for
30799         FPR->GPR moves.
30800
30801 2015-01-27  Richard Biener  <rguenther@suse.de>
30802
30803         * tree-vrp.c (update_value_range): Intersect the range with
30804         old recorded SSA name range information.
30805
30806 2015-01-27  Nick Clifton  <nickc@redhat.com>
30807
30808         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
30809         BC, DE and HL registers directly, not via AX.
30810         When decrementing the stack pointer by a large amount, transfer SP
30811         into AX and perform the subtraction there.
30812         (rl78_expand_epilogue): Perform the inverse of the above
30813         enhancements.
30814
30815 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30816
30817         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
30818
30819 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30820             Yury Gribov  <y.gribov@samsung.com>
30821
30822         PR ubsan/64741
30823         * ubsan.c (ubsan_source_location): Refactor code.
30824         (ubsan_type_descriptor): Update type size. Refactor code.
30825
30826 2015-01-27  Richard Biener  <rguenther@suse.de>
30827
30828         PR tree-optimization/56273
30829         PR tree-optimization/59124
30830         PR tree-optimization/64277
30831         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
30832         from the first VRP pass.
30833
30834 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30835
30836         PR ipa/64776
30837         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
30838         handle the first argument in the same loop as all the other arguments.
30839
30840         PR rtl-optimization/61058
30841         * jump.c (cleanup_barriers): Update basic block boundaries
30842         if BLOCK_FOR_INSN is non-NULL on PREV.
30843
30844 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
30845
30846         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
30847         bounds narrowing, already instrumented calls and calls to
30848         not instrumentable functions.
30849
30850 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30851
30852         PR tree-optimization/64807
30853         * wide-int.cc (wi::divmod_internal): Clear
30854         b_dividend[dividend_blocks_needed].
30855
30856 2015-01-26  DJ Delorie  <dj@redhat.com>
30857
30858         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
30859         volatile memory references.
30860
30861 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
30862
30863         PR target/49263
30864         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
30865         remove_insn.
30866         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
30867         shifts if it already fits into K08.
30868
30869 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30870
30871         PR ipa/64730
30872         * ipa-inline.c (inline_small_functions): Print "unknown" even
30873         if edge->call_stmt is non-NULL, but has builtins or unknown
30874         location.
30875
30876         PR middle-end/64421
30877         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
30878         with asterisk, skip the first character.
30879
30880 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30881
30882         PR target/64806
30883         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
30884         order change.
30885
30886 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
30887
30888         PR target/64795
30889         * config/i386/i386.md (*movdi_internal): Also check operand 0
30890         to determine TYPE_LEA operand.
30891         (*movsi_internal): Ditto.
30892
30893 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30894
30895         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
30896         OPTION_MASK_QUAD_MEMORY_ATOMIC.
30897
30898 2015-01-26  Renlin Li  <renlin.li@arm.com>
30899
30900         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
30901         the comment.
30902         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
30903         for higher part.
30904
30905 2015-01-26  Richard Biener  <rguenther@suse.de>
30906
30907         PR middle-end/64764
30908         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
30909         combining two BIT_AND_EXPR predicates.
30910
30911 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30912
30913         PR bootstrap/64754
30914         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
30915
30916 2015-01-26  Terry Guo  <terry.guo@arm.com>
30917
30918         * config/arm/arm.c (arm_file_start): Update the assignment of
30919         Tag_ABI_HardFP_use.
30920
30921 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
30922
30923         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
30924         pipeline model.
30925         config/arm/arm.md: Include the new Cortex-A57 model.
30926         (generic_sched): Don't use generic_sched when tuning for
30927         Cortex-A57.
30928
30929 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
30930             Uros Bizjak  <ubizjak@gmail.com>
30931
30932         * config/i386/i386.c (get_builtin_code_for_version): Add
30933         support for BMI and BMI2 multiversion functions.
30934
30935 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30936
30937         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
30938         (extract_bit_field): Likewise.
30939         (extract_low_bits): Likewise.
30940         (expand_mult): Likewise.
30941         (expand_mult_highpart_adjust): Likewise.
30942
30943 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30944
30945         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
30946         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
30947         * config/i386/i386.c (processor_model): Add
30948         M_INTEL_COREI7_BROADWELL.
30949         (arch_names_table): Add "broadwell".
30950
30951 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
30952
30953         PR target/49263
30954         PR target/53987
30955         PR target/64345
30956         PR target/59533
30957         PR target/52933
30958         PR target/54236
30959         PR target/51244
30960         * config/sh/sh-protos.h
30961         (sh_extending_set_of_reg::can_use_as_unextended_reg,
30962         sh_extending_set_of_reg::use_as_unextended_reg,
30963         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
30964         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
30965         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
30966         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
30967         (sh_treg_insns): New class.
30968         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
30969         (scope_counter): New class.
30970         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
30971         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
30972         sh_extending_set_of_reg::can_use_as_unextended_reg,
30973         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
30974         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
30975         sh_split_treg_set_expr): New functions.
30976         (addsubcosts): Handle treg_set_expr.
30977         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
30978         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
30979         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
30980         (sh_insn_operands_modified_between_p): Make non-static.
30981         * config/sh/predicates.md (zero_extend_movu_operand): Allow
30982         simple_mem_operand in addition to displacement_mem_operand.
30983         (zero_extend_operand): Don't allow zero_extend_movu_operand.
30984         (treg_set_expr, treg_set_expr_not_const01,
30985         arith_reg_or_treg_set_expr): New predicates.
30986         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
30987         arith_or_int_operand instead of logical_operand.  Convert to
30988         insn_and_split.  Try to optimize constant operand in splitter.
30989         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
30990         (*tstqi_t_zero): Delete.
30991         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
30992         (tstsi_t_and_not): Delete.
30993         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
30994         Convert to insn_and_split.
30995         (unnamed split, tstsi_t_zero_extract_xor,
30996         tstsi_t_zero_extract_subreg_xor_little,
30997         tstsi_t_zero_extract_subreg_xor_big): Delete.
30998         (*tstsi_t_shift_mask): New insn_and_split.
30999         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
31000         to recombine with surrounding insns when splitting.
31001         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
31002         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
31003         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
31004         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
31005         (*cbranch_div0s: Delete.
31006         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
31007         Try to recombine with surrounding insns when splitting.  Add operand
31008         order variants.
31009         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
31010         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
31011         *addc_r_r_msb, *addc_2r_msb): Delete.
31012         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
31013         order variant.
31014         (*addc_negreg_t): New insn_and_split.
31015         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
31016         Try to recombine with surrounding insns when splitting.
31017         Add operand order variants.
31018         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
31019         insn_and_split patterns.
31020         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
31021         surrounding insns when splitting.
31022         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
31023         (*rotcl): Likewise.  Add zero_extract variant.
31024         (*ashrsi2_31): New insn_and_split.
31025         (*negc): Convert to insn_and_split.  Use treg_set_expr.
31026         (*zero_extend<mode>si2_disp_mem): Update comment.
31027         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
31028         condition.
31029         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
31030         with surrounding insns when splitting.
31031         (any_treg_expr_to_reg): New insn_and_split.
31032         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
31033         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
31034         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
31035         *zero_extract_2): New single bit zero extract patterns.
31036         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
31037         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
31038         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
31039         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
31040         set destination.
31041         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
31042         register_operand for set source.
31043
31044 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
31045
31046         * i386.opt (prefetch_sse): New targetsave.
31047         * i386.c (ix86_function_specific_save): Save prefetch_sse.
31048         (ix86_function_specific_restore): Restore prefetch_sse and initialize
31049         ix86_cost/ix86_tune_cost.
31050
31051 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
31052
31053         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
31054         Support the JIT by using 0 as the language type.
31055
31056 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
31057
31058         PR target/64317
31059         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
31060         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
31061         (mark_regno_live, process_bb_lives): Pass new parameter value to
31062         make_hard_regno_born.
31063
31064 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31065
31066         PR rtl-optimization/63637
31067         PR rtl-optimization/60663
31068         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
31069         if elt->cost is MAX_COST for ASM_OPERANDS.
31070         (find_sets_in_insn): Fix up comment typo.
31071         (cse_insn): Don't set src_volatile for all non-volatile
31072         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
31073         or with "memory" clobber.  Set elt->cost to MAX_COST
31074         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
31075         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
31076
31077 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
31078
31079         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
31080         alternative 1.
31081
31082 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
31083
31084         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
31085         libgcc/config/i386/elf-lib.h.
31086
31087 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31088
31089         PR driver/64737
31090         * gcc.c (print_configuration): Don't print a blank line at the end
31091         here...
31092         (run_attempt): ... but here unstead.
31093
31094         PR middle-end/64734
31095         * omp-low.c (scan_sharing_clauses): Don't ignore
31096         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
31097         on target data/update constructs.
31098
31099 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31100
31101         PR target/50928
31102         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
31103         (DEBUG_RELOAD): Removed define.
31104         (m32c_limit_reload_class): Enable traces with if DEBUG0.
31105         (m32c_function_arg): Added a type cast.
31106         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
31107         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
31108         * config/m32c/bitops.md (andqi3_16): Likewise.
31109         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
31110         (push_a01_l): Likewise.
31111
31112 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
31113
31114         PR jit/64721
31115         * main.c (main): Construct toplev instances with init_signals=true.
31116         * toplev.c (general_init): Add param "init_signals", and use it to
31117         conditionalize the calls to signal and host_hooks.extra_signals.
31118         (toplev::toplev): Add param "init_signals".
31119         (toplev::main): When invoking general_init, pass m_init_signals
31120         to control whether signal-handlers are installed.
31121         * toplev.h (toplev::toplev): Add param "init_signals".
31122         (toplev::m_init_signals): New field.
31123
31124 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
31125
31126         PR jit/64722
31127         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
31128         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
31129         latter may be affected by the former (e.g. on i686).
31130
31131 2015-01-23  Martin Liska  <mliska@suse.cz>
31132
31133         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
31134         false positive during profiledbootstrap.
31135
31136 2015-01-23  Tom de Vries  <tom@codesourcery.com>
31137
31138         PR libgomp/64672
31139         * lto-opts.c (lto_write_options): Output non-explicit conservative
31140         -fno-openacc.
31141         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
31142         (append_compiler_options): Pass -fopenacc through.
31143
31144 2015-01-23  Tom de Vries  <tom@codesourcery.com>
31145
31146         PR libgomp/64707
31147         * lto-opts.c (lto_write_options): Output non-explicit conservative
31148         -fno-openmp.
31149         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
31150         (append_compiler_options): Pass -fopenmp through.
31151
31152 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31153
31154         PR debug/64511
31155         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
31156         GTY markup.
31157
31158         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
31159         * diagnostic.def (DK_ICE_NOBT): New kind.
31160         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
31161         like DK_ICE, but never print backtrace.
31162         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
31163         (internal_error_no_backtrace): New function.
31164         * gcc.c (execute): Use internal_error_no_backtrace instead of
31165         internal_error.
31166
31167 2015-01-22  Jeff Law  <law@redhat.com>
31168
31169         PR target/52076
31170         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
31171         improve code density for small immediate to memory case.
31172         (insv): Better handle bitfield assignments when the field is
31173         being set to all ones.
31174         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
31175         operand predicate.
31176
31177 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31178             Jakub Jelinek  <jakub@redhat.com>
31179
31180         PR middle-end/64729
31181         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
31182         for !TARGET_LIBC_PROVIDES_SSP version and
31183         -fstack-protector-{all,strong,explicit} otherwise.
31184         * config/freebsd.h (LINK_SSP_SPEC): Handle
31185         -fstack-protector-{strong,explicit}.
31186
31187 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
31188             H.J. Lu  <hongjiu.lu@intel.com>
31189
31190         PR ipa/64694
31191         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
31192         heap.
31193
31194 2015-01-22  Wei Mi  <wmi@google.com>
31195
31196         PR rtl-optimization/64557
31197         * dse.c (record_store): Call get_addr for mem_addr.
31198         (check_mem_read_rtx): Likewise.
31199
31200 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
31201
31202         * fold-const.c (const_binop): Add early return for non-tcc_binary.
31203
31204 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
31205
31206         * toplev.c (init_local_tick): Process the failure when read
31207         fails for random_seed.
31208
31209         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
31210         'pretty_name' to avoid memory overflow.
31211
31212 2015-01-22  Richard Biener  <rguenther@suse.de>
31213
31214         PR middle-end/64728
31215         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
31216         abnormal coalescing on undefined SSA names.
31217
31218 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
31219
31220         PR target/64688
31221         PR target/64477
31222         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
31223         for alternative 3.
31224         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
31225
31226 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
31227
31228         PR middle-end/63325
31229         * fold-const.c (fold_checksum_tree): Don't include value of
31230         expr->decl_with_vis.symtab_node in the checksum.
31231
31232 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31233
31234         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
31235
31236 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31237
31238         PR driver/64690
31239         * gcc.c (insert_comments): New function.
31240         (try_generate_repro): Call it.
31241         (append_text): Removed.
31242
31243 2015-01-22  Richard Biener  <rguenther@suse.de>
31244
31245         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
31246         with IL incompatible options.  Properly honor user optimize
31247         attributes.
31248
31249 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
31250
31251         PR rtl-optimization/64682
31252         * combine.c (distribute_notes): When moving a death note for
31253         a register that is set in the new I2, make sure to put it
31254         before that new I2.
31255
31256 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
31257
31258         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
31259         not TARGET_DEFAULT.
31260
31261 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
31262
31263         PR debug/64511
31264         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
31265         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
31266         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
31267
31268         PR sanitizer/64706
31269         * doc/invoke.texi (-fsanitize=vptr): Document.
31270
31271         PR rtl-optimization/62078
31272         * dse.c: Include cfgcleanup.h.
31273         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
31274         anything call purge_all_dead_edges and cleanup_cfg at the end
31275         of the pass.
31276
31277 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
31278
31279         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
31280         edges.
31281
31282 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31283
31284         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
31285         decl attribute.
31286
31287 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31288             Tejas Belagod <Tejas.Belagod@arm.com>
31289
31290         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
31291         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
31292         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
31293         Removed.
31294
31295 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31296             Tejas Belagod <Tejas.Belagod@arm.com>
31297
31298         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
31299         (aarch64_reverse_mask): New decls.
31300         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
31301         (insn_count): New mode_attr.
31302         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
31303         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
31304         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
31305         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
31306         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
31307         (aarch64_simd_st4): New patterns.
31308         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
31309         (aarch64_reverse_mask): New functions.
31310
31311 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31312
31313         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
31314         Declare.
31315         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
31316         addressing modes for BE.
31317         (aarch64_print_operand): Add 'R' specifier.
31318         (aarch64_simd_disambiguate_copy): Delete.
31319         (aarch64_simd_emit_reg_reg_move): New function.
31320         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
31321         in define_splits for structural moves.
31322         (mov<mode>): Use less restrictive predicates.
31323         (*aarch64_mov<mode>): Simplify and only allow for LE.
31324         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
31325
31326 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31327
31328         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
31329
31330 2015-01-21  Richard Henderson  <rth@redhat.com>
31331
31332         PR target/64669
31333         * ccmp.c (used_in_cond_stmt_p): Remove.
31334         (expand_ccmp_expr): Don't use it.
31335
31336 2015-01-21  Nick Clifton  <nickc@redhat.com>
31337
31338         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
31339         PARALLELs.
31340
31341 2015-01-21  Richard Biener  <rguenther@suse.de>
31342
31343         PR middle-end/64313
31344         * tree-core.h (builtin_info, builtin_info_type): Turn from
31345         an object with two arrays into an array of an object with
31346         decl and two flags, implicit_p and declared_p.
31347         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
31348         set_builtin_decl, set_builtin_decl_implicit_p,
31349         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
31350         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
31351         * builtins.c (builtin_info): Adjust.
31352         * gimplify.c (gimplify_addr_expr): References to builtins
31353         that have been declared by the user makes them eligible for
31354         use by the compiler.  Call set_builtin_decl_implicit_p on them.
31355
31356 2015-01-20  Jeff Law  <law@redhat.com>
31357
31358         PR target/59946
31359         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
31360         allow pc-relative addresses in operand predicates or constraints.
31361
31362 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
31363
31364         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
31365         neon on aarch32 processors for stringops.
31366
31367 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31368
31369         PR ipa/63576
31370         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
31371
31372 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31373
31374         PR lto/45375
31375         * ipa-inline.c: Include lto-streamer.h
31376         (report_inline_failed_reason): Output source file differences and
31377         flags on optimization/target node mismatch.
31378         (can_inline_edge_p): Consider caller to be the outer inline function;
31379         be less restrictive about matching opimize and optimize_size attributes.
31380         (inline_account_function_p): Break out from ...
31381         (inline_small_functions): ... here.
31382         * ipa-inline-transform.c (clone_inlined_nodes): Use
31383         inline_account_function_p.
31384         (inline_call): Use optimize attribution; use inline_account_function_p.
31385         (inline_transform): Use opt_for_fn.
31386         * ipa-inline.h (inline_account_function_p): Declare.
31387
31388 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
31389
31390         PR debug/64663
31391         * dwarf2out.c (decl_piece_node): Don't put bitsize into
31392         mode if bitsize <= 0.
31393         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
31394         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
31395         sizes and positions.
31396
31397 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
31398
31399         * config/nios2/nios2.c (nios2_asm_file_end): Implement
31400         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
31401         needed.
31402         (TARGET_ASM_FILE_END): Define.
31403
31404 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31405
31406         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
31407         (struct tune_params): Use the enum.
31408         * arm.c (arm_*_tune): Update.
31409         (arm_option_override): Update.
31410
31411 2015-01-20  Richard Biener  <rguenther@suse.de>
31412
31413         PR ipa/64684
31414         * ipa-reference.c (add_static_var): Inline ...
31415         (analyze_function): ... here after splitting out from ...
31416         (is_proper_for_analysis): ... this.
31417
31418 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
31419
31420         PR target/64149
31421         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
31422         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
31423         replace the conditional with it's true branch.
31424         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
31425         (arm_lra_p): Remove.
31426
31427 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
31428
31429         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
31430
31431 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31432
31433         * config/tilegx/mul-tables.c: Move symtab.h include after
31434         coretypes.h include.
31435         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
31436         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
31437         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
31438         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
31439         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
31440
31441 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
31442
31443         PR bootstrap/64676
31444         Revert:
31445         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31446
31447         PR rtl-optimization/64081
31448         * loop-iv.c (def_pred_latch_p): New function.
31449         (latch_dominating_def): Allow specific cases with non-single
31450         definitions.
31451         (iv_get_reaching_def): Likewise.
31452         (check_complex_exit_p): New function.
31453         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31454         with exits not executing on any iteration.
31455
31456 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31457
31458         PR lto/45375
31459         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
31460         to set branch cost.
31461
31462 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31463
31464         PR lto/45375
31465         * i386.c (gate): Check flag_expensive_optimizations and
31466         optimize_size.
31467         (ix86_option_override_internal): Drop optimize_size condition
31468         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
31469         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
31470         MASK_PREFER_AVX128.
31471         (ix86_avx256_split_vector_move_misalign,
31472         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
31473         * sse.md (all uses of TARGET_PREFER_AVX128): Add
31474         optimize_insn_for_speed_p check.
31475
31476 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
31477
31478         * config/mips/mips.h (FP_ASM_SPEC): New define.
31479         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
31480         instead.
31481
31482 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
31483
31484         PR target/53988
31485         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
31486         nullptr for insn when reaching the first insn.
31487         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
31488         (sh_insn_operands_modified_between_p): Add nullptr check.
31489         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
31490         sign extending mem load if the insn contains any UNSPEC or
31491         UNSPEC_VOLATILE.
31492
31493 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31494
31495         * params.def (inline-unit-growth): Drop to 15%.
31496         * invoke.texi (inline-unit-growth): Document change.
31497
31498 2015-01-19  Martin Liska  <mliska@suse.cz>
31499
31500         PR ipa/64668
31501         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
31502         function for second argument of OBJ_TYPE_REF.
31503
31504 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31505
31506         PR ipa/64218
31507         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
31508         whether function is an alias.
31509
31510 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31511
31512         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
31513         cases.
31514
31515 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
31516
31517         PR rtl-optimization/64671
31518         * lra-remat.c (operand_to_remat): Don't consider jump and call
31519         insns.
31520
31521 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
31522
31523         PR target/59828
31524         * config/rs6000/default64.h: Include rs6000-cpus.def.
31525         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
31526         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
31527         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
31528         and POWER8.
31529         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
31530         POWER8.
31531         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
31532         pseudo-op to specify assembler dialect.
31533
31534 2015-01-19  Martin Liska  <mliska@suse.cz>
31535
31536         PR ipa/64664
31537         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
31538         Handle safe potentially removed nodes during filtering.
31539
31540 2015-01-19  Martin Liska  <mliska@suse.cz>
31541
31542         * doc/extend.texi (no_icf): Add new attribute description.
31543         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
31544         where the pass attempts to merge a function with no_icf attribute.
31545
31546 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31547
31548         PR target/64532
31549         * doc/md.texi (ARM Options): Document register constraints.
31550
31551 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31552             Andrew Pinski  <apinski@cavium.com>
31553
31554         PR target/64304
31555         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
31556         (ashl<mode>3): Don't expand if operands[2] is not constant.
31557
31558 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31559
31560         PR target/64448
31561         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
31562         Match xor-and-xor RTL pattern.
31563
31564 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31565
31566         PR rtl-optimization/64081
31567         * loop-iv.c (def_pred_latch_p): New function.
31568         (latch_dominating_def): Allow specific cases with non-single
31569         definitions.
31570         (iv_get_reaching_def): Likewise.
31571         (check_complex_exit_p): New function.
31572         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31573         with exits not executing on any iteration.
31574
31575 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
31576
31577         * common.opt (fgraphite): Fix a typo.
31578
31579 2015-01-19  Felix Yang  <felix.yang@huawei.com>
31580
31581         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
31582         pattern.
31583         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
31584         uminp, smax_nanp, smin_nanp): New builtins.
31585         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
31586         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
31587         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
31588         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
31589         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
31590         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
31591         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
31592         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
31593         vpminnms_f32): Rewrite using builtin functions.
31594
31595 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
31596
31597         PR libgomp/64625
31598         * omp-low.c (offload_symbol_decl): Remove variable.
31599         (get_offload_symbol_decl): Remove function.
31600         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
31601         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
31602         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
31603         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
31604         BUILT_IN_GOACC_UPDATE don't pass it at all.
31605
31606 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31607
31608         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
31609         callers.
31610
31611 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31612
31613         * ipa-chkp.c (chkp_produce_thunks): Add early param
31614         to split thunks production into two passes.  Keep
31615         'always_inline' function bodies after the first pass.
31616         (pass_data_ipa_chkp_early_produce_thunks): New.
31617         (pass_ipa_chkp_early_produce_thunks): New.
31618         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
31619         chkp_produce_thunks signature.
31620         (make_pass_ipa_chkp_early_produce_thunks): New.
31621         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
31622         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
31623         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
31624
31625 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31626
31627         * cgraph.c (cgraph_node::dump): Dump profile flags.
31628
31629 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
31630
31631         PR target/64652
31632         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
31633         reg appear first in the parallel.
31634
31635 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31636
31637         * ipa-reference.c (set_reference_optimization_summary,
31638         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
31639         disabled.
31640         (ignore_module_statics): New static var.
31641         (propagate_bits): If ipa-reference is disabled, do not look into local
31642         properties.
31643         (analyze_function): Disable analysis when ipa_reference is disabled.
31644         (generate_summary): Do not dump when reference is disabled;
31645         collect vars accessed from functions with ipa-reference disabled.
31646         (get_read_write_all_from_node): When ipa-reference is disabled, use the
31647         node flags.
31648         (gate): Enable for LTO.
31649         (ignore_edge_p): New function.
31650         (propagate): Skip functions w/o ipa-reference analysis.
31651         * optc-save-gen.awk: Handle optimize_debug correctly.
31652         * opth-gen.awk: Likewise.
31653         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
31654         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
31655         fira-share-save-slots, fira-share-spill-slots,
31656         fmodulo-sched-allow-regmoves, fpartial-inlining,
31657         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
31658         ftracer, ftree-parallelize-loops, fassociative-math,
31659         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
31660         Optimization
31661         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
31662         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
31663         Optimization.
31664         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
31665         Fix for IPA.
31666
31667 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31668
31669         PR ipa/64378
31670         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
31671         flag correctly.
31672         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
31673
31674 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
31675
31676         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
31677         Remove duplicate option listings.
31678
31679 2015-01-18  Felix Yang  <felix.yang@huawei.com>
31680
31681         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
31682         (autofdo_source_profile::get_callsite_total_count,
31683         function_instance::get_function_instance_by_decl,
31684         string_table::get_index, string_table::get_index_by_decl,
31685         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
31686         Fix comment typos. Reformatting and minor code rearrangement.
31687
31688 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31689
31690         * config/rs6000/rs6000.md (probe_stack): Delete.
31691         (probe_stack_address): New.
31692
31693 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31694
31695         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
31696         to test for 32-bit ABIs, not !TARGET_POWERPC64.
31697
31698 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31699
31700         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
31701         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
31702         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
31703         snafu.
31704         (rs6000_libcall_value): Use the new function.
31705
31706 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
31707
31708         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
31709
31710 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31711
31712         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
31713         implement a more precise life analysis for it during backward scan.
31714
31715 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
31716
31717         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
31718
31719 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
31720
31721         PR rtl-optimization/52773
31722         * calls.c (emit_library_call_value): When pushing arguments use
31723         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
31724         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
31725         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
31726
31727 2015-01-17  Jeff Law  <law@redhat.com>
31728
31729         PR rtl-optimization/32790
31730         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
31731         not ZERO_EXTEND in SET_DESTs.
31732
31733 2015-01-17  Alan Modra  <amodra@gmail.com>
31734
31735         * cprop.c (do_local_cprop): Revert last change.
31736
31737 2015-01-16  DJ Delorie  <dj@redhat.com>
31738             Nick Clifton  <nickc@redhat.com>
31739
31740         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
31741         (addhi3_real): Likewise.  Fix [HL+0] syntax.
31742         (subqi3_real): Likewise.
31743         (subhi3_real): Likewise.
31744         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
31745         (cbranchhi4_real): Likewise.
31746         (cbranchhi4_real_inverted): Likewise.
31747         (cbranchsi4_real_lt): Likewise.
31748         (cbranchsi4_real_ge): Likewise.
31749         (cbranchsi4_real_ge): Likewise.
31750         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
31751         (sub<mode>3_virt): Likewise.
31752         (cbranchqi4_virt): Likewise.
31753         (cbranchhi4_virt): Likewise.
31754         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
31755         always use '[reg+imm]' even when imm is zero.
31756         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
31757         (rl78_general_operand): New.
31758         (rl78_nonimmediate_operand): New.
31759         (rl78_nonfar_operand): Use them.
31760         (rl78_nonfar_nonimm_operand): Likewise.
31761         (rl78_stack_based_mem): Fix.
31762         * config/rl78/constraints.md (Ibqi): New.
31763         (IBqi): New.
31764         (Wsa): New.
31765         (Wsf): New.
31766         (Cs1): Fix.
31767         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
31768         (iorqi3): Likewise.
31769         (xorqi3): Likewise.
31770         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
31771
31772         * config/rl78/constrains (Qs8): New constraint.
31773         * config/rl78/rl78.c (rl78_flags_already_set): New function.
31774         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
31775         * config/rl78/rl78-real.md (update_Z): New attribute.
31776         Update patterns to set it.
31777         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
31778         shorter compare and branch sequence can be used.
31779         (cbranchhi4_real): Likewise.
31780         (cbranchhi4_real_inverted): Likewise.
31781
31782         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
31783         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
31784         address space.
31785         * config/rl78/rl78.c (rl78_get_name_encoding): New.
31786         (rl78_option_override): Allow -mes0 only if C.
31787         (characterize_address): Support subregs of symbol_refs.
31788         (rl78_addr_space_address_mode): Move.  Add __near.
31789         (rl78_far_p): Likewise.
31790         (rl78_addr_space_pointer_mode): Likewise.
31791         (rl78_as_legitimate_address): Likewise.
31792         (rl78_addr_space_subset_p): Likewise.
31793         (rl78_addr_space_convert): Likewise.
31794         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
31795         symbols with -mes0.
31796         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
31797         addressing.
31798         (rl78_alloc_physical_registers_op1): Change logic to prefer
31799         symbol[BC] addressing.
31800         (frodata_section): New.
31801         (rl78_asm_init_sections): Initialize it.
31802         (rl78_select_section): Put __far readonly symbols in .frodata.
31803         (rl78_make_type_far): New.
31804         (rl78_insert_attributes): Force all readonly symbols to be
31805         __far when -mes0.
31806         (rl78_asm_out_integer): New.
31807         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
31808         * config/rl78/rl78.opt (-mes0): New.
31809
31810         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
31811         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
31812         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
31813         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
31814         (rl78_saddr_p): New.
31815         (rl78_output_aligned_common): New.
31816         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
31817         (rl78_handle_saddr_attribute): New.
31818         (rl78_handle_naked_attribute): New.
31819         (rl78_attribute_table): Add saddr.
31820         (rl78_print_operand_1): Don't print '!' on saddr operands.
31821         (rl78_print_operand_1): Strip encodings.
31822         (rl78_sfr_p): New.
31823         (rl78_strip_name_encoding): New.
31824         (rl78_attrlist_to_encoding): New.
31825         (rl78_encode_section_info): New.
31826         (rl78_asm_init_sections): New.
31827         (rl78_select_section): New.
31828         (rl78_output_labelref): New.
31829         (rl78_output_aligned_common): New.
31830         (rl78_asm_out_integer): New.
31831         (rl78_asm_ctor_dtor): New.
31832         (rl78_asm_constructor): New.
31833         (rl78_asm_destructor): New.
31834
31835         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
31836         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
31837         (transcode_memory_rtx): Update.
31838         (rl78_expand_epilogue): Use A_REG instead of 0.
31839
31840 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31841
31842         * config/arm/arm-protos.h (struct tune_params): New field
31843         sched_autopref_queue_depth.
31844         * config/arm/arm.c (sched-int.h): Include header.
31845         (arm_first_cycle_multipass_dfa_lookahead_guard,)
31846         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
31847         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
31848         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
31849         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
31850         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
31851         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
31852         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
31853         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
31854         * config/arm/t-arm (arm.o): Update.
31855         * haifa-sched.c (update_insn_after_change): Update.
31856         (rank_for_schedule): Use auto-prefetcher model, if requested.
31857         (autopref_multipass_init): New static function.
31858         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
31859         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
31860         variable for debug dumps.
31861         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
31862         (autopref_multipass_dfa_lookahead_guard): New global function that
31863         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
31864         (init_h_i_d): Update.
31865         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
31866         * sched-int.h (enum autopref_multipass_data_status): New const enum.
31867         (autopref_multipass_data_): Structure for auto-prefetcher data.
31868         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
31869         (struct _haifa_insn_data:autopref_multipass_data): New field.
31870         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
31871         (autopref_multipass_dfa_lookahead_guard): Declare.
31872
31873 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31874
31875         * rtlanal.c (get_base_term): Handle SCRATCH.
31876
31877 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31878
31879         * config/aarch64/aarch64.c
31880         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
31881         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31882         * config/arm/arm.c
31883         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
31884         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31885
31886 2015-01-17  Alan Modra  <amodra@gmail.com>
31887
31888         * cprop.c (do_local_cprop): Disallow replacement of fixed
31889         hard registers.
31890
31891 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31892
31893         PR target/62066
31894         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
31895         early return 0.
31896
31897 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31898
31899         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
31900         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
31901
31902 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31903
31904         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
31905         * config/arm/thumb1.md: ... Here.
31906
31907 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31908
31909         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
31910         TImode for TARGET_32BIT.
31911
31912 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31913
31914         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
31915         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
31916         as ...
31917         (rs6000_abi_word_mode): New function.
31918
31919 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31920
31921         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
31922         instead of UNITS_PER_WORD to describe the size of stack slots.
31923
31924 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31925
31926         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
31927         as rs6000_promote_function_mode.  Move comment to there.
31928         (rs6000_promote_function_mode): New function.
31929
31930 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31931
31932         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
31933         -mpowerpc64 is active.
31934
31935 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31936
31937         PR middle-end/64353
31938         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
31939         virtuals on start.
31940
31941 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31942
31943         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
31944         introduced in revision 219724.
31945
31946 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31947             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31948
31949         PR target/64263
31950         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
31951         destination is not a GP reg.
31952         (*movdi_aarch64): Likewise.
31953
31954 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
31955
31956         PR target/64623
31957         * config/rs6000/default64.h: Revert ISA change.
31958
31959 2015-01-16  Richard Biener  <rguenther@suse.de>
31960
31961         PR middle-end/64614
31962         * tree-ssa-uninit.c: Include tree-cfg.h.
31963         (MAX_SWITCH_CASES): New define.
31964         (convert_control_dep_chain_into_preds): Handle switch statements.
31965         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
31966         (normalize_one_pred_1): Do not split bit-manipulations.
31967         Record (x & CST).
31968
31969 2015-01-16  Richard Biener  <rguenther@suse.de>
31970
31971         PR tree-optimization/64568
31972         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
31973         complex load rewriting for TARGET_MEM_REFs.
31974
31975 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
31976
31977         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
31978
31979 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
31980
31981         PR target/64149
31982         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
31983         variable.
31984         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
31985         (aarch64_lra_p): Remove.
31986
31987 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31988
31989         PR target/64363
31990         * ipa-chkp.h (chkp_instrumentable_p): New.
31991         * ipa-chkp.c: Include tree-inline.h.
31992         (chkp_instrumentable_p): New.
31993         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
31994         Fix processing of not instrumentable functions.
31995         (chkp_versioning): Use chkp_instrumentable_p. Warn about
31996         not instrumentable functions.
31997         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
31998         chkp_instrumentable_p.
31999         * tree-inline.h (copy_forbidden): New.
32000         * tree-inline.c (copy_forbidden): Not static anymore.
32001
32002 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32003
32004         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
32005         ptr1, ptr2 unused.
32006
32007 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
32008
32009         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
32010         type OP_OUT to OP_INOUT.
32011
32012 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
32013
32014         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
32015         (high x) y) to y if x and y have the same base.
32016
32017 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
32018
32019         * config/arm/cortex-a57.md: New.
32020         * config/aarch64/aarch64.md: Include it.
32021         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
32022         * config/aarch64/aarch64-tune.md: Regenerate.
32023
32024 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
32025
32026         PR target/64015
32027         * ccmp.c (expand_ccmp_next): New function.
32028         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
32029         and compare insn sequence.
32030         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
32031         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
32032         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
32033         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
32034         (*ccmp_ior): Changed to ccmp_ior<mode>.
32035         (cmp<mode>): New pattern.
32036         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
32037         parameters.
32038         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
32039
32040 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
32041
32042         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
32043         _mm256_bsrli_epi128): New.
32044         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
32045
32046 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
32047
32048         * expmed.c (store_bit_field_using_insv): Improve warning message.
32049         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
32050
32051 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
32052
32053         PR rtl-optimization/64011
32054         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
32055         there is partial overflow.
32056
32057 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32058
32059         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
32060         prototype.
32061         (nds32_expand_epilogue_v3pop): Likewise.
32062         * config/nds32/nds32.md (sibcall): Define this for sibling call
32063         optimization.
32064         (sibcall_register): Likewise.
32065         (sibcall_immediate): Likewise.
32066         (sibcall_value): Likewise.
32067         (sibcall_value_register): Likewise.
32068         (sibcall_value_immediate): Likewise.
32069         (sibcall_epilogue): Likewise.
32070         (epilogue): Pass false to indicate this is not a sibcall epilogue.
32071         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
32072         (nds32_expand_epilogue_v3pop): Likewise.
32073
32074 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32075
32076         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
32077         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
32078         (return_internal): New.
32079         (return): Define this named pattern.
32080         (simple_return): Define this named pattern.
32081         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
32082         pattern instead of unspec_volatile_func_return.
32083         (nds32_expand_epilogue_v3pop): Likewise.
32084         (nds32_can_use_return_insn): New function.
32085
32086 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32087
32088         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
32089         * config/nds32/nds32.md (pop25return): New.
32090         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
32091         pop25return pattern.
32092
32093 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32094
32095         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
32096         -mforbid-fp-as-gp, and -mex9 options.
32097
32098 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32099
32100         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
32101         remove -mgp-direct option.
32102
32103 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32104
32105         * doc/invoke.texi (--param early-inlining-insns): Update default value.
32106         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
32107
32108 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32109
32110         * ipa-inline.c (inline_small_functions): Work around hints
32111         cache issue.
32112
32113 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
32114
32115         PR target/59710
32116         * doc/invoke.texi (Option Summary): Document new Nios II
32117         -mgpopt= syntax.
32118         (Nios II Options): Likewise.
32119         * config/nios2/nios2.opt: Add -mgpopt= option support.
32120         Modify existing -mgpopt and -mno-gpopt options to be aliases.
32121         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
32122         * config/nios2/nios2.c (nios2_option_override): Adjust
32123         -mgpopt defaulting.
32124         (nios2_in_small_data_p): Return true for explicit small data
32125         sections even with -G0.
32126         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
32127         option choices.
32128
32129 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32130
32131         PR ipa/64612
32132         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
32133         of comdat locals.
32134         (inline_call): Fix removal of aliases.
32135
32136 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32137
32138         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
32139         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
32140         * opts.c (common_handle_option): Add -fsanitize=vptr.
32141         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
32142         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
32143         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
32144         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
32145         (ubsan_expand_vptr_ifn): New prototype.
32146         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
32147         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
32148         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
32149         expand_LOOP_VECTORIZED): Make argument nameless, remove
32150         ATTRIBUTE_UNUSED.
32151         (expand_UBSAN_VPTR): New function.
32152         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
32153         in fn spec.
32154         (UBSAN_VPTR): New internal function.
32155         * sanopt.c (tree_map_traits): Renamed to ...
32156         (sanopt_tree_map_traits): ... this.
32157         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
32158         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
32159         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
32160         (maybe_optimize_ubsan_vptr_ifn): New function.
32161         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
32162         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
32163         -fsanitize=vptr.
32164         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
32165         internal calls like pure functions for aliasing, even when they
32166         have other side-effects that prevent making them ECF_PURE.
32167         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
32168         (ubsan_expand_vptr_ifn): New function.
32169
32170 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
32171
32172         PR rtl-optimization/64110
32173         * stmt.c (parse_output_constraint): Process '^' and '$'.
32174         (parse_input_constraint): Ditto.
32175         * lra-constraints.c (process_alt_operands): Process the new
32176         constraints.
32177         * ira-costs.c (record_reg_classes): Process the new constraint
32178         '^'.
32179         * genoutput.c (indep_constraints): Add '^' and '$'.
32180         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
32181         * doc/md.texi: Add description of the new constraints.
32182
32183 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
32184             Bernd Schmidt  <bernds@codesourcery.com>
32185             Cesar Philippidis  <cesar@codesourcery.com>
32186             James Norris  <jnorris@codesourcery.com>
32187             Tom de Vries  <tom@codesourcery.com>
32188             Ilmir Usmanov  <i.usmanov@samsung.com>
32189             Dmitry Bocharnikov  <dmitry.b@samsung.com>
32190             Evgeny Gavrin  <e.gavrin@samsung.com>
32191             Jakub Jelinek  <jakub@redhat.com>
32192
32193         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
32194         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
32195         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
32196         New function types.
32197         * builtins.c: Include "gomp-constants.h".
32198         (expand_builtin_acc_on_device): New function.
32199         (expand_builtin, is_inexpensive_builtin): Handle
32200         BUILT_IN_ACC_ON_DEVICE.
32201         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
32202         New macros.
32203         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
32204         flag_openmp.
32205         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
32206         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
32207         i386/intelmic-offload.h.
32208         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
32209         to libgomp and its dependencies.
32210         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
32211         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
32212         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
32213         * config/ia64/hpux.h (LIB_SPEC): Likewise.
32214         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
32215         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
32216         * doc/generic.texi: Update for OpenACC changes.
32217         * doc/gimple.texi: Likewise.
32218         * doc/invoke.texi: Likewise.
32219         * doc/sourcebuild.texi: Likewise.
32220         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
32221         GF_OMP_FOR_KIND_OACC_LOOP.
32222         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
32223         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
32224         GF_OMP_TARGET_KIND_OACC_UPDATE,
32225         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
32226         Dump more data.
32227         * gimple.c: Update comments for OpenACC changes.
32228         * gimple.def: Likewise.
32229         * gimple.h: Likewise.
32230         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
32231         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32232         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
32233         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
32234         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
32235         appropriate place.
32236         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
32237         * gimplify.c: Include "gomp-constants.h".
32238         Update comments for OpenACC changes.
32239         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
32240         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
32241         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32242         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
32243         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32244         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32245         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
32246         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32247         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
32248         OMP_CLAUSE_SEQ.
32249         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
32250         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32251         OMP_CLAUSE_SET_MAP_KIND.
32252         (gimplify_oacc_cache): New function.
32253         (gimplify_omp_for): Handle OACC_LOOP.
32254         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
32255         OACC_DATA.
32256         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
32257         OACC_EXIT_DATA, OACC_UPDATE.
32258         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
32259         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
32260         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
32261         (gimplify_body): Consider flag_openacc next to flag_openmp.
32262         * lto-streamer-out.c: Include "gomp-constants.h".
32263         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
32264         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
32265         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
32266         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
32267         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
32268         (BUILT_IN_ACC_ON_DEVICE): New builtins.
32269         * omp-low.c: Include "gomp-constants.h".
32270         Update comments for OpenACC changes.
32271         (struct omp_context): Add reduction_map, gwv_below, gwv_this
32272         members.
32273         (extract_omp_for_data, use_pointer_for_field, install_var_field)
32274         (new_omp_context, delete_omp_context, scan_sharing_clauses)
32275         (create_omp_child_function, scan_omp_for, scan_omp_target)
32276         (check_omp_nesting_restrictions, lower_reduction_clauses)
32277         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
32278         Update for OpenACC changes.
32279         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
32280         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
32281         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
32282         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32283         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
32284         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
32285         OMP_CLAUSE_MAP_*.
32286         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
32287         Handle GF_OMP_FOR_KIND_OACC_LOOP.
32288         (expand_omp_target, lower_omp_target): Handle
32289         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32290         GF_OMP_TARGET_KIND_OACC_UPDATE,
32291         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
32292         GF_OMP_TARGET_KIND_OACC_DATA.
32293         (pass_expand_omp::execute, execute_lower_omp)
32294         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
32295         flag_openmp.
32296         (offload_symbol_decl): New variable.
32297         (oacc_get_reduction_array_id, oacc_max_threads)
32298         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
32299         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
32300         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
32301         (oacc_gimple_assign, oacc_initialize_reduction_data)
32302         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
32303         functions.
32304         (is_targetreg_ctx): Remove function.
32305         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
32306         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
32307         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32308         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
32309         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
32310         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
32311         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
32312         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
32313         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
32314         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
32315         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
32316         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
32317         * tree-core.h: Update comments for OpenACC changes.
32318         (enum omp_clause_map_kind): Remove.
32319         (struct tree_omp_clause): Change type of map_kind member from enum
32320         omp_clause_map_kind to unsigned char.
32321         * tree-inline.c: Update comments for OpenACC changes.
32322         * tree-nested.c: Likewise.  Include "gomp-constants.h".
32323         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
32324         (convert_tramp_reference_stmt, convert_gimple_call): Update for
32325         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32326         OMP_CLAUSE_SET_MAP_KIND.
32327         * tree-pretty-print.c: Include "gomp-constants.h".
32328         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
32329         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
32330         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
32331         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
32332         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32333         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
32334         instead of OMP_CLAUSE_MAP_*.
32335         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
32336         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
32337         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32338         * tree-streamer-in.c: Include "gomp-constants.h".
32339         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
32340         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
32341         * tree-streamer-out.c: Include "gomp-constants.h".
32342         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
32343         OMP_CLAUSE_MAP_*.
32344         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
32345         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
32346         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
32347         * tree.c (omp_clause_num_ops): Update accordingly.
32348         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
32349         Likewise.
32350         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
32351         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
32352         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
32353         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
32354         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
32355         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
32356         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
32357         (OMP_CLAUSE_SET_MAP_KIND): New macro.
32358         * varpool.c (varpool_node::get_create): Consider flag_openacc next
32359         to flag_openmp.
32360         * config/i386/intelmic-offload.h: New file.
32361         * config/nvptx/offload.h: Likewise.
32362
32363 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32364
32365         * explow.h: Remove duplicate contents.
32366         * dojump.h: Likewise.
32367
32368 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
32369
32370         * arm.c (arm_xgene_tune): Add default initializer for instruction
32371         fusion.
32372
32373 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32374
32375         PR ipa/64068
32376         PR ipa/64559
32377         * ipa.c (symbol_table::remove_unreachable_nodes):
32378         Do not put abstract origins into boundary.
32379
32380 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
32381
32382         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
32383         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
32384
32385 2015-01-15  Steve Ellcey  <sellcey@mips.com>
32386
32387         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
32388         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
32389         builtins.def, and chkp-builtins.def.
32390
32391 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
32392
32393         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
32394         ISA 2.7 (POWER8).
32395
32396 2015-01-15  Richard Biener  <rguenther@suse.de>
32397
32398         PR tree-optimization/61743
32399         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
32400         information on PHIs for some simple cases.
32401
32402 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32403
32404         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
32405         Include xgene1.md.
32406         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
32407         * config/arm/arm-cores.def (xgene1): New entry.
32408         * config/arm/arm-tables.opt: Regenerate.
32409         * config/arm/arm-tune.md: Regenerate.
32410         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
32411
32412 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32413
32414         * tree-if-conv.c: Include hash-map.h.
32415         (aggressive_if_conv): New variable.
32416         (fold_build_cond_expr): Add simplification of non-zero condition.
32417         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
32418         destination block is not always executed.
32419         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
32420         than two predecessors if AGGRESSIVE_IF_CONV is true.
32421         (if_convertible_stmt_p): Fix commentary.
32422         (all_preds_critical_p): New function.
32423         (has_pred_critical_p): New function.
32424         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
32425         BB can have more than two predecessors and all incoming edges can be
32426         critical.
32427         (predicate_bbs): Skip predication for loop exit block, use build2_loc
32428         to compute predicate for true edge.
32429         (find_phi_replacement_condition): Delete this function.
32430         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
32431         Allow interchange PHI arguments if EXTENDED is false.
32432         Change check that block containing reduction statement candidate
32433         is predecessor of phi-block since phi may have more than two arguments.
32434         (phi_args_hash_traits): New helper structure.
32435         (struct phi_args_hash_traits): New type.
32436         (phi_args_hash_traits::hash): New function.
32437         (phi_args_hash_traits::equal_keys): New function.
32438         (gen_phi_arg_condition): New function.
32439         (predicate_scalar_phi): Add handling of phi nodes with more than two
32440         arguments, delete COND and TRUE_BB arguments, insert body of
32441         find_phi_replacement_condition to predicate ordinary phi nodes.
32442         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
32443         delete call of find_phi_replacement_condition and invoke
32444         predicate_scalar_phi with two arguments.
32445         (insert_gimplified_predicates): Add assert that non-predicated block
32446         don't have statements to insert.
32447         (ifcvt_split_critical_edges): New function.
32448         (ifcvt_split_def_stmt): Likewise.
32449         (ifcvt_walk_pattern_tree): Likewise.
32450         (stmt_is_root_of_bool_pattern): Likewise.
32451         (ifcvt_repair_bool_pattern): Likewise.
32452         (ifcvt_local_dce): Likewise.
32453         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
32454         is copy of inner or outer loop force_vectorize field, invoke
32455         ifcvt_split_critical_edges, ifcvt_local_dce and
32456         ifcvt_repair_bool_pattern for aggressive if-conversion.
32457
32458 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
32459
32460         * config/aarch64/aarch64.md: Include xgene1.md.
32461         * config/aarch64/xgene1.md: New file.
32462
32463 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32464
32465         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
32466         xgene1 (APM XGene-1) core definition.
32467         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
32468         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
32469         * doc/invoke.texi: Document -mcpu=xgene1.
32470
32471 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32472
32473         * dojump.h: New header file.
32474         * explow.h: Likewise.
32475         * expr.h: Remove includes.
32476         Move expmed.c prototypes to expmed.h.
32477         Move dojump.c prototypes to dojump.h.
32478         Move alias.c prototypes to alias.h.
32479         Move explow.c prototypes to explow.h.
32480         Move calls.c prototypes to calls.h.
32481         Move emit-rtl.c prototypes to emit-rtl.h.
32482         Move varasm.c prototypes to varasm.h.
32483         Move stmt.c prototypes to stmt.h.
32484         (saved_pending_stack_adjust): Move to dojump.h.
32485         (adjust_address): Move to explow.h.
32486         (adjust_address_nv): Move to emit-rtl.h.
32487         (adjust_bitfield_address): Likewise.
32488         (adjust_bitfield_address_size): Likewise.
32489         (adjust_bitfield_address_nv): Likewise.
32490         (adjust_automodify_address_nv): Likewise.
32491         * explow.c (expr_size): Move to expr.c.
32492         (int_expr_size): Likewise.
32493         (tree_expr_size): Likewise.
32494         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32495         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32496         * genemit.c (main): Generate includes statistics.h, real.h,
32497         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
32498         stmt.h.
32499         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
32500         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
32501         explow.h, emit-rtl.h, stmt.h.
32502         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
32503         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
32504         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
32505         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
32506         emit-rtl.h, varasm.h, stmt.h.
32507         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
32508         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
32509         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
32510         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
32511         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
32512         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
32513         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
32514         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
32515         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
32516         tm.h tree.h varasm.h vec.h wide-int.h.
32517         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32518         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32519         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
32520         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
32521         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
32522         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
32523         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
32524         * loop-iv.c: Likewise.
32525         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
32526         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
32527         statistics.h stmt.h tree.h varasm.h wide-int.h.
32528         * lra-constraints.c: Likewise.
32529         * lra-eliminations.c: Likewise.
32530         * lra-lives.c: Likewise.
32531         * lra-remat.c: Likewise.
32532         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32533         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
32534         statistics.h stmt.h tree.h varasm.h wide-int.h.
32535         * hw-doloop.c: Likewise.
32536         * ira-color.c: Likewise.
32537         * ira-emit.c: Likewise.
32538         * loop-doloop.c: Likewise.
32539         * loop-invariant.c: Likewise.
32540         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32541         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
32542         statistics.h stmt.h tree.h varasm.h wide-int.h.
32543         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
32544         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
32545         statistics.h stmt.h tree.h varasm.h wide-int.h.
32546         * combine-stack-adj.c: Likewise.
32547         * cse.c: Likewise.
32548         * ddg.c: Likewise.
32549         * ifcvt.c: Likewise.
32550         * ira-costs.c: Likewise.
32551         * jump.c: Likewise.
32552         * lra-coalesce.c: Likewise.
32553         * lra-spills.c: Likewise.
32554         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32555         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
32556         stmt.h varasm.h wide-int.h.
32557         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32558         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32559         varasm.h.
32560         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
32561         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
32562         statistics.h stmt.h varasm.h wide-int.h.
32563         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
32564         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
32565         varasm.h wide-int.h.
32566         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
32567         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32568         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
32569         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
32570         statistics.h stmt.h.
32571         * config/tilepro/tilepro.c: Likewise.
32572         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
32573         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
32574         * config/pdp11/pdp11.c: Likewise.
32575         * config/xtensa/xtensa.c: Likewise.
32576         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
32577         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32578         varasm.h.
32579         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32580         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32581         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
32582         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32583         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32584         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
32585         * rtl-chkp.c: Likewise.
32586         * tree-chkp-opt.c: Likewise.
32587         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
32588         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32589         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
32590         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32591         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32592         statistics.h stmt.h.
32593         * tree-vect-data-refs.c: Likewise.
32594         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
32595         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32596         rtl.h statistics.h stmt.h varasm.h.
32597         * internal-fn.c: Likewise.
32598         * ipa-icf-gimple.c: Likewise.
32599         * lto-section-out.c: Likewise.
32600         * tree-data-ref.c: Likewise.
32601         * tree-nested.c: Likewise.
32602         * tree-outof-ssa.c: Likewise.
32603         * tree-predcom.c: Likewise.
32604         * tree-pretty-print.c: Likewise.
32605         * tree-scalar-evolution.c: Likewise.
32606         * tree-ssa-strlen.c: Likewise.
32607         * tree-vect-loop.c: Likewise.
32608         * tree-vect-patterns.c: Likewise.
32609         * tree-vect-slp.c: Likewise.
32610         * tree-vect-stmts.c: Likewise.
32611         * tsan.c: Likewise.
32612         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32613         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
32614         stmt.h.
32615         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
32616         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32617         statistics.h stmt.h varasm.h.
32618         * loop-unroll.c: Likewise.
32619         * ubsan.c: Likewise.
32620         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
32621         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
32622         stmt.h varasm.h.
32623         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32624         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
32625         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
32626         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32627         statistics.h stmt.h.
32628         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
32629         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32630         statistics.h stmt.h varasm.h.
32631         * gimple-match-head.c: Likewise.
32632         * lto-cgraph.c: Likewise.
32633         * lto-section-in.c: Likewise.
32634         * lto-streamer-in.c: Likewise.
32635         * lto-streamer-out.c: Likewise.
32636         * tree-affine.c: Likewise.
32637         * tree-cfg.c: Likewise.
32638         * tree-cfgcleanup.c: Likewise.
32639         * tree-if-conv.c: Likewise.
32640         * tree-into-ssa.c: Likewise.
32641         * tree-ssa-alias.c: Likewise.
32642         * tree-ssa-copyrename.c: Likewise.
32643         * tree-ssa-dse.c: Likewise.
32644         * tree-ssa-forwprop.c: Likewise.
32645         * tree-ssa-live.c: Likewise.
32646         * tree-ssa-math-opts.c: Likewise.
32647         * tree-ssa-pre.c: Likewise.
32648         * tree-ssa-sccvn.c: Likewise.
32649         * tree-tailcall.c: Likewise.
32650         * tree-vect-generic.c: Likewise.
32651         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32652         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
32653         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32654         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
32655         * varasm.c: Likewise.
32656         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32657         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
32658         varasm.h.
32659         * init-regs.c: Likewise.
32660         * ira.c: Likewise.
32661         * omp-low.c: Likewise.
32662         * stack-ptr-mod.c: Likewise.
32663         * tree-ssa-reassoc.c: Likewise.
32664         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32665         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
32666         varasm.h.
32667         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32668         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
32669         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32670         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
32671         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32672         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
32673         * tree-ssa-phiopt.c: Likewise.
32674         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32675         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32676         * config/fr30/fr30.c: Likewise.
32677         * config/frv/frv.c: Likewise.
32678         * expr.c: Likewise.
32679         * final.c: Likewise.
32680         * optabs.c: Likewise.
32681         * passes.c: Likewise.
32682         * simplify-rtx.c: Likewise.
32683         * stmt.c: Likewise.
32684         * toplev.c: Likewise.
32685         * var-tracking.c: Likewise.
32686         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32687         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32688         * lower-subreg.c: Likewise.
32689         * postreload-gcse.c: Likewise.
32690         * ree.c: Likewise.
32691         * reginfo.c: Likewise.
32692         * store-motion.c: Likewise.
32693         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32694         fixed-value.h hashtab.h real.h stmt.h varasm.h.
32695         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32696         fixed-value.h hashtab.h statistics.h stmt.h.
32697         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32698         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32699         * except.c: Likewise.
32700         * explow.c: Likewise.
32701         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32702         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
32703         varasm.h.
32704         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32705         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
32706         * tree-ssa-structalias.c: Likewise.
32707         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32708         fixed-value.h insn-config.h real.h statistics.h.
32709         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32710         fixed-value.h insn-config.h real.h statistics.h stmt.h.
32711         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32712         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32713         * cfgbuild.c: Likewise.
32714         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32715         fixed-value.h real.h rtl.h statistics.h stmt.h.
32716         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32717         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32718         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32719         fixed-value.h real.h statistics.h stmt.h.
32720         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32721         fixed-value.h real.h statistics.h stmt.h varasm.h.
32722         * cprop.c: Likewise.
32723         * modulo-sched.c: Likewise.
32724         * postreload.c: Likewise.
32725         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32726         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
32727         statistics.h stmt.h varasm.h.
32728         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
32729         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32730         rtl.h statistics.h stmt.h varasm.h.
32731         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
32732         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
32733         varasm.h.
32734         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32735         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
32736         varasm.h.
32737         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
32738         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
32739         varasm.h.
32740         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
32741         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32742         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32743         function.h real.h statistics.h stmt.h varasm.h.
32744         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32745         insn-config.h real.h statistics.h stmt.h.
32746         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32747         statistics.h stmt.h.
32748         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
32749         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
32750         statistics.h stmt.h varasm.h.
32751         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
32752         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
32753         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32754         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
32755         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
32756         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32757         statistics.h stmt.h varasm.h.
32758         * ipa-polymorphic-call.c: Likewise.
32759         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
32760         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32761         statistics.h stmt.h.
32762         * config/c6x/c6x.c: Likewise.
32763         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
32764         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32765         statistics.h stmt.h varasm.h.
32766         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
32767         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
32768         stmt.h varasm.h.
32769         * ipa-split.c: Likewise.
32770         * tree-eh.c: Likewise.
32771         * tree-ssa-dce.c: Likewise.
32772         * tree-ssa-loop-niter.c: Likewise.
32773         * tree-vrp.c: Likewise.
32774         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
32775         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
32776         stmt.h.
32777         * config/nds32/nds32-fp-as-gp.c: Likewise.
32778         * config/nds32/nds32-intrinsic.c: Likewise.
32779         * config/nds32/nds32-isr.c: Likewise.
32780         * config/nds32/nds32-md-auxiliary.c: Likewise.
32781         * config/nds32/nds32-memory-manipulation.c: Likewise.
32782         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
32783         * config/nds32/nds32-predicates.c: Likewise.
32784         * config/nds32/nds32.c: Likewise.
32785         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
32786         fixed-value.h hashtab.h real.h statistics.h.
32787         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
32788         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32789         * config/arm/arm.c: Likewise.
32790         * config/avr/avr.c: Likewise.
32791         * config/bfin/bfin.c: Likewise.
32792         * config/h8300/h8300.c: Likewise.
32793         * config/i386/i386.c: Likewise.
32794         * config/ia64/ia64.c: Likewise.
32795         * config/iq2000/iq2000.c: Likewise.
32796         * config/m32c/m32c.c: Likewise.
32797         * config/m32r/m32r.c: Likewise.
32798         * config/m68k/m68k.c: Likewise.
32799         * config/mcore/mcore.c: Likewise.
32800         * config/mep/mep.c: Likewise.
32801         * config/mips/mips.c: Likewise.
32802         * config/mn10300/mn10300.c: Likewise.
32803         * config/moxie/moxie.c: Likewise.
32804         * config/pa/pa.c: Likewise.
32805         * config/rl78/rl78.c: Likewise.
32806         * config/rx/rx.c: Likewise.
32807         * config/s390/s390.c: Likewise.
32808         * config/sh/sh.c: Likewise.
32809         * config/sparc/sparc.c: Likewise.
32810         * config/spu/spu.c: Likewise.
32811         * config/stormy16/stormy16.c: Likewise.
32812         * config/v850/v850.c: Likewise.
32813         * config/vax/vax.c: Likewise.
32814         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
32815         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32816         * config/msp430/msp430.c: Likewise.
32817         * predict.c: Likewise.
32818         * value-prof.c: Likewise.
32819         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
32820         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
32821         * config/microblaze/microblaze.c: Likewise.
32822         * config/nios2/nios2.c: Likewise.
32823         * config/rs6000/rs6000.c: Likewise.
32824         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32825         insn-config.h real.h rtl.h statistics.h stmt.h.
32826         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32827         insn-config.h real.h statistics.h stmt.h.
32828         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
32829         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32830         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
32831         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32832         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
32833         fixed-value.h real.h statistics.h stmt.h.
32834         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
32835         fixed-value.h statistics.h stmt.h.
32836         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
32837         stmt.h.
32838
32839 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32840
32841         * gengtype.c (create_user_defined_type): Workaround
32842         -Wmaybe-uninitialized false positives.
32843         * cse.c (fold_rtx): Likewise.
32844         * loop-invariant.c (gain_for_invariant): Likewise.
32845
32846 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32847
32848         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
32849         set the memory attributes in all cases but clear MEM_EXPR if need be.
32850
32851 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32852
32853         PR tree-optimization/64434
32854         * cfgexpand.c (reorder_operands): New function.
32855         (expand_gimple_basic_block): Insert call of reorder_operands if
32856         optimized is true.
32857
32858 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
32859
32860         * config/mips/micromips.md (*swp): Remove explicit parallel.
32861         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
32862         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
32863         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
32864         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
32865         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
32866         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
32867         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
32868         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
32869         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
32870         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
32871         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
32872         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
32873         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
32874         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
32875         (mips_wrdsp): Likewise.
32876         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
32877         parallel.
32878         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
32879         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
32880         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
32881         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
32882         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
32883         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
32884         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
32885         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
32886         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
32887
32888 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32889
32890         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
32891         (mips_print_operand): Support 'y' to print exact log2 in decimal
32892         of a const_int.
32893         * config/mips/mips.h (ISA_HAS_LSA): New define.
32894         (ISA_HAS_DLSA): Likewise.
32895         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
32896         * config/mips/predicates.md (const_immlsa_operand): New predicate.
32897
32898 2015-01-15  Martin Liska  <mliska@suse.cz>
32899
32900         PR target/64377
32901         * optc-save-gen.awk: Add support for array types.
32902
32903 2015-01-15  Richard Biener  <rguenther@suse.de>
32904
32905         PR middle-end/64365
32906         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
32907         for MEM_REF access functions with the same base can never partially
32908         overlap.
32909
32910 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
32911
32912         * common.opt: New option -fstack-protector-explicit.
32913         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
32914         (stack_protect_decl_phase): Handle stack_protect attribute for
32915         explicit stack protection requests.
32916         (expand_used_vars): Similarly.
32917         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
32918         * doc/extend.texi: Add documentation for "stack_protect" attribute.
32919         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
32920
32921 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
32922
32923         PR target/53988
32924         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
32925         reg-reg copies.
32926         (sh_extending_set_of_reg): New struct.
32927         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
32928         sh_remove_reg_dead_or_unused_notes): New Declarations.
32929         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
32930         sh_find_extending_set_of_reg, sh_split_tst_subregs,
32931         sh_extending_set_of_reg::use_as_extended_reg): New functions.
32932         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
32933         convert to insn_and_split and use new function sh_split_tst_subregs.
32934
32935 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
32936
32937         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
32938         option.
32939         (Optimization Options): Move -fuse-ld documentation to...
32940         (Link Options): ...here.
32941
32942 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32943
32944         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
32945         offsets.
32946         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
32947         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
32948         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
32949         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
32950         instead of ZR for the memory operand of LL/SC.
32951         (compare_and_swap_12, sync_add<mode>): Likewise.
32952         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
32953         (sync_new_<optab>_12, sync_nand_12): Likewise.
32954         (sync_old_nand_12, sync_new_nand_12): Likewise.
32955         (sync_sub<mode>, sync_old_add<mode>): Likewise.
32956         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
32957         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
32958         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
32959         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
32960         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
32961         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
32962         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
32963         * doc/md.texi (ZC): Update description.
32964
32965 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32966
32967         * builtins.c (expand_builtin_atomic_exchange): Remove error when
32968         memory model is CONSUME.
32969         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
32970         expand_builtin_atomic_store): Change invalid memory model errors to
32971         warnings.
32972         (expand_builtin_atomic_clear): Change invalid model errors to warnings
32973         and issue warning for CONSUME.
32974
32975 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
32976
32977         * lto-cgraph: Update function comments for
32978         lto_symtab_encoder_encode_*.
32979
32980 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32981
32982         * Makefile.in (site.exp): Do not set ENABLE_LTO.
32983
32984 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32985
32986         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
32987         * lto-cgraph.c (select_what_to_stream): Remove argument, use
32988         lto_stream_offload_p instead.
32989         * lto-streamer.h (select_what_to_stream): Remove argument.
32990         * passes.c (ipa_write_summaries): Likewise.
32991         * tree-pass.h (ipa_write_summaries): Likewise.
32992
32993 2015-01-14  Richard Biener  <rguenther@suse.de>
32994
32995         PR tree-optimization/59354
32996         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
32997         groups larger than the slp group size as having gaps.
32998
32999 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
33000
33001         PR middle-end/59448
33002         * builtins.c (get_memmodel): Promote consume to acquire always.
33003
33004 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
33005
33006         PR target/64386
33007         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
33008         V32HImode.
33009
33010 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
33011
33012         PR target/64393
33013         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
33014         Enable AVX512BW.
33015         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
33016         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
33017         AVX512VBMI, as it implies AVX512BW.
33018
33019 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
33020
33021         PR target/64387
33022         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
33023         (vec_unpacks_hi_v16sf): Ditto.
33024
33025 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33026
33027         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
33028         is not available.
33029
33030 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33031
33032         * doc/invoke.texi (mapcs): Mention deprecation.
33033         (mapcs-frame): Likewise.
33034
33035 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33036
33037         PR target/64453
33038         * config/arm/arm.c (callee_saved_reg_p): Define.
33039         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
33040         register is callee saved instead of !call_used_regs[reg].
33041         (thumb1_compute_save_reg_mask): Likewise.
33042
33043 2015-01-14  Hale Wang  <hale.wang@arm.com>
33044
33045         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
33046         Cortex-M7.
33047
33048 2015-01-14  Richard Biener  <rguenther@suse.de>
33049
33050         PR lto/64415
33051         * tree-inline.c (insert_debug_decl_map): Check destination
33052         function MAY_HAVE_DEBUG_STMTS.
33053         (insert_init_debug_bind): Likewise.
33054         (insert_init_stmt): Remove redundant check.
33055         (remap_gimple_stmt): Drop debug stmts if the destination
33056         function has var-tracking assignments disabled.
33057
33058 2015-01-14  Martin Liska  <mliska@suse.cz>
33059
33060         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
33061         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
33062
33063 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33064
33065         PR target/64460
33066         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
33067         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
33068
33069 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
33070
33071         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
33072         level from an ARCH; do not inject the default.
33073         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
33074         MIPS_ISA_LEVEL_SPEC.
33075         (MIPS_ISA_NAN2008_SPEC): Update comment.
33076         (BASE_DRIVER_SELF_SPECS): Likewise.
33077         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
33078         MIPS_DEFAULT_ISA_LEVEL_SPEC.
33079         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
33080         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
33081         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
33082
33083 2015-01-14  Richard Biener  <rguenther@suse.de>
33084
33085         PR tree-optimization/64493
33086         PR tree-optimization/64495
33087         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
33088         assign the proper vectorized PHI to the inner loop exit PHIs.
33089
33090 2015-01-14  Joey Ye  <joey.ye@arm.com>
33091
33092         * config/arm/arm.c (arm_compute_save_reg_mask):
33093         Do not save lr in case of tail call.
33094         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
33095
33096 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
33097
33098         * tree-vrp.c (check_array_ref): Emit more warnings
33099         for warn_array_bounds >= 2.
33100         * common.opt: New option -Warray-bounds=.
33101         * doc/invoke.texi: Document -Warray-bounds=.
33102
33103 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33104
33105         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
33106         (mforbid-fp-as-gp): Remove.
33107         (mex9): Remove.
33108         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
33109         (nds32_symbol_load_store_p): Remove.
33110         (nds32_fp_as_gp_check_available): Clean up implementation.
33111         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
33112         cases.
33113         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
33114         fp-as-gp and ex9 cases.
33115
33116 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
33117
33118         * tree-profile.c (init_ic_make_global_vars): Drop workaround
33119         for bintuils bug 14342.
33120         (init_ic_make_global_vars): Likewise.
33121         (gimple_init_edge_profiler): Likewise.
33122         (gimple_gen_ic_func_profiler): Likewise.
33123
33124 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
33125
33126         * ipa-inline.c (inline_small_functions): Swap the operands in
33127         enum.
33128
33129 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
33130
33131         PR ipa/64481
33132         * ipa-inline-analysis.c (node_growth_cache): Remove.
33133         (initialize_growth_caches): Do not initialize it.
33134         (free_growth_caches): Do not free it.
33135         (do_estimate_growth): Rename to ...
33136         (estimate_growth): ... this one; drop growth cache code.
33137         (growth_likely_positive): Always go the heuristics way.
33138         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
33139         (reset_edge_caches): Do not reset node growth.
33140         (heap_edge_removal_hook): Do not maintain cache.
33141         (inline_small_functions): Likewise; strenghten sanity check.
33142         (ipa_inline): Do not maintain caches.
33143         * ipa-inline.h (node_growth_cache): Remove.
33144         (do_estimate_growth): Remove to ...
33145         (estimate_growth): this one; remove inline version.
33146         (reset_node_growth_cache): Remove.
33147
33148 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
33149
33150         PR ipa/64565
33151         * ipa-inline.c (inline_small_functions): Update callee keys after
33152         resolving speculation
33153         (inline_small_functions): Always check monotonicity of the queue.
33154
33155 2015-01-13  Marek Polacek  <polacek@redhat.com>
33156
33157         PR middle-end/64391
33158         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
33159
33160 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
33161
33162         PR rtl-optimization/64286
33163         * ree.c (combine_reaching_defs): Move part of comment earlier,
33164         remove !SCALAR_INT_MODE_P check.
33165         (add_removable_extension): Don't add vector mode
33166         extensions if all uses of the source register aren't the same
33167         vector extensions.
33168
33169 2015-01-13  Renlin Li  <renlin.li@arm.com>
33170
33171         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
33172         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
33173
33174 2015-01-13  Martin Liska  <mliska@suse.cz>
33175
33176         * ipa-icf.c (sem_function::equals_private): Call new functions
33177         cl_target_option_print_diff and cl_optimization_print_diff.
33178         * optc-save-gen.awk (cl_target_option_print_diff): New function.
33179         (cl_optimization_print_diff): Likewise.
33180         * opth-gen.awk: Likewise.
33181
33182 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
33183
33184         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
33185         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
33186         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
33187         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
33188         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
33189         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
33190
33191 2015-01-13  Andrew Pinski  <apinski@cavium.com>
33192
33193         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
33194         instead of src mode.
33195
33196 2015-01-13  Richard Biener  <rguenther@suse.de>
33197
33198         PR lto/64373
33199         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
33200         DECL_CONTEXT.
33201
33202 2015-01-13  Andrew Pinski  <apinski@cavium.com>
33203
33204         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
33205         volatile mems.
33206         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
33207
33208 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
33209
33210         PR middle-end/63974
33211         * cfgexpand.c (expand_computed_goto): Don't call
33212         convert_memory_address here.
33213
33214 2015-01-13  Richard Biener  <rguenther@suse.de>
33215
33216         PR tree-optimization/64406
33217         * tree-loop-distibution.c (pass_loop_distribution::execute):
33218         Reset the SCEV hashtable if we distributed anything.
33219
33220 2015-01-13  Richard Biener  <rguenther@suse.de>
33221
33222         PR tree-optimization/64404
33223         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
33224         SLP types for CSEd loads.
33225
33226 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33227
33228         PR tree-optimization/64436
33229         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
33230         merge of two symbolic numbers for a bitwise OR to ...
33231         (perform_symbolic_merge): This. Also fix computation of the range and
33232         end of the symbolic number corresponding to the result of a bitwise OR.
33233
33234 2015-01-13  Richard Biener  <rguenther@suse.de>
33235
33236         PR tree-optimization/64568
33237         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
33238         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
33239
33240 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33241
33242         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
33243         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
33244
33245 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33246
33247         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
33248         target-specific symbol_ref flag.
33249         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
33250         resides in rodata section.
33251         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
33252         (nds32_encode_section_info): New function.
33253
33254 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33255
33256         * config/nds32/nds32.md (call): Use pseudo instruction bal which
33257         clobbers TA_REGNUM if large code model is specified.
33258         (call_register): Likewise.
33259         (call_immediate): Likewise.
33260         (call_value): Likewise.
33261         (call_value_register): Likewise.
33262         (call_value_immediate): Likewise.
33263
33264 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33265
33266         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
33267         (TARGET_CMODEL_MEDIUM): New macro.
33268         (TARGET_CMODEL_LARGE): New macro.
33269         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
33270         code model setting in assembly code.
33271
33272 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33273
33274         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
33275         Remove MASK_GP_DIRECT flag.
33276         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
33277         one of the multilib default options.
33278         * config/nds32/nds32.opt (mgp-direct): Remove.
33279         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
33280         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
33281
33282 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33283
33284         * config/nds32/nds32.opt (mcmodel): Add new option.
33285         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
33286         to describe code model.
33287
33288 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
33289
33290         PR target/64479
33291         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
33292
33293 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
33294
33295         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
33296         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33297         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
33298         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
33299         __builtin_sh_set_fpscr.
33300
33301 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33302
33303         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
33304         after a funtion name just to indicate it is a function.
33305         ([-fsanitize-undefined-trap-on-error]): Likewise.
33306         ([-fdbg-cnt=]): Likewise.
33307         ([-mmemcpy]): Likewise.
33308         ([-mflush-func]): Likewise.
33309         ([-msynci]): Likewise.
33310
33311 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33312
33313         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
33314         example.
33315
33316 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
33317
33318         PR tree-optimization/64563
33319         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
33320         instead of != VR_VARYING.
33321
33322         PR target/64513
33323         * config/i386/i386.c (ix86_expand_prologue): Add
33324         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
33325
33326         PR tree-optimization/64454
33327         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
33328         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
33329         for signed or [0, op1 - 1] for unsigned modulo.
33330         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
33331         even if op1 does not satisfy integer_pow2p.
33332
33333         PR other/64370
33334         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
33335
33336 2015-01-12  Jeff Law  <law@redhat.com>
33337
33338         PR target/64461
33339         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
33340         (trunchiqi2, truncsihi2): Similarly.
33341
33342         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
33343         rather than calling F.
33344
33345 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33346
33347         * tsan.c (instrument_expr): Use force_gimple_operand.
33348         Use may_be_nonaddressable_p instead of is_gimple_addressable.
33349
33350 2015-01-12  Richard Biener  <rguenther@suse.de>
33351
33352         PR tree-optimization/64530
33353         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
33354         back dr1.
33355
33356 2015-01-12  Richard Biener  <rguenther@suse.de>
33357
33358         PR middle-end/64357
33359         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
33360         latches properly.
33361
33362 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33363
33364         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
33365         Cortex-A17 tuning parameters.
33366         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
33367
33368 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33369
33370         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
33371         * config/arm/arm.c (arm_macro_fusion_p): New function.
33372         (arm_macro_fusion_pair_p): Likewise.
33373         (TARGET_SCHED_MACRO_FUSION_P): Define.
33374         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
33375         (ARM_FUSE_NOTHING): Likewise.
33376         (ARM_FUSE_MOVW_MOVT): Likewise.
33377         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
33378         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
33379         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
33380         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
33381         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
33382         arm_cortex_a5_tune): Specify fuseable_ops value.
33383
33384 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
33385
33386         PR bootstrap/64561
33387         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
33388         test for PIE with copy reloc.
33389         * configure: Regenerated.
33390
33391 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33392
33393         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
33394         in gen_rtx_REG.
33395         (arm_tls_descseq_addr): Likewise.
33396         (arm_gen_movmemqi): Likewise.
33397         (arm_expand_epilogue_apcs_frame): Likewise.
33398         (arm_expand_epilogue): Likewise.
33399         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
33400         in gen_rtx_REG.
33401
33402 2015-01-12  Martin Liska  <mliska@suse.cz>
33403
33404         PR ipa/64550
33405         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
33406         volatility for correct operands.
33407
33408 2015-01-12  Martin Liska  <mliska@suse.cz>
33409
33410         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
33411         indication that a function is not leaf.
33412         (sem_function::compare_polymorphic_p): Likewise.
33413
33414 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33415
33416         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
33417         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
33418         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
33419         fold-const.h, tree-check.h.
33420
33421 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33422
33423         PR ipa/63967
33424         PR ipa/64425
33425         * ipa-inline.c (compute_uninlined_call_time,
33426         compute_inlined_call_time): Use counts for extra precision when
33427         needed possible.
33428         (big_speedup_p): Fix formating.
33429         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
33430         (relative_time_benefit): Remove.
33431         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
33432         merge guessed and read profile paths.
33433         (inline_small_functions): Count only !optimize_size functions into
33434         initial size; be more lax about sanity check when profile is used;
33435         be sure to update inlined function profile when profile is read.
33436
33437 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33438
33439         PR ipa/63470
33440         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
33441         cost when edge becomes direct.
33442         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
33443         is resolved or when introducing new speculation.
33444
33445 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
33446
33447         PR ipa/64551
33448         PR ipa/64552
33449         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
33450         '||' to fix typo issue.
33451
33452         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
33453         accept and return NULL.
33454
33455 2015-01-12  Martin Liska  <mliska@suse.cz>
33456
33457         * cgraph.c (cgraph_edge::remove_callee): Move function to header
33458         file for being inlined.
33459         (cgraph_set_edge_callee): Delete.
33460         (cgraph_edge::redirect_callee): Move function to header file
33461         for being inlined.
33462         (cgraph_edge::make_direct): Use new function.
33463         (cgraph_edge::dump_edge_flags): New function created from
33464         static dump_edge_flags function.
33465         (cgraph_node::dump): Use new function.
33466         (cgraph_edge::verify_count_and_frequency): New function created
33467         from verify_edge_count_and_frequency.
33468         (cgraph_edge::verify_corresponds_to_fndecl): New function created
33469         from verify_edge_corresponds_to_fndecl.
33470         (verify_edge_corresponds_to_fndecl): Delete.
33471         (cgraph_node::verify_node): Use new function.
33472         * cgraph.h (cgraph_edge::set_callee): New function.
33473         (cgraph_edge::dump_edge_flags): Likewise.
33474         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
33475
33476 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
33477
33478         * ipa-utils.c (estimate_function_body_sizes): Do not
33479         free node params when called late with early=true.
33480
33481 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
33482
33483         * doc/md.texi (Instruction Patterns): Rewrite text for
33484         clarity.
33485         (Example): Likewise.
33486
33487 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
33488
33489         * doc/invoke.texi (Option Summary): Break long lines.
33490         [(-fdiagnostics-color)]: Put long literal in @smallexample
33491         instead of inline.
33492         [(-fsanitize-recover)]: Likewise.
33493         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
33494         [(-ffast-math)]: Likewise.
33495         [(--param max-inline-insns-recursive)]: Likewise.
33496         [(--param max-inline-recursive-depth)]: Likewise.
33497         [(-mno-text-section-literals)]: Likewise.
33498
33499 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
33500
33501         * doc/install.texi: Update for libgomp being renamed from "GNU
33502         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
33503         Runtime Library".
33504         * doc/sourcebuild.texi: Likewise.
33505
33506 2015-01-10  Anthony Green  <green@moxielogic.com>
33507
33508         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
33509         mul.x availability for moxiebox configuration.
33510
33511 2015-01-09  Anthony Green  <green@moxielogic.com>
33512
33513         * config/moxie/moxie.md: Tabify assembly output.
33514
33515 2015-01-09  Anthony Green  <green@moxielogic.com>
33516
33517         * config/moxie/moxie.md (CC_REG): Correct register definition.
33518
33519 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
33520
33521         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
33522         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
33523         of log files.
33524
33525 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33526
33527         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
33528
33529 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
33530             Jakub Jelinek  <jakub@redhat.com>
33531
33532         PR middle-end/64412
33533         * lto-streamer.h (lto_stream_offload_p): New declaration.
33534         * lto-streamer.c (lto_stream_offload_p): New variable.
33535         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
33536         at the same time as section_name_prefix.
33537         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
33538         if lto_stream_offload_p.
33539         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
33540         stream TREE_TARGET_OPTION if lto_stream_offload_p.
33541         (write_ts_function_decl_tree_pointers): Don't
33542         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
33543         * tree-streamer-in.c (unpack_value_fields): Don't stream
33544         TREE_TARGET_OPTION in if ACCEL_COMPILER.
33545         (lto_input_ts_function_decl_tree_pointers): Don't stream
33546         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
33547         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
33548         instead of section_name_prefix string comparisons.
33549
33550 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
33551
33552         PR rtl-optimization/64536
33553         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
33554         tablejumps.
33555
33556 2015-01-09  Michael Collison  <michael.collison@linaro.org>
33557
33558         PR tree-optimization/64322
33559         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
33560         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
33561
33562 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33563
33564         PR rtl-optimization/64539
33565         * regcprop.c (kill_clobbered_values): Factor out of ...
33566         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
33567         instead of note_stores with kill_clobbered_value.
33568
33569 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33570
33571          * ginclude/unwind-arm-common.h: Revert previous commit.
33572
33573 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33574
33575         * config.gcc (arm*-*-freebsd*): New configuration.
33576         * config/arm/freebsd.h: New file.
33577         * config.host: Add extra components for arm*-*-freebsd*.
33578         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
33579         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
33580
33581 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33582
33583         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
33584         for -mcpu=e6500.
33585         * config/rs6000/t-rtems: Add e6500 multilibs.
33586
33587 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33588
33589         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
33590         MPC8540.
33591
33592 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33593
33594         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
33595         MULTILIB_EXCEPTIONS.
33596
33597 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33598
33599         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
33600         MULTILIB_EXCEPTIONS.
33601
33602 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33603
33604         * config/arm/t-rtems-eabi: Rename to...
33605         * config/arm/t-rtems: ...this.
33606         * config/arm/rtems-eabi.h: Rename to...
33607         * config/arm/rtems.h: ...this.
33608         * config.gcc (arm*-*-rtems*): Reflect changes above.
33609
33610 2015-01-09  Richard Biener  <rguenther@suse.de>
33611
33612         PR tree-optimization/64410
33613         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
33614         on the LHS.
33615         (execute_update_addresses_taken): Deal with that.
33616         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
33617         loads/stores for complex variables.
33618
33619 2015-01-09  Martin Liska  <mliska@suse.cz>
33620
33621         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
33622         name comparison.
33623         (func_checker::compare_memory_operand): New function.
33624         (func_checker::compare_operand): Split case to newly
33625         added functions.
33626         (func_checker::compare_cst_or_decl): New function.
33627         (func_checker::compare_gimple_call): Identify
33628         memory operands.
33629         (func_checker::compare_gimple_assign): Likewise.
33630         * ipa-icf-gimple.h: New function.
33631
33632 2015-01-09  Martin Liska  <mliska@suse.cz>
33633
33634         PR ipa/64503
33635         * sreal.c (sreal::dump): Change unsigned format to signed for
33636         m_exp value.
33637         (sreal::to_double): Replace exp2 with scalbln.
33638
33639 2015-01-09  Martin Liska  <mliska@suse.cz>
33640
33641         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
33642         * ipa-icf.c (sem_function::equals_private): Add support for target and
33643         (sem_item_optimizer::merge_classes): Remove redundant function
33644         optimization flags comparison.
33645         * tree.h (target_opts_for_fn): New function.
33646
33647 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33648
33649         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
33650
33651 2015-01-09  Kito Cheng  <kito@0xlab.org>
33652
33653         PR rtl-optimization/64348
33654         * lra-constraints.c (split_reg): Fix caller-save store/restore
33655         instruction generation.
33656
33657 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
33658
33659         PR gcov-profile/61790
33660         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
33661         long long.  Fallback to int64_t if host doesn't have long long and
33662         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
33663
33664 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33665
33666         PR tree-optimization/63989
33667         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
33668         from 1000 to 10000.
33669         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
33670         (get_stridx): If we don't have a record for certain SSA_NAME,
33671         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
33672         constant offset, call get_stridx_plus_constant.
33673         (get_stridx_plus_constant): New function.
33674         (zero_length_string): Don't use get_stridx here.
33675
33676         PR target/55023
33677         PR middle-end/64388
33678         * dse.c (struct insn_info): Mention frame_read set also
33679         before reload for tail calls on some targets.
33680         (scan_insn): Revert 2014-12-22 change.  Set frame_read
33681         also before reload for tail calls if
33682         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
33683         instead of add_non_frame_wild_read for non-const/memset
33684         tail calls after reload.
33685
33686 2015-01-08  Jason Merrill  <jason@redhat.com>
33687
33688         * ubsan.c (do_ubsan_in_current_function): New.
33689         (pass_ubsan::gate): Use it.
33690         * ubsan.h: Declare it.
33691         * convert.c (convert_to_integer): Use it.
33692
33693 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33694
33695         PR target/64338
33696         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
33697         compare_code when it is unconditionally overwritten afterwards.
33698         Use ix86_reverse_condition instead of reverse_condition.  Don't
33699         change code if *reverse_condition* returned UNKNOWN and don't
33700         swap ct/cf and negate diff in that case.
33701
33702 2015-01-08  Mike Stump  <mikestump@comcast.net>
33703
33704         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
33705         (pass_tsan_O0::gate): Likewise.
33706         * extend.texi (Function Attributes): Add no_sanitize_thread
33707         documentation.
33708
33709 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
33710
33711         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
33712         for registering builtins.
33713         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
33714         add -fopenmp to the argv_obstack used when invoking
33715         compile_for_target.
33716
33717         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
33718         add "-m32" or "-m64" to argv_obstack.
33719         (generate_host_descr_file): Likewise, when invoking host_compiler.
33720         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
33721         ld.
33722
33723 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33724
33725         * config/sh/sh-mem.cc: Use constant as second operand when emitting
33726         tstsi_t insns.
33727
33728 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33729
33730         PR target/55212
33731         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
33732         constant load if constant operand fits into I08.
33733
33734 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33735
33736         PR sanitizer/64336
33737         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
33738         and TREE_THIS_VOLATILE for MEM_REFs.
33739         (build5_stat): Fix up initialization of TREE_READONLY and
33740         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
33741
33742 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
33743
33744         PR target/64533
33745         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
33746         of r for the second alternative of the destination operand.
33747
33748 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
33749
33750         PR target/36557
33751         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
33752
33753 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33754
33755         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
33756         keywords.
33757         ([-fivar-visibility], [-fvisibility]): Likewise.
33758
33759 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33760
33761         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
33762         the file where @code, @command, etc is more appropriate.
33763
33764 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
33765
33766         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
33767         of -mrecip= documentation.
33768
33769 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33770
33771         PR target/64505
33772         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
33773         correct reload handler if -m32 -mpowerpc64 is used.
33774
33775 2015-01-06  Tom de Vries  <tom@codesourcery.com>
33776
33777         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
33778
33779 2015-01-08  Christian Bruel  <christian.bruel@st.com>
33780
33781         PR target/64507
33782         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
33783
33784 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33785
33786         PR tree-optimization/63259
33787         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
33788         if optab exists for 16bit byteswap.
33789
33790 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
33791
33792         * opts.c (common_handle_option): Add support for
33793         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
33794         * doc/invoke.texi: Document -fno-sanitize=all,
33795         -f{,no-}sanitize-recover=all.  Document that
33796         -fsanitize=float-cast-overflow is not enabled
33797         by -fsanitize=undefined.  Fix up documentation
33798         of -f{,no-}sanitize-recover.
33799
33800 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
33801
33802         * config.gcc: Add Visium support.
33803         * configure.ac: Likewise.
33804         * configure: Regenerate.
33805         * doc/extend.texi (interrupt attribute): Add Visium.
33806         * doc/invoke.texi: Document Visium options.
33807         * doc/install.texi: Document Visium target.
33808         * doc/md.texi: Document Visium constraints.
33809         * common/config/visium: New directory.
33810         * config/visium: Likewise.
33811
33812 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33813
33814         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
33815         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
33816
33817 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33818
33819         * combine.c (combine_validate_cost): Do not count the cost of a
33820         split I2 twice.  Do not display it twice in the dump, either.
33821
33822 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33823
33824         Revert parts of r219199.
33825         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
33826         <inttypes.h>.
33827         ([-Wtraditional]): Restore markup on <limits.h>.
33828
33829 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
33830
33831         PR c++/31397
33832         * doc/invoke.texi: Document -Wsuggest-override.
33833
33834 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
33835
33836         PR rtl-optimization/64287
33837         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
33838         (process_options): Disable flag_ipa_ra if profiling.
33839
33840 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
33841
33842         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
33843
33844 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
33845
33846         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
33847         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
33848         put under #if TARGET_LOOPS guard.
33849
33850 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
33851
33852         * config/i386/i386.c (output_387_binary_op): Use std::swap.
33853
33854 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
33855
33856         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
33857         * rtl.h (refers_to_regno_p): Add overload.
33858         * cse.c: Use it.
33859         * bt-load.c: Likewise.
33860         * combine.c: Likewise.
33861         * df-scan.c: Likewise.
33862         * sched-deps.c: Likewise.
33863         * config/s390/s390.c: Likewise.
33864         * config/m32r/m32r.c: Likewise.
33865         * config/rs6000/spe.md: Likewise.
33866         * config/rs6000/rs6000.c: Likewise.
33867         * config/pa/pa.c: Likewise.
33868         * config/stormy16/stormy16.c: Likewise.
33869         * config/cris/cris.c: Likewise.
33870         * config/arc/arc.md: Likewise.
33871         * config/arc/arc.c: Likewise.
33872         * config/sh/sh.md: Likewise.
33873         * config/sh/sh.c: Likewise.
33874         * config/frv/frv.c: Likewise.
33875
33876 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33877
33878         PR sanitizer/64265
33879         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
33880         call as cleanup of the whole body.
33881         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
33882         * tsan.c (replace_func_exit): New function.
33883         (instrument_func_exit): Moved earlier.
33884         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
33885         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
33886         been found.
33887         (tsan_pass): Don't call instrument_func_exit.
33888         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
33889         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
33890         inlining.
33891
33892         PR sanitizer/64344
33893         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
33894         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
33895         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
33896         if the result is integer_zerop, return NULL_TREE.
33897         * convert.c (convert_to_integer): Pass expr as ARG.
33898
33899         PR tree-optimization/64465
33900         * tree-inline.c (redirect_all_calls): During inlining
33901         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
33902         changed the stmt to a non-throwing call.
33903
33904 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33905
33906         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
33907         etc markup throughout the file.
33908
33909 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33910
33911         Enable experimental TSAN support for Ada.
33912         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
33913
33914 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33915
33916         PR tree-optimization/64494
33917         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
33918         clear SSA_NAME_ANTI_RANGE_P flag.
33919
33920 2015-01-05  Marek Polacek  <polacek@redhat.com>
33921
33922         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
33923
33924 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33925
33926         Update copyright years.
33927
33928         * gcc.c (process_command): Update copyright notice dates.
33929         * gcov-dump.c: Ditto.
33930         * gcov.c: Ditto.
33931         * doc/cpp.texi: Bump @copying's copyright year.
33932         * doc/cppinternals.texi: Ditto.
33933         * doc/gcc.texi: Ditto.
33934         * doc/gccint.texi: Ditto.
33935         * doc/gcov.texi: Ditto.
33936         * doc/install.texi: Ditto.
33937         * doc/invoke.texi: Ditto.
33938
33939         * auto-profile.c, auto-profile.h: Fix up Copyright line.
33940
33941 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
33942
33943         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
33944         verb tense, etc.
33945         ([-fvtable-verify], [-fvtv-debug]): Likewise.
33946         ([-Wabi]): Likewise.
33947         ([-fmessage-length]): Likewise.
33948         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
33949         ([-Wno-discarded-qualifiers]): Likewise.
33950         ([-Wnodiscarded-array-qualifiers]): Likewise.
33951         ([-Wno-virtual-move-assign]): Likewise.
33952         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
33953         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
33954         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
33955         ([-fsanitize-undefined-trap-on-error]): Likewise.
33956         ([-floop-interchange]): Likewise.
33957         ([-ftree-coalesce-inlined-vars]): Likewise.
33958         ([-fvect-cost-model]): Likewise.
33959         ([-flto]): Likewise.
33960         ([--param]): Likewise.
33961         (Spec Files): Likewise.
33962         ([-mstrict-align]): Likewise.
33963         ([-mfix-cortex-a53-835769]): Likewise.
33964         ([-march], [-mtune]): Likewise.
33965         ([-mpic-register]): Likewise.
33966         ([-munaligned-access]): Likewise.
33967         ([-msp8]): Likewise.
33968         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
33969         (AVR Built-in Macros): Likewise.
33970         ([-mpreferred-stack-boundary]): Likewise.
33971         ([-mtune-crtl]): Likewise.
33972         ([-mashf]): Likewise.
33973         ([-mmcu=]): Likewise.
33974         ([-minrt]): Likewise.
33975         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
33976         ([-mupper-regs]): Likewise.
33977         ([-matomic-model]): Likewise.
33978         ([-mdiv]): Likewise.
33979         ([-mzdcbranch]): Likewise.
33980         ([-mdisable-callt]): Likewise.
33981         ([-msoft-float]): Likewise.
33982         ([-m8byte-align]): Likewise.
33983         ([-fstack-reuse]): Likewise.
33984
33985 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33986
33987         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
33988         Fix markup, light copy-editing.
33989         ([-fauto-profile]): Rewrite to fix formatting and content
33990         problems.
33991
33992 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33993
33994         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
33995         Copy-edit description.
33996         ([-fisolate-erroneous-paths-attribute]): Likewise.
33997         * common.opt (fisolate-erroneous-paths-dereference):
33998         Copy-edit description.
33999         (fisolate-erroneous-paths-attribute): Likewise.
34000
34001 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
34002
34003         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
34004         tidy grammar.
34005
34006 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
34007
34008         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
34009         ([-fvtv-debug]): Likewise.
34010         ([-Wc++-compat]): Likewise.
34011         ([-Wc++11-compat]): Likewise.
34012         ([-Wc++14-compat]): Likewise.
34013         ([-Wno-sized-deallocation]): Likewise.
34014         ([-femit-class-debug-always]): Likewise.
34015         ([-femit-struct-debug-detailed]): Likewise.
34016         ([-fno-keep-inline-dllexport]): Likewise.
34017         ([-fira-algorithm]): Likewise.
34018         ([-fira-region]): Likewise.
34019         ([-flra-remat]): Likewise.
34020         ([-fipa-ra]): Likewise.
34021         ([-fhoist-adjacent-loads]): Likewise.
34022         ([-fisolate-erroneous-paths-dereference]): Likewise.
34023         ([-fisolate-erroneous-paths-attribute]): Likewise.
34024         ([-ftree-switch-conversion]): Likewise.
34025         ([-ftree-tail-merge]): Likewise.
34026         ([-ftree-loop-if-convert]): Likewise.
34027         ([-ftree-loop-if-convert-stores]): Likewise.
34028         ([-ftree-loop-distribution]): Likewise.
34029         ([-ftree-loop-distribute-patterns]): Likewise.
34030         ([-flto-compression-level]): Likewise.
34031         ([-flto-report]): Likewise.
34032         ([-flto-report-wpa]): Likewise.
34033         ([-fuse-linker-plugin]): Likewise.
34034         ([-mfix-cortex-a53-835769]): Likewise.
34035         ([-mno-fix-cortex-a53-835769]): Likewise.
34036         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
34037         explicit listing; add a note to the discussion indicating they
34038         exist.  Reorder table to group similar options.  Add missing
34039         @opindex entries.  Add @need commands throughout the table to
34040         allow it to be split across multiple pages.
34041         ([-m8bit-idiv]): Fix @opindex.
34042         ([-mavx256-split-unaligned-load]): Likewise.
34043         ([-mavx256-split-unaligned-store]): Likewise.
34044         ([-mstack-protector-guard]): Likewise.
34045         ([-mcpu=]): Likewise.
34046         ([-mcpu]): Likewise.
34047         ([-mpointer-size=]): Likewise.
34048
34049 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
34050
34051         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
34052         instead of `m' constraint.  Likewise for unnamed movb comparison
34053         patterns using reg_before_reload_operand predicate.
34054         * config/pa/predicates.md (reg_before_reload_operand): Tighten
34055         predicate to reject register index and LO_SUM DLT memory forms
34056         after reload.
34057
34058 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
34059
34060         * doc/invoke.texi (Option Summary): Fix spelling of
34061         -fdevirtualize-at-ltrans.
34062         ([-fdevirtualize]): Fix markup.
34063         ([-fdevirtualize-speculatively]): Fix typo.
34064         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
34065         implementor-speaky.
34066         * common.opt (fdevirtualize-at-ltrans): Likewise.
34067         * ipa-devirt.c: Fix typos in comments throughout the file.
34068         (ipa_devirt): Fix typos in format strings for dump output.
34069
34070 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
34071
34072         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
34073         discussion of defaults, light copy-editing.
34074
34075 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34076
34077         * tsan.c (instrument_expr): corrected previous checkin.
34078
34079 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34080
34081         Instrument bit field and unaligned accesses for TSAN.
34082         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
34083         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
34084         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
34085         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
34086         unaligned memory regions.
34087
34088 2015-01-01  Anthony Green  <green@moxielogic.com>
34089
34090         * config/moxie/predicates.md (moxie_general_movsrc_operand):
34091         Restrict move source register offsets to 16 bits.
34092 \f
34093 Copyright (C) 2015 Free Software Foundation, Inc.
34094
34095 Copying and distribution of this file, with or without modification,
34096 are permitted in any medium without royalty provided the copyright
34097 notice and this notice are preserved.