Rename logb and significand folds
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * builtins.c (fold_builtin_logb): Rename to...
4         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
5         (fold_builtin_significand): Rename to...
6         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
7         (fold_builtin_1): Update accordingly.
8
9 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
10
11         * builtins.c (fold_builtin_fmin_fmax): Delete.
12         (fold_builtin_2): Handle constant fmin and fmax arguments here.
13         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
14
15 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
16
17         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
18         for register extension into sign and zero register extension.
19         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
20         for sign and zero register extension.
21         (cortexa57_addrcost_table): Likewise.
22         (xgene1_addrcost_table): Likewise.
23
24 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
25
26         * fold-const.c (fold_minmax): Delete.
27         (fold_binary_loc): Don't call it.
28         * match.pd: Add rules previously handled by fold_minmax.
29
30 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
31
32         * builtins.c (fold_builtin_fma): Remove constant handling.
33         (fold_builtin_3): Handle constant fma arguments here.
34
35 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
36
37         * builtins.c (fold_builtin_fabs): Remove constant handling.
38         (fold_builtin_abs): Likewise.
39
40 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
41
42         * builtins.c (fold_builtin_copysign): Delete.
43         (fold_builtin_2): Handle constant copysign arguments here.
44         * match.pd: Add rules previously handled by fold_builtin_copysign.
45
46 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
47
48         * builtins.c (fold_builtin_signbit): Delete.
49         (fold_builtin_2): Handle constant signbit arguments here.
50         * match.pd: Add rules previously handled by fold_builtin_signbit.
51
52 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
53
54         * match.pd: Handle sqrt(x) cmp 0 specially.
55
56 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
57
58         * tree-vect-generic.c (expand_vector_operations_1): Check
59         optab type before using it.
60
61 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
62
63         * config/aarch64/aarch64-protos.h
64         (struct tune_params): Add autoprefetcher_model field.
65         * config/aarch64/aarch64.c: Include params.h
66         (generic_tunings): Specify autoprefetcher_model value.
67         (cortexa53_tunings): Likewise.
68         (cortexa57_tunings): Likewise.
69         (cortexa72_tunings): Likewise.
70         (thunderx_tunings): Likewise.
71         (xgene1_tunings): Likewise.
72         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
73         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
74         (aarch64_override_options_internal): Set
75         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
76
77 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
78
79         * builtins.c (fold_builtin_exponent): Delete.
80         (fold_builtin_2): Handle constant expN arguments here.
81         * match.pd: Fold expN(logN(x)) -> x.
82
83 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
84
85         * builtins.c (fold_builtin_powi): Delete.
86         (fold_builtin_2): Handle constant powi arguments here.
87         * match.pd: Add rules previously handled by fold_builtin_powi.
88
89 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
90
91         * builtins.c (fold_builtin_pow): Delete in favor of...
92         (fold_const_builtin_pow): ...this new function.  Only handle constant
93         arguments.
94         (fold_builtin_2): Update accordingly.
95         * match.pd: Add rules previously handled by fold_builtin_pow.
96
97 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
98
99         * builtins.c (fold_builtin_hypot): Delete.
100         (fold_builtin_2): Handle constant hypot arguments here.
101         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
102         hypot(x, x) to fabs(x)*sqrt(2).
103
104 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
105
106         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
107         instead of make_ssa_name if not yet in SSA form.
108
109 2015-10-27  Richard Biener  <rguenther@suse.de>
110
111         * cfg.c (free_edge): Add function argument and use it instead of cfun.
112         (clear_edges): Likewise.
113         * cfg.h (clear_edges): Adjust prototype.
114         * cfgexpand.c (pass_expand::execute): Adjust.
115         * cfgloop.c (release_recorded_exits): Add function argument and use
116         it instead of cfun.
117         * cfgloop.h (release_recorded_exits): Adjust prototype.
118         (loops_state_satisfies_p): Add overload with function argument.
119         (loops_state_set): Likewise.
120         (loops_state_clear): Likewise.
121         (struct loop_iterator): Add function argument to constructor
122         and iterator and use it instead of cfun.
123         (FOR_EACH_LOOP_FN): New macro.
124         (loop_optimizer_finalize): Add overload with function argument.
125         * loop-init.c (loop_optimizer_init): Adjust.
126         (fix_loop_structure): Likewise.
127         (loop_optimizer_finaliz): Add function argument and use it
128         instead of cfun.
129         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
130         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
131         * cgraph.c (release_function_body): Do not push/pop cfun.
132         * final.c (rest_of_clean_state): Adjust.
133         * graphite.c (graphite_finalize): Likewise.
134         * tree-ssa-copy.c (fini_copy_prop): Likewise.
135         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
136         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
137         (tree_unroll_loops_completely): Likewise.
138         (pass_complete_unrolli::execute): Likewise.
139         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
140         Add function argument and use it instead of cfun.
141         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
142         Adjust prototype.
143         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
144         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
145         instead of cfun.
146         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
147         * tree-ssanames.c (fini_ssanames): Add function argument and use it
148         instead of cfun.
149         * tree-ssanames.c (fini_ssanames): Adjust prototype.
150         * tree-vrp.c (execute_vrp): Adjust.
151         * value-prof.c (free_histograms): Add function argument and use it
152         instead of cfun.
153         * value-prof.h (free_histograms): Adjust prototype.
154
155 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
156
157         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
158         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
159         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
160
161 2015-10-27  Tom de Vries  <tom@codesourcery.com>
162
163         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
164         field_type.
165
166 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
167
168         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
169         (inv_can_prop_to_addr_use): New function.
170         (record_use): Call can_prop_to_addr_uses, set the new field.
171         (get_inv_cost): Count cost if inv can't be propagated into its
172         address uses.
173
174 2015-10-26  Doug Evans  <dje@google.com>
175
176         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
177
178 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
179
180         * match.pd (fold_widened_comparison): Apply simplifications to all
181         integral types.
182
183 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
184
185         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
186         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
187         * doc/tm.texi: Regenerated.
188         * reorg.c (dbr_schedule): Use new hook.
189         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
190
191 2015-10-26  Jeff Law  <law@redhat.com>
192
193         PR tree-optimization/68013
194         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
195         Make sure the first block in the path is in VISITED_BBs.
196
197 2015-10-26  Richard Biener  <rguenther@suse.de>
198         Dominik Vogt  <vogt@linux.vnet.ibm.com>
199
200         PR middle-end/67443
201         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
202         Properly prune ref->ref for accesses outside of ref.
203
204 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
205
206         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
207         new statements to be inserted if inplace.  Allow calls to have
208         nonempty sequences.
209
210 2015-10-26  Richard Biener  <rguenther@suse.de>
211
212         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
213         (do_valueize): New function.
214         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
215         replace_uses_by.
216         * tree-ssa-threadedge.c: Remove builtins.h include, include
217         gimple-fold.h
218         (fold_assignment_stmt): Remove.
219         (threadedge_valueize): New function.
220         (record_temporary_equivalences_from_stmts): Use
221         gimple_fold_stmt_to_constant_1, note additional cleanup
222         opportunities.
223
224 2015-10-26  Richard Biener  <rguenther@suse.de>
225
226         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
227         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
228
229 2015-10-26  Alan Hayward <alan.hayward@arm.com>
230
231         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
232         VEC_COND_EXPR types.
233
234 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
235
236         * auto-inc-dec.c (insert_move_insn_before): Delete.
237         (attempt_change): Remember to cost the simple move in the
238         FORM_PRE_ADD and FORM_POST_ADD cases.
239
240 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
241
242         PR target/68091
243         * config/sh/sh.c (sh_vector_mode_supported_p): Use
244         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
245
246 2015-10-26  Tom de Vries  <tom@codesourcery.com>
247
248         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
249         factored out of ...
250         (intra_create_variable_infos): ... here.
251
252 2015-10-26  Tom de Vries  <tom@codesourcery.com>
253
254         * tree-ssa-structalias.c (intra_create_variable_infos): Add
255         restrict_pointer_p and recursive_restrict_p variables.
256
257 2015-10-26  Tom de Vries  <tom@codesourcery.com>
258
259         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
260         get_vi_for_tree call.
261
262 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
263
264         PR middle-end/67989
265         * optabs.c (expand_atomic_compare_and_swap): Handle case when
266         ptarget_oval or ptarget_bool are const0_rtx.
267
268 2015-10-26  Christian Bruel  <christian.bruel@st.com>
269
270         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
271         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
272         * cp/method.c (implicitly_declare_fn): Likewise.
273         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
274         * java/class.c (add_method_1): Likewise.
275
276 2015-10-26  Richard Biener  <rguenther@suse.de>
277
278         * alloc-pool.h (base_pool_allocator): Use placement new.
279         (base_pool_allocator::remove): Likewise.  Compute size outside of
280         flag_checking.
281
282 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
283
284         * builtins.c (do_real_to_int_conversion): New function.
285         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
286         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
287         arguments here.
288         * match.pd: Add rules previously handled by fold_fixed_mathfn
289         and fold_builtin_int_roundingfn.
290
291 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
292
293         * match.pd: Use macros to define built-in operator lists.
294
295 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
296             Richard Biener  <rguenther@suse.de>
297
298         * genmatch.c (dt_simplify::gen): Skip captures that are
299         part of the result.
300         (parser::parse_expr): Allow captures in results too.
301         * builtins.c (fold_builtin_cexp): Delete.
302         (fold_builtin_1): Handle constant cexp arguments here.
303         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
304
305 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
306
307         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
308         conditional compilation.
309         (base_pool_allocator::remove): Use flag_checking.
310
311 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
312
313         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
314
315         PR middle-end/68079
316         * dojump.c (do_compare_and_jump): Canonicalize both function and
317         method types.
318
319 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
320
321         PR target/68084
322         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
323         for =@ccae.
324
325 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
326
327         PR ipa/pr67600
328         * ipa-polymorphic-call.c
329         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
330         instance offset with offset of outer type.
331
332 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
333
334         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
335
336 2015-10-23  Caroline Tice  <cmtice@google.com>
337
338         (from Richard Biener
339         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
340         call to iterative_hash_host_wide_int.
341
342 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
343
344         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
345         Define as yes.
346
347 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
348
349         * tree-vect-generic.c (expand_vector_operations_1): Check
350         optab exists before use it.
351
352 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
353
354         * tree-vect-generic.c (expand_vector_condition): Avoid
355         uninitialized variable warning.
356
357 2015-10-23  Jeff Law  <law@redhat.com>
358
359         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
360         here.  Instead...
361         (execute_todo): Call it here.
362         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
363         statistics
364         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
365
366 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
367             Szabolcs Nagy  <szabolcs.nagy@arm.com>
368
369         * config.gcc (enable_secureplt): Add *-linux*-musl*.
370
371 2015-10-23  Jeff Law  <law@redhat.com>
372
373         PR tree-optimization/67830
374         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
375         Explicitly verify the mask has no bits outside the type of
376         the innermost operands.
377
378 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
379             Szabolcs Nagy  <szabolcs.nagy@arm.com>
380
381         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
382         (MUSL_DYNAMIC_LINKER64): Define.
383         (GNU_USER_DYNAMIC_LINKER32): Update.
384         (GNU_USER_DYNAMIC_LINKER64): Update.
385         (CHOOSE_DYNAMIC_LINKER): Update.
386
387         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
388         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
389         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
390         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
391         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
392         (CHOOSE_DYNAMIC_LINKER): Update.
393         (INCLUDE_DEFAULTS): Redefine.
394
395         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
396
397 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
398
399         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
400         comparing addresses.
401
402 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
403
404         * fold-const.c (operand_equal_p): Handle matching of vector
405         constructors.
406
407 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
408
409         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
410
411 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
412             Andrew Pinski  <apinski@cavium.com>
413
414         PR rtl-optimization/67736
415         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
416         of gen_lowpart.
417
418 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
419
420         PR middle-end/68066
421         * tree.c (build_truth_vector_type): Support BLK mode
422         returned for boolean vector.
423
424 2015-10-23  Alan Hayward <alan.hayward@arm.com>
425
426         PR tree-optimization/65947
427         * tree-vect-loop.c
428         (vect_is_simple_reduction_1): Find condition reductions.
429         (vect_model_reduction_cost): Add condition reduction costs.
430         (get_initial_def_for_reduction): Add condition reduction initial var.
431         (vect_create_epilog_for_reduction): Add condition reduction epilog.
432         (vectorizable_reduction): Condition reduction support.
433         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
434         * doc/sourcebuild.texi (Vector-specific attributes): Document
435         vect_max_reduc
436
437 2015-10-23  Richard Biener  <rguenther@suse.de>
438
439         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
440         and builtins.def.
441
442 2015-10-23  Richard Biener  <rguenther@suse.de>
443             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
444
445         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
446         into (A ^ B) - B to match.pd
447         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
448
449         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
450         New simplifier.
451         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
452         New simplifier.
453         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
454         New simplifier.
455         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
456         New simplifier.
457         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
458         INTEGER_CST@1)): New simplifier.
459
460 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
461
462         * builtins.c (integer_valued_real_p): Move to fold-const.c.
463         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
464         (fold_builtin_ceil, fold_builtin_round): Delete.
465         (fold_builtin_1): Handle constant trunc, floor, ceil and round
466         arguments here.
467         * convert.c (convert_to_real): Remove narrowing of rounding
468         functions.
469         * fold-const.h (integer_valued_real_unary_p)
470         (integer_valued_real_binary_p, integer_valued_real_call_p)
471         (integer_valued_real_single_p, integer_valued_real_p): Declare.
472         * fold-const.c (tree_single_nonnegative_warnv_p): Move
473         name_registered_for_update_p check to SSA_NAME case statement.
474         Don't call tree_simple_nonnegative_warnv_p for SSA names.
475         (integer_valued_real_unary_p, integer_valued_real_binary_p)
476         (integer_valued_real_call_p, integer_valued_real_single_p)
477         (integer_valued_real_invalid_p): New functions.
478         (integer_valued_real_p): Move from fold-const.c and rework
479         to call the functions above.  Handle SSA names.
480         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
481         * gimple-fold.c (gimple_assign_integer_valued_real_p)
482         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
483         (gimple_stmt_integer_valued_real_p): New functions.
484         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
485         Fold f(x)->x for the same f if x is known to be integer-valued.
486         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
487         the result.  Canonicalize floor(x) as trunc(x) if x is
488         nonnegative.
489
490 2015-10-23  Tom de Vries  <tom@codesourcery.com>
491
492         * tree-ssa-structalias.c (intra_create_variable_infos): Use
493         make_constraint_from.
494
495 2015-10-23  Tom de Vries  <tom@codesourcery.com>
496
497         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
498         setting of is_full_var in case of a single field.
499
500 2015-10-22  Martin Sebor  <msebor@redhat.com>
501
502         PR driver/68043
503         * config/i386/i386.opt: Add missing periods to the ends of sentences.
504         * config/msp430/msp430.opt: Same.
505
506 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
507
508         * doc/extend.exp (Global Register Variables): Rewrite.
509
510 2015-10-22  Jeff Law  <law@redhat.com>
511
512         * genattrtab.c (main): If we do not have any annul-true or annul-false
513         slots, then write out a dummy eligible_for_annul_true or
514         eligible_for_annul_false as needed.
515
516 2015-10-22  Nick Clifton  <nickc@redhat.com>
517
518         * config/msp430/msp430.opt: Add -msilicon-errata and
519         -msilicon-errata-warn.
520         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
521         assembler.
522         * doc/invoke.texi: Document new options.
523
524 2015-10-22  Richard Biener  <rguenther@suse.de>
525
526         PR tree-optimization/58497
527         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
528         (expand_vector_operations_1): Use it.  Lower operations on
529         all uniform vectors to scalar operations if the HW supports it.
530
531 2015-10-22  Richard Biener  <rguenther@suse.de>
532
533         PR tree-optimization/19049
534         PR tree-optimization/65962
535         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
536         to strided accesses if single-element interleaving doesn't work.
537
538 2015-10-22  Richard Biener  <rguenther@suse.de>
539
540         PR middle-end/68046
541         PR middle-end/61893
542         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
543         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
544         (expand_unop): Likewise.
545
546 2015-10-22  Richard Biener  <rguenther@suse.de>
547
548         * fold-const.c (fold_addr_of_array_ref_difference): Properly
549         convert operands before folding a MINUS_EXPR.
550         (fold_binary_loc): Move simplification of MINUS_EXPR on
551         converted POINTER_PLUS_EXPRs ...
552         * match.pd: ... here.
553
554 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
555
556         * builtins.c (fold_builtin_tan): Delete.
557         (fold_builtin_1): Handle constant tan arguments here.
558         * match.pd: Simplify (tan (atan x)) to x.
559
560 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
561
562         * builtins.c (fold_builtin_cproj): Delete.
563         (fold_builtin_1): Handle constant arguments here.
564         (build_complex_cproj): Move and rename to...
565         * tree.c: (build_complex_inf): ...this.
566         * tree.h (build_complex_inf): Declare.
567         * match.pd: Fold cproj(x)->x if x has no infinity.
568         Use build_complex_inf for existing cproj rules.
569
570 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
571
572         PR target/68015
573         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
574         already have a comparison result.
575
576 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
577
578         PR target/63304
579         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
580         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
581         (aarch64_classify_address): Likewise.
582         (aarch64_secondary_reload): Likewise.
583         (aarch64_override_options_after_change_1): Adjust.
584         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
585         Use aarch64_nopcrelative_literal_loads.
586         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
587         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
588         Declare.
589
590 2015-10-21  Martin Sebor  <msebor@redhat.com>
591
592         PR driver/68043
593         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
594         (print_filtered_help): Reference aliased option's name and encourage
595         readers to use it in preference to the alias if the former is not
596         documented.  Mention when using an option is diagnosed.
597         * gcc.c (display_help): End each sentence with a period.
598
599         * common.opt: End each sentence that describes an option with
600         a period.
601         * config/aarch64/aarch64.opt: Same.
602         * config/alpha/alpha.opt: Same.
603         * config/arc/arc.opt: Same.
604         * config/arm/arm.opt: Same.
605         * config/avr/avr.opt: Same.
606         * config/bfin/bfin.opt: Same.
607         * config/c6x/c6x.opt: Same.
608         * config/cr16/cr16.opt: Same.
609         * config/cris/cris.opt: Same.
610         * config/cris/linux.opt: Same.
611         * config/darwin.opt: Same.
612         * config/epiphany/epiphany.opt: Same.
613         * config/fr30/fr30.opt: Same.
614         * config/frv/frv.opt: Same.
615         * config/ft32/ft32.opt: Same.
616         * config/g.opt: Same.
617         * config/h8300/h8300.opt: Same.
618         * config/i386/cygming.opt: Same.
619         * config/i386/djgpp.opt: Same.
620         * config/i386/i386.opt: Same.
621         * config/i386/interix.opt: Same.
622         * config/i386/mingw-w64.opt: Same.
623         * config/i386/mingw.opt: Same.
624         * config/ia64/ia64.opt: Same.
625         * config/ia64/ilp32.opt: Same.
626         * config/iq2000/iq2000.opt: Same.
627         * config/linux.opt: Same.
628         * config/lm32/lm32.opt: Same.
629         * config/lynx.opt: Same.
630         * config/m32c/m32c.opt: Same.
631         * config/m32r/m32r.opt: Same.
632         * config/m68k/ieee.opt: Same.
633         * config/m68k/m68k.opt: Same.
634         * config/mcore/mcore.opt: Same.
635         * config/mep/mep.opt: Same.
636         * config/microblaze/microblaze.opt: Same.
637         * config/mips/mips.opt: Same.
638         * config/mmix/mmix.opt: Same.
639         * config/mn10300/mn10300.opt: Same.
640         * config/moxie/moxie.opt: Same.
641         * config/msp430/msp430.opt: Same.
642         * config/nios2/elf.opt: Same.
643         * config/nios2/nios2.opt: Same.
644         * config/nvptx/nvptx.opt: Same.
645         * config/pa/pa-hpux.opt: Same.
646         * config/pa/pa-hpux1010.opt: Same.
647         * config/pa/pa-hpux1111.opt: Same.
648         * config/pa/pa-hpux1131.opt: Same.
649         * config/pa/pa.opt: Same.
650         * config/pa/pa64-hpux.opt: Same.
651         * config/pdp11/pdp11.opt: Same.
652         * config/rl78/rl78.opt: Same.
653         * config/rs6000/476.opt: Same.
654         * config/rs6000/aix64.opt: Same.
655         * config/rs6000/darwin.opt: Same.
656         * config/rs6000/linux64.opt: Same.
657         * config/rs6000/rs6000.opt: Same.
658         * config/rs6000/sysv4.opt: Same.
659         * config/s390/s390.opt: Same.
660         * config/s390/tpf.opt: Same.
661         * config/sh/sh.opt: Same.
662         * config/sol2.opt: Same.
663         * config/sparc/long-double-switch.opt: Same.
664         * config/sparc/sparc.opt: Same.
665         * config/spu/spu.opt: Same.
666         * config/stormy16/stormy16.opt: Same.
667         * config/tilegx/tilegx.opt: Same.
668         * config/tilepro/tilepro.opt: Same.
669         * config/v850/v850.opt: Same.
670         * config/vax/vax.opt: Same.
671         * config/visium/visium.opt: Same.
672         * config/vms/vms.opt: Same.
673         * config/vxworks.opt: Same.
674         * config/xtensa/xtensa.opt: Same.
675
676 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
677             Sebastian Pop  <s.pop@samsung.com>
678
679         * graphite-scop-detection.c (parameter_index_in_region): Update call to
680         invariant_in_sese_p_rec.
681         * graphite-sese-to-poly.c (extract_affine): Same.
682         * sese.c (invariant_in_sese_p_rec): Pass in an extra
683         parameter has_vdefs.
684         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
685         variable depends on virtual definitions in the current region.
686         * sese.h (invariant_in_sese_p_rec): Update declaration.
687
688 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
689             Sebastian Pop  <s.pop@samsung.com>
690
691         * graphite-scop-detection.c (build_scops): Do not handle scops
692         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
693         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
694
695 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
696
697         * config.in: Regenerate.
698         * configure: Regenerate.
699         * configure.ac (CHECKING_P): Define.
700         * system.h: Use CHECKING_P.
701
702 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
703
704         PR ipa/67056
705         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
706         is negative we don't know the type.
707         (check_stmt_for_type_change): Skip constructors of non-polymorphic
708         types as those won't help devirutalization.
709
710 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
711
712         * fold-const.c (operand_equal_p): Add code matching empty constructors.
713
714 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
715
716         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
717         comments.
718         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
719         Add comments on sign of the result.
720         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
721         Recurse on operand #1 instead of operand #0.
722         <CEIL_MOD_EXPR>: Do not recurse.
723         <ROUND_MOD_EXPR>: Likewise.
724
725 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
726
727         * cfgrtl.c (pass_free_cfg::execute): Adjust.
728         * final.c (dbr_sequence_length): Always define.
729         (shorten_branches): Adjust.
730         * genattr-common.c (main): Always define DELAY_SLOTS.
731         * genattr.c (main): Unconditionally declare functions and define
732         macros related to delay slots.
733         * genattrtab.c (write_eligible_delay): Adjust.
734         (main): Always write out delay slot functions.
735         * opts.c (default_options_table): Adjust.
736         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
737         (redirect_with_delay_list_safe_p): Likewise.
738         (fill_simple_delay_slots): Likewise.
739         (fill_slots_from_thread): Likewise.
740         (make_return_insns): Likewise.
741         (dbr_schedule): Likewise.
742         (rest_of_handle_delay_slots): Likewise.
743         (pass_delay_slots::gate): Likewise.
744         * toplev.c (process_options): Likewise.
745
746 2015-10-21  Richard Henderson  <rth@redhat.com>
747
748         * targhooks.c (default_addr_space_pointer_mode): Remove check
749         for generic address space.
750         (default_addr_space_address_mode): Likewise.
751         (default_addr_space_valid_pointer_mode): Likewise.
752         (default_addr_space_legitimate_address_p): Likewise.
753         (default_addr_space_legitimize_address): Likewise.
754         * target.def (addr_space.pointer_mode): Update documentation
755         of default behavior.
756         (addr_space.address_mode): Likewise.
757         * tm.texi: Update.
758
759         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
760         address spaces.
761
762 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
763
764         * builtins.c (fold_builtin_cabs): Delete.
765         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
766         * match.pd: Add rules previously handled by fold_builtin_cabs.
767
768 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
769
770         * fold-const.h (fold_strip_sign_ops): Delete.
771         * fold-const.c (fold_strip_sign_ops): Likewise.
772         (fold_unary_loc, fold_binary_loc): Remove calls to it.
773         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
774         (fold_builtin_ccos): Delete.
775         (fold_builtin_pow): Don't call fold_strip_sign_ops.
776         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
777         Remove fndecl argument.
778         (fold_builtin_1): Update calls accordingly.  Handle constant
779         cos, cosh, ccos and ccosh here.
780
781 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
782
783         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
784         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
785         * common.opt (fssa-backprop): New option.
786         * fold-const.h (negate_mathfn_p): Declare.
787         * fold-const.c (negate_mathfn_p): Make public.
788         * timevar.def (TV_TREE_BACKPROP): New.
789         * tree-pass.h (make_pass_backprop): Declare.
790         * passes.def (pass_backprop): Add.
791         * gimple-ssa-backprop.c: New file.
792
793 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
794             Sebastian Pop  <s.pop@samsung.com>
795
796         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
797         Do not call create_empty_if_region_on_edge when cond_expr is true.
798         (translate_isl_ast_node_for): Check whether a guard has been generated.
799
800 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
801
802         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
803         (operator=): Removed.
804         (dr_info): Make alias_set number the last argument with default
805         value of invalid_alias_set.
806         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
807         of dr_info.
808         (rewrite_reductions_out_of_ssa): Iterate only through the
809         basic blocks which are inside region.
810         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
811         * sese.h (struct sese_l): Removed assignment operator.
812         (split_region_for_bb): Removed dead code.
813
814 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
815
816         * graphite-poly.h (struct dr_info): Removed conversion constructor.
817         (struct scop): Renamed scop::region to scop::scop_info
818         (scop_set_region): Same.
819         (SCOP_REGION): Removed
820         (SCOP_CONTEXT): Removed.
821         (POLY_SCOP_P): Removed.
822         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
823         Rename scop->region to scop->scop_info.
824         (add_parameters_to_ivs_params): Same.
825         (graphite_regenerate_ast_isl): Same.
826         * graphite-poly.c (new_scop): Same.
827         (free_scop): Same.
828         (print_scop_params): Same.
829         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
830         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
831         (dot_all_scops_1): Rename scop->region to scop->scop_info.
832         (scop_detection::nb_pbbs_in_loops): Same.
833         (find_scop_parameters): Same.
834         (try_generate_gimple_bb): Same.
835         (gather_bbs::before_dom_children): Same.
836         (gather_bbs::after_dom_children): Same.
837         (build_scops): Same.
838         * graphite-sese-to-poly.c (build_scop_scattering): Same.
839         (extract_affine_chrec): Same.
840         (extract_affine): Same.
841         (set_scop_parameter_dim): Same.
842         (build_loop_iteration_domains): Same.
843         (create_pw_aff_from_tree): Same.
844         (add_param_constraints): Same.
845         (build_scop_iteration_domain): Same.
846         (build_scop_drs): Same.
847         (analyze_drs_in_stmts): Same.
848         (insert_out_of_ssa_copy_on_edge): Same.
849         (rewrite_close_phi_out_of_ssa):Same.
850         (rewrite_reductions_out_of_ssa):Same.
851         (handle_scalar_deps_crossing_scop_limits):Same.
852         (rewrite_cross_bb_scalar_deps):Same.
853         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
854         (build_poly_scop):Same.
855         (build_alias_set): Use pointer to dr_info.
856         * graphite.c (print_graphite_scop_statistics):
857         (graphite_transform_loops):
858         * sese.h (struct sese_l): Remove conversion constructor.
859
860 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
861
862         PR middle-end/67966
863         * tree.c (verify_type): Verify that TYPE_MODE match
864         between TYPE_CANONICAL and type.
865         * expr.c (store_expr_with_bounds): Revert my previous change.
866         * expmed.c (store_bit_field_1): Revert prevoius change.
867         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
868         to match for all types.
869
870 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
871
872         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
873         nesting.
874
875 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
876
877         * doc/tm.texi: Regenerated.
878         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
879         * stor-layout.c (layout_type): Use mode to get vector mask size.
880         * target.def (get_mask_mode): New.
881         * targhooks.c (default_get_mask_mode): New.
882         * targhooks.h (default_get_mask_mode): New.
883         * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
884         for boolean vector.
885         * tree.c (MAX_BOOL_CACHED_PREC): New.
886         (nonstandard_boolean_type_cache): New.
887         (build_nonstandard_boolean_type): New.
888         (make_vector_type): Vector mask has no canonical type.
889         (build_truth_vector_type): New.
890         (build_same_sized_truth_vector_type): New.
891         (truth_type_for): Support vector masks.
892         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
893         (build_truth_vector_type): New.
894         (build_same_sized_truth_vector_type): New.
895         (build_nonstandard_boolean_type): New.
896         * tree-cfg.c (verify_gimple_comparison) Require boolean
897         vector type for vector comparison.
898         (verify_gimple_assign_ternary): Likewise.
899         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
900         condition operand.
901         * tree-vect-stmts.c (vectorizable_condition): Use boolean
902         vector type for vector comparison.
903         * tree-vect-generic.c (elem_op_func): Add new operand to hold
904         vector type.
905         (do_unop): Adjust to modified function type.
906         (do_binop): Likewise.
907         (do_plus_minus): Likewise.
908         (do_negate); Likewise.
909         (expand_vector_piecewise): Likewise.
910         (do_cond): Likewise.
911         (do_compare): Use comparison instead of condition.
912         (expand_vector_divmod): Use boolean vector type for comparison.
913         (expand_vector_operations_1): Skip scalar mask operations.
914
915 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
916
917         * omp-low.c (simd_clone_create): Set in_other_partition
918         for created clones.
919
920 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
921
922         * doc/extend.exp (Local Register Variables): Rewrite.
923
924 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
925
926         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
927         and x*x in cases where the operands are sign ops.  Extend these
928         rules to handle copysign as a sign op (including for cos, cosh
929         and pow, which already treated negate and abs as sign ops).
930
931 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
932
933         PR target/68018
934         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
935         for 64-bit MS_ABI targets also when default incoming stack boundary
936         is overriden.
937
938 2015-10-21  Richard Biener  <rguenther@suse.de>
939
940         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
941         cond stmts, enhanced and split out from ...
942         (vn_phi_eq): ... here.
943
944 2015-10-21  Richard Biener  <rguenther@suse.de>
945
946         PR middle-end/68031
947         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
948         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
949         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
950         make sure they are not registered for update.
951
952 2015-10-21  Richard Biener  <rguenther@suse.de>
953
954         PR tree-optimization/68026
955         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
956         unsigned VARYING values.
957
958 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
959
960         * asan.c (asan_emit_stack_protection): Don't pass local stack to
961         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
962         NULL and use local stack than.
963         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
964         in addition to __asan_init.
965         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
966         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
967         * asan.h (asan_intercepted_p): Handle new string builtins.
968         * ubsan.c (ubsan_use_new_style_p): New function.
969         (ubsan_instrument_float_cast): If location is unknown, assign
970         input_location to loc. Propagate loc to ubsan_create_data if
971         ubsan_use_new_style_p returned true.
972
973 2015-10-21  Jeff Law  <law@redhat.com>
974
975         * Makefile.in (OBJS): Remove sched-vis.c
976         * sched-vis.c: Removed.  Code moved into...
977         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
978         * rtl.h: Remove prototypes for functions now living in print-rtl.c
979         * print-rtl.h Add prototypes for new functions in print-rtl.c.
980         * auto-inc-dec.c: Include print-rtl.h
981         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
982         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
983
984         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
985         ATTRIBUTE_UNUSED.
986
987 2015-10-21  Richard Biener  <rguenther@suse.de>
988             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
989
990         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
991         to match.pd.
992         Move (a * (1 << b)) is (a << b) to match.pd.
993         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
994         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
995         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
996
997         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
998         New simplifier.
999         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
1000         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
1001         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
1002         : New simplifier.
1003         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
1004         New simplifier.
1005         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
1006
1007 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
1008             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1009             Alan Modra  <amodra@gmail.com>
1010
1011         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
1012         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
1013         (LINK_SPEC): Add %(link_secure_plt).
1014         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
1015         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
1016
1017 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
1018             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1019
1020         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
1021         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
1022
1023 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1024
1025         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
1026         New function.
1027         (fusion_load_store): Use it.
1028         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
1029         ldp and stp in VD modes.
1030         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
1031         (store_pair<mode>, VD): Likewise.
1032
1033 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
1034
1035         PR rtl-optimization/67609
1036         * lra-splill.c (lra_final_code_change): Don't remove all
1037         sub-registers.
1038
1039 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1040
1041         * simplify-rtx.c (simplify_binary_operation): If either operand was
1042         a constant pool reference use them if all other simplifications failed.
1043
1044 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1045
1046         * config/aarch64/aarch64.md
1047         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
1048         * config/aarch64/aarch64-simd.md
1049         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
1050         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
1051         (aarch64_fpconst_pow_of_2): New function.
1052         (aarch64_vec_fpconst_pow_of_2): Likewise.
1053         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
1054         prototype.
1055         (aarch64_vec_fpconst_pow_of_2): Likewise.
1056         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
1057         (aarch64_fp_vec_pow2): Likewise.
1058
1059 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
1060
1061         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
1062         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
1063         * config/alpha/alpha.c (alpha_function_arg_advance): Update
1064         ALPHA_ARG_SIZE usage.
1065         (alpha_arg_partial_bytes): Ditto.
1066
1067 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1068
1069         PR target/66810
1070         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
1071         error_mark_node decls.
1072
1073 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
1074
1075         PR target/67963
1076         PR target/67985
1077         * common/config/i386/i386-common.c (ix86_handle_option): Remove
1078         OPT_miamcu handling.
1079         * config/i386/i386.c (PTA_NO_80387): New macro.
1080         (processor_alias_table): Add PTA_NO_80387 to lakemont.
1081         (ix86_option_override_internal): Update MASK_80387 from
1082         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
1083         SSE math only if 80387 is supported.  Don't change
1084         MASK_FLOAT_RETURNS.
1085         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
1086         80387 is supported.
1087         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
1088         if TARGET_80387 is true and TARGET_IAMCU is false.
1089         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
1090         is true and TARGET_IAMCU_P is false.
1091
1092 2015-10-20  Richard Biener  <rguenther@suse.de>
1093
1094         PR tree-optimization/68017
1095         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
1096
1097 2015-10-20  Martin Liska  <mliska@suse.cz>
1098
1099         * cgraphclones.c (cgraph_node::create_virtual_clone):
1100         Verify cgraph_node.local.versionable instead of calling
1101         tree_versionable_function_p.
1102         * ipa-cp.c (determine_versionability): Save the information
1103         to ipa_node_params summary.
1104         (ipcp_versionable_function_p): Use it.
1105         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
1106         (ipcp_generate_summary): Do not compute cgraph_node
1107         versionability.
1108         * ipa-inline-analysis.c (inline_generate_summary): Compute
1109         versionability for all cgraph nodes.
1110         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
1111         ipa_node_params::versionability.
1112         * ipa-prop.h (struct ipa_node_params): Declare it.
1113
1114 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1115
1116         PR other/67868
1117         * varasm.c (assemble_variable): Move special vtv handling to..
1118         (handle_vtv_comdat_sections): .. here. New function.
1119         (output_object_block): Handle vtv sections.
1120
1121 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
1122
1123         PR target/66912
1124         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
1125
1126 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
1127
1128         * doc/extend.texi: Update documentation WRT inline functions.
1129
1130 2015-10-20  Alan Modra  <amodra@gmail.com>
1131
1132         PR go/66870
1133         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
1134         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
1135         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
1136
1137 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
1138
1139         PR rtl-optimization/66790
1140         * df.h (DF_MIR): New macro.
1141         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
1142         (DF_MIR_INFO_BB): New macro.
1143         (DF_MIR_IN, DF_MIR_OUT): New macros.
1144         (struct df_mir_bb_info): New.
1145         (df_mir): New macro.
1146         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
1147         declarations.
1148         (df_mir_get_bb_info): New.
1149         * df-problems.c (struct df_mir_problem_data): New.
1150         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
1151         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
1152         df_mir_confluence_0, df_mir_confluence_n,
1153         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
1154         df_mir_bottom_dump, df_mir_verify_solution_start,
1155         df_mir_verify_solution_end): New.
1156         (problem_MIR): New.
1157         (df_mir_add_problem, df_mir_simulate_one_insn): New.
1158         * timevar.def (TV_DF_MIR): New.
1159         * ree.c: Include bitmap.h
1160         (add_removable_extension): Add an INIT_REGS parameter.  Use it
1161         to skip zero-extensions that may get an uninitialized register.
1162         (find_removable_extensions): Compute must-initialized registers
1163         using the MIR dataflow problem. Update the call to
1164         add_removable_extension.
1165         (find_and_remove_re): Call df_mir_add_problem.
1166
1167 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
1168
1169         * common/config/mn10300/mn10300-common.c
1170         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
1171         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
1172
1173 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
1174
1175         * doc/extend.texi (Explicit Register Variables): Simplify and
1176         avoid unnecessary and confusion abbreviations.  Update cross
1177         references.
1178         doc/implement-c.tex: Update cross reference.
1179
1180 2015-10-19  Jeff Law  <law@redhat.com>
1181
1182         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
1183         that create irreducible loops unless the path elimiantes a multiway
1184         branch.
1185
1186 2015-10-19  Richard Biener  <rguenther@suse.de>
1187
1188         PR tree-optimization/67975
1189         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
1190         * tree-cfg.c (extract_true_false_controlled_edges): Split out
1191         core worker from ...
1192         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
1193         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
1194         instead of block number for PHIs with two or one args.
1195         (vn_phi_eq): Compare edge predicates of PHIs that are in different
1196         blocks.
1197
1198 2015-10-19  Richard Biener  <rguenther@suse.de>
1199
1200         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
1201         (gimple_stmt_nonnegative_warnv_p): Use it.
1202         * match.pd (CPROJ): New operator list.
1203         (cproj (complex ...)): Move simplifications from ...
1204         * builtins.c (fold_builtin_cproj): ... here.
1205
1206 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1207
1208         * config/i386/i386.c (ix86_expand_vector_move): Use
1209         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
1210         alignment.
1211
1212 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1213
1214         * doc/invoke.texi: Replace @optindex with @opindex.
1215
1216 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1217
1218         PR target/67995
1219         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
1220         arch= is set,  clear all bits in x_ix86_isa_flags, except for
1221         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
1222
1223 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
1224
1225         PR middle-end/68002
1226         * common.opt (fkeep-static-functions): New option.
1227         * doc/invoke.texi: Document it.
1228         * cgraphunit.c (cgraph_node::finalize_function): Use it.
1229
1230 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1231
1232         * sched-int.h (struct autopref_multipass_data_): Remove offset
1233         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
1234         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
1235         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
1236         (autopref_rank_data): New function.
1237         (autopref_rank_for_schedule): Use it.
1238         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
1239
1240 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
1241
1242         PR other/65800
1243         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
1244
1245 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1246
1247         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
1248         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
1249         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
1250         (STANDARD_STARTFILE_PREFIX_1): New.
1251         (STANDARD_STARTFILE_PREFIX_2): New.
1252
1253 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1254
1255         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
1256         (darwin_driver_init): Note a version-min when provided on the c/l.
1257         * config/darwin.h (%darwin_minversion): Remove.
1258         * config/i386/darwin.h: Likewise.
1259         * config/rs6000/darwin.h: Likewise.
1260         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
1261         rather than an arbitrary constant.
1262
1263 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1264
1265         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
1266         PPC, detect conflicts between -arch and multilib settings.  Detect
1267         and warn about conflicts between multiple -arch definitions.
1268
1269 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1270
1271         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
1272
1273 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1274
1275         * lra-constraints.c (add_next_usage_insn): Change argument type
1276         from rtx to rtx_insn *.
1277
1278 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
1279
1280         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
1281         for Lakemont.
1282
1283 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
1284
1285         * config/tilepro/gen-mul-tables.cc: Adjust include files.
1286         * config/tilegx/mul-tables.c: Regenerate.
1287         * config/tilepro/mul-tables.c: Regenerate.
1288
1289         * config/tilegx/tilegx-c.c: Adjust include files.
1290         * config/tilegx/tilegx.c: Likewise.
1291         * config/tilepro/tilepro-c.c: Likewise.
1292         * config/tilepro/tilepro.c: Likewise.
1293         * config/aarch64/aarch64-builtins.c: Likewise.
1294         * config/aarch64/aarch64.c: Likewise.
1295         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1296         * config/alpha/alpha.c: Likewise.
1297         * config/arc/arc.c: Likewise.
1298         * config/arm/aarch-common.c: Likewise.
1299         * config/arm/arm-builtins.c: Likewise.
1300         * config/arm/arm-c.c: Likewise.
1301         * config/arm/arm.c: Likewise.
1302         * config/avr/avr-c.c: Likewise.
1303         * config/avr/avr-devices.c: Likewise.
1304         * config/avr/avr-log.c: Likewise.
1305         * config/avr/avr.c: Likewise.
1306         * config/bfin/bfin.c: Likewise.
1307         * config/c6x/c6x.c: Likewise.
1308         * config/cr16/cr16.c: Likewise.
1309         * config/cris/cris.c: Likewise.
1310         * config/darwin-c.c: Likewise.
1311         * config/darwin-driver.c: Likewise.
1312         * config/darwin.c: Likewise.
1313         * config/default-c.c: Likewise.
1314         * config/epiphany/epiphany.c: Likewise.
1315         * config/epiphany/mode-switch-use.c: Likewise.
1316         * config/epiphany/resolve-sw-modes.c: Likewise.
1317         * config/fr30/fr30.c: Likewise.
1318         * config/frv/frv.c: Likewise.
1319         * config/ft32/ft32.c: Likewise.
1320         * config/glibc-c.c: Likewise.
1321         * config/h8300/h8300.c: Likewise.
1322         * config/i386/host-cygwin.c: Likewise.
1323         * config/i386/host-mingw32.c: Likewise.
1324         * config/i386/i386-c.c: Likewise.
1325         * config/i386/i386.c: Likewise.
1326         * config/i386/msformat-c.c: Likewise.
1327         * config/i386/winnt-cxx.c: Likewise.
1328         * config/i386/winnt-stubs.c: Likewise.
1329         * config/i386/winnt.c: Likewise.
1330         * config/ia64/ia64-c.c: Likewise.
1331         * config/ia64/ia64.c: Likewise.
1332         * config/iq2000/iq2000.c: Likewise.
1333         * config/lm32/lm32.c: Likewise.
1334         * config/m32c/m32c-pragma.c: Likewise.
1335         * config/m32c/m32c.c: Likewise.
1336         * config/m32r/m32r.c: Likewise.
1337         * config/mcore/mcore.c: Likewise.
1338         * config/mep/mep-pragma.c: Likewise.
1339         * config/mep/mep.c: Likewise.
1340         * config/microblaze/microblaze-c.c: Likewise.
1341         * config/microblaze/microblaze.c: Likewise.
1342         * config/mips/mips-tables.opt
1343         * config/mips/mips.c: Likewise.
1344         * config/mmix/mmix.c: Likewise.
1345         * config/mn10300/mn10300.c: Likewise.
1346         * config/moxie/moxie.c: Likewise.
1347         * config/msp430/msp430-c.c: Likewise.
1348         * config/msp430/msp430.c: Likewise.
1349         * config/nds32/nds32-cost.c: Likewise.
1350         * config/nds32/nds32-fp-as-gp.c: Likewise.
1351         * config/nds32/nds32-intrinsic.c: Likewise.
1352         * config/nds32/nds32-isr.c: Likewise.
1353         * config/nds32/nds32-md-auxiliary.c: Likewise.
1354         * config/nds32/nds32-memory-manipulation.c: Likewise.
1355         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1356         * config/nds32/nds32-predicates.c: Likewise.
1357         * config/nds32/nds32.c: Likewise.
1358         * config/nios2/nios2.c: Likewise.
1359         * config/nvptx/mkoffload.c: Likewise.
1360         * config/nvptx/nvptx.c: Likewise.
1361         * config/pa/pa.c: Likewise.
1362         * config/pdp11/pdp11.c: Likewise.
1363         * config/rl78/rl78-c.c: Likewise.
1364         * config/rl78/rl78.c: Likewise.
1365         * config/rs6000/host-darwin.c: Likewise.
1366         * config/rs6000/rs6000-c.c: Likewise.
1367         * config/rs6000/rs6000-linux.c: Likewise.
1368         * config/rs6000/rs6000.c: Likewise.
1369         * config/rx/rx.c: Likewise.
1370         * config/s390/s390-c.c: Likewise.
1371         * config/s390/s390.c: Likewise.
1372         * config/sh/sh-c.c: Likewise.
1373         * config/sh/sh-mem.cc: Likewise.
1374         * config/sh/sh.c: Likewise.
1375         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1376         * config/sh/sh_treg_combine.cc: Likewise.
1377         * config/sol2-c.c: Likewise.
1378         * config/sol2-cxx.c: Likewise.
1379         * config/sol2-stubs.c: Likewise.
1380         * config/sol2.c: Likewise.
1381         * config/sparc/sparc-c.c: Likewise.
1382         * config/sparc/sparc.c: Likewise.
1383         * config/spu/spu-c.c: Likewise.
1384         * config/spu/spu.c: Likewise.
1385         * config/stormy16/stormy16.c: Likewise.
1386         * config/v850/v850-c.c: Likewise.
1387         * config/v850/v850.c: Likewise.
1388         * config/vax/vax.c: Likewise.
1389         * config/visium/visium.c: Likewise.
1390         * config/vms/vms-c.c: Likewise.
1391         * config/vms/vms.c: Likewise.
1392         * config/vxworks.c: Likewise.
1393         * config/winnt-c.c: Likewise.
1394         * config/xtensa/xtensa.c: Likewise.
1395
1396 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1397
1398         PR target/67745
1399         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
1400         (FUNCTION_BOUNDARY_P): New macro:
1401         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
1402         New hook.
1403         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
1404         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
1405         * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
1406         * gcc/function.c (allocate_struct_function): Call
1407         relayout_function hook.
1408         * gcc/passes.c (rest_of_decl_compilation): Likewise.
1409
1410 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1411
1412         PR target/67745
1413         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
1414         * config/arm/arm.c (arm_option_override_internal): Call
1415         arm_override_options_after_change_1.
1416         (arm_override_options_after_change): New function.
1417         (arm_override_options_after_change_1): Likewise.
1418         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
1419
1420 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1421
1422         Revert:
1423         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1424         empty constructors.
1425
1426 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1427
1428         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
1429         argument is an ADDR_EXPR.
1430
1431 2015-10-16  Richard Biener  <rguenther@suse.de>
1432
1433         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
1434         and get rid of force_gimple_operand_gsi.
1435         (gimple_fold_builtin_memory_chk): Likewise.
1436         (gimple_fold_builtin_stxcpy_chk): Likewise.
1437         (rewrite_to_defined_overflow): Likewise.
1438         (gimple_convert_to_ptrofftype): New function.
1439         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
1440
1441 2015-10-16  Richard Biener  <rguenther@suse.de>
1442
1443         * tree-nested.h (build_addr): Adjust prototype.
1444         * tree-nested.c (build_addr): Remove context argument and use
1445         mark_addressable.
1446         (get_static_chain): Adjust calls to build_addr.
1447         (convert_nl_goto_reference): Likewise.
1448         (convert_tramp_reference_op): Likewise.
1449         (finalize_nesting_tree_1): Likewise.
1450         * value-prof.c (gimple_ic): Likewise.
1451         * gimple-low.c (lower_builtin_setjmp): Likewise.
1452         * tree-parloops.c (take_address_of): Likewise.
1453         (create_call_for_reduction_1): Likewise.
1454         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
1455         (gimple_gen_ic_func_profiler): Likewise.
1456
1457 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1458
1459         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1460         empty constructors.
1461
1462 2015-10-16  Michael Collison  <michael.collison@linaro.org>
1463             Andrew Pinski <andrew.pinski@caviumnetworks.com>
1464
1465         * match.pd ((x < y) && (x < z) -> x < min (y,z),
1466         (x > y) and (x > z) -> x > max (y,z))
1467
1468 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
1469             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1470
1471         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
1472         (DYNAMIC_LINKER): Renamed to ...
1473         (GLIBC_DYNAMIC_LINKER): This.
1474         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
1475
1476 2015-10-15  Marek Polacek  <polacek@redhat.com>
1477
1478         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
1479         gimple_call_builtin instead of is_gimple_call.
1480
1481 2015-10-15  Richard Biener  <rguenther@suse.de>
1482
1483         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
1484
1485 2015-10-15  Richard Biener  <rguenther@suse.de>
1486
1487         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
1488         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
1489         * tree-vect-loop.c (get_initial_def_for_induction): Drop
1490         use of force_gimple_operand in favor of gimple_build.
1491         Use vect_get_new_ssa_name.
1492         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
1493         (vectorizable_mask_load_store): Likewise.
1494         (vectorizable_call): Likewise.
1495         (vectorizable_store): Likewise.
1496         (vectorizable_load): Likewise.
1497         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
1498
1499 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
1500
1501         PR tree-optimization/67945
1502         * tree-pass.h (PROP_gimple_opt_math): New property flag.
1503         * generic-match-head.c (canonicalize_math_p): New function.
1504         * gimple-match-head.c: Include tree-pass.h.
1505         (canonicalize_math_p): New function.
1506         * match.pd: Group math built-in rules into simplifications
1507         and canonicalizations.  Guard the latter with canonicalize_math_p.
1508         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
1509         PROP_gimple_opt_math property.
1510
1511 2015-10-15  Marek Polacek  <polacek@redhat.com>
1512
1513         PR tree-optimization/67953
1514         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
1515
1516 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
1517
1518         * config.gcc: Recognize "." in architecture base name for AArch64.
1519
1520 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1521
1522         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
1523         ROUND_UP macro.
1524         * config/mips/mips.c (mips_setup_incoming_varargs): Use
1525         ROUND_DOWN to calculate off.
1526         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
1527         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
1528         rounded_size.
1529
1530 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1531
1532         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
1533
1534 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
1535             Torvald Riegel  <triegel@redhat.com>
1536
1537         PR target/67281
1538         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
1539         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1540         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
1541         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
1542         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
1543         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1544         trechkpt, treclaim, tsr, ttest): New define_expands.
1545         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1546         __TM_FENCE__ for htm.
1547         * doc/extend.texi: Update documentation for htm builtins.
1548
1549 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1550
1551         PR target/67967
1552         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
1553         REG_CFA_EXPRESSION to aligned SSE stores.
1554
1555 2015-10-14  Jeff Law  <law@redhat.com>
1556
1557         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
1558         num_threaded_edges for successful FSM threads too.
1559
1560 2015-10-14  Richard Biener  <rguenther@suse.de>
1561
1562         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
1563         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
1564         (vect_get_vec_def_for_operand): Remove unused parameter.
1565         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
1566         (vect_create_epilog_for_reduction): Likewise.
1567         (vectorizable_reduction): Likewise.
1568         (vectorizable_live_operation): Likewise.
1569         * tree-vect-patterns.c (type_conversion_p): Likewise.
1570         (vect_recog_vector_vector_shift_pattern): Likewise.
1571         (check_bool_pattern): Likewise.
1572         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1573         (vect_analyze_slp_cost_1): Likewise.
1574         * tree-vect-stmts.c (process_use): Likewise.
1575         (vect_get_vec_def_for_operand): Do not handle reductions.
1576         (vect_get_vec_defs): Adjust.
1577         (vectorizable_mask_load_store): Likewise.
1578         (vectorizable_call): Likewise.
1579         (vectorizable_simd_clone_call): Likewise.
1580         (vect_get_loop_based_defs): Likewise.
1581         (vectorizable_conversion): Likewise.
1582         (vectorizable_assignment): Likewise.
1583         (vectorizable_shift): Likewise.
1584         (vectorizable_operation): Likewise.
1585         (vectorizable_store): Likewise.
1586         (vectorizable_load): Likewise.
1587         (vect_is_simple_cond): Likewise.
1588         (vectorizable_condition): Likewise.
1589         (vect_is_simple_use): Remove unused parameters.
1590         (vect_is_simple_use_1): Adjust and rename.
1591
1592 2015-10-14  Richard Biener  <rguenther@suse.de>
1593
1594         PR tree-optimization/67915
1595         * match.pd: Handle comparisons of addresses of STRING_CSTs.
1596         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
1597         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
1598         stmt folding in favor of GIMPLE one.
1599
1600 2015-10-14  Marek Polacek  <polacek@redhat.com>
1601
1602         PR tree-optimization/67815
1603         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
1604         (reassociate_bb): Call it.
1605
1606 2015-10-14  Richard Biener  <rguenther@suse.de>
1607
1608         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1609         Reset info at start.
1610         (vect_analyze_group_access_1): Add debug print.
1611         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
1612         (vect_compute_single_scalar_iteration_cost): ... to this.
1613         (vect_analyze_loop_2): Adjust.
1614         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
1615         * tree-vectorizer.h: ... here.
1616         (add_stmt_info_to_vec): Remove.
1617         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
1618
1619 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1620
1621         * targhooks.c (default_target_option_pragma_parse): Do not warn if
1622         called on behalf of "#pragma GCC pop_options".
1623
1624 2015-10-14  Tom de Vries  <tom@codesourcery.com>
1625
1626         * cfganal.c (verify_no_unreachable_blocks): New function.
1627         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
1628         verify_no_unreachable_blocks.
1629         cfganal.h (verify_no_unreachable_blocks): Declare.
1630
1631 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
1632
1633         * common.opt: Add flag_checking.
1634         * system.h (CHECKING_P): Define.
1635
1636 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1637             Aldy Hernandez  <aldyh@redhat.com>
1638             Ilya Verbin  <ilya.verbin@intel.com>
1639
1640         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
1641         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
1642         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
1643         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
1644         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
1645         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
1646         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
1647         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
1648         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
1649         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
1650         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1651         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1652         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
1653         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
1654         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
1655         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
1656         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
1657         (struct cgraph_simd_clone_arg): Adjust comment.
1658         * coretypes.h (struct gomp_ordered): New forward decl.
1659         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
1660         set critical clauses to it.
1661         (gimple_build_omp_ordered): Return gomp_ordered * instead of
1662         gimple *.  Add CLAUSES argument, set ordered clauses to it.
1663         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
1664         GIMPLE_OMP_ORDERED.
1665         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
1666         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
1667         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
1668         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
1669         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
1670         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
1671         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
1672         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
1673         renumber
1674         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
1675         (gomp_critical): Add clauses field.
1676         (gomp_ordered): New struct.
1677         (is_a_helper <gomp_ordered *>::test): New inline.
1678         (gimple_build_omp_critical): Add CLAUSES argument.
1679         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
1680         instead of gimple *.
1681         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
1682         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
1683         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
1684         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
1685         inline functions.
1686         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
1687         (dump_gimple_omp_target): Handle enter data and exit data.
1688         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
1689         (dump_gimple_omp_critical): Print clauses.
1690         (dump_gimple_omp_ordered): New function.
1691         (dump_gimple_omp_task): Handle taskloop.
1692         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
1693         GIMPLE_OMP_ORDERED.
1694         * gimple-walk.c (walk_gimple_op): Walk clauses on
1695         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
1696         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
1697         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
1698         (struct gimplify_omp_ctx): Add loop_iter_var,
1699         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
1700         and target_firstprivatize_array_bases fields.
1701         (delete_omp_context): Release loop_iter_var.
1702         (gimplify_bind_expr): Handle ORT_NONE.
1703         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
1704         ORT_COMBINED_TARGET.
1705         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
1706         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
1707         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
1708         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
1709         ctx->target_map_scalars_firstprivate.
1710         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
1711         data sharing clauses.  For data sharing clause with VLA decl
1712         on omp target/target data don't add firstprivate for the pointer.
1713         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
1714         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
1715         the addition of ORT_COMBINED_TARGET.
1716         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
1717         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
1718         pointers as zero length array sections and
1719         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
1720         data sharing.
1721         (omp_check_private): Handle omp_member_access_dummy_var vars.
1722         (find_decl_expr): New function.
1723         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
1724         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
1725         Handle OMP_CLAUSE_GANG separately.  Handle
1726         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1727         clauses.  Diagnose linear clause on combined
1728         distribute {, parallel for} simd construct, unless it is the loop
1729         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
1730         Handle map clauses with COMPONENT_REF.  Initialize
1731         ctx->target_map_scalars_firstprivate,
1732         ctx->target_firstprivatize_array_bases and
1733         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
1734         linear clause even to target region if combined.  Remove
1735         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
1736         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
1737         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
1738         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
1739         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
1740         For linear clause on worksharing loop combined with parallel add
1741         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
1742         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
1743         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
1744         taskloop if needed.
1745         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
1746         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
1747         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
1748         GOMP_MAP_POINTER.
1749         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
1750         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
1751         in target body.  Handle removal of struct mapping if struct is not
1752         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
1753         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
1754         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
1755         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
1756         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
1757         clause appear together.  Handle
1758         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
1759         clause if it has map-type-modifier always.  Handle
1760         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1761         clauses.
1762         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
1763         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
1764         callers.
1765         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
1766         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
1767         iterators in doacross loops.
1768         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
1769         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
1770         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
1771         for the addition of ORT_COMBINED_TARGET.
1772         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
1773         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
1774         and OMP_TARGET_EXIT_DATA.
1775         (gimplify_omp_ordered): New function.
1776         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
1777         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
1778         Gimplify clauses on OMP_CRITICAL.
1779         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
1780         expand_GOMP_SIMD_ORDERED_END): New functions.
1781         * internal-fn.def (GOMP_SIMD_ORDERED_START,
1782         GOMP_SIMD_ORDERED_END): New internal functions.
1783         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
1784         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
1785         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
1786         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
1787         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
1788         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
1789         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
1790         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
1791         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
1792         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
1793         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
1794         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
1795         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
1796         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
1797         adjust type.
1798         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
1799         GOMP_target_data_41, adjust type.
1800         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
1801         GOMP_target_update_41, adjust type.
1802         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
1803         field.
1804         (struct omp_for_data): Add ordered and simd_schedule fields.
1805         (omp_member_access_dummy_var, unshare_and_remap_1,
1806         unshare_and_remap, is_taskloop_ctx): New functions.
1807         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
1808         (extract_omp_for_data): Handle taskloops and doacross loops
1809         and simd schedule modifier.
1810         (omp_adjust_chunk_size): New function.
1811         (get_ws_args_for): Use it.
1812         (lookup_sfield): Change first argument to splay_tree_key,
1813         add overload with first argument tree.
1814         (maybe_lookup_field): Likewise.
1815         (use_pointer_for_field): Handle omp_member_access_dummy_var.
1816         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
1817         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
1818         (build_outer_var_ref): Add LASTPRIVATE argument, handle
1819         taskloops and omp_member_access_dummy_var vars.
1820         (build_sender_ref): Change first argument to splay_tree_key,
1821         add overload with first argument tree.
1822         (install_var_field): For mask & 8 use &DECL_UID as key instead
1823         of the tree itself.
1824         (fixup_child_record_type): Const qualify *.omp_data_i.
1825         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
1826         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
1827         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
1828         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
1829         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
1830         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
1831         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
1832         kinds.
1833         (add_taskreg_looptemp_clauses): New function.
1834         (scan_omp_parallel): Use it.
1835         (scan_omp_task): Likewise.
1836         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1837         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
1838         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1839         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
1840         sandwiched taskloop constructs.  Type check
1841         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
1842         region.  Diagnose depend(source) or depend(sink:...) on
1843         target constructs or task/taskloop.
1844         (handle_simd_reference): Use get_name.
1845         (lower_rec_input_clauses): Likewise.  Ignore all
1846         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
1847         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
1848         before passing it to omp_clause_{default,copy}_ctor.  Handle
1849         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
1850         lastprivate_firstprivate flag for linear that needs copyin and
1851         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
1852         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
1853         on taskloop lookup decl in outer context.  Pass true to
1854         build_outer_var_ref lastprivate argument.  Handle
1855         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
1856         outside of outer taskloop for.
1857         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
1858         OMP_CLAUSE_DECL.
1859         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
1860         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
1861         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
1862         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
1863         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
1864         abstract origin.  Handle omp_member_access_dummy_var vars.
1865         (expand_parallel_call): Use expand_omp_build_assign.
1866         (expand_task_call): Handle taskloop construct expansion.  Add
1867         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
1868         integers.  Add priority argument to GOMP_task* calls.  Or in
1869         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
1870         GOMP_task call.
1871         (expand_omp_build_assign): Add prototype.  Add AFTER
1872         argument, if true emit statements after *GSI_P and continue linking.
1873         (expand_omp_taskreg): Adjust expand_task_call caller.
1874         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
1875         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
1876         zero_iter2_bb and first_zero_iter2 arguments, handle computation
1877         of counts even for ordered loops.
1878         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
1879         (expand_omp_ordered_source, expand_omp_ordered_sink,
1880         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
1881         functions.
1882         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
1883         clauses on worksharing loop.  Handle DOACROSS loop expansion.
1884         (expand_omp_for_static_nochunk): Handle linear clauses on
1885         worksharing loop.  Adjust expand_omp_for_init_counts
1886         callers.
1887         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
1888         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
1889         expand_omp_for_init_counts callers.
1890         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
1891         functions.
1892         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
1893         Handle doacross loops.
1894         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1895         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
1896         GOMP_target_{41,update_41,enter_exit_data} libcalls.
1897         (expand_omp): Don't expand ordered depend constructs here, record
1898         ord_stmt instead for later expand_omp_for_generic.
1899         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1900         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1901         clause as stand-alone directive.
1902         (lower_omp_ordered_clauses): New function.
1903         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
1904         don't lower anything.
1905         (lower_omp_for_lastprivate): Use last _looptemp_ clause
1906         on taskloop for comparison.
1907         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
1908         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
1909         expansion for linear adjustments.
1910         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1911         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
1912         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
1913         to tree * pointing to the stmt's clauses.
1914         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
1915         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1916         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
1917         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
1918         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
1919         clauses.  Always use short kind and 8-bit align shift.
1920         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
1921         (struct lower_omp_regimplify_operands_data): New type.
1922         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
1923         New functions.
1924         (lower_omp_1): Use lower_omp_regimplify_operands instead of
1925         gimple_regimplify_operands.
1926         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1927         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1928         clause as stand-alone directive.
1929         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
1930         (simd_clone_mangle): Mangle the various linear kinds
1931         per the new ABI.
1932         (simd_clone_adjust_argument_types): Handle
1933         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
1934         (simd_clone_init_simd_arrays): Don't do anything for uval.
1935         (simd_clone_adjust): Handle
1936         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1937         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
1938         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
1939         * omp-low.h (omp_member_access_dummy_var): New prototype.
1940         * passes.def (pass_simduid_cleanup): Schedule another copy of the
1941         pass after all optimizations.
1942         * tree.c (omp_clause_code_name): Add entries for
1943         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1944         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1945         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
1946         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
1947         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
1948         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
1949         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1950         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
1951         clauses.
1952         * tree-core.h (enum omp_clause_linear_kind): New.
1953         (struct tree_omp_clause): Change type of map_kind
1954         from unsigned char to unsigned int.  Add subcode.if_modifier
1955         and subcode.linear_kind fields.
1956         (enum omp_clause_code): Add
1957         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1958         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1959         (OMP_CLAUSE_REDUCTION): Document
1960         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1961         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
1962         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
1963         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
1964         operand.
1965         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
1966         operand.
1967         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
1968         codes.
1969         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
1970         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
1971         char.
1972         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
1973         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
1974         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
1975         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
1976         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
1977         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
1978         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
1979         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
1980         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
1981         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
1982         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
1983         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
1984         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
1985         * tree-inline.c (remap_gimple_stmt): Handle clauses on
1986         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
1987         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
1988         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
1989         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1990         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1991         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1992         (convert_local_omp_clauses): Likewise.
1993         * tree-pretty-print.c (dump_omp_clause): Handle
1994         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1995         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1996         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
1997         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
1998         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
1999         GOMP_MAP_FORCE_DEALLOC.  Handle
2000         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
2001         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
2002         and clauses on OMP_ORDERED and OMP_CRITICAL.
2003         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
2004         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
2005         (vectorize_loops): Adjust comments.
2006         (pass_simduid_cleanup::execute): Likewise.
2007         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
2008         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
2009         * wide-int.h (wi::gcd): New.
2010
2011 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
2012
2013         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
2014         (ix86_function_arg_advance): Ditto.
2015         (ix86_function_arg): Ditto.
2016         (ix86_gimplify_va_arg): Ditto.
2017         (ix86_class_max_nregs): Ditto.
2018         (inline_memory_move_cost): Ditto.
2019         (ix86_set_reg_reg_cost): Ditto.
2020         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
2021
2022 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
2023
2024         PR middle-end/67912
2025         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
2026
2027 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
2028
2029         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
2030         ROUND_UP macro and UNITS_PER_WORD * 2.
2031         * config/sparc/sparc.c (sparc_compute_frame_size):
2032         Use ROUND_UP and ROUND_DOWN macros where applicable.
2033         (function_arg_record_value, function_arg_record_value_1)
2034         (function_arg_record_value_1): Ditto.
2035         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
2036         alignment to double-word.
2037         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
2038         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
2039         rounded_size.
2040
2041 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
2042
2043         * gcc/rtl.h (print_insn): Fix prototype.
2044
2045 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2046
2047         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
2048         -1.  Add assert that returned entry matches phi argument.
2049         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
2050         free_stmt_vec_info_vec ...
2051         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
2052         with -1.
2053
2054 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
2055
2056         PR tree-optimization/67909, 67947
2057         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
2058         really skip the inner loop.
2059
2060 2015-10-13  Jeff Law  <law@redhat.com>
2061
2062         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
2063         Allow single block jump threading paths.
2064
2065 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2066
2067         PR tree-optimization/67476
2068         * doc/invoke.texi (@item parloops-schedule): New item.
2069         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
2070         * tree-parloops.c: Include params-enum.h.
2071         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
2072
2073 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2074
2075         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
2076         * params-enum.h: New file.
2077         * opts.c (handle_param): Handle case that param arg is a string.
2078         * params-list.h: Handle DEFPARAMENUM5 in params.def.
2079         * params.c (find_param): New function, factored out of ...
2080         (set_param_value): ... here.
2081         (param_string_value_p): New function.
2082         * params.h (struct param_info): Add value_names field.
2083         (find_param, param_string_value_p): Declare.
2084
2085 2015-10-13  Tom de Vries  <tom@codesourcery.com>
2086
2087         PR tree-optimization/67476
2088         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
2089
2090 2015-10-13  Richard Biener  <rguenther@suse.de>
2091
2092         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
2093         the data dependence vector.
2094         (vect_peeling_hash_insert): Get the peeling hash table as argument.
2095         (vect_peeling_hash_get_lowest_cost): Likewise.
2096         (vect_enhance_data_refs_alignment): Adjust.
2097         (struct _vect_peel_info, struct _vect_peel_extended_info,
2098         struct peel_info_hasher): Move from ...
2099         * tree-vectorizer.h: ... here.
2100         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
2101         (LOOP_VINFO_PEELING_HTAB): Likewise.
2102         (struct _loop_vec_info): Remove min_profitable_iters and
2103         peeling_htab members.
2104         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
2105         here.
2106         (destroy_loop_vec_info): Adjust.
2107         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
2108         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
2109         to estimate alias versioning cost.
2110         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
2111
2112 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
2113
2114         * real.h (real_isinteger): Declare.
2115         * real.c (real_isinteger): New function.
2116         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
2117         if y is an even integer.
2118
2119 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2120
2121         revert:
2122         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2123         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
2124         counts when these are more informative.
2125
2126 2015-10-12  Jeff Law  <law@redhat.com>
2127
2128         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
2129         (fsm_find_control_stmt_paths): Change name of first argument to
2130         more accurately relfect what it really is.  Handle simplification
2131         of GIMPLE_COND after finding a thread path for NAME.
2132         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
2133         nontrivial conditions to be handled by FSM threader.
2134         (thread_through_normal_block): Extract the name to looup via
2135         FSM threader from COND_EXPR.
2136
2137         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
2138         restriction that traced SSA_NAME is a user variable.
2139
2140 2015-10-12  Tom de Vries  <tom@codesourcery.com>
2141
2142         PR tree-optimization/67476
2143         * omp-low.c (expand_omp_for_generic): Add missing phis.
2144
2145 2015-10-12  Tom de Vries  <tom@codesourcery.com>
2146
2147         PR tree-optimization/67476
2148         * omp-low.c (expand_omp_for_generic): Handle simple latch.
2149
2150 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
2151
2152         * config/aarch64/aarch64-simd-builtins.def: Update builtins
2153         tables: add tbl3 and tbx4.
2154         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
2155         (aarch64_tbx4v8qi): New.
2156         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
2157         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
2158         Rewrite using builtin functions.
2159         * config/aarch64/iterators.md (UNSPEC_TBX): New.
2160
2161 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
2162
2163         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
2164         ROUND_UP macro.
2165         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
2166         Use ROUND_UP and ROUND_DOWN macros where applicable.
2167         (rs6000_darwin64_record_arg_flush): Ditto.
2168         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
2169         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
2170         rounded_size.
2171
2172 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
2173
2174         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
2175         (AARCH64_ROUND_DOWN): Ditto.
2176         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
2177
2178 2015-10-12  Richard Biener  <rguenther@suse.de>
2179
2180         PR ipa/67783
2181         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
2182         code that analyzes IVs on each stmt but in a cheaper way avoiding
2183         quadratic behavior.
2184
2185 2015-10-12  Nick Clifton  <nickc@redhat.com>
2186
2187         * config/msp430/msp430.c (msp430_mcu_names): Rename to
2188         msp430_mcu_data, add fields for ISA and hardware multiply
2189         support.  Import latest data from the devices.csv file.
2190         (msp430_override_option): Use the data from the new array.
2191         (msp430_use_f5_series_hwmult): Likewise.
2192         (use_32bit_hwmult): Likewise.
2193         (msp430_no_hwmult): Likewise.
2194         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
2195         MCU names.
2196         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
2197         not recognised then no hardware multiply support is assumed and
2198         that only the MSP430 ISA is allowed.
2199
2200 2015-10-12  Richard Biener  <rguenther@suse.de>
2201
2202         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
2203         related code ...
2204         (vect_analyze_loop_2): ... here.
2205
2206 2015-10-11  Jason Merrill  <jason@redhat.com>
2207
2208         PR c++/67557
2209         * expr.c (store_field): Call store_constructor directly when
2210         storing a CONSTRUCTOR into a target smaller than its type.
2211         Guard against unsafe bitwise copy.
2212
2213 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2214
2215         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
2216         counts when these are more informative.
2217
2218 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2219
2220         * tree-profile.c (tree_profiling): Do not clear
2221         pure/const when not instrumenting.
2222         (pass tree_profile): Add dump of symtab.
2223
2224 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2225
2226         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
2227         addresses.
2228         (fold_addr_of_array_ref_difference): Likewise.
2229
2230 2015-10-11  Jeff Law  <law@redhat.com>
2231
2232         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
2233         tree-ssa-threadbackward.c.
2234         (fsm_find_control_statement_thread_paths): Likewise.
2235         (thread_through_normal_block): Break out FSM bits and move them
2236         into a new function in tree-ssa-threadbackward.c.  Call new function
2237         instead.
2238         Minimize header file usage.
2239         * tree-ssa-threadbackward.h: New file.
2240         * tree-ssa-threadbackward.c: Likewise.
2241         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
2242
2243 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
2244
2245         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
2246
2247 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
2248
2249         PR rtl-optimization/67864
2250         * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
2251         fallthrough edges for conditional jumps.  Don't sort candidate
2252         edges if not optimizing for speed.
2253
2254 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2255
2256         * defaults.h (REVERSE_CONDITION): New default definition.
2257         * jump.c (reversed_comparison_code_parts): Adjust.
2258
2259 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2260
2261         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
2262         check HARD_FRAME_POINTER_IS_ARG_POINTER.
2263
2264 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2265
2266         * defaults.h (FRAME_ADDR_RTX): New default definition.
2267         * builtins.c (expand_builtin_return_addr): Adjust.
2268
2269 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2270
2271         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
2272         * builtins.c (expand_builtin_return_addr): Adjust.
2273
2274 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2275
2276         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
2277         * builtins.c (expand_builtin_return_addr): Adjust.
2278         * doc/tm.texi: Likewise.
2279         * doc/tm.texi.in: Likewise.
2280         * except.c (expand_builtin_unwind_init): Likewise.
2281
2282 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2283
2284         * builtins.c (expand_builtin_return_addr): Adjust.
2285         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
2286
2287 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2288
2289         * tree.c (type_with_interoperable_signedness): New.
2290         (gimple_canonical_types_compatible_p): Use it.
2291         * tree.h (type_with_interoperable_signedness): Declare
2292
2293 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2294
2295         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
2296         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
2297         when OEP_ADDRESS_OF is se.
2298
2299 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2300             Sebastian Pop  <s.pop@samsung.com>
2301
2302         * graphite-dependences.c (scop_get_dependences): Add dump of the
2303         data dependence graph.
2304         * graphite-poly.c (print_isl_union_map): New.
2305         (debug_isl_union_map): New.
2306         * graphite-poly.h (print_isl_union_map): Declare.
2307         (debug_isl_union_map): Declare.
2308
2309 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2310             Sebastian Pop  <s.pop@samsung.com>
2311
2312         * graphite-poly.c (print_iteration_domain): Remove verbosity.
2313         Remove OpenScop formatting.
2314         (print_iteration_domains): Same.
2315         (debug_iteration_domain): Same.
2316         (debug_iteration_domains): Same.
2317         (print_pdr): Same.
2318         (debug_pdr): Same.
2319         (dump_gbb_cases): Same.
2320         (dump_gbb_conditions): Same.
2321         (print_pdrs): Same.
2322         (debug_pdrs): Same.
2323         (print_pbb_body): Same.
2324         (print_pbb): Same.
2325         (print_scop_params): Same.
2326         (print_scop_context): Same.
2327         (print_scop): Same.
2328         (debug_pbb_domain): Same.
2329         (debug_pbb): Same.
2330         (debug_scop_context): Same.
2331         (debug_scop): Same.
2332         (debug_scop_params): Same.
2333         * graphite-poly.h: Same.
2334         * graphite.c (graphite_transform_loops): Same.
2335
2336 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2337
2338         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
2339         call that isn't needed.
2340
2341 2015-10-09  Jeff Law  <law@redhat.com>
2342
2343         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
2344         rather than moving each name to the freelist individually.
2345
2346 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
2347
2348         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
2349         * frame-header-opt.c: New file.
2350         * config/mips/mips-proto.h (mips_register_frame_header_opt):
2351         Add prototype.
2352         * config/mips/mips.c (mips_compute_frame_info): Check
2353         optimize_call_stack flag.
2354         (mips_option_override): Register new frame_header_opt pass.
2355         (mips_frame_info, mips_int_mask, mips_shadow_set,
2356         machine_function): Move these types to...
2357         * config/mips/mips.h: here.
2358         (machine_function): Add does_not_use_frame_header and
2359         optimize_call_stack fields.
2360         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
2361         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
2362         Document new flags.
2363         * config/mips/mips.opt (mframe-header-opt): Add new option.
2364
2365 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
2366
2367         * config/i386/i386.c
2368         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
2369         ROUND_DOWN where applicable.
2370
2371 2015-10-09  Jeff Law  <law@redhat.com>
2372
2373         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
2374         correct statement.
2375
2376 2015-10-09  Renlin Li  <renlin.li@arm.com>
2377
2378         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
2379         operands[0] and operands[2].
2380         (neon_vtrn<mode>_insn): Likewise.
2381         (neon_vzip<mode>_insn): Likewise.
2382
2383 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2384
2385         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
2386         ((X & C2) << C1): Expand to...
2387         (X {&,^,|} C2 << C1): ...This.
2388         ((X & C2) >> C1): Expand to...
2389         (X {&,^,|} C2 >> C1): ...This.
2390
2391 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
2392
2393         PR target/67895
2394         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
2395         Adjust embedded rounding/SAE specifier position.
2396         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
2397         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
2398         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
2399         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
2400         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
2401         Likewise.
2402         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
2403
2404 2015-10-09  Martin Jambor  <mjambor@suse.cz>
2405
2406         tree-optimization/67794
2407         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
2408         between types of state,ents but accept original definitions as a
2409         parameter.
2410         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
2411         iterate over definitions.
2412
2413 2015-10-09  James Norris  <jnorris@codesourcery.com>
2414
2415         * config/rs6000/rs6000.c (rs6000_offload_options): New.
2416         (TARGET_OFFLOAD_OPTIONS): New.
2417
2418 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
2419
2420         PR middle-end/67891
2421         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
2422
2423         PR middle-end/67766
2424         * function.c (expand_function_end): Move return value
2425         promotion past the handling of PARALLELs and CONCATs.
2426
2427         PR rtl-optimization/67828
2428         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
2429         (tree_may_unswitch_on): Don't unswitch on expressions
2430         involving undefined values.
2431
2432 2015-10-09  Richard Biener  <rguenther@suse.de>
2433
2434         * genmatch.c (print_operand): Fix formatting.
2435         (dt_node::append_simplify): Warn for multiple simplifiers
2436         that match the same pattern.
2437         * match.pd (log (exp @0)): Remove duplicates.
2438
2439 2015-10-09  Richard Biener  <rguenth@suse.de>
2440
2441         PR target/67366
2442         * gimple-fold.c (optabs-query.h): Include
2443         (gimple_fold_builtin_memory_op): Allow unaligned stores
2444         when movmisalign_optabs are available.
2445
2446 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2447
2448         PR target/67366
2449         * config/arm/arm.md (movmisalign<mode>): New.
2450         * config/arm/iterators.md (HSI): New.
2451
2452 2015-10-09  Richard Biener  <rguenther@suse.de>
2453
2454         PR tree-optimization/67891
2455         * gimple-match.h (gimple_simplified_result_is_gimple_val):
2456         New helper.
2457         (gimple_resimplify1): Declare.
2458         (gimple_resimplify2): Likewise.
2459         (gimple_resimplify3): Likewise.
2460         * gimple-match-head.c (gimple_resimplify1): Export.
2461         (gimple_resimplify2): Likewise.
2462         (gimple_resimplify3): Likewise.
2463         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
2464         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
2465         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
2466         to avoid creating stmts without VN info.
2467
2468 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
2469
2470         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
2471         of availability.
2472
2473 2015-10-08  Jeff Law  <law@redhat.com>
2474
2475         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
2476         and release_ssa_name in two places.
2477         (gimple_stringop_fixed_value): Similarly.
2478
2479         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
2480         release_defs.
2481
2482         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
2483         unlink_stmt_vdef and release_ssa_name_fn.
2484
2485         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
2486         release_defs.
2487
2488 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2489
2490         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
2491         SSE register save area to 16 bytes only if the incoming stack
2492         boundary is no less than 16 bytes.
2493
2494 2015-10-08  Jeff Law  <law@redhat.com>
2495
2496         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
2497         release_ssa_name.  Fix typo in comment.
2498
2499 2015-10-08  Nathan Sidwell  <nathan@acm.org>
2500
2501         * config/nvptx/nvptx.h (struct machine_function): Add comment.
2502         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
2503         may return pointer as well as in memory.
2504         (nvptx_output_return): Likewise.
2505
2506 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2507
2508         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
2509         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
2510         * match.pd: Add rules previously handled by fold_builtin_sqrt
2511         and fold_builtin_cbrt.
2512
2513 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2514
2515         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
2516         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
2517         * fold-const.h (tree_unary_nonnegative_warnv_p)
2518         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2519         (tree_expr_nonnegative_warnv_p): Add depth parameters.
2520         * fold-const.c: Include gimple-fold.h and params.h.
2521         (tree_ssa_name_nonnegative_warnv_p): New function.
2522         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
2523         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2524         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
2525         Add a depth parameter and increment it for recursive calls to
2526         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
2527         to handle SSA names.
2528         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
2529         (gimple_stmt_nonnegative_warnv_p): Declare.
2530         * tree-vrp.c (remove_range_assertions): Remove assert that condition
2531         cannot be proven false.
2532         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
2533         (gimple_stmt_nonnegative_warnv_p): Move to...
2534         * gimple-fold.c: ...here.  Add depth parameters and pass them
2535         down to the tree routines.  Accept statements that aren't
2536         assignments or calls but just return false for them.
2537         (gimple_val_nonnegative_real_p): Delete.
2538         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
2539         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
2540         Check HONOR_NANs first.
2541
2542 2015-10-08  Martin Jambor  <mjambor@suse.cz>
2543
2544         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
2545         unnecessary MIN.
2546
2547 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2548
2549         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
2550         in the tail of outer-loop.
2551
2552 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
2553
2554         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
2555         return UI_NONE.
2556
2557 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2558
2559         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
2560         "cfghooks.h", add prototypes for introduced new functions.
2561         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
2562         checks on ability of loop unswitching to tree_unswitch_single_loop;
2563         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
2564         on innermost loop check.
2565         (tree_unswitch_single_loop): Add all required checks on ability of
2566         loop unswitching under zero recursive level guard.
2567         (tree_unswitch_outer_loop): New function.
2568         (find_loop_guard): Likewise.
2569         (empty_bb_without_guard_p): Likewise.
2570         (used_outside_loop_p): Likewise.
2571         (get_vop_from_header): Likewise.
2572         (hoist_guard): Likewise.
2573         (check_exit_phi): Likewise.
2574
2575 2015-10-08  Marek Polacek  <polacek@redhat.com>
2576
2577         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
2578         ops element.
2579
2580 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2581
2582         PR c/65345
2583         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
2584         create_tmp_var_raw instead of create_tmp_var.
2585
2586 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
2587
2588         * expr.c (store_expr_with_bounds): Handle aggregate moves from
2589         BLKmode.
2590         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
2591         to define gimple type system; compare aggregates only by size.
2592
2593 2015-10-07  Jeff Law  <law@redhat.com>
2594
2595         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
2596         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
2597         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
2598         unnecessarily.
2599
2600 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2601             Sebastian Pop  <s.pop@samsung.com>
2602
2603         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
2604         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
2605         (generate_isl_schedule): Same.
2606         * graphite-optimize-isl.c (scop_get_domains): Same.
2607         (apply_schedule_map_to_scop): Same.
2608         * graphite-poly.c (print_iteration_domains): Same.
2609         (remove_gbbs_in_scop): Same.
2610         (new_scop): Same.
2611         (free_scop): Same.
2612         (print_scop): Same.
2613         * graphite-poly.h (struct scop): Rename bbs to pbbs.
2614         (SCOP_BBS): Remove.
2615         * graphite-scop-detection.c (compare_bb_depths): Remove.
2616         (graphite_sort_dominated_info): Remove.
2617         (try_generate_gimple_bb): Move out of scop_detection.
2618         (all_non_dominated_preds_marked_p): Remove.
2619         (build_scop_bbs_1): Remove.
2620         (build_scop_bbs): Remove.
2621         (nb_pbbs_in_loops): Do not use SCOP_BBS.
2622         (find_scop_parameters): Same.
2623         (sese_dom_walker): Rename gather_bbs.
2624         (before_dom_children): Call try_generate_gimple_bb and collect gbb
2625         and pbb.
2626         (build_scops): Call gather_bbs.
2627         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
2628         (add_conditions_to_constraints): Same.
2629         (build_scop_iteration_domain): Same.
2630         (build_scop_drs): Same.
2631         (new_pbb_from_pbb): Same.
2632         * sese.c (new_sese_info): Create bbs.
2633         * sese.h (struct sese_info_t): Add bbs.
2634
2635 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
2636
2637         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
2638         encoding in 64-bit mode.
2639
2640 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
2641
2642         PR target/66697
2643         * config/i386/i386.c (ix86_option_override_internal): Always use
2644         8-byte minimum stack boundary in 64-bit mode.
2645         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
2646         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
2647         Add a REG_CFA_EXPRESSION note if needed.
2648         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
2649         (ix86_handle_force_align_arg_pointer_attribute): New.
2650         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
2651         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
2652         with ix86_handle_force_align_arg_pointer_attribute.
2653         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
2654
2655 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2656             Sebastian Pop  <s.pop@samsung.com>
2657
2658         * graphite-scop-detection.c (parameter_index_in_region): Remove
2659         use of SESE_ADD_PARAMS.
2660         (find_scop_parameters): Same.
2661         * sese.c (new_sese_info): Same.
2662         * sese.h (struct sese_info_t): Remove add_params.
2663         (SESE_ADD_PARAMS): Remove.
2664
2665 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2666             Sebastian Pop  <s.pop@samsung.com>
2667
2668         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
2669         an sese_info_p.
2670         (copy_def): Same.
2671         (copy_internal_parameters): Same.
2672         (translate_isl_ast_to_gimple): Use an sese_l.
2673         (build_iv_mapping): Same.
2674         * graphite-poly.c (new_sese): Rename new_sese_info.
2675         (free_sese): Rename free_sese_info.
2676         * graphite-poly.h (struct scop): Use an sese_info_p.
2677         (scop_set_region): Same.
2678         * graphite-scop-detection.c (struct sese_l): Moved...
2679         (get_entry_bb): Moved...
2680         (get_exit_bb): Moved...
2681         (parameter_index_in_region_1): Use an sese_info_p.
2682         (parameter_index_in_region): Same.
2683         (scan_tree_for_params): Same.
2684         (find_params_in_bb): Same.
2685         (sese_dom_walker): Use an sese_l.
2686         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
2687         (reduction_phi_p): Same.
2688         (parameter_index_in_region_1): Use an sese_info_p.
2689         (propagate_expr_outside_region): Use an sese_l.
2690         * graphite.c: Replace uses of SCOP_REGION.
2691         * sese.c (sese_record_loop): Use an sese_info_p.
2692         (build_sese_loop_nests): Same.
2693         (sese_build_liveouts_use): Same.
2694         (sese_build_liveouts_bb): Same.
2695         (sese_build_liveouts_bb): Same.
2696         (sese_bad_liveouts_use): Same.
2697         (sese_reset_debug_liveouts_bb): Same.
2698         (sese_build_liveouts): Same.
2699         (new_sese): Renamed new_sese_info.
2700         (free_sese): Renamed free_sese_info.
2701         (set_rename): Use an sese_info_p.
2702         (graphite_copy_stmts_from_block): Same.
2703         (copy_bb_and_scalar_dependences): Same.
2704         (outermost_loop_in_sese_1): Use an sese_l.
2705         (outermost_loop_in_sese): Same.
2706         (if_region_set_false_region): Use an sese_info_p.
2707         (move_sese_in_condition): Same.
2708         (scalar_evolution_in_region): Use an sese_l.
2709         * sese.h (struct sese_l): ... here.
2710         (SESE_ENTRY): Remove.
2711         (SESE_ENTRY_BB): Remove.
2712         (SESE_EXIT): Remove.
2713         (SESE_EXIT_BB): Remove.
2714         (sese_contains_loop): Use an sese_info_p.
2715         (sese_nb_params): Same.
2716         (bb_in_sese_p): Use an sese_l.
2717         (stmt_in_sese_p): Same.
2718         (defined_in_sese_p): Same.
2719         (loop_in_sese_p): Same.
2720         (sese_loop_depth): Same.
2721         (struct ifsese_s): Use an sese_info_p.
2722         (gbb_loop_at_index): Use an sese_l.
2723         (nb_common_loops): Same.
2724         (scev_analyzable_p): Same.
2725
2726 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2727
2728         * config/i386/i386.c (ix86_conditional_register_usage): Use
2729         CALL_USED_REGISTERS_MASK.
2730         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
2731
2732 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2733
2734         PR bootstrap/67385
2735         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
2736         * configure: Regenerated.
2737
2738 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2739
2740         PR target/67850
2741         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
2742         (ix86_set_current_function): This.
2743         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
2744
2745 2015-10-07  Richard Biener  <rguenther@suse.de>
2746
2747         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2748         (vinfo_for_stmt): Adjust.
2749         (set_vinfo_for_stmt): Likewise.
2750         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
2751         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
2752         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
2753         of inner loop.
2754         (vect_analyze_loop_1): Remove.
2755         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
2756         inner loop when vectorizing an outer loop by splitting out from ...
2757         (vect_analyze_loop_form): ... here.
2758
2759 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2760
2761         PR c/65345
2762         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
2763         Use create_tmp_var_raw instead of create_tmp_var.
2764
2765 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
2766
2767         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
2768         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
2769         * real.c (CACHED_FRACTION): New helper macro.
2770         (dconst_third_ptr): Use it.
2771         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
2772         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
2773         dconst_sixth.
2774         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
2775
2776 2015-10-06  Jeff Law  <law@redhat.com>
2777
2778         PR tree-optimization/67816
2779         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
2780         from remove_jump_threads_starting_at.  Accept an edge rather than
2781         a basic block.
2782         * tree-ssa-threadupdate.c (removed_edges): New hash table.
2783         (remove_jump_threads_including): Note edges that get removed from
2784         the CFG for later pruning of jump threading paths including them.
2785         (thread_through_all_blocks): Remove paths which include edges that
2786         have been removed.
2787         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
2788         on each outgoing edges when optimizing away a control statement.
2789
2790 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2791
2792         * reorg.c (emit_delay_sequence): Store list of delay slot insns
2793         in a vector instead of rtx_insn_list.
2794         (add_to_delay_list): Likewise.
2795         (delete_from_delay_slot): Likewise.
2796         (optimize_skip): Likewise.
2797         (redirect_with_delay_list_safe_p): Likewise.
2798         (check_annul_list_true_false): Likewise.
2799         (steal_delay_list_from_target): Likewise.
2800         (steal_delay_list_from_fallthrough): Likewise.
2801         (redundant_insn): Likewise.
2802         (fill_simple_delay_slots): Likewise.
2803         (fill_slots_from_thread): Likewise.
2804         (fill_eager_delay_slots): Likewise.
2805         (relax_delay_slots): Likewise.
2806
2807 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
2808
2809         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
2810         For -mgpopt=local, also exclude unintialized common symbols.
2811         * doc/invoke.texi (Nios II Options): Document the change.
2812
2813 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2814
2815         * config/aarch64/iterators.md (vwcore): Add missing cases for
2816          V4HF/V8HF modes.
2817
2818 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2819             Sebastian Pop  <s.pop@samsung.com>
2820
2821         * graphite-poly.c (new_scop): Initialize drs.
2822         * graphite-poly.h (struct dr_info): New.
2823         (struct scop): Add drs.
2824         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
2825         (pdr_add_memory_accesses): Same.
2826         (build_poly_dr): Same.
2827         (build_alias_set): Same.
2828         (build_scop_drs): Same.
2829         (build_pbb_drs): Remove.
2830         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
2831         * tree-data-ref.h (data_reference): Remove alias_set.
2832
2833 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2834             Sebastian Pop  <s.pop@samsung.com>
2835
2836         * graphite-poly.c (free_data_refs_aux): Remove.
2837         (free_gimple_poly_bb): Do not call free_data_refs_aux.
2838         * graphite-poly.h (struct base_alias_pair): Remove.
2839         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
2840         base_alias_pair and dr->aux.
2841         (build_alias_set): Same.
2842         * tree-data-ref.c (create_data_ref): Initialize alias_set.
2843         * tree-data-ref.h (data_reference): Add alias_set.
2844
2845 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2846             Sebastian Pop  <s.pop@samsung.com>
2847
2848         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
2849         Do not set PDR_BASE_OBJECT_SET.
2850         * graphite-poly.h (poly_dr): Same.
2851         (PDR_BASE_OBJECT_SET): Remove.
2852         (new_poly_dr): Update decl.
2853         * graphite-sese-to-poly.c (build_poly_dr): Update call to
2854         new_poly_dr.
2855         (write_alias_graph_to_ascii_dimacs): Remove.
2856         (write_alias_graph_to_ascii_dot): Remove.
2857         (write_alias_graph_to_ascii_ecc): Remove.
2858         (dr_same_base_object_p): Remove.
2859         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
2860         code.
2861         (build_base_obj_set_for_drs): Remove.
2862         (dump_alias_graphs): Remove.
2863         (build_scop_drs): Remove dead code.
2864
2865 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2866             Peter Bergner  <bergner@vnet.ibm.com>
2867
2868         PR target/67808
2869         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
2870         allow registers, but provide insns for the combiner to create for
2871         loads from memory. Separate VSX code from non-VSX code. For
2872         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
2873         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
2874         so that registers come before memory operations. Drop support from
2875         converting DFmode to TFmode, if the DFmode value is in a GPR
2876         register.
2877         (extenddftf2_fprs): Likewise.
2878         (extenddftf2_internal): Likewise.
2879         (extenddftf2_vsx): Likewise.
2880         (extendsftf2): In the expander, only allow registers, but provide
2881         insns for the combiner to create for stores and loads.
2882
2883 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2884
2885         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
2886         from the decl parameter.
2887
2888 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
2889
2890         PR 67861
2891         * gimple-fold.c (gimple_fold_builtin): Add break after
2892         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
2893
2894 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
2895
2896         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
2897         to scop->isl_context.
2898
2899 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2900
2901         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
2902         (output_probe_stack_range): Rotate the loop and simplify.
2903         (thumb1_expand_prologue): Tweak sorry message.
2904         * config/arm/arm.md (probe_stack): Use bare string.
2905
2906 2015-10-06  Nick Clifton  <nickc@redhat.com>
2907
2908         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
2909
2910 2015-10-06  Nick Clifton  <nickc@redhat.com>
2911
2912         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
2913         (ATTR_PERSIST): New constant.
2914         (msp430_data_attr): New function - verifies an attribute that only
2915         applies to variables.
2916         (msp430_attributes): Add noinit and persistent attributes.
2917         (noinit_section): New variable.
2918         (presis_section): New variable.
2919         (TARGET_ASM_INIT_SECTIONS): Define.
2920         (msp430_init_sections): New function - initialises the noinit and
2921         persist section variables.
2922         (msp430_select_section): Add support for noinit and persist
2923         attributes.
2924         (msp430_section_type_flags): Likewise.
2925         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
2926         and persistent attributes.
2927
2928 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2929             Sebastian Pop  <s.pop@samsung.com>
2930
2931         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
2932         (no_violations): Remove.
2933         (subtract_commutative_associative_deps): Remove.
2934         (compute_deps): Do not call subtract_commutative_associative_deps.
2935         (transform_is_safe): Remove.
2936         (graphite_legal_transform): Remove.
2937         * graphite-poly.h (graphite_legal_transform): Remove.
2938
2939 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
2940
2941         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
2942         which are in this region are passed so gcc_assert and remove redundant
2943         computation.
2944         * sese.c (sese_build_liveouts): Pass only those bbs which are not
2945         in region.
2946         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
2947         gcc_assert on that and remove unnecessary computation.
2948         (sese_build_liveouts_use): Same.
2949
2950 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2951
2952         * graphite-dependences.c (scop_get_reads): Renamed scop->context
2953         to scop->param_context.
2954         (scop_get_must_writes): Same.
2955         (scop_get_may_writes): Same.
2956         (scop_get_original_schedule): Same.
2957         (scop_get_transformed_schedule): Same.
2958         (subtract_commutative_associative_deps): Same.
2959         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
2960         (generate_isl_context): Same.
2961         (generate_isl_schedule): Same.
2962         (scop_to_isl_ast): Same.
2963         (graphite_regenerate_ast_isl): Same.
2964         * graphite-optimize-isl.c (scop_get_domains): Same.
2965         (optimize_isl): Renamed scop->context to scop->param_context.
2966         * graphite-poly.c (new_poly_bb): Change the type of argument to
2967         gimple_poly_bb_p.
2968         (new_scop): Renamed scop->context to scop->param_context.
2969         (free_scop): Same.
2970         (print_scop_context): Same.
2971         * graphite-poly.h (new_poly_dr): Change the type of argument from
2972         void* to data_reference_p.
2973         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
2974         (new_poly_bb): Change the type of argument from void* to
2975         gimple_poly_bb_p.
2976         (pbb_set_black_box): Same.
2977         (struct scop): Rename context to param_context, ctx to isl_context.
2978         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
2979         Move declarations closer to assignment.
2980         (find_params_in_bb): Same.
2981         (find_scop_parameters): Same.
2982         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
2983         Global to be used for statement IDs.
2984         (isl_id_for_pbb): Use ssa_name_version_typesize.
2985         (simple_copy_phi_p): Move declarations closer to assignment.
2986         (build_pbb_scattering_polyhedrons): Same.
2987         (build_scop_scattering): Same.
2988         (isl_id_for_ssa_name): Same.
2989         (extract_affine_name): Same.
2990         (extract_affine_int): Same.
2991         (extract_affine): Same.
2992         (set_scop_parameter_dim): Use renamed member.
2993         (build_loop_iteration_domains): Same.
2994         (add_param_constraints): Same.
2995         (build_scop_iteration_domain): Same.
2996         (pdr_add_data_dimensions): Same.
2997         (build_poly_dr): Same.
2998         (build_scop_drs): Move declarations closer to assignment.
2999         (analyze_drs_in_stmts): Same.
3000         (insert_out_of_ssa_copy): Same.
3001         (insert_out_of_ssa_copy_on_edge): Same.
3002         (propagate_expr_outside_region): Same.
3003         (rewrite_phi_out_of_ssa): Same.
3004         (rewrite_degenerate_phi): Same.
3005         (rewrite_reductions_out_of_ssa): Same.
3006         (rewrite_cross_bb_scalar_dependence): Same.
3007         (handle_scalar_deps_crossing_scop_limits): Same.
3008         (rewrite_cross_bb_scalar_deps): Same.
3009         * graphite.c (graphite_transform_loops): Use renamed member.
3010
3011 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
3012
3013         PR c/65345
3014         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
3015         create_tmp_var_raw instead of create_tmp_var.
3016
3017 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3018
3019         PR c/65345
3020         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
3021         Use create_tmp_var_raw instead of create_tmp_var.
3022
3023 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
3024
3025         PR target/67849
3026         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
3027         split for upper-bank registers when target does not support
3028         AVX512VL.
3029         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
3030         split when target does not support AVX512VL.
3031
3032 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
3033
3034         PR c/65345
3035         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
3036         Adjust to use create_tmp_var_raw instead of create_tmp_var.
3037
3038 2015-10-06  Nick Clifton  <nickc@redhat.com>
3039
3040         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
3041         multiplication.
3042
3043 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
3044
3045         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
3046         (case ${target}): Add znver1.
3047         * config/i386/cpuid.h(bit_CLZERO):  Define.
3048         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
3049         -march=native recognize znver1 processors.
3050         * config/i386/i386-c.c (ix86_target_macros_internal): Add
3051         znver1, clzero def_and_undef.
3052         * config/i386/i386.c (struct processor_costs znver1_cost): New.
3053         (m_znver1): New definition.
3054         (m_AMD_MULTIPLE): Includes m_znver1.
3055         (processor_target_table): Add znver1 entry.
3056         (ix86_target_string) : Add clzero entry.
3057         (static const char *const cpu_names): Add znver1 entry.
3058         (ix86_option_override_internal): Add znver1 instruction sets.
3059         (PTA_CLZERO) :  New definition.
3060         (ix86_option_override_internal): Handle new clzerooption.
3061         (ix86_issue_rate): Add znver1.
3062         (ix86_adjust_cost): Add znver1.
3063         (ia32_multipass_dfa_lookahead): Add znver1.
3064         (has_dispatch): Add znver1.
3065         * config/i386/i386.h (TARGET_znver1): New definition.
3066         (TARGET_CLZERO): Define.
3067         (TARGET_CLZERO_P): Define.
3068         (struct ix86_size_cost): Add TARGET_ZNVER1.
3069         (enum processor_type): Add PROCESSOR_znver1.
3070         * config/i386/i386.md (define_attr "cpu"): Add znver1.
3071         (set_attr znver1_decode): New definitions for znver1.
3072         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
3073         (mclzero): New.
3074         * config/i386/mmx.md (set_attr znver1_decode): New definitions
3075         for znver1.
3076         * config/i386/sse.md (set_attr znver1_decode): Likewise.
3077         * config/i386/x86-tune.def:  Add znver1 tunings.
3078         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
3079         * gcc/doc/invoke.texi: Add details about znver1
3080
3081 2015-10-06  Richard Biener  <rguenther@suse.de>
3082
3083         PR tree-optimization/67859
3084         * tree-ssa-pre.c (create_expression_by_pieces): Properly
3085         discard not inserted stmts.
3086
3087 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
3088
3089         * doc/extend.texi (Template Instantiation): Reorder options and
3090         de-emphasize -frepo.
3091         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
3092         example instead of -frepo.
3093
3094 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
3095
3096         PR c/65345
3097         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
3098         use create_tmp_var_raw rather than create_tmp_var.
3099
3100 2015-10-06  Richard Biener  <rguenther@suse.de>
3101
3102         * tree-vectorizer.h (vec_info): New base class for...
3103         (_loop_vec_info): ... this and ...
3104         (_bb_vec_info): ... this.
3105         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
3106         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
3107         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
3108         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
3109         vect_destroy_datarefs): Adjust interface to take a vec_info *
3110         rather than both a loop_vec_info and a bb_vec_info argument.
3111         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
3112         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
3113         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
3114         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
3115         accordingly.
3116         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
3117         (destroy_loop_vec_info, vect_analyze_loop_2,
3118         vect_is_simple_reduction_1, get_initial_def_for_induction,
3119         vect_create_epilog_for_reduction, vectorizable_reduction,
3120         vectorizable_live_operation, vect_transform_loop): Adjust.
3121         * tree-vect-patterns.c (type_conversion_p,
3122         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
3123         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
3124         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
3125         check_bool_pattern, vect_recog_bool_pattern,
3126         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
3127         * tree-vect-slp.c (vect_get_and_check_slp_defs,
3128         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
3129         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
3130         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
3131         (new_bb_vec_info): Initialize base classs.
3132         * tree-vect-stmts.c (record_stmt_cost, process_use,
3133         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
3134         vectorizable_mask_load_store, vectorizable_call,
3135         vectorizable_simd_clone_call, vectorizable_conversion,
3136         vectorizable_assignment, vectorizable_shift,
3137         vectorizable_operation, vectorizable_store,
3138         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
3139         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
3140         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
3141
3142 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3143
3144         PR c/65345
3145         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
3146         create_tmp_var_raw rather than create_tmp_var.
3147
3148 2015-10-05  Marek Polacek  <polacek@redhat.com>
3149
3150         * tree-ssa-loop-im.c
3151         (move_computations_dom_walker::before_dom_children): Don't set
3152         SSA_NAME_ANTI_RANGE_P.
3153         * tree-ssa-phiopt.c (value_replacement): Likewise.
3154
3155 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3156             Sebastian Pop  <s.pop@samsung.com>
3157
3158         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
3159
3160 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3161             Sebastian Pop  <s.pop@samsung.com>
3162
3163         * graphite-poly.c (new_gimple_poly_bb): ... here.
3164         (free_data_refs_aux): ... here.
3165         (free_gimple_poly_bb): ... here.
3166         (remove_gbbs_in_scop): ... here.
3167         (new_scop): Call new_sese.
3168         (free_scop): Call remove_gbbs_in_scop and free_sese.
3169         * graphite-poly.h (base_alias_pair): ... here.
3170         (new_gimple_poly_bb): Declare.
3171         (free_gimple_poly_bb): Declare.
3172         * graphite-scop-detection.c (parameter_index_in_region_1):
3173         (parameter_index_in_region): ... here.
3174         (scan_tree_for_params): ... here.
3175         (find_params_in_bb): ... here.
3176         (find_scop_parameters): ... here.
3177         (build_scops): Call find_scop_parameters.
3178         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
3179         (free_scops): Move...
3180         (single_pred_cond_non_loop_exit): Move...
3181         (sese_dom_walker::before_dom_children): Move...
3182         (sese_dom_walker::after_dom_children): Move...
3183         (build_poly_scop): Move...
3184         * graphite-sese-to-poly.h (base_alias_pair): Move...
3185         * graphite.c (free_scops): ... here.
3186
3187 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3188             Sebastian Pop  <s.pop@samsung.com>
3189
3190         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
3191         (trivially_empty_bb_p): Move...
3192         (same_close_phi_node): Move...
3193         (new_gimple_poly_bb): Move...
3194         (compare_bb_depths): Move...
3195         (graphite_sort_dominated_info): Move...
3196         (remove_duplicate_close_phi): Move...
3197         (make_close_phi_nodes_unique): Move...
3198         (canonicalize_loop_closed_ssa): Move...
3199         (canonicalize_loop_closed_ssa_form): Move...
3200         (loop_ivs_can_be_represented): Move...
3201         (single_pred_cond_non_loop_exit): Move...
3202         (graphite_can_represent_init): Move...
3203         (graphite_can_represent_scev): Move...
3204         (stmt_has_simple_data_refs_p): Move...
3205         (stmt_has_side_effects):  Move...
3206         (graphite_can_represent_stmt): Move...
3207         (scop_detection): ... here.
3208         (sese_dom_walker): ... and here.
3209         (build_scops): Call all moved functions.
3210         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
3211         (all_non_dominated_preds_marked_p): Move...
3212         (build_scop_bbs_1): Move...
3213         (build_scop_bbs): Move...
3214         (set_scop_parameter_dim): Move...
3215         (nb_pbbs_in_loops): Move...
3216         (build_poly_scop): Do not call all the moved functions.
3217
3218 2015-10-05  Martin Jambor  <mjambor@suse.cz>
3219             Jan Hubicka  <hubicka@ucw.cz>
3220
3221         * ipa-cp.c (ipcp_alignment_lattice): New type.
3222         (ipcp_param_lattices): Use the above to represent alignment.
3223         (ipcp_alignment_lattice::print): New function.
3224         (print_all_lattices): Use it to print alignment information.
3225         (ipcp_alignment_lattice::top_p): New function.
3226         (ipcp_alignment_lattice::bottom_p): Likewise.
3227         (ipcp_alignment_lattice::set_to_bottom): Likewise.
3228         (ipcp_alignment_lattice::meet_with_1): Likewise.
3229         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
3230         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
3231         (initialize_node_lattices): Likewise.
3232         (propagate_alignment_accross_jump_function): Work with the new class
3233         for alignment lattices.
3234         (propagate_constants_accross_call): Pass only the alignment lattice to
3235         propagate_alignment_accross_jump_function.
3236         (ipcp_store_alignment_results): Work with the new class for alignment
3237         lattices.
3238
3239 2015-10-05  Marek Polacek  <polacek@redhat.com>
3240
3241         PR tree-optimization/67821
3242         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
3243
3244 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
3245
3246         PR other/65021
3247         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
3248         function to...
3249         (mkoffload_cleanup): ... this.  Adjust all users.
3250         (maybe_unlink): Look at save_temps and verbose flags instead of
3251         debug flag.
3252         (main): Parse "-save-temps" flag.
3253         (generate_target_descr_file, generate_target_offloadend_file)
3254         (generate_host_descr_file, prepare_target_image): Pass it on.
3255         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
3256         (mkoffload_cleanup): New function.
3257         (maybe_unlink): Look at save_temps and verbose flags instead of
3258         debug flag.
3259         (main): Instead of calling utils_cleanup, register atexit handler
3260         for mkoffload_cleanup.
3261         (main): Parse "-save-temps" flag.
3262         (compile_native, main): Pass it on.
3263         * lto-wrapper.c (compile_offload_image): Likewise.
3264
3265 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3266
3267         * gimple.h (gimple_op_ptr): Require a non const gimple *.
3268         (gimple_assign_lhs_ptr): Likewise.
3269         (gimple_assign_rhs1_ptr): Likewise.
3270         (gimple_assign_rhs2_ptr): Likewise.
3271         (gimple_assign_rhs3_ptr): Likewise.
3272         (gimple_call_lhs_ptr): Likewise.
3273         (gimple_call_fn_ptr): Likewise.
3274         (gimple_call_chain_ptr): Likewise.
3275                 (gimple_call_arg_ptr): Likewise.
3276                 (gimple_cond_lhs_ptr): Likewise.
3277         (gimple_cond_rhs_ptr): Likewise.
3278         (gimple_switch_index_ptr): Likewise.
3279         (gimple_return_retval_ptr): Likewise.
3280
3281 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3282
3283         * gimple.h (gimple_asm_input_op_ptr): Remove.
3284         (gimple_asm_output_op_ptr): Likewise.
3285
3286 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3287
3288         * gimple.h (gimple_location_ptr): Remove.
3289         * tree-vrp.c (check_all_array_refs): Adjust.
3290
3291 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3292
3293         * tree-ssa-operands.c (build_uses): store tree * instead of
3294         tree.
3295         (finalize_ssa_uses): Adjust.
3296         (append_use): Likewise.
3297         (verify_ssa_operands): Likewise.
3298
3299 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3300
3301         * real.h (build_real_truncate): Declare.
3302         * tree.c (build_real_truncate): New function.
3303         (strip_float_extensions): Use it.
3304         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
3305         (fold_builtin_hypot, fold_builtin_pow): Likewise.
3306         * match.pd: Likewise.
3307
3308 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
3309            Jiong Wang  <jiong.wang@arm.com>
3310
3311         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
3312
3313 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3314
3315         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
3316         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
3317         (aarch64_print_operand, aarch64_float_const_representable_p)
3318         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
3319         instead of REAL_VALUE_FROM_CONST_DOUBLE.
3320         * config/arc/arc.c (arc_print_operand): Likewise.
3321         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
3322         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
3323         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
3324         Likewise.
3325         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
3326         (consttable_16): Likewise.
3327         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
3328         * config/avr/avr.c (avr_print_operand): Likewise.
3329         * config/bfin/bfin.md: Likewise (in a define_split).
3330         * config/c6x/c6x.md: Likewise (in a define_split).
3331         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
3332         (cr16_print_operand): Likewise.
3333         * config/cris/cris.c (cris_print_operand): Likewise.
3334         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
3335         * config/fr30/fr30.c (fr30_print_operand): Likewise.
3336         (fr30_const_double_is_zero): Likewise.
3337         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
3338         * config/frv/frv.md: Likewise (in a define_split).
3339         * config/frv/predicates.md (int_2word_operand): Likewise.
3340         * config/h8300/h8300.c (h8300_print_operand): Likewise.
3341         * config/i386/i386.c (standard_80387_constant_p): Likewise.
3342         (ix86_print_operand, ix86_split_to_parts): Likewise.
3343         * config/i386/i386.md: Likewise (in a define_split).
3344         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
3345         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
3346         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
3347         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
3348         (print_operand): Likewise.
3349         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
3350         * config/mep/mep.md: Likewise (in define_split).
3351         * config/microblaze/microblaze.c (microblaze_const_double_ok)
3352         (print_operand): Likewise.
3353         * config/mips/mips.md (consttable_float): Likewise.
3354         * config/mmix/mmix.c (mmix_intval): Likewise.
3355         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
3356         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
3357         * config/pa/pa.c (pa_singlemove_string): Likewise.
3358         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
3359         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
3360         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
3361         (output_toc): Likewise.
3362         * config/rs6000/rs6000.md: Likewise (in define_splits).
3363         * config/rx/rx.c (rx_print_operand): Likewise.
3364         * config/s390/s390.c (s390_output_pool_entry): Likewise.
3365         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3366         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
3367         (and also in define_splits).
3368         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
3369         (fp_high_losum_p): Likewise.
3370         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
3371         (*movsf_high): Likewise.
3372         * config/spu/spu.c (const_double_to_hwint): Likewise.
3373         * config/v850/v850.c (const_double_split): Likewise.
3374         * config/vax/vax.c (vax_float_literal): Likewise.
3375         * config/visium/visium.c (visium_expand_copysign): Likewise.
3376         * config/visium/visium.md: Likewise (in define_split).
3377         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3378         * config/xtensa/xtensa.c (print_operand): Likewise.
3379         (xtensa_output_literal): Likewise.
3380         * cprop.c (implicit_set_cond_p): Likewise.
3381         * dwarf2out.c (insert_float): Likewise.
3382         * expmed.c (expand_mult, make_tree): Likewise.
3383         * expr.c (compress_float_constant): Likewise.
3384         * rtlanal.c (split_double): Likewise.
3385         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3386         (simplify_const_unary_operation, simplify_binary_operation_1)
3387         (simplify_const_binary_operation): Likewise.
3388         (simplify_const_relational_operation): Likewise.
3389         * varasm.c (output_constant_pool_2): Likewise.
3390
3391 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3392
3393         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
3394         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3395         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
3396         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
3397         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3398         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
3399         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
3400         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
3401         (ix86_emit_swsqrtsf): Likewise.
3402         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
3403         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
3404         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3405         * config/pa/pa.c (pa_expand_builtin): Likewise.
3406         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
3407         (rs6000_scale_v2df): Likewise.
3408         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
3409         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
3410         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
3411         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
3412         (vec_ctul): Likewise.
3413         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
3414         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
3415         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
3416         * cse.c (fold_rtx): Likewise.
3417         * emit-rtl.c (immed_double_const): Likewise (in comments).
3418         (init_emit_once): Likewise.
3419         * expr.c (compress_float_constant, expand_expr_real_1)
3420         (const_vector_from_tree): Likewise.
3421         * optabs.c (expand_float, expand_fix): Likewise.
3422         * reg-stack.c (reg_to_stack): Likewise.
3423         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3424         (simplify_const_unary_operation, simplify_binary_operation_1)
3425         (simplify_const_binary_operation, simplify_relational_operation)
3426         (simplify_immed_subreg): Likewise.
3427
3428 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3429
3430         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
3431         * doc/tm.texi: Regenerate.
3432         * real.h (REAL_ARITHMETIC): Delete.
3433         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
3434         (ix86_expand_round_sse4): Use real_arithmetic instead of
3435         REAL_ARITHMETIC.
3436         * config/i386/sse.md (round<mode>2): Likewise.
3437         * rtl.h (rtx_to_tree_code): Likewise (in comment).
3438         * explow.c (rtx_to_tree_code): Likewise (in comment).
3439         * match.pd: Likewise.
3440         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3441         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3442         (expand_pow_as_sqrts): Likewise.
3443         * tree-pretty-print.c (dump_generic_node): Remove code that
3444         was conditional on REAL_ARITHMETIC being undefined.
3445
3446 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3447
3448         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
3449         * doc/tm.texi: Regenerate.
3450         * real.h (real_less): Declare.
3451         (REAL_VALUES_LESS): Delete.
3452         * real.c (real_less): New function.
3453         (real_compare): Use it.
3454         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
3455         of REAL_VALUES_LESS.
3456         * config/microblaze/microblaze.c (microblaze_const_double_ok):
3457         Likewise.
3458         * fold-const.c (fold_convert_const_int_from_real): Likewise.
3459         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3460         (simplify_const_relational_operation): Likewise.
3461         * tree-call-cdce.c (check_pow): Likewise.
3462         (gen_conditions_for_pow_cst_base): Likewise.
3463
3464 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3465
3466         * real.h (REAL_VALUES_IDENTICAL): Delete.
3467         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
3468         instead of REAL_VALUES_IDENTICAL.
3469         * fold-const.c (operand_equal_p): Likewise.
3470         * ipa-icf.c (sem_variable::equals): Likewise.
3471         * tree-complex.c (some_nonzerop): Likewise.
3472         (expand_complex_multiplication): Likewise.
3473         * tree.c (simple_cst_equal): Likewise.
3474         * varasm.c (compare_constant): Likewise.
3475
3476 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3477
3478         * real.h (real_equal): Declare.
3479         (REAL_VALUES_EQUAL): Delete.
3480         * real.c (real_equal): New function.
3481         (real_compare): Use it.
3482         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
3483         * doc/tm.texi: Regenerate.
3484         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
3485         real_equal instead of REAL_VALUES_EQUAL.
3486         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
3487         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
3488         (fp_const_from_val): Likewise.
3489         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
3490         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
3491         (floating_exact_log2): Likewise.
3492         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3493         * config/vax/vax.c (vax_float_literal): Likewise.
3494         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3495         * cprop.c (implicit_set_cond_p): Likewise.
3496         * expmed.c (expand_mult): Likewise.
3497         * fold-const.c (const_binop): Likewise.
3498         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3499         (simplify_const_binary_operation): Likewise.
3500         (simplify_const_relational_operation): Likewise.
3501         * tree-call-cdce.c (check_pow): Likewise.
3502         (gen_conditions_for_pow_cst_base): Likewise.
3503         * tree-inline.c (estimate_num_insns): Likewise.
3504         * tree-ssa-dom.c (record_equality): Likewise.
3505         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3506         (gimple_expand_builtin_pow): Likewise.
3507         (pass_optimize_widening_mul::execute): Likewise.
3508         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
3509         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
3510         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
3511
3512 2015-10-05  Richard Biener  <rguenther@suse.de>
3513
3514         PR ipa/67783
3515         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
3516         consider loop header PHI defs as IVs.
3517
3518 2015-10-05  Richard Biener  <rguenther@suse.de>
3519
3520         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
3521         call handling ...
3522         (create_expression_by_pieces): ... here and build GIMPLE
3523         calls directly.  Use gimple_build API and avoid force_gimple_operand.
3524         (insert_into_preds_of_block): Simplify.
3525         (do_regular_insertion): Add comment.
3526
3527 2015-10-04  Jason Merrill  <jason@redhat.com>
3528
3529         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
3530
3531 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
3532
3533         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
3534         check for general register.
3535         (ix86_emit_save_regs): Ditto.
3536         (ix86_emit_save_regs_using_mov): Ditto.
3537         (ix86_emit_restore_regs_using_pop): Ditto.
3538         (ix86_emit_restore_regs_using_mov): Ditto.
3539
3540 2015-10-03  Marek Polacek  <polacek@redhat.com>
3541
3542         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
3543         (insn-dfatab.o): Likewise.
3544
3545 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
3546
3547         * config.gcc (xtensa*-*-uclinux*): New configuration.
3548         * config/xtensa/uclinux.h: New file.
3549         * config/xtensa/uclinux.opt: New file.
3550
3551 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
3552
3553         * doc/cpp.texi (Standard Predefined Macros): Document value of
3554         __cplusplus for C++14.
3555
3556 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
3557
3558         * gcc.c (process_command): Use spec_machine rather than
3559         spec_host_machine to build tooldir_prefix2.
3560
3561 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3562             Bernd Schmidt  <bernds@codesourcery.com>
3563
3564         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
3565         (Token, Stmt): Remove structs.
3566         (decls, vars, fns): Remove variables.
3567         (alloc_comment, append_stmt, is_keyword): Remove macros.
3568         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
3569         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
3570         (parse_init, parse_file): Remove functions.
3571         (read_file): Accept a pointer to a length and store into it.
3572         (process): Don't try to parse the input file, just write it out as
3573         a string, but looking for maps.  Also write out the length.
3574         (main): Don't use "-S" to compile PTX code.
3575
3576 2015-10-02  Jeff Law  <law@redhat.com>
3577
3578         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
3579         fixups.
3580
3581 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3582
3583         PR target/67822
3584         * config/nvptx/mkoffload.c (main): Scan the argument vector for
3585         -fopenmp, and skip generating an offloading image if specified.
3586
3587 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
3588
3589         * system.h (ROUND_UP): New macro definition.
3590         (ROUND_DOWN): Ditto.
3591         * ggc-page.c (ROUND_UP): Remove local macro definition.
3592         (PAGE_ALIGN): Implement using ROUND_UP macro.
3593
3594         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
3595         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
3596         to align values.
3597         (ix86_compute_frame_layout): Ditto.
3598         (ix86_expand_prologue): Ditto.
3599         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
3600         to round down values.
3601         (expand_set_or_movmem_via_rep): Ditto.
3602
3603 2015-10-02  Marek Polacek  <polacek@redhat.com>
3604
3605         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
3606
3607 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
3608
3609         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
3610         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
3611         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
3612         (free_gimple_bb): Renamed free_gimple_poly_bb.
3613         (try_generate_gimple_bb): Hoist loop invariant code.
3614         (analyze_drs_in_stmts): Same.
3615         (build_scop_drs): Call renamed functions.
3616         (new_pbb_from_pbb): Same.
3617         (scop_ivs_can_be_represented): Delete as functionality now moved to
3618         graphite-scop-detection.c
3619         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
3620
3621 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
3622
3623         * graphite-scop-detection.c (stmt_has_side_effects): New function
3624           outlined from stmt_simple_for_scop_p.
3625         (graphite_can_represent_stmt): Same.
3626         (stmt_simple_for_scop_p): Moved code out of this function for better
3627         readability.
3628
3629 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3630
3631         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
3632         F_AVX512IFMA.
3633         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
3634
3635 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3636
3637         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
3638
3639 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
3640
3641         PR rtl-optimization/67756
3642         * lra-constraints.c (match_reload): Add a new parameter.  Use it
3643         for creating a pseudo with the same value.
3644         (curr_insn_transform): Pass a new argument to match_reload.
3645
3646 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3647
3648         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
3649         (expand_vec_perm_even_odd_1): Handle V64QImode.
3650         (ix86_expand_vec_perm_const_1): Try expansion with
3651         expand_vec_perm_even_odd_trunc as well.
3652         * config/i386/sse.md (VI124_AVX512F): Rename to ...
3653         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
3654         to V54QI.
3655         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
3656         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
3657         to V32HI and V16SI.
3658         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
3659         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
3660         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
3661         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
3662         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
3663         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
3664
3665 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3666
3667         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
3668         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
3669
3670 2015-10-02  Jason Merrill  <jason@redhat.com>
3671
3672         PR c/59218
3673         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
3674         (diagnose_tm_1_op): Also diagnose volatile accesses in
3675         transaction_safe function.
3676
3677 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
3678
3679         * system.h (malloc.h): Don't include obsolete header.
3680
3681 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3682
3683         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
3684         (TLS_SECTION_ASM_FLAG): Delete.
3685
3686 2015-10-02  Marek Polacek  <polacek@redhat.com>
3687
3688         PR c/64249
3689         * doc/invoke.texi: Document -Wduplicated-cond.
3690         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
3691         (insn-dfatab.o): Likewise.
3692         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
3693         warning.
3694
3695 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
3696
3697         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
3698         sequences.
3699
3700 2015-10-02  Renlin Li  <renlin.li@arm.com>
3701
3702         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
3703
3704 2015-10-02  Renlin Li  <renlin.li@arm.com>
3705
3706         PR target/66776
3707         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
3708
3709 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3710
3711         PR rtl-optimization/67786
3712         PR rtl-optimization/67787
3713         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
3714         it modifies a reg used in the condition calculation.
3715
3716 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
3717
3718         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
3719         alternatives for reads from memory and moves from general-purpose
3720         registers.
3721         (*aarch64_combinez_be<mode>): Likewise.
3722
3723 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
3724
3725         PR target/51726
3726         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
3727         selectany within this function without need to keep attribute.
3728         (i386_pe_encode_section_info): Remove selectany-code.
3729
3730 2015-10-02  Richard Biener  <rguenther@suse.de>
3731
3732         * tree-ssa-sccvn.c (has_VN_INFO): New function.
3733         (free_scc_vn): Use it.
3734         (visit_use): Remove dead code and refactor to use gassign
3735         and use less indentation.
3736
3737 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3738
3739         PR target/67788
3740         PR target/67789
3741         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
3742         (rs6000_cannot_copy_insn_p): New function.
3743         * config/rs6000/rs6000.md (cannot_copy): New attribute.
3744         (load_toc_v4_PIC_1_normal): Set cannot_copy.
3745         (load_toc_v4_PIC_1_476): Ditto.
3746
3747 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3748
3749         * graphite-scop-detection.c (struct sese_l): New conversion constructor
3750         so that this type can be pushed into a vec.
3751         (class scop_builder): use sese_l to collect scops.
3752         (get_scops): New getter function.
3753         (remove_intersecting_scops): Use sese_l instead of scops_p.
3754         (intersects): Same.
3755         (add_scop): Same.
3756         (subsumes): Same.
3757         (remove_subscops): Same.
3758         (build_scops): Add scops to vec<scops_p> once all the scops have been
3759         detected.
3760
3761 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3762
3763         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3764         Renamed type from gimple_bb_p to gimple_poly_bb_p.
3765         (translate_isl_ast_node_user): Same.
3766         * graphite-poly.c (new_poly_bb): Same.
3767         * graphite-poly.h (gbb_from_bb): Same.
3768         * sese.h: Same.
3769         * graphite-sese-to-poly.c (new_gimple_bb):
3770         gimple_bb_p -> gimple_poly_bb_p
3771         (build_scop_scattering): Same.
3772         (find_params_in_bb): Same.
3773         (add_conditions_to_domain): Same.
3774         (sese_dom_walker::before_dom_children): Same.
3775         (analyze_drs_in_stmts): Same.
3776         (new_pbb_from_pbb): Same.
3777         (free_data_refs_aux): New pointer to type base_alias_pair.
3778         * graphite-sese-to-poly.h: Same.
3779         * sese.c (if_region_set_false_region): Fixed Indentation.
3780         (move_sese_in_condition): Same.
3781
3782 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3783             Aditya Kumar  <aditya.k7@samsung.com>
3784
3785         PR tree-optimization/66980
3786         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
3787         when data reference analysis has failed.
3788
3789 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3790             Aditya Kumar  <aditya.k7@samsung.com>
3791
3792         PR tree-optimization/67754
3793         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
3794         scev analysis on the same loop nest as analyze_drs_in_stmts.
3795         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
3796         renamed...
3797         (try_generate_gimple_bb): Call outermost_loop_in_sese.
3798         (analyze_drs_in_stmts): Same.
3799         * sese.c (outermost_loop_in_sese): ...here.
3800
3801 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3802             Aditya Kumar  <aditya.k7@samsung.com>
3803
3804         PR tree-optimization/67754
3805         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
3806         recursion on the inner loops.
3807
3808 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3809
3810         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
3811         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
3812         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
3813         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
3814         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
3815
3816 2015-10-01  Marek Polacek  <polacek@redhat.com>
3817
3818         PR c/65345
3819         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
3820         create_tmp_var_raw rather than create_tmp_var.
3821
3822 2015-10-01  Marek Polacek  <polacek@redhat.com>
3823
3824         PR tree-optimization/67769
3825         * tree-ssa-phiopt.c (conditional_replacement): Call
3826         reset_flow_sensitive_info_in_bb.
3827         (minmax_replacement): Likewise.
3828         (abs_replacement): Likewise.
3829
3830 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
3831
3832         * builtins.c: Don't include gomp-constants.h.
3833         (fold_builtin_1): Don't fold acc_on_device here.
3834         * gimple-fold.c: Include gomp-constants.h.
3835         (gimple_fold_builtin_acc_on_device): New.
3836         (gimple_fold_builtin): Call it.
3837
3838 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
3839
3840         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
3841         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
3842
3843 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
3844
3845         * config/arm/aarch-common-protos.h
3846         (aarch_accumulator_forwarding): New.
3847         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3848         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
3849         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3850         * config/arm/cortex-a53.md: Rewrite.
3851
3852 2015-10-01  Richard Biener  <rguenther@suse.de>
3853
3854         * gimple-match.h (mprts_hook): Declare.
3855         * gimple-match.head.c (mprts_hook): Define.
3856         (maybe_push_res_to_seq): Use new hook.
3857         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3858         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
3859         (vn_ssa_aux::has_constants): Remove.
3860         * tree-ssa-sccvn.c: Include gimple-match.h.
3861         (VN_INFO_GET): Assert we don't re-use SSA names.
3862         (vn_get_expr_for): Remove.
3863         (expr_has_constants): Likewise.
3864         (stmt_has_constants): Likewise.
3865         (simplify_binary_expression): Likewise.
3866         (simplify_unary_expression): Likewise.
3867         (vn_lookup_simplify_result): New hook.
3868         (visit_copy): Adjust.
3869         (visit_reference_op_call): Likewise.
3870         (visit_phi): Likewise.
3871         (visit_use): Likewise.
3872         (process_scc): Likewise.
3873         (init_scc_vn): Likewise.
3874         (visit_reference_op_load): Likewise.  Use match-and-simplify and
3875         a gimple seq for inserted expressions.
3876         (try_to_simplify): Remove GENERIC stmt combining code.
3877         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
3878         * tree-ssa-pre.c (eliminate_insert): Adjust.
3879         (eliminate_dom_walker::before_dom_children): Likewise.
3880
3881 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3882
3883         * doc/invoke.texi (Optimization Options): Add
3884         -freorder-blocks-algorithm=.
3885         (Optimize Options) <-O>: Add -freorder-blocks.
3886         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
3887         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
3888         <-freorder-blocks>: Also enabled at levels -O and -Os.
3889         <-freorder-blocks-algorithm=>: Document new option.
3890
3891 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3892
3893         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
3894         with flag_reorder_blocks_algorithm.
3895         * common.opt (freorder-blocks-algorithm=): New flag.
3896         (reorder_blocks_algorithm): New enum.
3897         * flag-types.h (reorder_blocks_algorithm): New enum.
3898         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
3899         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
3900
3901 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3902
3903         * bb-reorder.c: Add intro comment.
3904         (reorder_basic_blocks_software_trace_cache): Print a header to
3905         the dump file.
3906         (edge_order): New function.
3907         (reorder_basic_blocks_simple): New function.
3908         (reorder_basic_blocks): Choose between the STC and the simple
3909         algorithms (always choose the former).
3910
3911 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3912
3913         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
3914         function, factored out from ...
3915         (reorder_basic_blocks): ... here.
3916
3917 2015-10-01  Tom de Vries  <tom@codesourcery.com>
3918
3919         * tree-cfg.c (dump_function_to_file): Dump function attributes using
3920         __attribute__(()) string.  Move dumping of function attributes to before
3921         function name.
3922
3923 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
3924
3925         PR target/66870
3926         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3927         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
3928         based on gold linker version.
3929         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
3930         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
3931         * configure, config.in: Regenerate.
3932
3933 2015-10-01  Alan Modra  <amodra@gmail.com>
3934
3935         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
3936         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
3937         (rs6000_output_mi_thunk): Likewise.
3938
3939 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3940
3941         * config/nvptx/mkoffload.c (process): Change offload data format.
3942
3943 2015-09-30  Jeff Law  <law@redhat.com>
3944
3945         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
3946         with constant conditions.
3947         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
3948         (remove_ctrl_stmt_and_useless_edges): No longer static.
3949         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
3950         (remove_ctrl_stmt_and_useless_edges): Likewise.
3951
3952 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3953             Cesar Philippidis  <cesar@codesourcery.com>
3954
3955         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
3956         (TARGET_GOACC_VALIDATE_DIMS): Override.
3957         * target.def (TARGET_GOACC): New target hook prefix.
3958         (validate_dims): New hook.
3959         * targhooks.h (default_goacc_validate_dims): New.
3960         * omp-low.c (oacc_validate_dims): New.
3961         (execute_oacc_device_lower): New.
3962         (default_goacc_validate_dims): New.
3963         (pass_data_oacc_device_lower): New.
3964         (pass_oacc_device_lower): New pass.
3965         (make_pass_oacc_device_lower): New.
3966         * tree-pass.h (make_pass_oacc_device_lower): Declare.
3967         * passes.def (pass_oacc_device_lower): Add it.
3968         * doc/tm.texi: Rebuilt.
3969         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
3970         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
3971
3972 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3973
3974         PR rtl-optimization/67037
3975         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
3976
3977 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
3978
3979         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
3980         * passes.c: Include tree-ssanames.h.
3981         (execute_function_todo): Flush the pending free SSA_NAMEs after
3982         eliminating unreachable basic blocks.
3983         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
3984         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
3985         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
3986         (flush_ssanames_freelist): New function.
3987         (release_ssaname_fn): Put released names on the queue.
3988         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
3989         * tree-ssanames.h (flush_ssanames_freelist): Declare.
3990
3991 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3992
3993         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
3994         (generate_target_descr_file, generate_target_offloadend_file)
3995         (generate_host_descr_file, prepare_target_image): Pass it on.
3996         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
3997         (compile_native, main): Pass it on.
3998         * lto-wrapper.c (compile_offload_image): Likewise.
3999
4000 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
4001             Ilya Verbin  <ilya.verbin@intel.com>
4002             Andrey Turetskiy  <andrey.turetskiy@intel.com>
4003
4004         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
4005         (prepare_target_image, main): Refactor argv building to use
4006         obstacks.
4007
4008 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4009
4010         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
4011         * config/spu/spu.c (spu_expand_atomic_op): New function.
4012         * config/spu/spu.md (AINT): New mode iterator.
4013         (ATOMIC): New code iterator.
4014         (atomic_name, atomic_pred): New code predicates.
4015         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
4016         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
4017         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
4018         "atomic_<atomic_name>_fetch<mode>"): Likewise.
4019
4020 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
4021
4022         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
4023         debug insns.
4024         (scalar_chain::convert_reg): Likewise.
4025
4026 2015-09-30  Richard Biener  <rguenther@suse.de>
4027
4028         * builtins.c: Add comment that no new simplifications should
4029         be added here.
4030
4031 2015-09-30  Marek Polacek  <polacek@redhat.com>
4032
4033         PR tree-optimization/67690
4034         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
4035         reset_flow_sensitive_info_in_bb.
4036         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
4037         * tree-ssanames.c: Include "gimple-iterator.h".
4038         (reset_flow_sensitive_info_in_bb): New function.
4039         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
4040
4041 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
4042
4043         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
4044         variable, replacing it with...
4045         (offload_abi): ... this new variable.  Adjust all users.
4046         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
4047
4048 2015-09-30  Matthias Klose  <doko@ubuntu.com>
4049
4050         * configure.ac: Remove extraneous ;;.
4051         * configure: Regenerate.
4052
4053 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
4054
4055         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
4056         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
4057         predicate, disallow register for operand 2.
4058
4059 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
4060
4061         * graphite-dependences.c (scop_get_dependences): Moved in down
4062         in order to be visible to its caller.
4063         * graphite-poly.h: Removed compute_deps, and extend_schedule.
4064
4065 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
4066             Aditya Kumar  <aditya.k7@samsung.com>
4067
4068         PR tree-optimization/67754
4069         * graphite-optimize-isl.c (optimize_isl): Call
4070         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
4071
4072 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
4073
4074         * builtins.c (expand_builtin_acc_on_device): Delete.
4075         (expand_builtin): Don't call it.
4076         (fold_builtin_1): Fold acc_on_device.
4077
4078 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
4079
4080         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
4081         (ix86_nsaved_sseregs): Likewise.
4082
4083 2015-09-29  Jeff Law  <law@redhat.com>
4084
4085         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
4086         computation of unused value.
4087
4088         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
4089         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
4090         inline macro expansion.
4091
4092         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
4093
4094         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
4095         (gen_shl_sext): Likewise.
4096         * config/sh/sh.md (divsi3): Likewise.
4097         (imm->ext_dest_operand splitter): Likewise.
4098
4099 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
4100             Aditya Kumar  <aditya.k7@samsung.com>
4101
4102         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
4103         (nb_data_writes_in_bb): Remove.
4104         (split_pbb): Remove.
4105         (split_reduction_stmt): Remove.
4106         (is_reduction_operation_p): Remove.
4107         (phi_contains_arg): Remove.
4108         (follow_ssa_with_commutative_ops): Remove.
4109         (detect_commutative_reduction_arg): Remove.
4110         (detect_commutative_reduction_assign): Remove.
4111         (follow_inital_value_to_phi): Remove.
4112         (edge_initial_value_for_loop_phi): Remove.
4113         (initial_value_for_loop_phi): Remove.
4114         (used_outside_reduction): Remove.
4115         (detect_commutative_reduction): Remove.
4116         (translate_scalar_reduction_to_array_for_stmt): Remove.
4117         (remove_phi): Remove.
4118         (dr_indices_valid_in_loop): Remove.
4119         (close_phi_written_to_memory): Remove.
4120         (translate_scalar_reduction_to_array): Remove.
4121         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
4122         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
4123         (rewrite_commutative_reductions_out_of_ssa): Remove.
4124         (build_poly_scop): Remove call to
4125         rewrite_commutative_reductions_out_of_ssa.
4126
4127 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
4128
4129         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
4130         Add new insn types for vector load and store pairs.
4131         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
4132         types "neon_ldp{,_q}".
4133         * config/arm/cortex-a57.md (neon_load_c): Add insn types
4134         "neon_ldp{,_q}".
4135         (neon_store_complex): Add insn types "neon_stp{,_q}".
4136         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
4137         "neon_{ldp,stp}_q".
4138
4139 2015-09-29  Jeff Law  <law@redhat.com>
4140
4141         * config/rx/constraints.md (Int08): Fix undefined left shift
4142         behaviour.
4143         (Sint08, Sint16, Sint24): Likewise.
4144         * config/rx/rx.c (rx_get_stack_layout): Likewise.
4145
4146         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
4147         behaviour.
4148
4149         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
4150         left shift behaviour.
4151         * config/msp430/constraints.md ('L' constraint): Similarly.
4152         ('Ys' constraint): Similarly.
4153
4154 2015-09-29  Richard Biener  <rguenther@suse.de>
4155
4156         PR tree-optimization/67170
4157         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
4158         the translate function pointer parameter to get the
4159         bool whether to disambiguate only by reference.
4160         (walk_non_aliased_vuses): Likewise.
4161         * tree-ssa-alias.c (maybe_skip_until): Adjust.
4162         (get_continuation_for_phi_1): Likewise.
4163         (get_continuation_for_phi): Likewise.
4164         (walk_non_aliased_vuses): Likewise.
4165         * tree-ssa-sccvn.c (const_parms): New bitmap.
4166         (vn_reference_lookup_3): Adjust for interface change.
4167         Disambiguate parameters pointing to readonly memory.
4168         (free_scc_vn): Free const_parms.
4169         (run_scc_vn): Initialize const_parms from a fn spec attribute.
4170
4171 2015-09-29  Richard Biener  <rguenther@suse.de>
4172
4173         PR tree-optimization/67741
4174         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
4175         builtin calls with correct signature.
4176
4177 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
4178
4179         PR target/65105
4180         * config/i386/i386.c: Include dbgcnt.h.
4181         (has_non_address_hard_reg): New.
4182         (convertible_comparison_p): New.
4183         (scalar_to_vector_candidate_p): New.
4184         (remove_non_convertible_regs): New.
4185         (scalar_chain): New.
4186         (scalar_chain::scalar_chain): New.
4187         (scalar_chain::~scalar_chain): New.
4188         (scalar_chain::add_to_queue): New.
4189         (scalar_chain::mark_dual_mode_def): New.
4190         (scalar_chain::analyze_register_chain): New.
4191         (scalar_chain::add_insn): New.
4192         (scalar_chain::build): New.
4193         (scalar_chain::compute_convert_gain): New.
4194         (scalar_chain::replace_with_subreg): New.
4195         (scalar_chain::replace_with_subreg_in_insn): New.
4196         (scalar_chain::emit_conversion_insns): New.
4197         (scalar_chain::make_vector_copies): New.
4198         (scalar_chain::convert_reg): New.
4199         (scalar_chain::convert_op): New.
4200         (scalar_chain::convert_insn): New.
4201         (scalar_chain::convert): New.
4202         (convert_scalars_to_vector): New.
4203         (pass_data_stv): New.
4204         (pass_stv): New.
4205         (make_pass_stv): New.
4206         (ix86_option_override): Created and register stv pass.
4207         (flag_opts): Add -mstv.
4208         (ix86_option_override_internal): Likewise.
4209         * config/i386/i386.md (SWIM1248x): New.
4210         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
4211         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
4212         (*anddi3_doubleword): New.
4213         (*zext<mode>_doubleword): New.
4214         (*zextsi_doubleword): New.
4215         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
4216         (*<code>di3_doubleword): New.
4217         * config/i386/i386.opt (mstv): New.
4218         * dbgcnt.def (stv_conversion): New.
4219
4220 2015-09-29  Tom de Vries  <tom@codesourcery.com>
4221
4222         * tree-cfg.c (dump_function_to_file): Dump function attributes.
4223
4224 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4225
4226         PR target/67716
4227         * config/sh/sh.c (sh_override_options_after_change): New.
4228         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4229         (sh_option_override): Move align_loops, align_jumps and
4230         align_functions handling into sh_override_options_after_change.
4231
4232 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
4233
4234         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
4235         (nvptx_record_offload_symbol): Record function execution geometry.
4236         * config/nvptx/mkoffload.c (process): Include launch geometry in
4237         function data.
4238         * omp-low.c (oacc_launch_pack): New.
4239         (replace_oacc_fn_attrib): New.
4240         (set_oacc_fn_attrib): New.
4241         (get_oacc_fn_attrib): New.
4242         (expand_omp_target): Create keyed varargs for GOACC_parallel call
4243         generation.
4244         * omp-low.h (get_oacc_fn_attrib): Declare.
4245         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
4246         (DEF_FUNCTION_TYPE_VAR_11): Delete.
4247         * tree.h (OMP_CLAUSE_EXPR): New.
4248         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
4249
4250 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4251             Sebastian Pop  <s.pop@samsung.com>
4252
4253         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
4254
4255 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4256             Sebastian Pop  <s.pop@samsung.com>
4257
4258         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
4259         * graphite-scop-detection.c (struct sese_l): New type.
4260         (get_entry_bb): API for getting entry bb of SESE.
4261         (get_exit_bb): API for getting exit bb of SESE.
4262         (class debug_printer): New type.  Simple printer in debug mode.
4263         (trivially_empty_bb_p): New.  Return true when BB is empty or
4264         contains only debug instructions.
4265         (graphite_can_represent_expr): Call scalar_evoution_in_region
4266         instead of analyze_scalar_evolution.  Pass in scop instead of only
4267         the scop entry.
4268         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
4269         scop entry.
4270         (stmt_simple_for_scop_p): Same.
4271         (harmful_stmt_in_bb): Same.
4272         (graphite_can_represent_loop): Deleted.
4273         (struct scopdet_info): Deleted.
4274         (scopdet_basic_block_info): Deleted.
4275         (build_scops_1): Deleted.
4276         (bb_in_sd_region): Deleted.
4277         (find_single_entry_edge): Deleted.
4278         (find_single_exit_edge): Deleted.
4279         (create_single_entry_edge): Deleted.
4280         (sd_region_without_exit): Deleted.
4281         (create_single_exit_edge): Deleted.
4282         (unmark_exit_edges): Deleted.
4283         (mark_exit_edges): Deleted.
4284         (create_sese_edges): Deleted.
4285         (build_graphite_scops): Deleted.
4286         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
4287         (build_scops): Use the new scop_builder to build scops.
4288         (dot_all_scops_1): Use the new pretty printer.  Print loop father
4289         as well.
4290         (loop_body_is_valid_scop): New.  Return true if loop body is a
4291         valid scop.
4292         (class scop_builder): New.  Builds SCoPs for polyhedral
4293         optimizations.
4294         (scop_builder): New constructor.
4295         (static sese_l invalid_sese): sese_l with invalid edges.
4296         (get_sese): Get an sese (from a loop) if possible, invalid_sese
4297         otherwise.
4298         (get_nearest_dom_with_single_entry): Get nearest dominator of a
4299         basic_block with single entry.  Return NULL if we get to the
4300         beginning of a function.
4301         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
4302         a basic_block with single exit.  Return NULL if we get to the
4303         beginning of a function.
4304         (print_sese): Pretty-print SESE.
4305         (merge_sese): Merge two SESEs if possible and return the new SESE.
4306         (build_scop_depth): Start building the SCoP within a loop nest.
4307         (build_scop_breadth): Start building the SCoP at a single loop
4308         depth.  Merge adjacent SESEs if valid.
4309         (can_represent_loop_1): Returns true if Graphite can represent
4310         loop inside SCoP.  Helper for can_represent_loop.
4311         (can_represent_loop): Returns true if Graphite can represent LOOP
4312         and all its nested loops in SCoP.
4313         (loop_is_valid_scop): Returns true if LOOP and all its nests
4314         constitute a valid SCoP.
4315         (region_has_one_loop): Returns true of a region has only one loop.
4316         (add_scop): Add SCoP to the list of valid scops.  Removes an
4317         already existing scop if it intersects with or subsumed by this one.
4318         (harmful_stmt_in_region): Returns true if SCoP has any statment
4319         which cannot be represented by Graphite.
4320         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
4321         (remove_subscops): Remove any SCoP from the list of already found
4322         SCoPs, if subsumed by S1.
4323         (intersects): Return true if region bounded by SCoPs S1 and S2
4324         intersect.
4325         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
4326         * graphite.c (print_graphite_scop_statistics):
4327         (print_graphite_statistics): Print SCoP info while debugging.
4328         (graphite_initialize): Early exit in case number of loops in a
4329         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
4330         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4331         (graphite_finalize):
4332         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
4333         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
4334         (recompute_all_dominators): Recalculate POST_DOMINATORS.
4335         * tree-cfg.c (print_loops): Print the function name while printing
4336         loops.
4337
4338 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4339             Sebastian Pop  <s.pop@samsung.com>
4340
4341         PR tree-optimization/67700
4342         * graphite-sese-to-poly.c (parameter_index_in_region): Call
4343         invariant_in_sese_p_rec.
4344         (extract_affine): Same.
4345         (rewrite_cross_bb_scalar_deps): Call update_ssa.
4346         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
4347         * sese.h (invariant_in_sese_p_rec): Declare.
4348
4349 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
4350
4351         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
4352
4353 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
4354
4355         Revert:
4356         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4357                     Jiong Wang  <jiong.wang@arm.com>
4358
4359         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
4360         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
4361         (REG_CLASS_NAMES): Likewise.
4362         (REG_CLASS_CONTENTS): Likewise.
4363         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
4364         (aarch64_register_move_cost): Likewise.
4365         (aarch64_load_symref_appropriately): Invoke the new added pattern if
4366         possible.
4367         * config/aarch64/constraints.md (Uc0): New constraint.
4368
4369 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
4370
4371         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
4372
4373 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
4374
4375         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
4376         SECTION_EXCLUDE in XO mapping class.
4377
4378 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4379
4380         PR target/54236
4381         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
4382         and handle ne and eq codes.
4383         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
4384         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
4385         CONST_INT_P.  Use reverse_condition.
4386         (sh_split_treg_set_expr): Likewise.
4387
4388 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
4389
4390         * config/arm/types.md (type): Add rotate_imm.
4391         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
4392         ROR immediate case.
4393         (*rorsi3_insn_uxtw): Likewise.
4394         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
4395         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
4396         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
4397
4398 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4399
4400         PR rtl-optimization/67481
4401         * ifcvt.c (contains_ccmode_rtx_p): New function.
4402         (insn_valid_noce_process_p): Use it.
4403
4404 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4405
4406         PR rtl-optimization/67456
4407         PR rtl-optimization/67464
4408         PR rtl-optimization/67465
4409         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
4410         move in the mode of x.  Handle combination of complex and simple
4411         block pairs as well as the case when one is empty.
4412
4413 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4414
4415         * doc/gimple.texi: Update references to gimple_statement_base.
4416         * gdbhooks.py: Likewise.
4417         * gimple.h: Likewise.
4418
4419 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4420
4421         * config/sparc/driver-sparc.c: map LEON to leon3
4422
4423 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4424
4425         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
4426           and make it inverse to change default
4427         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
4428           supervisor mode
4429         * doc/invoke.texi: Document change of default
4430
4431 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4432
4433         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
4434         true on %f0 for a target without FPU.
4435         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
4436         without FPU.
4437         (untyped_return): Do not load %f0 for a target without FPU.
4438
4439 2015-09-28  Andrew Pinski  <apinski@cavium.com>
4440
4441         * config/aarch64/aarch64.md (prefetch):
4442         Change the predicate of operand 0 to register_operand.
4443
4444 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
4445
4446         * config/i386/predicates.md (register_sse4nonimm_operand): New
4447         predicate.
4448         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
4449         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
4450         Use register_sse4nonimm_operand as operand 0 predicate.
4451         (*vec_extractv8hi_sse2): Remove insn pattern.
4452         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
4453         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
4454
4455 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
4456             Kaz Kojima  <kkojima@gcc.gnu.org>
4457
4458         PR target/67391
4459         * config/sh/sh-protos.h (sh_lra_p): Declare.
4460         * config/sh/sh.c (sh_lra_p): Make non-static.
4461         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
4462         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
4463         Expand into addsi3_scr if operands[2] if needed.
4464         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
4465         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
4466         (addsi3_scr, *addsi3): New insn_and_split patterns.
4467
4468 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
4469
4470         PR rtl-optimization/64164
4471         PR tree-optimization/67312
4472         PR middle-end/67340
4473         PR middle-end/67490
4474         PR bootstrap/67597
4475         * cfgexpand.c (parm_in_stack_slot_p): Remove.
4476         (ssa_default_def_partition): Remove.
4477         (get_rtl_for_parm_ssa_default_def): Remove.
4478         (set_rtl): Check that RTL assignments match expectations.
4479         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
4480         default def location for params and results.  Record SSA names
4481         or types in REG and MEM attrs, respectively.
4482         (set_parm_rtl): New.
4483         (expand_one_ssa_partition): Drop logic that assigned MEMs with
4484         unassigned addresses.
4485         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
4486         deferred stack alloc vars.
4487         (expand_used_vars): Skip partitions holding parm default defs.
4488         Move adjust_one_expanded_partition_var loop...
4489         (pass_expand::execute): ... here.  Drop redundant assert.
4490         Adjust comments before the final loop over all ssa names.
4491         Require assigned rtl of parms and results to match exactly.
4492         Reset its attributes to match them, not any other variables in
4493         the same partition.
4494         (expand_debug_expr): Use entry value for PARM's default defs
4495         only iff they have zero nondebug uses.
4496         * cfgexpand.h (parm_in_stack_slot_p): Remove.
4497         (get_rtl_for_parm_ssa_default_def): Remove.
4498         (set_parm_rtl): Declare.
4499         * doc/invoke.texi: Improve wording.
4500         * explow.c (promote_decl_mode): Fix promote_function_mode for
4501         result decls not by reference.
4502         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
4503         bypass TYPE_MODE to get the actual vector mode.
4504         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
4505         2015-08-19's changes as follows.  Drop include of
4506         basic-block.h and df.h.
4507         (rtl_for_parm): Remove.
4508         (maybe_reset_rtl_for_parm): Remove.
4509         (parm_in_unassigned_mem_p): Remove.
4510         (use_register_for_decl): Add logic for RESULT_DECLs matching
4511         assign_parms' behavior.
4512         (split_complex_args): Revert.
4513         (assign_parms_augmented_arg_list): Revert.  Add comment
4514         referencing the logic above.
4515         (assign_parm_adjust_stack_rtl): Revert.
4516         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
4517         of SET_DECL_RTL.  Set up a REG if the parm demands so.
4518         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
4519         calls into a single set_parm_rtl.  Set up a temporary RTL
4520         temporarily for expand_assignment.
4521         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
4522         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
4523         (assign_bounds): Revert.
4524         (assign_parms): Revert.  Use set_parm_rtl.
4525         (allocate_struct_function): Relayout result and parms of
4526         non-abstruct functions.
4527         (expand_function_start): Revert.  Use set_parm_rtl.  If the
4528         result is not a hard reg, create a pseudo from the promoted
4529         mode of the default def.  Promote static chain mode.
4530         * tree-outof-ssa.c (remove_ssa_form): Drop unused
4531         partition_has_default_def.  Set up
4532         partitions_for_parm_default_defs.
4533         (finish_out_of_ssa): Remove partition_has_default_def.
4534         Release partitions_for_parm_default_defs.
4535         * tree-outof-ssa.h (struct ssaexpand): Remove
4536         partition_has_default_def.  Add
4537         partitions_for_parm_default_defs.
4538         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
4539         stor-layout.h.
4540         (build_ssa_conflict_graph): Fix conflict-detection of default
4541         defs of even unused default defs of params and results.
4542         (for_all_parms): New.
4543         (create_default_def): New.
4544         (register_default_def): New.
4545         (coalesce_with_default): New.
4546         (create_outofssa_var_map): Create default defs for all parms
4547         and results, and register their partitions.  Add GIMPLE_RETURN
4548         operands as coalesce candidates with results.  Add default
4549         defs of each parm or result as coalesce candidates with its
4550         other defs.  Mark each result def, and each default def of
4551         parms, as used_in_copy.
4552         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
4553         with the ssa names, even anonymous ones.  Drop
4554         parm_in_stack_slot_p calls.  Require same signedness and
4555         alignment.
4556         (coalesce_ssa_name): Add coalesce candidates for all defs of
4557         each parm and result, even unused ones.
4558         (parm_default_def_partition_arg): New type.
4559         (set_parm_default_def_partition): New.
4560         (get_parm_default_def_partitions): New.
4561         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
4562         * tree-ssa-live.c (partition_view_init): Regard unused defs of
4563         parms and results as used.
4564         (verify_live_on_entry): Don't error out just because they're
4565         not live.
4566
4567 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
4568
4569         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4570         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
4571         (output_fde): Don't output length for debug_frame on AIX.
4572         (output_call_frame_info): Don't output length for debug_frame on AIX.
4573         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
4574         HAVE_XCOFF_DWARF_EXTRAS.
4575         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
4576         HAVE_XCOFF_DWARF_EXTRAS.
4577         (output_compilation_unit_header): Don't output length on AIX.
4578         (output_pubnames): Don't output length on AIX.
4579         (output_aranges): Delete argument. Compute length locally. Don't
4580         output length on AIX.
4581         (output_line_info): Don't output length on AIX.
4582         (dwarf2out_finish): Don't compute aranges_length.
4583         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4584         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
4585         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
4586         symbol decoration for AIX.
4587         (rs6000_xcoff_debug_unwind_info): New.
4588         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
4589         for SECTION_DEBUG.
4590         (rs6000_xcoff_declare_function_name): Emit different
4591         .function pseudo-op when DWARF2_DEBUG. Don't call
4592         xcoffout_declare_function for DWARF2_DEBUG.
4593         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
4594         Redefine.
4595         * config/rs6000/aix71.h: New.
4596         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
4597         locations support.
4598         * configure: Regenerate.
4599         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
4600         DWARF support.
4601
4602 2015-09-26  Jeff Law  <law@redhat.com>
4603
4604         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
4605         behaviour.
4606         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
4607         behaviour.
4608
4609         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
4610         behaviour
4611
4612         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
4613         undefined behaviour.
4614
4615         * config/cris/cris.md (asrandb): Fix left shift undefined
4616         behaviour.
4617         (asrandw): Likewise.
4618
4619 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4620
4621         PR target/61578
4622         * lra-constarints.c (match_reload): Check presence of the input pseudo
4623         in the output operand.
4624
4625 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4626
4627         * doc/invoke.texi (-fsanitize): Minor wording tweak.
4628
4629 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4630
4631         * doc/invoke.texi (-fsanitize): Update URLs.
4632
4633 2015-09-25  Teresa Johnson  <tejohnson@google.com>
4634
4635         * opts.c (finish_options): Unset -freorder-blocks-and-partition
4636         if not using profile.
4637
4638 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4639
4640         PR pretty-print/67567
4641         * pretty-print.c (pp_string): Add gcc_checking_assert.
4642         * pretty-print.h (output_buffer_append_r): Likewise.
4643
4644 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4645
4646         PR target/67675
4647         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
4648         addr2 individually.  Don't emit logical or insn if one is known to
4649         be aligned approriately.
4650         (sh_expand_cmpnstr): Likewise.
4651
4652 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
4653
4654         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
4655         __builtin_aarch64_fp[sc]r arguments into a register.
4656
4657 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4658
4659         * config.gcc (x86_archs): Replace lakemount with lakemont.
4660         (with_cpu): Likewise.
4661         (with_arch): Likewise.
4662         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4663         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
4664         __tune_lakemount__ with __tune_lakemont__.
4665         * config/i386/i386.c (lakemount_cost): Renamed to ...
4666         (lakemont_cost): This.
4667         (m_LAKEMOUNT): Renamed to ...
4668         (m_LAKEMONT): This.
4669         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
4670         (processor_target_table): Replace "lakemount" with "lakemont".
4671         (processor_alias_table): Likewise.
4672         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
4673         PROCESSOR_LAKEMONT.
4674         (ix86_adjust_cost): Likewise.
4675         (ia32_multipass_dfa_lookahead): Likewise.
4676         * config/i386/i386.h (processor_type): Likewise.
4677         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
4678         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
4679         Lakemount with Lakemont.
4680
4681 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
4682
4683         * config.gcc (x86_archs): Replace iamcu with lakemount.
4684         (with_cpu): Likewise.
4685         (with_arch): Likewise.
4686         * doc/invoke.texi: Likewise.
4687         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4688         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
4689         __tune_iamcu__ with __tune_lakemount__.
4690         * config/i386/i386.c (iamcu_cost): Renamed to ...
4691         (lakemount_cost): This.
4692         (m_IAMCU): Renamed to ...
4693         (m_LAKEMOUNT): This.
4694         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
4695         (processor_target_table): Replace "iamcu" with "lakemount".
4696         (processor_alias_table): Likewise.
4697         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
4698         PROCESSOR_LAKEMOUNT.
4699         (ix86_adjust_cost): Likewise.
4700         (ia32_multipass_dfa_lookahead): Likewise.
4701         * config/i386/i386.h (processor_type): Likewise.
4702         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
4703
4704 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
4705
4706         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
4707         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
4708         Declare.
4709         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
4710         (pa_expand_compare_and_swap_loop): New.
4711         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
4712         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
4713         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
4714         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
4715         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
4716         Revise.
4717
4718 2015-09-24  Michael Collison  <michael.collison@linaro.org>
4719
4720         PR other/57195
4721         * read-md.c (read_name): Allow mode iterators inside angle
4722         brackets in rtl expressions.
4723
4724 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
4725
4726         PR target/61578
4727         * ira-color.c (update_allocno_cost): Add parameter.
4728         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
4729         parameter.
4730
4731 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4732
4733         PR driver/67640
4734         * opts-common.c (prune_options): Discard all -fdiagnostics-color
4735         but the last one, which is moved to the front to be processed
4736         first.
4737         * opts.c (enable_warning_as_error): Reject options that do not
4738         control warnings.
4739
4740 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4741
4742         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
4743
4744 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4745
4746         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
4747         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
4748         (aarch64_cannot_force_const_mem): Likewise.
4749         (aarch64_classify_address): Likewise.
4750         (aarch64_classify_symbolic_expression): Likewise.
4751         (aarch64_print_operand): Likewise.
4752         (aarch64_classify_symbol): Likewise.
4753         (aarch64_mov_operand_p): Likewise.
4754         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
4755         (aarch64_mov_operand): Likewise.
4756
4757 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
4758
4759         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
4760         for info->spe_gp_size.
4761
4762 2015-09-24  Richard Biener  <rguenther@suse.de>
4763
4764         PR lto/67699
4765         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
4766         abstract origins.
4767
4768 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
4769
4770         * tree-object-size.c (plus_stmt_object_size)
4771         (cond_expr_object_size): Change the formal parameters from gimple
4772         to gimple *.
4773         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
4774         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
4775         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
4776
4777 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4778
4779         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
4780         Check for ld -type pie on Solaris 11.x and 12.
4781         * configure: Regenerate.
4782         * config.in: Regenerate.
4783
4784         * gcc.c (LD_PIE_SPEC): Allow redefinition.
4785
4786         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
4787         (STARTFILE_SPEC): Use it.
4788         (ENDFILE_CRTEND_SPEC): Define.
4789         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
4790         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
4791         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
4792         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
4793         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
4794         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
4795         (ENDFILE_ARCH_SPEC): Define.
4796         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
4797
4798 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4799
4800         * configure.ac (gcc_cv_solaris_crts): New test.
4801         * configure. Regenerate.
4802         * config.in: Regenerate.
4803         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
4804         HAVE_SOLARIS_CRTS variant.
4805
4806 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4807
4808         * tree-inline.h (count_insns_seq): Delete prototype.
4809         (estimate_num_insns_seq): Define prototype.
4810         * tree-inline.c (count_insns_seq): Delete.
4811         (estimate_num_insns_seq): Remove static qualifier.
4812         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
4813         with estimate_num_insns_seq.
4814
4815 2015-09-24  Richard Biener  <rguenther@suse.de>
4816
4817         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
4818         members.
4819         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
4820         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
4821         offset.
4822         (ao_ref_init_from_vn_reference): Record clique and base in the
4823         built base.
4824         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
4825
4826 2015-09-24  Richard Biener  <rguenther@suse.de>
4827
4828         PR tree-optimization/48885
4829         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
4830         as not including any restrict tags from other pointers.
4831
4832 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4833
4834         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
4835         character when appending to offload_targets.
4836
4837         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
4838         offload targets by commas, not colons.
4839         * config.in: Regenerate.
4840         * configure: Likewise.
4841         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
4842         instead of setting up the default offload targets here...
4843         (process_command): ..., do it here.
4844         libgomp/
4845         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
4846         targets are separated by commas.
4847         * config.h.in: Regenerate.
4848
4849 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4850             Nathan Sidwell  <nathan@codesourcery.com>
4851
4852         * omp-low.h (omp_reduction_init_op): Declare.
4853         * omp-low.c (omp_reduction_init_op): New, broken out of ...
4854         (omp_reduction_init): ... here.  Call it.
4855         * tree-parloops.c (initialize_reductions): Use
4856         omp_reduction_init_op.
4857
4858 2015-09-23   Richard Biener  <rguenther@suse.de>
4859
4860         PR middle-end/67662
4861         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
4862         undefined overflow unless they will cancel out.
4863
4864 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4865
4866         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
4867         insn emit.
4868
4869 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4870
4871         PR c/49655
4872         * opts.h (write_langs): Declare.
4873         * opts-global.c (write_langs): Make it extern.
4874
4875 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
4876
4877         PR target/67391
4878         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
4879         overlapping regs when matching the pattern.
4880
4881 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
4882
4883         * config/aarch64/aarch64-simd.md
4884         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
4885         (aarch64_float_truncate_hi_v4sf_le): New.
4886         (aarch64_float_truncate_hi_v4sf_be): Likewise.
4887
4888 2015-09-23  Richard Biener  <rguenther@suse.de>
4889
4890         * tree-ssa-structalias.c (intra_create_variable_infos): Build
4891         representatives for all restrict qualified pointer destinations.
4892
4893 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4894
4895         * config/i386/i386.md (define_code_attr mshift): New.
4896         (define_mode_iterator SWI1248_AVX512BW): Rename ...
4897         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
4898         only.
4899         (define_insn "*k<logic><mode>"): Use new iterator name.
4900         (define_insn "*<mshift><mode>3"): New.
4901
4902 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
4903
4904         PR middle-end/67649
4905         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
4906         mark the block as accessible.
4907
4908 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
4909
4910         * function.c (thread_prologue_and_epilogue_insns): Delete
4911         orig_entry_edge argument to try_shrink_wrapping.
4912         * shrink-wrap.c (can_get_prologue): New function.
4913         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
4914         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
4915         can_get_prologue where needed.  Remove code that finds a single
4916         edge for the prologue.  Remove code that tests if any reg clobbered
4917         by the prologue is live on the prologue edge.  Remove code that finds
4918         the new prologue edge after duplicating blocks.  Make a new prologue
4919         block and edge.
4920         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
4921
4922 2015-09-22  Jeff Law  <law@redhat.com>
4923
4924         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
4925         behavior.
4926
4927 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4928
4929         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
4930         -Wtemplates, -Wnamespaces): Document.
4931
4932 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4933
4934         PR tree-optimization/67671
4935         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
4936         pointer references as restrict.
4937
4938 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4939
4940         * config/nios2/nios2.c (nios2_legitimize_address): When handling
4941         'reg + reloc' cases, allow first operand to be non-REG, and use
4942         force_reg() to enforce address pattern.
4943
4944 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
4945
4946         PR target/67480
4947         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
4948         (define_mode_iterator VI12_AVX_AVX512F): New.
4949         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
4950         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
4951         (define_insn "*<code><mode>3"): ... Into new pattern using
4952         VI12_AVX_AVX512F iterators without masking.
4953
4954 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4955
4956         * config.gcc: Support "skylake-avx512".
4957         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4958         PROCESSOR_SKYLAKE_AVX512.
4959         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
4960         (processor_target_table): Add "skylake-avx512".
4961         (PTA_SKYLAKE_AVX512): Define.
4962         (ix86_option_override_internal): Add "skylake_avx512".
4963         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
4964         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
4965         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
4966         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
4967         * doc/invoke.texi (skylake-avx512): New.
4968
4969 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4970
4971         * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
4972         operand in pattern.
4973         (define_insn "kunpcksi"): Ditto.
4974         (define_insn "kunpckdi"): Ditto.
4975
4976 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4977
4978         * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
4979         iterator instead of fixed modes.
4980
4981 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4982
4983         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4984         Adjust declaration.
4985         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
4986         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
4987         out_result.  Update to support update-fetch operations.
4988         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
4989         Adjust for change to aarch64_gen_atomic_ldop.
4990         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
4991         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
4992         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
4993         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
4994         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
4995
4996 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4997
4998         * config/aarch64/aarch64-protos.h
4999         (aarch64_atomic_ldop_supported_p): Declare.
5000         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
5001         (enum aarch64_atomic_load_op_code): New.
5002         (aarch64_emit_atomic_load_op): New.
5003         (aarch64_gen_atomic_ldop): Update to support load-operate
5004         patterns.
5005         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
5006         to an expander.
5007         (aarch64_atomic_<atomic_optab><mode>): New.
5008         (aarch64_atomic_<atomic_optab><mode>_lse): New.
5009         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
5010         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
5011         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
5012
5013 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
5014
5015         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
5016         (UNSPECV_ATOMIC_LDOP_OR): New.
5017         (UNSPECV_ATOMIC_LDOP_BIC): New.
5018         (UNSPECV_ATOMIC_LDOP_XOR): New.
5019         (UNSPECV_ATOMIC_LDOP_PLUS): New.
5020         (ATOMIC_LDOP): New.
5021         (atomic_ldop): New.
5022         (aarch64_atomic_load<atomic_ldop><mode>): New.
5023
5024 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
5025
5026         * config/aarch64/aarch64.md
5027         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
5028         pattern.
5029
5030 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
5031
5032         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
5033         Declare.
5034         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
5035         (aarch64_gen_atomic_ldop): New.
5036         (aarch64_split_atomic_op): Fix whitespace and add a comment.
5037         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
5038         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
5039         (atomic_exchange<mode>): Replace with an expander.
5040         (aarch64_atomic_exchange<mode>): New.
5041         (aarch64_atomic_exchange<mode>_lse): New.
5042         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
5043         (aarch64_atomic_swp<mode>): New.
5044
5045 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5046
5047         * tree-inline.c (expand_call_inline): Use inform for extra note.
5048         Do not give a note with UNKNOWN_LOCATION.
5049         Replace input_location with gimple_location (stmt).
5050         Use true/false instead of TRUE/FALSE.
5051
5052 2015-09-22  Tom de Vries  <tom@codesourcery.com>
5053
5054         PR tree-optimization/67666
5055         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
5056         with single field non-conservative.
5057
5058 2015-09-21  David S. Miller  <davem@davemloft.net>
5059
5060         PR/67622
5061         Revert:
5062         2015-09-11  David S. Miller  <davem@davemloft.net>
5063
5064         * config/sparc/constraints.md: Make "U" constraint a real register
5065         constraint.
5066         * config/sparc/sparc.c (TARGET_LRA_P): Define.
5067         (D_MODES, DF_MODES): Add missing cast.
5068         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
5069         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
5070         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
5071         cost to 8.
5072         * config/sparc/sparc.h (PROMOTE_MODE): Define.
5073         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
5074         provide these insn when flag_pic.
5075
5076         2015-09-17  David S. Miller  <davem@davemloft.net>
5077
5078         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
5079         Declare.
5080         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
5081         function.
5082         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5083         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5084         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5085         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5086         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5087         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5088         provide when flag_pic.
5089
5090 2015-09-21  Jeff Law  <law@redhat.com>
5091
5092         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
5093         behavior.
5094
5095 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
5096
5097         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
5098
5099 2015-09-21  Richard Biener  <rguenther@suse.de>
5100
5101         * passes.c (rest_of_decl_compilation): Do not call
5102         dwarf2out_early_global_decl for aliases.
5103
5104 2015-09-21  Richard Biener  <rguenther@suse.de>
5105
5106         PR debug/67664
5107         * dwarf2out.c (add_location_or_const_value_attribute): Remove
5108         attribute parameter.  Early exit if either DW_AT_const_value
5109         or DW_AT_location are present already.
5110         (gen_variable_die): Adjust caller.
5111         (dwarf2out_late_global_decl): Likewise.
5112
5113 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
5114
5115         PR target/67657
5116         * config/sh/sh.c (sh_remove_overlapping_post_inc,
5117         sh_peephole_emit_move_insn): Add new functions.
5118         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
5119         sh_peephole_emit_move_insn): Declere them.
5120         * config/sh/sh.md: Use them in various peephole2 patterns.
5121
5122 2015-09-21  Richard Biener  <rguenther@suse.de>
5123
5124         PR middle-end/67651
5125         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
5126         address with -fno-delete-null-pointer-checks.
5127
5128 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
5129
5130         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
5131         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
5132         (reduc_uplus_v16qi): Remove.
5133
5134         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
5135         (reduc_<VEC_reduc_name>_v2df): Remove.
5136         (reduc_<VEC_reduc_name>_v4sf): Remove.
5137         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
5138
5139         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
5140         gen_ function by removing * prefix.
5141         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
5142
5143 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5144
5145         PR middle-end/60832
5146         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
5147         Print i_bound without converting it to a tree.
5148
5149 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
5150
5151         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
5152         operands[4] operands[5] swap with std::swap, removed tmp variable.
5153         (arm_evpc_neon_vzip): Replaced in0/in1 and
5154         out0/out1 swaps with std::swap, removed x variable.
5155         (arm_evpc_neon_vtrn): Replaced in0/int1 and
5156         out0/out1 swaos with std::swap, removed x variable.
5157         (arm_expand_vec_perm_const_1): Replaced
5158         d->op0/d->op1 swap with std::swap, removed x variable.
5159         (arm_evpc_neon_vuzp): Replaced in0/in1 and
5160         out0/out1 swaps with std::swap, removed x variable.
5161
5162 2015-09-21  Jonathan Yong  <10walls@gmail.com>
5163
5164         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
5165         sysroot/usr/lib/32api for additional win32 libraries,
5166         fixes failing Cygwin bootstrapping.
5167
5168 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
5169
5170         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
5171
5172 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
5173
5174         PR target/67126
5175         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
5176         (*mov_t_msb_neg): Rewrite negc pattern.
5177
5178 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5179
5180         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
5181         immediate generation code.
5182
5183 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5184
5185         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
5186         redundant immediate generation code.
5187
5188 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5189
5190         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
5191         (AARCH64_NUM_BITMASKS): Remove.
5192         (aarch64_bitmasks_cmp): Remove.
5193         (aarch64_build_bitmask_table): Remove.
5194
5195 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5196
5197         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
5198         slow immediate matching loops with a faster algorithm.
5199
5200 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5201
5202         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
5203         faster algorithm.
5204
5205 2015-09-20  Jeff Law  <law@redhat.com>
5206
5207         PR tree-optimization/47679
5208         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
5209         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
5210         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
5211         (thread_through_normal_block): Use record_temporary_equivalences.
5212
5213 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
5214
5215         * coretypes.h (gimple): Change typedef to be a forward declaration.
5216         * gimple.h (gimple_statement_base): rename to gimple.
5217         * (all functions and types using gimple): Adjust.
5218         * *.[ch]: Likewise.
5219
5220 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
5221             David Edelsohn  <dje.gcc@gmail.com>
5222
5223         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
5224         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5225         (EH_FRAME_THROUGH_COLLECT2): Define.
5226         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5227         (ASM_OUTPUT_DWARF_PCREL): Define.
5228         (ASM_OUTPUT_DWARF_DATAREL): Define.
5229
5230 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
5231
5232         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
5233         of TARGET_ELF32.
5234
5235 2015-09-18  Jeff Law  <law@redhat.com>
5236
5237         PR tree-optimization/47679
5238         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
5239         it here ...
5240         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
5241         object.  Update constructor.
5242         (pass_dominator::execute):  Corresponding chagnes to declaration
5243         and initialization of avail_exprs_stack.  Update constructor call
5244         for dom_opt_dom_walker object.
5245         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
5246         it down to children as needed.
5247         (record_equivalences_from_incoming_edge): Likewise.
5248         (eliminate_redundant_computations): Likewise.
5249         (record_equivalences_from_stmt): Likewise.
5250         (simplify_stmt_for_jump_threading): Likewise.
5251         (record_temporary_equivalences): Likewise.
5252         (optimize_stmt): Likewise.
5253         (dom_opt_dom_walker::thread_across_edge): Update access to
5254         avail_exprs_stack 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         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
5258         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
5259         Add avail_expr_stack argument.  Pass it to children as needed.
5260         (dummy_simplify): Likewise.
5261         (simplify_control_stmt_condition): Likewise.
5262         (thread_around_empty_blocks): Likewise.
5263         (thread_through_normal_block): Likewise.
5264         (thread_across_edge): Likewise.
5265         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5266         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
5267
5268         PR tree-optimization/47679
5269         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
5270         it here ...
5271         (dom_opt_dom_walker): New private member holding the const_and_copies
5272         object.  Update constructor.
5273         (pass_dominator::execute): Corresponding changes to declaration
5274         and initialization of const_and_copies.  Update constructor call
5275         for the dom_opt_dom_walker object.
5276         (record_temporary_equivalences): Accept const_and_copies argument
5277         pass it down to children as needed.
5278         (record_equality): Likewise.
5279         (record_equivalences_from_incoming_edge): Likewise.
5280         (cprop_into_successor_phis, optimize_stmt): Likewise.
5281         (eliminate_redundant_computations): Likewise.
5282         (dom_opt_dom_walker::thread_across_edge): Update access to
5283         const_and_copies object and pass it to children as needed.
5284         (dom_opt_dom_walker::before_dom_children): Similarly.
5285         (dom_opt_dom_walker::after_dom_children): Similarly.
5286
5287         PR tree-optimization/47679
5288         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
5289         it into the avail_exprs_stack class.
5290         (pass_dominator::execute): Corresponding changes to declaration
5291         and initialization of avail_exprs.  Pass avail_exprs to
5292         dump_dominator_optimization_stats.
5293         (record_cond): Extract avail_exprs from avail_exprs_stack.
5294         (lookup_avail_expr): Similarly.
5295         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
5296         position in file.
5297         (dump_dominator_optimization_stats): Make static and prototype.
5298         Add argument for the hash table to dump.
5299         (debug_dominator_optimization_stats): Remove.
5300         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
5301         prototype.
5302         (debug_dominator_optimization_stats): Similarly.
5303         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
5304         "void" in prototype for pop_to_marker method.  Add accessor method
5305         for the underlying avail_exprs table.
5306
5307         * tree-ssa-threadedge.c: Remove trailing whitespace.
5308
5309 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
5310
5311         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
5312         unsigned.
5313         (pa_ldil_cint_p): Likewise.
5314         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
5315         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
5316         Update callers.
5317         * config/pa/pa.md: Likewise.
5318
5319 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
5320
5321         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
5322         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
5323         (diagnostic_show_locus): Likewise.
5324         (diagnostic_print_caret_line): Likewise.
5325         * diagnostic-show-locus.c: New file.
5326
5327 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
5328
5329         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
5330         "back" parameter. Declare label in #if block.
5331
5332 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
5333
5334         PR middle-end/67619
5335         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
5336         the address to a register.
5337
5338 2015-09-18  Jeff Law  <law@redhat.com>
5339
5340         PR tree-optimization/47679
5341         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
5342         * tree-ssa-dom.c: Remove unnecessary header includes.
5343         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
5344         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
5345         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
5346         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
5347         (pass_phi_only_cprop::execute): Likewise.
5348         (make_pass_phi_only_cprop): Likewise.
5349         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
5350         uses of file scoped statics by passing the required objects
5351         as parameters wherever needed.
5352
5353 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
5354             David Edelsohn  <dje.gcc@gmail.com>
5355
5356         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
5357         EH_FRAME_THROUGH_COLLECT2.
5358         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
5359         DW_EH_PE_datarel.
5360         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
5361         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
5362         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
5363         * except.c (switch_to_exception_section): Use a read-only section
5364         even if EH_FRAME_SECTION_NAME is undefined.
5365         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
5366         * collect2.c (write_c_file_stat): Provide dbase on AIX.
5367         (scan_prog_file): Don't export __dso_handle nor
5368         __gcc_unwind_dbase.
5369         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5370         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5371         (ASM_OUTPUT_DWARF_PCREL): Define.
5372         (ASM_OUTPUT_DWARF_DATAREL): Define.
5373         (EH_FRAME_THROUGH_COLLECT2): Define.
5374         (EH_FRAME_IN_DATA_SECTION): Delete.
5375         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
5376         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
5377         Declare.
5378         (rs6000_asm_output_dwarf_datarel): Declare.
5379         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
5380         (rs6000_aix_asm_output_dwarf_datarel): New.
5381         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
5382         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
5383         (EH_FRAME_THROUGH_COLLECT2): Define.
5384         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
5385         (EH_FRAME_THROUGH_COLLECT2): Define.
5386         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5387         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
5388         (EH_FRAME_THROUGH_COLLECT2): New.
5389         (ASM_OUTPUT_DWARF_DATAREL): New.
5390         * doc/tm.texi: Regenerate.
5391
5392 2015-09-18  Richard Biener  <rguenther@suse.de>
5393
5394         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
5395         we're in early phase.
5396         (schedule_generic_params_dies_gen): Likewise.
5397         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
5398         work as possible, retaining unhandled cases.
5399         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
5400         clear out generic_type_instances at the end.
5401         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
5402         (dwarf2out_early_finish): ... here.  Do most of
5403         gen_remaining_tmpl_value_param_die_attribute here.
5404
5405 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
5406
5407         PR tree-optimization/67283
5408         * tree-sra.c (type_consists_of_records_p): Rename to...
5409         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
5410         (completely_scalarize_record): Rename to...
5411         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
5412         (scalarize_elem): New.
5413         (analyze_all_variable_accesses): Follow renamings.
5414
5415 2015-09-18  Richard Biener  <rguenther@suse.de>
5416
5417         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
5418         in early-dwarf.
5419
5420 2015-09-18  Richard Biener  <rguenther@suse.de>
5421
5422         PR tree-optimization/66142
5423         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
5424         treat MEM[&x] and x the same.
5425         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
5426         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
5427         when we simplified sth.
5428         (vn_reference_maybe_forwprop_address): Likewise.
5429         (valueize_refs_1): When we simplified through
5430         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
5431         set valueized_anything to true.
5432         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
5433         one ref kills the other instead of just a offset-based test.
5434         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
5435         for the operand_equal_p test to compare bases and also compare
5436         sizes.
5437
5438 2015-09-17  Christian Bruel  <christian.bruel@st.com>
5439
5440         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
5441
5442 2015-09-17  Richard Henderson  <rth@redhat.com>
5443
5444         PR libstdc++/65913
5445         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
5446         pointers that encode the alignment of the object.
5447
5448 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5449
5450         PR rtl-optimization/66790
5451         * df-problems.c (LIVE): Amend documentation.
5452
5453 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
5454
5455         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
5456         and optabs-tree.o.
5457         (GTFILES): Replace optabs.c with optabs-libfunc.c.
5458         * genopinit.c (main): Add an include guard to insn-opinit.h.
5459         Protect the rtx_code parts with NUM_RTX_CODE.
5460         * optabs.h: Split parts out to...
5461         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
5462         * optabs.c: Split parts out to...
5463         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
5464         * cilk-common.c: Include optabs-query.h rather than optabs.h.
5465         * fold-const.c: Likewise.
5466         * target-globals.c: Likewise.
5467         * tree-if-conv.c: Likewise.
5468         * tree-ssa-forwprop.c: Likewise.
5469         * tree-ssa-loop-prefetch.c: Likewise.
5470         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
5471         Remove unncessary include files.
5472         * tree-ssa-phiopt.c: Likewise.
5473         * tree-ssa-reassoc.c: Likewise.
5474         * tree-switch-conversion.c: Likewise.
5475         * tree-vect-data-refs.c: Likewise.
5476         * tree-vect-generic.c: Likewise.
5477         * tree-vect-loop.c: Likewise.
5478         * tree-vect-patterns.c: Likewise.
5479         * tree-vect-slp.c: Likewise.
5480         * tree-vect-stmts.c: Likewise.
5481         * tree-vrp.c: Likewise.
5482         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
5483         rather than optabs.h.
5484         * expr.c: Include optabs-tree.h.
5485         * function.c: Likewise.
5486
5487 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5488
5489         PR middle-end/65958
5490         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
5491         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
5492         * config/arm/arm.c: Include common/common-target.h.
5493         (use_return_insn): Return 0 if the static chain register was saved
5494         above a non-APCS frame.
5495         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
5496         (struct scratch_reg): New.
5497         (get_scratch_register_on_entry): New function.
5498         (release_scratch_register_on_entry): Likewise.
5499         (arm_emit_probe_stack_range): Likewise.
5500         (output_probe_stack_range): Likewise.
5501         (arm_expand_prologue): Factor out code dealing with the IP register
5502         for nested function and adjust it for stack checking.
5503         Invoke arm_emit_probe_stack_range if static builtin stack checking
5504         is enabled.
5505         (thumb1_expand_prologue): Sorry out if static builtin stack checking
5506         is enabled.
5507         (arm_expand_epilogue): Add the saved static chain register, if any, to
5508         the amount of pre-pushed registers to pop.
5509         (arm_frame_pointer_required): Return true if static stack checking is
5510         enabled and we want to catch the exception with the EABI unwinder.
5511         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
5512         (UNSPEC_PROBE_STACK_RANGE): Likewise.
5513         * config/arm/arm.md (probe_stack): New insn.
5514         (probe_stack_range): Likewise.
5515
5516 2015-09-17  Richard Biener  <rguenther@suse.de>
5517
5518         * genmatch.c (parser::parse_expr): Improve error message
5519         for mis-placed flags.
5520
5521 2015-09-17  Richard Biener  <rguenther@suse.de>
5522
5523         * passes.c (rest_of_decl_compilation): Always call early_global_decl
5524         debug hook when we created a varpool node.
5525         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
5526         dwarf2out_early_global_decl, when not just add location or
5527         value attributes to existing DIEs.
5528
5529 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
5530
5531         * config/aarch64/aarch64.md (copysigndf3): New.
5532         (copysignsf3): Likewise.
5533
5534 2015-09-17  David S. Miller  <davem@davemloft.net>
5535
5536         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
5537         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
5538         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5539         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5540         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5541         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5542         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5543         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5544         provide when flag_pic.
5545
5546 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5547
5548         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
5549         object_allocator change.
5550
5551 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5552
5553         PR tree-optimization/66388
5554         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
5555         (dump_iv): Dump no_overflow information.
5556         (alloc_iv): Initialize new field for struct iv.
5557         (mark_bivs): Count number of no_overflow bivs.
5558         (find_deriving_biv_for_expr, record_biv_for_address_use): New
5559         functions.
5560         (idx_find_step): Call new functions above.
5561         (add_candidate_1, add_candidate): New paramter.
5562         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
5563         (get_computation_aff): Simplify convertion of cand for BIV.
5564         (get_computation_cost_at): Step cand's base if necessary.
5565
5566 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5567
5568         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
5569         parameter.
5570         (tree_simplify_using_condition): Ditto.
5571         (simplify_using_initial_conditions): Ditto.
5572         (loop_exits_before_overflow): Pass new argument to function
5573         simplify_using_initial_conditions.  Remove case for type conversions
5574         simplification.
5575         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
5576         parameter.
5577         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
5578         in iv base using loop initial conditions.
5579
5580 2015-09-16  Jeff Law  <law@redhat.com>
5581
5582         PR tree-optimization/47679
5583         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
5584         (free_all_edge_infos): Use it.
5585         (allocate_edge_info): Free preexisting edge info data.
5586         (pass_dominator::execute): Set up initial edge info structures.
5587         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
5588         thread_across_edge.
5589         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
5590         If non-null, then push/pop markers appropriately.
5591         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5592         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
5593         thread-across_edge.
5594
5595 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
5596
5597         * config/ft32/ft32.c: Fix the memory address space predicate.
5598
5599 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5600
5601         PR target/67573
5602         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
5603         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
5604
5605 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5606
5607         * toplev.h (check_global_declaration): Remove declaration.
5608         * toplev.c (check_global_declaration): Move to ...
5609         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
5610         (analyze_functions): Update call.
5611
5612 2015-09-16  David S. Miller  <davem@davemloft.net>
5613
5614         * lra-constraints.c (simplify_operand_subreg): Do not assume that
5615         lowpart of a SUBREG has offset zero.
5616
5617 2015-09-16  Jeff Law  <law@redhat.com>
5618
5619         PR tree-optimization/47679
5620         * tree-ssa-dom.c (enum expr_kind): Moved from here to
5621         tree-ssa-scopedtables.h.
5622         (struct hashable_expr, class expr_hash_elt): Likewise.
5623         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
5624         Move associated methods into tree-ssa-scopedtables.c.
5625         (avail_expr_hash, initialize_expr_from_cond): Similarly.
5626         (hashable_expr_equal_p, add_expr_commutative): Likewise.
5627         (add_hashable_expr): Likewise.
5628         (record_cond): Delete element directly.
5629         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
5630         private copy ctor and assignment operator methods.
5631         (expr_elt_hasher): Inline trivial methods.
5632         (initialize_expr_from_cond): Prototype.
5633         * tree-ssa-scopedtables.c: Add necessary includes, functions and
5634         methods that were previously in tree-ssa-dom.c.  Improve various
5635         comments.
5636
5637 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
5638
5639         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
5640
5641 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
5642
5643         PR bootstrap/67587
5644         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5645         fixup_partitions.
5646
5647 2015-09-16  Richard Biener  <rguenther@suse.de>
5648
5649         PR middle-end/67253
5650         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
5651         location of possibly shared trees.
5652
5653 2015-09-16  Richard Biener  <rguenther@suse.de>
5654
5655         PR middle-end/67271
5656         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
5657
5658 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
5659
5660         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
5661         offset and size computations instead of HOST_WIDE_INT.
5662
5663 2015-09-16  Richard Biener  <rguenther@suse.de>
5664
5665         PR middle-end/67442
5666         * fold-const.c (extract_muldiv_1): Properly extend multiplication
5667         result before builting a tree via wide_int_to_tree.
5668
5669 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
5670
5671         * Makefile.in: Add memory-block.cc
5672         (pool_allocator::initialize): Use fixed block size.
5673         (pool_allocator::release): Use memory_block_pool.
5674         (pool_allocator::allocate): Likewise.
5675         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
5676         object pools.
5677         * cfg.c (initialize_original_copy_tables): Likewise.
5678         * cselib.c (elt_list_pool, elt_loc_list_pool,
5679         cselib_val_pool): Likewise.
5680         * df-problems.c (df_chain_alloc): Likewise.
5681         * df-scan.c (df_scan_alloc): Likewise.
5682         * dse.c (cse_store_info_pool, rtx_store_info_pool,
5683         read_info_type_pool, insn_info_type_pool, bb_info_pool,
5684         group_info_pool, deferred_change_pool): Likewise.
5685         * et-forest.c (et_nodes, et_occurrences): Likewise.
5686         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
5687         ipcp_agg_lattice_pool): Likewise.
5688         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
5689         * ipa-profile.c (histogram_pool): Likewise.
5690         * ipa-prop.c (ipa_refdesc_pool): Likewise.
5691         * ira-build.c (live_range_pool, allocno_pool, object_pool,
5692         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
5693         * ira-color.c (update_cost_record_pool): Likewise.
5694         * lra-lives.c (lra_live_range_pool): Likewise.
5695         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
5696         * memory-block.cc: New file.
5697         * memory-block.h: New file.
5698         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
5699         * sched-deps.c (sched_deps_init): Likewise.
5700         * sel-sched-ir.c (sched_lists_pool): Likewise.
5701         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
5702         * tree-sra.c (access_pool): Likewise.
5703         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5704         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
5705         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
5706         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
5707         * tree-ssa-strlen.c (strinfo_pool): Likewise.
5708         * tree-ssa-structalias.c (variable_info_pool): Likewise.
5709         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
5710         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
5711
5712 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5713
5714         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
5715         definition.
5716         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
5717         call0 ABI.
5718
5719 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5720
5721         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
5722         to pass TLS call argument, according to current ABI.
5723         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
5724         callx0 for TLS call, according to current ABI.
5725
5726 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5727
5728         * tree-eh.c (lower_try_finally_dup_block): Clear location information
5729         on stack restore statements.
5730         (decide_copy_try_finally): Do not consider a stack restore statement as
5731         coming from sources.
5732
5733 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
5734
5735         * config/alpha/alpha.c (alpha_expand_block_clear): Use
5736         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
5737
5738 2015-09-15  Jeff Law  <law@redhat.com>
5739
5740         PR tree-optimization/47679
5741         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
5742         methods and private members.
5743         (avail_exprs_stack): Similarly.  Change type of global
5744         from a pair of expr_hash_elt_t to the new class.
5745         (expr_elt_hasher::hash): Corresponding changes.
5746         (expr_elt_hasher::equal): Similarly.
5747         (avail_expr_hash): Similarly.
5748         (pass_dominator::execute): Similarly.
5749         (dom_opt_dom_walker::thread_across_edge): Similarly.
5750         (record_cond): Similarly.
5751         (dom_opt_dom_walker::before_dom_children): Similarly.
5752         (dom_opt_dom_walker::after_dom_children): Similarly.
5753         (lookup_avail_expr): Likewise.
5754         (initialize_hash_element): Now a expr_hash_elt constructor.
5755         (initialize_hash_element_from_expr): Similarly.
5756         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
5757         (free_expr_hash_elt): Call dtor for the element.
5758         (remove_local_expressions_from_table): Now the "pop_to_marker"
5759         method in the available_exprs_stack class.
5760         (avail_expr_stack::record_expr): Method factored out.
5761         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
5762         Fix formatting.
5763         (hashable_expr_equal_p): Fix formatting.
5764
5765 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
5766
5767         * input.h (location_get_source_line): Drop "expanded_location"
5768         param in favor of a file and line number.
5769         * input.c (location_get_source_line): Likewise.
5770         (dump_location_info): Update for change in signature of
5771         location_get_source_line.
5772         * diagnostic.c (diagnostic_print_caret_line): Likewise.
5773
5774 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5775
5776         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
5777         Bump to 4KB for SJLJ exceptions.
5778         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
5779         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
5780         * doc/tm.texi: Regenerate.
5781
5782 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5783
5784         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
5785         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
5786         Update prototype.
5787
5788 2015-09-15  Richard Biener  <rguenther@suse.de>
5789
5790         PR tree-optimization/67470
5791         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
5792         structure for PHI hoisting by inserting a forwarder block
5793         if appropriate.
5794
5795 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5796
5797         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
5798         (arm_option_print): New function.
5799
5800 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5801
5802         PR target/52144
5803         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
5804         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
5805         Remove flags parameter.
5806         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
5807         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
5808         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
5809         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
5810         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
5811         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
5812         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
5813         * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
5814
5815 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5816
5817         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
5818
5819         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
5820         AARCH64_VALID_SIMD_DREG_MODE.
5821
5822 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5823
5824         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
5825         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
5826         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
5827         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
5828         aarch64_ld4_lane<mode>): Combine together, making...
5829         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5830         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5831         aarch64_st4_lane<mode>): Combine together, making...
5832         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5833         * config/aarch64/iterators.md (nregs): Add comment.
5834
5835 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5836
5837         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
5838         Change operand mode from <V_TWO_ELEM> to BLK.
5839         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
5840         (aarch64_vec_store_lanesoi_lane<mode): Likewise
5841         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5842         (aarch64_ld2_lane<mode>): Likewise.
5843         (aarch64_st2_lane<VQ:mode>): Likewise.
5844         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
5845
5846 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5847
5848         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
5849         Change operand mode from <V_FOUR_ELEM> to BLK.
5850         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
5851         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
5852         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5853         (aarch64_ld4_lane<mode>): Likewise.
5854         (aarch64_st4_lane<mode>): Likewise.
5855         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
5856
5857 2015-09-15  Richard Biener  <rguenther@suse.de>
5858
5859         PR middle-end/67563
5860         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
5861         transfer EH info from old to new stmt.
5862         (replace_call_with_value): Likewise.
5863         (replace_call_with_call_and_fold): Likewise.
5864         (gimple_fold_builtin_memory_op): Likewise.
5865         (gimple_fold_builtin_memset): Likewise.
5866         (gimple_fold_builtin_stpcpy): Likewise.
5867         (gimple_fold_call): Likewise.
5868
5869 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5870
5871         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
5872         comment.
5873         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
5874         (aarch64_simd_intEI_type_node): Likewise.
5875         (aarch64_simd_builtin_std_type): Remove EImode case.
5876         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
5877         * config/aarch64/aarch64-modes.def: Remove EImode.
5878
5879 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5880
5881         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
5882         Change operand mode from <V_THREE_ELEM> to BLK.
5883         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
5884         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
5885         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5886         (aarch64_ld3_lane<mode>): Likewise.
5887         (aarch64_st3_lane<mode>): Likewise.
5888         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
5889
5890 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5891
5892         * config/aarch64/aarch64-simd.md
5893         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
5894         Change all TImode operands to BLKmode.
5895         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
5896         Change all EImode operands to BLKmode.
5897         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
5898         Change all OImode operands to BLKmode.
5899
5900         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
5901         and call set_mem_size.
5902         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
5903
5904         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
5905
5906 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5907
5908         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
5909         to...
5910         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
5911
5912         (vec_store_lanesci_lane<mode>): Rename to...
5913         (aarch64_vec_store_lanesci_lane<mode>): ...this.
5914
5915         (vec_store_lanesxi_lane<mode>): Rename to...
5916         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
5917
5918         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5919         aarch64_st4_lane<mode>): Follow renaming.
5920
5921 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5922
5923         * config/s390/s390.c (s390_const_operand_ok): Add missing
5924         brackets.
5925
5926 2015-09-15  Richard Biener  <rguenther@suse.de>
5927
5928         PR lto/67568
5929         * lto-streamer.h (lto_location_cache::current_sysp): Properly
5930         initialize.
5931         * lto-streamer-out.c (clear_line_info): Likewise.
5932
5933 2015-09-15  Richard Biener  <rguenther@suse.de>
5934
5935         * doc/match-and-simplify.texi: Fix wording.
5936
5937 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
5938
5939         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
5940         unnecessary type conversion in op1.
5941
5942 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5943
5944         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
5945         (dup_block_and_redirect): Delete function.
5946         (can_dup_for_shrink_wrapping): New function.
5947         (fix_fake_fallthrough_edge): New function.
5948         (try_shrink_wrapping): Rewrite function.
5949         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
5950
5951 2015-09-14  Rich Felker  <dalias@libc.org>
5952
5953         * configure.ac: Change target pattern for sh TLS support
5954         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
5955         * configure: Regenerate.
5956
5957 2015-09-14  Jeff Law  <law@redhat.com>
5958
5959         PR tree-optimization/47679
5960         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
5961         type rather than void *.
5962
5963 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5964
5965         PR fortran/67460
5966         * diagnostic.c (diagnostic_initialize): Do not set
5967         some_warnings_are_errors.
5968         (diagnostic_finish): Use DK_WERROR count instead.
5969         (diagnostic_report_diagnostic): Do not set
5970         some_warnings_are_errors.
5971         * diagnostic.h (struct diagnostic_context): Remove
5972         some_warnings_are_errors.
5973
5974 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
5975
5976         * config/sparc/predicates.md (const_all_ones_operand): Use
5977         CONSTM1_RTX to simplify definition.
5978
5979 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
5980
5981         PR target/67061
5982         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
5983         Handle call insns.
5984
5985 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
5986
5987         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
5988         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
5989         OPT_fshow_column to handled saved option cases.
5990         (append_compiler_options): Do not skip the above added options.
5991
5992 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5993
5994         PR target/63304
5995         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
5996         nopcrelative_literal_loads.
5997         (aarch64_classify_address): Likewise.
5998         (aarch64_constant_pool_reload_icode): Define.
5999         (aarch64_secondary_reload): Handle secondary reloads for
6000         literal pools.
6001         (aarch64_override_options): Handle nopcrelative_literal_loads.
6002         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
6003         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
6004         Define.
6005         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
6006         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
6007         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
6008         predicate.
6009         * doc/invoke.texi (mpc-relative-literal-loads): Document.
6010
6011 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
6012
6013         PR middle-end/67401
6014         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
6015         sync_compare_and_swap_optab libcall to target_oval.
6016
6017 2015-09-14  Marek Polacek  <polacek@redhat.com>
6018
6019         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
6020         value.
6021         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
6022
6023 2015-09-11  Mark Wielaard  <mjw@redhat.com>
6024
6025         PR c/28901
6026         * toplev.c (check_global_declaration): Check and use
6027         warn_unused_const_variable.
6028         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
6029         (-Wunused-variable): Remove non-constant. For C implies
6030         -Wunused-const-variable.
6031         (-Wunused-const-variable): New.
6032
6033 2015-09-14  Richard Biener  <rguenther@suse.de>
6034
6035         * doc/match-and-simplify.texi: Update for changed syntax
6036         of inner ifs and the new switch expression.
6037
6038 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
6039
6040         * config/i386/haswell.md: New file describing Haswell pipeline.
6041         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
6042         haswell-like processors.
6043         (ix86_reassociation_width): Increase reassociation width for 64-bit
6044         Haswell processor family.
6045         * config/i386/i386.md: Introduce haswell cpu and include new md file.
6046
6047 2015-09-14  Richard Biener  <rguenther@suse.de>
6048
6049         * doc/match-and-simplify.texi: Fixup some formatting issues
6050         and document the 's' flag.
6051
6052 2015-09-13  Olivier Hainque  <hainque@adacore.com>
6053             Eric Botcazou  <ebotcazou@adacore.com>
6054
6055         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
6056         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
6057         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
6058         (TARGET_CPU_gr5): Likewise.
6059         (TARGET_CPU_gr6): Likewise.
6060         (MULTILIB_DEFAULTS): Likewise.
6061         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
6062         for mcpu=gr5 and mcpu=gr6.
6063         (MULTILIB_DIRNAMES): Adjust accordingly.
6064
6065 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6066
6067         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
6068         (mem_ref_p): Likewise.
6069         (outermost_indep_loop): Adjust.
6070         (mem_ref_in_stmt): Likewise.
6071         (determine_max_movement): Likewise.
6072         (mem_ref_alloc): Likewise.
6073         (record_mem_ref_loc): Likewise.
6074         (set_ref_stored_in_loop): Likewise.
6075         (mark_ref_stored): Likewise.
6076         (gather_mem_refs_stmt): Likewise.
6077         (mem_refs_may_alias_p): Likewise.
6078         (for_all_locs_in_loop): Likewise.
6079         (struct rewrite_mem_ref_loc): Likewise.
6080         (rewrite_mem_refs): Likewise.
6081         (struct first_mem_ref_loc_1): Likewise.
6082         (first_mem_ref_loc): Likewise.
6083         (struct sm_set_flag_if_changed): Likewise.
6084         (execute_sm_if_changed_flag_set): Likewise.
6085         (execute_sm): Likewise.
6086         (hoist_memory_references):
6087         (struct ref_always_accessed): Likewise.
6088         (ref_always_accessed_p): Likewise.
6089         (refs_independent_p): Likewise.
6090         (record_dep_loop): Likewise.
6091         (ref_indep_loop_p_1): Likewise.
6092         (ref_indep_loop_p_2): Likewise.
6093         (ref_indep_loop_p): Likewise.
6094         (can_sm_ref_p): Likewise.
6095         (find_refs_for_sm): Likewise.
6096         (tree_ssa_lim_finalize): Likewise.
6097
6098 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6099
6100         * dwarf2out.c (dw_attr_ref): Remove typedef.
6101         (dw_line_info_ref): Likewise.
6102         (pubname_ref): Likewise.
6103         (dw_ranges_ref): Likewise.
6104         (dw_ranges_by_label_ref): Likewise.
6105         (comdat_type_node_ref): Likewise.
6106         (get_AT): Adjust.
6107         (get_AT_low_pc): Likewise.
6108         (get_AT_hi_pc): Likewise.
6109         (get_AT_string): Likewise.
6110         (get_AT_flag): Likewise.
6111         (get_AT_unsigned): Likewise.
6112         (get_AT_ref): Likewise.
6113         (get_AT_file): Likewise.
6114         (remove_AT): Likewise.
6115         (print_die): Likewise.
6116         (check_die): Likewise.
6117         (die_checksum): Likewise.
6118         (attr_checksum_ordered): Likewise.
6119         (struct checksum_attributes): Likewise.
6120         (collect_checksum_attributes): Likewise.
6121         (die_checksum_ordered): Likewise.
6122         (same_die_p): Likewise.
6123         (is_declaration_die): Likewise.
6124         (clone_die): Likewise.
6125         (clone_as_declaration): Likewise.
6126         (copy_declaration_context): Likewise.
6127         (break_out_comdat_types): Likewise.
6128         (copy_decls_walk): Likewise.
6129         (output_location_lists): Likewise.
6130         (external_ref_hasher::hash): Likewise.
6131         (optimize_external_refs_1): Likewise.
6132         (build_abbrev_table): Likewise.
6133         (size_of_die): Likewise.
6134         (unmark_all_dies): Likewise.
6135         (size_of_pubnames): Likewise.
6136         (output_die_abbrevs): Likewise.
6137         (output_die): Likewise.
6138         (output_pubnames): Likewise.
6139         (add_ranges_num): Likewise.
6140         (add_ranges_by_labels): Likewise.
6141         (add_high_low_attributes): Likewise.
6142         (gen_producer_string): Likewise.
6143         (dwarf2out_set_name): Likewise.
6144         (new_line_info_table): Likewise.
6145         (prune_unused_types_walk_attribs): Likewise.
6146         (prune_unused_types_update_strings): Likewise.
6147         (prune_unused_types): Likewise.
6148         (resolve_addr): Likewise.
6149         (optimize_location_lists_1): Likewise.
6150         (index_location_lists): Likewise.
6151         (dwarf2out_finish): Likewise.
6152
6153 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6154
6155         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
6156
6157 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6158
6159         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
6160         (dump_asserts_for): Adjust.
6161         (register_new_assert_for): Likewise.
6162         (process_assert_insertions): Likewise.
6163         (insert_range_assertions): Likewise.
6164
6165 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6166
6167         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
6168         and remove typedef.
6169         (new_temp_expr_table): Adjust.
6170         (free_temp_expr_table): Likewise.
6171         (version_to_be_replaced_p): Likewise.
6172         (make_dependent_on_partition): Likewise.
6173         (add_to_partition_kill_list): Likewise.
6174         (remove_from_partition_kill_list): Likewise.
6175         (add_dependence): Likewise.
6176         (finished_with_expr): Likewise.
6177         (process_replaceable): Likewise.
6178         (kill_expr): Likewise.
6179         (kill_virtual_exprs): Likewise.
6180         (mark_replaceable): Likewise.
6181         (find_replaceable_in_bb): Likewise.
6182         (find_replaceable_exprs): Likewise.
6183         (debug_ter): Likewise.
6184
6185 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6186
6187         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
6188         (struct btr_user): Rename from btr_user_s.
6189         (struct btr_def): Rename from btr_def_s.
6190         (find_btr_def_group): Adjust.
6191         (add_btr_def): Likewise.
6192         (new_btr_user): Likewise.
6193         (note_other_use_this_block): Likewise.
6194         (compute_defs_uses_and_gen): Likewise.
6195         (link_btr_uses): Likewise.
6196         (build_btr_def_use_webs): Likewise.
6197         (block_at_edge_of_live_range_p): Likewise.
6198         (btr_def_live_range): Likewise.
6199         (combine_btr_defs): Likewise.
6200         (move_btr_def): Likewise.
6201         (migrate_btr_def): Likewise.
6202         (migrate_btr_defs): Likewise.
6203
6204 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6205
6206         * var-tracking.c (shared_hash_def): Rename to shared_hash.
6207         (shared_hash): Remove typedef.
6208         (struct dataflow_set): Adjust.
6209         (shared_hash_unshare): Likewise.
6210         (dataflow_set_merge): Likewise.
6211         (vt_initialize): Likewise.
6212         (vt_finalize): Likewise.
6213
6214 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6215
6216         * var-tracking.c (struct location_chain): Rename from
6217         location_chain_def.
6218         (struct variable_part): Adjust.
6219         (variable_htab_free): Likewise.
6220         (unshare_variable): Likewise.
6221         (get_init_value): Likewise.
6222         (get_addr_from_local_cache): Likewise.
6223         (drop_overlapping_mem_locs): Likewise.
6224         (val_reset): Likewise.
6225         (struct variable_union_info): Likewise.
6226         (variable_union): Likewise.
6227         (find_loc_in_1pdv): Likewise.
6228         (insert_into_intersection): Likewise.
6229         (intersect_loc_chains): Likewise.
6230         (canonicalize_loc_order_check): Likewise.
6231         (canonicalize_values_mark): Likewise.
6232         (canonicalize_values_star): Likewise.
6233         (canonicalize_vars_star): Likewise.
6234         (variable_merge_over_cur): Likewise.
6235         (remove_duplicate_values): Likewise.
6236         (variable_post_merge_new_vals): Likewise.
6237         (variable_post_merge_perm_vals): Likewise.
6238         (find_mem_expr_in_1pdv): Likewise.
6239         (dataflow_set_preserve_mem_locs): Likewise.
6240         (dataflow_set_remove_mem_locs): Likewise.
6241         (variable_part_different_p): Likewise.
6242         (onepart_variable_different_p): Likewise.
6243         (find_src_set_src): Likewise.
6244         (dump_var): Likewise.
6245         (set_slot_part): Likewise.
6246         (clobber_slot_part): Likewise.
6247         (delete_slot_part): Likewise.
6248         (vt_expand_var_loc_chain): Likewise.
6249         (emit_note_insn_var_location): Likewise.
6250         (vt_finalize): Likewise.
6251
6252 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6253
6254         * dse.c (store_info_t): Remove typedef.
6255         (group_info_t): Likewise.
6256         (const_group_info_t): Likewise.
6257         (deferred_change_t): Likewise.
6258         (get_group_info): Adjust.
6259         (free_store_info): Likewise.
6260         (canon_address): Likewise.
6261         (clear_rhs_from_active_local_stores): Likewise.
6262         (record_store): Likewise.
6263         (replace_read): Likewise.
6264         (check_mem_read_rtx): Likewise.
6265         (scan_insn): Likewise.
6266         (remove_useless_values): Likewise.
6267         (dse_step1): Likewise.
6268         (dse_step2_init): Likewise.
6269         (dse_step2_nospill): Likewise.
6270         (scan_stores_nospill): Likewise.
6271         (scan_reads_nospill): Likewise.
6272         (dse_step3_exit_block_scan): Likewise.
6273         (dse_step3): Likewise.
6274         (dse_step5_nospill): Likewise.
6275         (dse_step6): Likewise.
6276
6277 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6278
6279         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
6280         (alias_set_entry): Remove typedef.
6281         (alias_set_subset_of): Adjust.
6282         (alias_sets_conflict_p): Likewise.
6283         (init_alias_set_entry): Likewise.
6284         (get_alias_set): Likewise.
6285         (new_alias_set): Likewise.
6286         (record_alias_subset): Likewise.
6287
6288 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
6289
6290         * doc/install.texi (Downloading the source): Mark up
6291         contrib/download_prerequisites properly and drop leading "./".
6292
6293 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6294
6295         * config/arc/arc.h: Remove define of STRUCT_VALUE.
6296         * config/lm32/lm32.h: Likewise.
6297         * config/mep/mep.h: Likewise.
6298         * config/visium/visium.h: Likewise.
6299         * system.h: Poison STRUCT_VALUE macro.
6300
6301 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
6302
6303         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
6304         CONSTANT_P operands.
6305
6306 2015-09-11  David S. Miller  <davem@davemloft.net>
6307
6308         * config/sparc/constraints.md: Make "U" constraint a real register
6309         constraint.
6310         * config/sparc/sparc.c (TARGET_LRA_P): Define.
6311         (D_MODES, DF_MODES): Add missing cast.
6312         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
6313         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
6314         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
6315         cost to 8.
6316         * config/sparc/sparc.h (PROMOTE_MODE): Define.
6317         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
6318         provide these insn when flag_pic.
6319
6320 2015-09-11  Jeff Law  <law@redhat.com>
6321
6322         PR tree-optimization/47679
6323         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
6324         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
6325         member with m_.  Update inline member functions as necessary.  Add
6326         toplevel comment.
6327         * tree-ssa-scopedtables.c: Update const_and_copies's member
6328         functions to use m_ prefix to access the stack.
6329
6330 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6331
6332         * graphite-optimize-isl.c (disable_tiling): Remove.
6333         (get_schedule_for_band): Do not use disable_tiling.
6334         (get_prevector_map): Delete function.
6335         (enable_polly_vector): Remove.
6336         (get_schedule_for_band_list): Remove dead code.
6337
6338 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6339
6340         * graphite-optimize-isl.c (get_tile_map): Refactor.
6341         (get_schedule_for_band): Same.
6342         (getScheduleForBand): Same.
6343         (get_prevector_map): Same.
6344         (get_schedule_for_band_list): Same.
6345         (get_schedule_map): Same.
6346         (get_single_map): Same.
6347         (apply_schedule_map_to_scop): Same.
6348         (optimize_isl): Same.
6349
6350 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6351
6352         PR target/63304
6353         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
6354         (movtf): Delete.
6355         * config/aarch64/iterators.md (GPF_TF_F16): New.
6356         (GPF_F16): Delete.
6357
6358 2015-09-10  Nathan Sidwell  <nathan@acm.org>
6359
6360         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
6361         (nvptx_reorg): Adjust comments.
6362
6363 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
6364
6365         PR bootstrap/67363
6366         * configure.ac: Check if setenv and unsetenv are declared.
6367         * configure: Rebuild.
6368         * config.in: Rebuild.
6369         * system.h: Declare setenv and unsetenv if not declared.
6370
6371 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6372
6373         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
6374         commentary to simplify permute mask adjustment equation.
6375         (special_handling_values): Add SH_VPERM.
6376         (const_load_sequence_p): New function.
6377         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
6378         the mask loaded from the constant pool.
6379         (adjust_vperm): New function.
6380         (handle_special_swappables): Call adjust_vperm.
6381         (dump_swap_insn_table): Handle SH_VPERM.
6382
6383 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6384
6385         * shrink-wrap.c (requires_stack_frame_p): Remove static.
6386         * shrink-wrap.h (requires_stack_frame_p): Put back.
6387
6388 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
6389
6390         * reload1.c (elimination_costs_in_insn): Locally turn
6391         -Wmaybe-uninitialized into a warning.
6392
6393 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
6394
6395         * shrink-wrap.c (requires_stack_frame_p): Make static.
6396         (prepare_shrink_wrap): Likewise.
6397         (dup_block_and_redirect): Likewise.
6398         * shrink-wrap.h: Remove declarations of those functions.
6399
6400 2015-09-10  Mark Wielaard  <mjw@redhat.com>
6401
6402         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
6403
6404 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
6405
6406         PR target/67506
6407         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
6408         missing simplify_gen_subreg.
6409
6410 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6411
6412         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
6413         the vector element is bigger than 64 bit.
6414
6415 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6416
6417         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
6418         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
6419
6420 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6421
6422         * config/s390/s390.c: Add V1TImode to constant pool modes.
6423
6424 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6425
6426         PR target/67439
6427         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
6428         predicate.  Set predicable_short_it attr to "no".
6429
6430 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
6431
6432         PR rtl-optimization/67421
6433         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
6434         left wide shift tranformation.
6435
6436 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
6437
6438         * common/config/arc/arc-common.c: Remove references to A5.
6439         * config/arc/arc-opts.h: Likewise.
6440         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
6441         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
6442         * config/arc/t-arc-newlib: Likewise.
6443
6444 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
6445
6446         * config/arc/arc.md (length): Fix attribute length for conditional
6447         executed instructions with long immediate.
6448
6449 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6450
6451         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
6452         type for second alternative.
6453
6454 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
6455
6456         * doc/invoke.texi (Downloading GCC): Mention
6457         contrib/download_prerequisites script.
6458
6459 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
6460
6461         PR c++/67523
6462         * gimplify.c (gimplify_omp_for): If inner stmt is not found
6463         for combined loop, assert seen_error () and return GS_ERROR.
6464
6465         PR middle-end/67521
6466         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
6467         if decl is already in outer->variables.
6468
6469         PR middle-end/67517
6470         * gimplify.c (gimplify_scan_omp_clauses): Instead of
6471         asserting that decl is not specified in octx->variables,
6472         break out of the loop if it is.
6473
6474         PR c++/67514
6475         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
6476         iterator is not explicitly determined, but is defined inside
6477         of the combined workshare region, handle it like if it has
6478         DECL_EXPR in OMP_FOR_PRE_BODY.
6479
6480 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6481
6482         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
6483         (*cmp<mode>): Add assembler spacing.
6484         (setcc_int<mode>, set_cc_float<mode>): Likewise.
6485         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
6486         level.
6487         (write_func_decl_from_insn): Refactor argument loops & comma emission.
6488         (nvptx_expand_call): Likewise.
6489         (nvptx_output_call_insn): Likewise.
6490         (nvptx_reorg_subreg): Add spacing.
6491
6492 2015-09-09  Marek Polacek  <polacek@redhat.com>
6493
6494         PR middle-end/67512
6495         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
6496         for comparisons.
6497
6498 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
6499
6500         PR c++/53184
6501         * doc/invoke.texi ([Wsubobject-linkage]): Document.
6502
6503 2015-09-09  Tom de Vries  <tom@codesourcery.com>
6504
6505         * params-list.h: Add missing copyright notice.
6506
6507 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6508
6509         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
6510         sel_truesi, not andsi.
6511
6512 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6513
6514         * config/arm/arm.md (*subsi3_compare0): Rename to...
6515         (subsi3_compare0): ... This.
6516         (modsi3): New define_expand.
6517         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
6518         when operand is power of 2.
6519
6520 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6521
6522         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
6523         (*neg<mode>2_compare0): Rename to...
6524         (neg<mode>2_compare0): ... This.
6525         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
6526         Move check for speed inside the if-then-elses.  Reflect
6527         CSNEG sequence in MOD by power of 2 case.
6528
6529 2015-09-09  Alan Modra  <amodra@gmail.com>
6530
6531         PR target/67378
6532         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
6533         reload replacement for PRE_MODIFY address reg.
6534
6535 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
6536
6537         PR tree-optimization/53852
6538         * config.in: Regenerate.
6539         * configure: Regenerate.
6540         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
6541         * graphite-optimize-isl.c (optimize_isl): Stop computation when
6542         PARAM_MAX_ISL_OPERATIONS is reached.
6543         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
6544         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
6545         result equal to isl_stat_ok as the status now can be isl_error_quota.
6546         (subtract_commutative_associative_deps): Same.
6547         (compute_deps): Same.
6548
6549 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
6550             Sebastian Pop  <s.pop@samsung.com>
6551
6552         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
6553         Return the parameter if it was saved in corresponding
6554         parameter_rename_map of the region.
6555         (copy_def): Copy def from sese region to the newly created region.
6556         (copy_internal_parameters): Copy all the internal parameters defined
6557         within a region to the newly created region.
6558         (graphite_regenerate_ast_isl): Copy parameters to the new region before
6559         translating isl to gimple.
6560         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
6561         the loop-nest does not have any data-references.
6562         (build_graphite_scops): Create a scop only when there is at least one
6563         loop inside it.
6564         (contains_only_close_phi_nodes): Deleted.
6565         (print_graphite_scop_statistics): Deleted
6566         (print_graphite_statistics): Deleted
6567         (limit_scops): Deleted.
6568         (build_scops): Removed call to limit_scops.
6569         * sese.c (new_sese): Construct.
6570         (free_sese): Destruct.
6571         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
6572         added.
6573         (set_rename): Pass sese region so that parameters inside the region can
6574         be added to its parameter_rename_map.
6575         (rename_uses): Pass sese region.
6576         (graphite_copy_stmts_from_block): Do not copy parameters that have been
6577         generated in the header of the scop. For each SSA_NAME in the
6578         parameter_rename_map rename its usage.
6579         (invariant_in_sese_p_rec): Return false if tree t is defined outside
6580         sese region.
6581         (scalar_evolution_in_region): If the tree t is invariant just return t.
6582         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
6583         struct sese to keep track of all the parameters which need renaming.
6584         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
6585         any data-refs.
6586         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
6587
6588 2015-09-08  Tom de Vries  <tom@codesourcery.com>
6589
6590         * Makefile.in (generated_files): Add params.list.
6591         (params.list, s-params.list): Add rule.
6592         * params.h (enum compiler_param): Include params-list.h.  Move define
6593         DEFPARAM, include params.def and undef DEFPARAM ...
6594         * params-list.h: ... here.  New file.
6595
6596 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
6597
6598         * pretty-print.h (printer_fn): Fix typo in comment.
6599
6600 2015-09-07  Jeff Law  <law@redhat.com>
6601
6602         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
6603
6604 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6605
6606         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
6607         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
6608         (arm_neon_fp16_hw): New.
6609
6610 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6611
6612         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
6613         UNITS_PER_WORD >= 4.
6614
6615 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6616
6617         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
6618         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
6619         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
6620         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
6621         (aarch64_float_extend_lo_v2df): Rename to...
6622         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
6623
6624         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
6625         (float_extend_lo): Add v4sf.
6626
6627         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
6628         * config/aarch64/iterators.md (VQ_HSF): New iterator.
6629         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
6630         (Vwide): New mode_attr.
6631
6632 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6633
6634         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
6635         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
6636         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
6637         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
6638         V4HF and V8HF variants to iterator.
6639
6640         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
6641
6642         * config/aarch64/iterators.md (VDQF_F16): New.
6643         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
6644
6645 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6646
6647         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
6648         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6649         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
6650         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
6651         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
6652         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6653         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
6654         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
6655         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
6656         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
6657         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
6658         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6659         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
6660         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
6661         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
6662         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
6663         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
6664         vld1q_dup_f16): New.
6665
6666 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6667
6668         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
6669         Reparameterize to...
6670         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
6671         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
6672         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
6673
6674         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
6675         v8hf variant.
6676         (float_truncate_lo_): Use BUILTIN_VDF iterator.
6677
6678         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
6679
6680         * config/aarch64/iterators.md (VDF, Vdtype): New.
6681         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
6682
6683 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6684
6685         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
6686         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
6687         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
6688         Add __builtin_aarch64_simd_hf.
6689         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
6690         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
6691         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
6692         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
6693         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
6694         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
6695         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
6696         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
6697         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
6698
6699         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
6700         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
6701         (VDC, Vdbl): Add V4HF.
6702
6703 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6704
6705         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
6706         V4HFmode and V8HFmode.
6707         (aarch64_split_simd_move): Add case for V8HFmode.
6708         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
6709         (aarch64_simd_builtin_std_type): Handle HFmode.
6710         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
6711
6712         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
6713         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
6714         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
6715
6716         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
6717         Float16x8_t.
6718
6719         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
6720         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
6721         New typedefs.
6722         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
6723         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
6724         vst1q_lane_f16): New.
6725         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
6726         (VALLDI_F16, VALL_F16): New.
6727         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
6728         Add cases for V4HF and V8HF.
6729         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
6730
6731 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6732
6733         * config/arm/arm-builtins.c (VAR11, VAR12): New.
6734         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
6735         vld4_dup): Add v4hf variant.
6736         (vget_high, vget_low): Add v8hf variant.
6737         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
6738         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
6739         v4hf and v8hf variants.
6740
6741         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
6742         (VDX): Add V4HF.
6743         (V_DOUBLE): Add case for V4HF.
6744         (VQX): Add V8HF.
6745         (V_HALF): Add case for V8HF.
6746         (VDQX): Add V4HF, V8HF.
6747         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
6748         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
6749
6750         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
6751         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
6752         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
6753         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
6754         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
6755         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
6756         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
6757         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
6758         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
6759
6760         (neon_vcreate, neon_vreinterpretv8qi<mode>,
6761         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6762         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
6763         Change VDX to VD_RE.
6764
6765         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
6766         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
6767         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
6768
6769         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
6770         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
6771         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
6772         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
6773         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
6774         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
6775         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
6776         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
6777         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
6778
6779 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6780
6781         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
6782         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
6783         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
6784         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
6785         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6786         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
6787         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
6788         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
6789         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
6790         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
6791         New.
6792
6793 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6794
6795         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
6796
6797         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
6798
6799         * config/arm/arm-builtins.c (v8hf_UP): New.
6800         (arm_init_simd_builtin_types): Initialise Float16x8_t.
6801
6802         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
6803
6804         * config/arm/arm_neon.h (float16x8_t): New typedef.
6805
6806 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6807
6808         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
6809         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
6810         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
6811         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
6812         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6813         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
6814         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
6815         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
6816         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6817         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
6818
6819 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
6820
6821         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
6822         non-alphanumeric characters in the symbol name.
6823
6824 2015-09-07  Marek Polacek  <polacek@redhat.com>
6825
6826         PR inline-asm/67448
6827         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
6828         a memory input.
6829
6830 2015-09-07  Marek Polacek  <polacek@redhat.com>
6831
6832         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
6833
6834 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
6835
6836         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
6837         not warn.
6838
6839 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
6840
6841         PR middle-end/67452
6842         * tree-ssa-live.c: Include cfgloop.h.
6843         (remove_unused_locals): Clear loop->simduid if simduid is about
6844         to be removed from cfun->local_decls.
6845
6846 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6847
6848         PR target/65210
6849         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
6850         attribute as well.
6851
6852 2015-09-04  Tom de Vries  <tom@codesourcery.com>
6853
6854         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
6855
6856 2015-09-04  Jeff Law  <law@redhat.com>
6857
6858         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
6859         unnecessary constructor.  It's now trivial and implemented inside...
6860         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
6861         constructor.  Add comments to various methods.  Remove unused
6862         private fields.
6863         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
6864         * tree-vrp.c (identify_jump_threads): Likewise.
6865         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
6866         indentation issues.
6867         (thread_across_edge): Similarly.
6868         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
6869         arguments in constructor call.
6870
6871 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
6872
6873         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
6874         temp path contains a '-'.
6875
6876 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6877             Petr Murzin  <petr.murzin@intel.com>
6878             Kirill Yukhin  <kirill.yukhin@intel.com>
6879
6880         * config/i386/i386-builtin-types.def
6881         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
6882         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
6883         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
6884         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
6885         * config/i386/i386.c
6886         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
6887         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6888         IX86_BUILTIN_SCATTERALTDIV16SI.
6889         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
6890         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
6891         __builtin_ia32_scatteraltdiv8si.
6892         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
6893         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6894         IX86_BUILTIN_SCATTERALTDIV16SI.
6895         (ix86_vectorize_builtin_scatter): New.
6896         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
6897         ix86_vectorize_builtin_scatter.
6898
6899 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6900             Petr Murzin  <petr.murzin@intel.com>
6901             Kirill Yukhin  <kirill.yukhin@intel.com>
6902
6903         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
6904         * doc/tm.texi: Regenerate.
6905         * target.def: Add scatter builtin.
6906         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
6907         for loads/stores in case of gather/scatter accordingly.
6908         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6909         STMT_VINFO_GATHER_P(S).
6910         (vect_check_gather): Rename to ...
6911         (vect_check_gather_scatter): this.
6912         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
6913         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
6914         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6915         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
6916         variable and new checkings for it accordingly.
6917         * tree-vect-stmts.c
6918         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6919         STMT_VINFO_GATHER_P(S).
6920         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6921         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
6922
6923 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6924
6925         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
6926         define_insn.
6927         (mulv16qi3): New define_expand.
6928
6929 2015-09-03  Martin Sebor  <msebor@redhat.com>
6930
6931         PR c/66516
6932         * doc/extend.texi (Other Builtins): Document when the address
6933         of a built-in function can be taken.
6934
6935 2015-09-03  Richard Biener  <rguenther@suse.de>
6936
6937         * dwarf2out.c (flush_limbo_die_list): Split out from ...
6938         (dwarf2out_early_finish): ... here.
6939         (dwarf2out_finish): Do not call dwarf2out_early_finish but
6940         flush_limbo_die_list.  Assert we have no deferred asm names.
6941
6942 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6943
6944         * optabs.c (expand_binop): Don't create a broadcast vector with a
6945         source element wider than the inner mode.
6946
6947 2015-09-03  Richard Biener  <rguenther@suse.de>
6948
6949         * varasm.c (output_constant): Use fold_convert instead of
6950         wide_int_to_tree.
6951
6952 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6953
6954         PR tree-optimization/65637
6955         * omp-low.c (expand_omp_for_static_chunk): Handle case that
6956         fin_bb has 2 predecessors.
6957
6958 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6959
6960         PR tree-optimization/65637
6961         * omp-low.c (find_phi_with_arg_on_edge): New function.
6962         (expand_omp_for_static_chunk): Fix inner loop phi.
6963
6964 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6965
6966         PR tree-optimization/65637
6967         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
6968         that head is NULL.
6969
6970 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6971
6972         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
6973
6974 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6975
6976         * doc/invoke.texi (parloops-chunk-size): Add item.
6977         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
6978         * tree-parloops.c: Include params.h.
6979         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
6980         param parloops-chunk-size is used.
6981
6982 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6983
6984         PR middle-end/67351
6985         * fold-const.c (fold_binary_loc) : Move
6986         Transform (x >> c) << c into x & (-1<<c) or
6987         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
6988         types using simplify and match.
6989         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
6990         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
6991
6992 2015-09-03  Richard Biener  <rguenther@suse.de>
6993
6994         PR ipa/66705
6995         * tree-ssa-structalias.c (ctor_for_analysis): New function.
6996         (create_variable_info_for_1): Use ctor_for_analysis instead
6997         of get_constructor.
6998         (create_variable_info_for): Likewise.
6999
7000 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
7001
7002         PR ipa/67280
7003         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
7004         in new callgraph edge.
7005
7006 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
7007
7008         PR target/59810
7009         PR target/63652
7010         PR target/63653
7011         * config/aarch64/aarch64-simd.md
7012         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
7013         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
7014         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
7015         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
7016
7017 2015-09-02  Alan Modra  <amodra@gmail.com>
7018
7019         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
7020         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
7021         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
7022
7023 2015-09-02  Alan Modra  <amodra@gmail.com>
7024
7025         PR target/67417
7026         * config/rs6000/predicates.md (current_file_function_operand): Don't
7027         return true for weak symbols.
7028         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
7029
7030 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
7031             Andrew Bennett  <andrew.bennett@imgtec.com>
7032
7033         * config/mips/mips-opts.h (mips_cb_setting): New enum.
7034         * config/mips/mips-protos.h: Add definitions for
7035         mips_output_jump and mips_output_equal_conditional_branch
7036         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
7037         JIC instruction.
7038         (mips_emit_compare): Add support for the MIPS R6 conditional
7039         compact branches.
7040         (mips_process_sync_loop): Likewise.
7041         (mips_output_order_conditional_branch): Likewise.
7042         (mips16_build_call_stub): Change MIPS_CALL to
7043         mips_output_jump.
7044         (mips_print_operand_punctuation): Update 's' case to only
7045         apply to micromips r2.
7046         (mips_adjust_insn_length): Add support for forbidden slot
7047         hazards.
7048         (mips_avoid_hazard): Likewise.
7049         (mips_reorg_process_insns): Likewise.
7050         (mips_output_jump): New function.
7051         (mips_output_equal_conditional_branch): Likewise.
7052         (mips_output_conditional_branch): Use jrc/bc if compact
7053         branch support is enabled.  Ensure the forbidden slots
7054         between the two branch instructions is filled with a nop.
7055         (mips_option_override): Add support to process the compact
7056         branch option and set the correct defaults.  Prevent
7057         non-explict relocs being using for MIPS R6.
7058         (mips_trampoline_init): Add compact branch support.
7059         (mips_mult_zero_zero_cost): Allow zero initialisation of
7060         accumulators with TARGET_DSP.
7061         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
7062         (TARGET_CB_MAYBE): New define.
7063         (TARGET_CB_ALWAYS): New define.
7064         (ISA_HAS_DELAY_SLOTS): New define.
7065         (ISA_HAS_COMPACT_BRANCHES): New define.
7066         (ISA_HAS_JRC): New define.
7067         (MIPS_BRANCH_C): New define.
7068         (MIPS_CALL): Removed.
7069         (MICROMIPS_J): Removed.
7070         * config/mips/mips.md (compact_form): New attr.
7071         (hazard): Add support for forbidden slots.
7072         (define_delay): Add support for compact branches.
7073         (*branch_order<mode>): Likewise.
7074         (*branch_order<mode>_inverted): Likewise.
7075         (*branch_equality<mode>): Likewise.
7076         (*branch_equality<mode>_inverted): Likewise.
7077         (*jump_absolute): Likewise.
7078         (*jump_pic): Likewise.
7079         (indirect_jump): Use mips_output_jump to produce assembly output.
7080         (tablejump_<mode>"): Likewise.
7081         (*<optab>"): Likewise.
7082         (<optab>_internal): Likewise.
7083         (sibcall_internal): Likewise.
7084         (sibcall_value_internal): Likewise.
7085         (sibcall_value_multiple_internal): Likewise.
7086         (call_internal): Likewise.
7087         (call_split): Likewise.
7088         (call_internal_direct): Likewise.
7089         (call_direct_split): Likewise.
7090         (call_value_internal): Likewise.
7091         (call_value_split): Likewise.
7092         (call_value_internal_direct): Likewise.
7093         (call_value_direct_split): Likewise.
7094         (call_value_multiple_internal): Likewise.
7095         (call_value_multiple_split): Likewise.
7096         (mips_get_fcsr_mips16_<mode>): Likewise.
7097         (mips_set_fcsr_mips16_<mode>): Likewise.
7098         (tls_get_tp_mips16_<mode>): Likewise.
7099         * config/mips/mips.opt: Add -mcompact-branches option.
7100         * config/mips/predicates.md (order_operator): Ensure the
7101         conditional compact branches are only used if the ISA them.
7102         * doc/invoke.texi: Document -mcompact-branches option.
7103
7104 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
7105
7106         PR target/61578
7107         * lra-lives.c (process_bb_lives): Process move pseudos with the
7108         same value for copies and preferences
7109         * lra-constraints.c (match_reload): Create match reload pseudo
7110         with the same value from single dying input pseudo.
7111
7112 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
7113
7114         PR target/67405
7115         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
7116
7117 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
7118
7119         * trans-mem.c: Add contributed-by.
7120         * trans-mem.h: Same.
7121
7122 2015-09-01  Richard Biener  <rguenther@suse.de>
7123
7124         * expr.c (expand_expr_real_1): For expanding TERed defs
7125         set the current location to that of the def if not UNKNOWN.
7126
7127 2015-09-01  David Sherwood  <david.sherwood@arm.com>
7128
7129         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
7130
7131 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7132
7133         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
7134         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
7135         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
7136         Include rtl-iter.h.
7137         (noce_simple_bbs): New function.
7138         (noce_try_move): Bail if basic blocks are not simple.
7139         (noce_try_store_flag): Likewise.
7140         (noce_try_store_flag_constants): Likewise.
7141         (noce_try_addcc): Likewise.
7142         (noce_try_store_flag_mask): Likewise.
7143         (noce_try_cmove): Likewise.
7144         (noce_try_minmax): Likewise.
7145         (noce_try_abs): Likewise.
7146         (noce_try_sign_mask): Likewise.
7147         (noce_try_bitop): Likewise.
7148         (bbs_ok_for_cmove_arith): New function.
7149         (noce_emit_all_but_last): Likewise.
7150         (noce_emit_insn): Likewise.
7151         (noce_emit_bb): Likewise.
7152         (noce_try_cmove_arith): Handle non-simple basic blocks.
7153         (insn_valid_noce_process_p): New function.
7154         (contains_mem_rtx_p): Likewise.
7155         (bb_valid_for_noce_process_p): Likewise.
7156         (noce_process_if_block): Allow non-simple basic blocks
7157         where appropriate.
7158
7159 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
7160
7161         * tree-ssa-dom.c (record_equivalences_from_phis,
7162         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
7163         (lookup_avail_expr): Likewise, and remove comment and unused temp.
7164
7165 2015-09-01  Nick Clifton  <nickc@redhat.com>
7166
7167         * config/msp430/msp430.opt (mcpu): Fix typo.
7168
7169 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7170
7171         * config/aarch64/aarch64.c (aarch64_set_current_function):
7172         Re-layout any vector parameters have non-simd layout.
7173         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
7174         Delete.
7175         (aarch64_simd_expand_args): Delete call to the above.
7176
7177 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
7178
7179         * doc/invoke.texi (asan-stack): Add space before option.
7180
7181 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
7182
7183         * tree.h (zerop): New function.
7184         * tree.c (zerop): Likewise.
7185         (element_precision): Handle expressions.
7186         * match.pd (define_predicates): Add zerop.
7187         (x <= +Inf): Fix comment.
7188         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
7189         * fold-const.c (fold_binary_loc): ... here. Remove.
7190
7191 2015-08-31  Richard Biener  <rguenther@suse.de>
7192
7193         PR middle-end/67381
7194         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
7195
7196 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
7197
7198         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
7199         (CEXPI): New operator list.
7200         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
7201         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
7202         Converted from ...
7203         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
7204
7205 2015-08-31  Tom de Vries  <tom@codesourcery.com>
7206
7207         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
7208         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
7209         parameter.
7210         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
7211         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
7212         (rewrite_into_loop_closed_ssa): ... here.
7213         (replace_uses_in_dominated_bbs): Remove function.
7214         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
7215         rewrite_into_loop_closed_ssa_1.
7216
7217 2015-08-31  Michael Matz  <matz@suse.de>
7218
7219         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
7220         enter entry and exit blocks for reverse post order.
7221
7222 2015-08-31  Richard Biener  <rguenther@suse.de>
7223
7224         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
7225         (lto_location_cache::current_sysp): Likewise.
7226         (output_block::current_sysp): Likewise.
7227         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
7228         (lto_location_cache::apply_location_cache): Properly record
7229         system header locations.
7230         (lto_location_cache::input_location): Input whether a file
7231         is a system header.
7232         * lto-streamer-out.c (lto_output_location): Stream whether a file
7233         is a system header.
7234
7235 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7236
7237         PR bootstrap/67363
7238         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
7239
7240 2015-08-31  Tom de Vries  <tom@codesourcery.com>
7241
7242         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
7243         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
7244         Improve function header comments.
7245
7246 2015-08-30  Michael Collison  <michael.collison@linaro.org>
7247
7248         PR other/67320
7249         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
7250         standard names
7251
7252 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7253
7254         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
7255         special_handling bitfield.
7256         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
7257         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
7258         that represents a general xxpermdi.
7259         (insn_is_swappable_p): Add handling for vec_concat of two
7260         doublewords, which maps to a specific xxpermdi.
7261         (adjust_xxpermdi): New function.
7262         (adjust_concat): Likewise.
7263         (handle_special_swappables): Call adjust_xxpermdi and
7264         adjust_concat.
7265         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
7266
7267 2015-08-30  Rich Felker <dalias@libc.org>
7268
7269         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
7270         case instead of sh[123456ble]-*-*.
7271
7272 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
7273
7274         * ira.c (print_unform_and_important_classes,
7275         print_translated_classes): Remove reg_class_names static array.
7276         (print_unform_and_important_classes): Rename to ...
7277         (print_uniform_and_important_classes): ... this.
7278         (ira_debug_allocno_classes): Update accordingly.
7279
7280 2015-08-29  Tom de Vries  <tom@codesourcery.com>
7281
7282         PR tree-optimization/46193
7283         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
7284         clause.
7285
7286 2015-08-28  Jeff Law  <law@redhat.com>
7287
7288         PR lto/66752
7289         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
7290         unable to find X NE 0 in the tables, return X as the simplified
7291         condition.
7292         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
7293         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
7294         to VISISTED_BBS.
7295         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
7296         after removing the control flow statement and unnecessary edges.
7297
7298 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
7299
7300         Revert:
7301         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7302
7303         PR tree-optimization/67283
7304         * tree-sra.c (type_consists_of_records_p): Rename to...
7305         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7306
7307         (completely_scalarize_record): Rename to...
7308         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
7309         code to:
7310         (scalarize_elem): New.
7311
7312 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
7313
7314         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
7315         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
7316         (aarch64_symbol_type): Likewise.
7317         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7318         Likewise.
7319         (aarch64_expand_mov_immediate): Likewise.
7320         (aarch64_print_operand): Likewise.
7321         (aarch64_classify_tls_symbol): Likewise.
7322
7323 2015-08-28  Richard Biener  <rguenther@suse.de>
7324
7325         * cgraphunit.c (symbol_table::compile): Move early debug generation
7326         and finish...
7327         (symbol_table::finalize_compilation_unit): ... back here and
7328         add a !seen_error () guard.
7329
7330 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7331
7332         * toplev.c (process_options): Do not use flag_loop_block,
7333         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
7334         flag_loop_optimize_isl.
7335
7336 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7337
7338         * Makefile.in (OBJS): Remove graphite-blocking.o and
7339         graphite-interchange.o.
7340         * common.opt (floop-strip-mine, floop-interchange, floop-block):
7341         Alias of floop-nest-optimize.
7342         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
7343         Document as alias of -floop-nest-optimize.
7344         * graphite-blocking.c: Remove.
7345         * graphite-interchange.c: Remove.
7346         * graphite-optimize-isl.c: Include dumpfile.h.
7347         (getScheduleForBand): Add dump for tiled loops.  Use
7348         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
7349         * graphite-poly.c (scop_max_loop_depth): Remove.
7350         (print_scattering_function_1): Remove.
7351         (print_scattering_function): Remove.
7352         (print_scattering_functions): Remove.
7353         (debug_scattering_function): Remove.
7354         (debug_scattering_functions): Remove.
7355         (apply_poly_transforms): Remove use of flag_loop_block,
7356         flag_loop_strip_mine, and flag_loop_interchange.
7357         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
7358         PBB_ORIGINAL.
7359         (print_pdr_access_layout): Remove.
7360         (print_pdr): Print ISL representation.
7361         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
7362         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
7363         (free_scop): Same.
7364         (openscop_print_pbb_domain): Remove.
7365         (print_pbb): Remove call to print_scattering_function.
7366         (openscop_print_scop_context): Remove.
7367         (print_scop_context): Do not print matrices anymore.
7368         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
7369         SCOP_TRANSFORMED_SCHEDULE.
7370         (print_isl_set): Add printing of a new line.
7371         (print_isl_map): Same.
7372         (print_isl_aff): Same.
7373         (print_isl_constraint): Same.
7374         (loop_to_lst): Remove.
7375         (scop_to_lst): Remove.
7376         (lst_indent_to): Remove.
7377         (print_lst): Remove.
7378         (debug_lst): Remove.
7379         (dot_lst_1): Remove.
7380         (dot_lst): Remove.
7381         (reverse_loop_at_level): Remove.
7382         (reverse_loop_for_pbbs): Remove.
7383         * graphite-poly.h (pdr_dim_iter_domain): Remove.
7384         (pdr_nb_params): Remove.
7385         (pdr_alias_set_dim): Remove.
7386         (pdr_subscript_dim): Remove.
7387         (pdr_iterator_dim): Remove.
7388         (pdr_parameter_dim): Remove.
7389         (same_pdr_p): Remove.
7390         (struct poly_scattering): Remove.
7391         (struct poly_bb): Remove _original, _transformed, _saved.
7392         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
7393         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
7394         (PBB_NB_LOCAL_VARIABLES): Remove.
7395         (PBB_NB_SCATTERING_TRANSFORM): Remove.
7396         (schedule_to_scattering): Remove.
7397         (number_of_write_pdrs): Remove.
7398         (pbb_dim_iter_domain): Remove.
7399         (pbb_nb_params): Remove.
7400         (pbb_nb_scattering_orig): Remove.
7401         (pbb_nb_scattering_transform): Remove.
7402         (pbb_nb_dynamic_scattering_transform): Remove.
7403         (pbb_nb_local_vars): Remove.
7404         (pbb_iterator_dim): Remove.
7405         (pbb_parameter_dim): Remove.
7406         (psco_scattering_dim): Remove.
7407         (psct_scattering_dim): Remove.
7408         (psct_local_var_dim): Remove.
7409         (psco_iterator_dim): Remove.
7410         (psct_iterator_dim): Remove.
7411         (psco_parameter_dim): Remove.
7412         (psct_parameter_dim): Remove.
7413         (psct_dynamic_dim): Remove.
7414         (psct_static_dim): Remove.
7415         (psct_add_local_variable): Remove.
7416         (new_lst_loop): Remove.
7417         (new_lst_stmt): Remove.
7418         (free_lst): Remove.
7419         (copy_lst): Remove.
7420         (lst_add_loop_under_loop): Remove.
7421         (lst_depth): Remove.
7422         (lst_dewey_number): Remove.
7423         (lst_dewey_number_at_depth): Remove.
7424         (lst_pred): Remove.
7425         (lst_succ): Remove.
7426         (lst_find_pbb): Remove.
7427         (find_lst_loop): Remove.
7428         (lst_find_first_pbb): Remove.
7429         (lst_empty_p): Remove.
7430         (lst_find_last_pbb): Remove.
7431         (lst_contains_p): Remove.
7432         (lst_contains_pbb): Remove.
7433         (lst_create_nest): Remove.
7434         (lst_remove_from_sequence): Remove.
7435         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
7436         (lst_niter_for_loop): Remove.
7437         (pbb_update_scattering): Remove.
7438         (lst_update_scattering_under): Remove.
7439         (lst_update_scattering): Remove.
7440         (lst_insert_in_sequence): Remove.
7441         (lst_replace): Remove.
7442         (lst_substitute_3): Remove.
7443         (lst_distribute_lst): Remove.
7444         (lst_remove_all_before_including_pbb): Remove.
7445         (lst_remove_all_before_excluding_pbb): Remove.
7446         (struct scop): Remove original_schedule, transformed_schedule, and
7447         saved_schedule.
7448         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
7449         (SCOP_SAVED_SCHEDULE): Remove.
7450         (poly_scattering_new): Remove.
7451         (poly_scattering_free): Remove.
7452         (poly_scattering_copy): Remove.
7453         (store_scattering_pbb): Remove.
7454         (store_lst_schedule): Remove.
7455         (restore_lst_schedule): Remove.
7456         (store_scattering): Remove.
7457         (restore_scattering_pbb): Remove.
7458         (restore_scattering): Remove.
7459         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
7460         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
7461         compute the scattering polyhedron dimension from the dimension of
7462         pbb->domain.
7463         (build_scop_scattering): Update call to
7464         build_pbb_scattering_polyhedrons.
7465         (build_poly_scop): Remove call to scop_to_lst.
7466         * graphite.c (graphite_transform_loops): Add call to print_scop.
7467         (gate_graphite_transforms): Remove use of flag_loop_block,
7468         flag_loop_interchange, and flag_loop_strip_mine.
7469
7470 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7471
7472         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
7473         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
7474         -floop-nest-optimize.
7475         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
7476         (generate_luj_sepclass): Remove.
7477         (generate_luj_options): Remove.
7478         (set_options): Remove opt_luj.
7479         (scop_to_isl_ast): Remove opt_luj.
7480         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
7481         flag_loop_unroll_jam.
7482         (getPrevectorMap_full): Remove.
7483         (getScheduleForBandList): Remove map_sepcl.
7484         (getScheduleMap): Same.
7485         (apply_schedule_map_to_scop): Remove sepcl.
7486         (optimize_isl): Same.
7487         * graphite-poly.c (apply_poly_transforms): Remove check for
7488         flag_loop_unroll_jam.
7489         (new_poly_bb): Remove map_sepclass.
7490         * graphite-poly.h (struct poly_bb): Same.
7491         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
7492         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
7493         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
7494         * toplev.c (process_options): Remove flag_loop_unroll_jam.
7495
7496 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
7497
7498         PR target/67317
7499         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
7500         (addqi3_cc): Ditto.
7501         (UNSPEC_ADD_CARRY): Remove.
7502         (addqi3_cconly_overflow): New expander.
7503         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
7504         Adjust for changed add<mode>3_carry.
7505         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
7506         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
7507         (<plusminus_insn><mode>3_carry): Remove expander.
7508         (*<plusminus_insn><mode>3_carry): Split insn pattern to
7509         add<mode>3_carry and sub<mode>3_carry.
7510         (plusminus_carry_mnemonic): Remove code attribute.
7511         (add<mode>3_carry): Canonicalize insn pattern.
7512         (*addsi3_carry_zext): Ditto.
7513         (sub<mode>3_carry): Ditto.
7514         (*subsi3_carry_zext): Ditto.
7515         (adcx<mode>3): Remove insn pattern.
7516         (addcarry<mode>): New insn pattern.
7517         (subborrow<mode>): Ditto.
7518         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
7519         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
7520         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
7521         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
7522         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
7523         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
7524         Rewrite expander to not clobber carry flag chains.
7525
7526 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
7527
7528         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
7529         instead of a rotate.
7530
7531 2015-08-27  Marek Polacek  <polacek@redhat.com>
7532
7533         PR middle-end/67005
7534         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
7535         an entry into an irreducible region.
7536
7537 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7538
7539         * configure: Regenerate.
7540
7541 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7542
7543         PR tree-optimization/67283
7544         * tree-sra.c (type_consists_of_records_p): Rename to...
7545         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7546
7547         (completely_scalarize_record): Rename to...
7548         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7549         (scalarize_elem): New.
7550
7551 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7552
7553         * tree-sra.c (completely_scalarize_var): Rename to...
7554         (create_total_scalarization_access): ... Here. Drop call to
7555         completely_scalarize_record.
7556
7557         (analyze_all_variable_accesses): Replace completely_scalarize_var
7558         with create_total_scalarization_access and completely_scalarize_record.
7559
7560 2015-08-27  Alan Modra  <amodra@gmail.com>
7561
7562         PR target/67356
7563         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
7564         for operand 1.
7565
7566 2015-08-27  Richard Biener  <rguenther@suse.de>
7567
7568         * passes.c (rest_of_decl_compilation): Guard early_global_decl
7569         call with !seen_error ().
7570         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
7571         early debug generation and finish...
7572         (symbol_table::compile): ... here to put it after a !seen_error ()
7573         guard.
7574
7575 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7576
7577         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
7578         Solaris 12+.
7579
7580 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7581             Andre Vieira  <andre.simoesdiasvieira@arm.com>
7582
7583         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
7584         (*cb<optab><mode>1): Likewise.
7585         (*tb<optab><mode>1): Likewise.
7586         (*cb<optab><mode>1): Likewise.
7587         * config/aarch64/iterators.md (inv_cb): New code attribute.
7588         (inv_tb): Likewise.
7589         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
7590         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
7591
7592 2015-08-27  Richard Biener  <rguenther@suse.de>
7593
7594         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
7595
7596 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7597
7598         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
7599         trap to fix ICE.
7600
7601 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7602
7603         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
7604         Add declaration.
7605
7606         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
7607         comment.
7608         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
7609         floating point in VSX registers.
7610         (rs6000_output_move_128bit): Always print out the set insn if we
7611         can't generate an appropriate 128-bit move.
7612         (rs6000_generate_compare): Add support for IEEE 128-bit floating
7613         point in VSX registers comparisons.
7614         (rs6000_expand_float128_convert): Likewise.
7615
7616         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
7617         predicate for only GPR hard registers.
7618
7619         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
7620         modes to iterators. Add new iterators for moving 128-bit values in
7621         scalar FPR registers and VSX registers.
7622         (FMOVE128): Likewise.
7623         (FMOVE128_FPR): Likewise.
7624         (FMOVE128_GPR): Likewise.
7625         (FMOVE128_VSX): Likewise.
7626         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
7627         in VSX registers.
7628         (IFKF): Likewise.
7629         (IBM128): Likewise.
7630         (TFIFKF): Likewise.
7631         (RELOAD): Add IEEE 128-bit floating point modes.
7632         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
7633         floating point in VSX registers modes.
7634         (signbit<mode>2, IBM128 iterator): Likewise.
7635         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
7636         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7637         (negtf2): Likewise.
7638         (neg<mode>2, TFIFKF iterator): Likewise.
7639         (negtf2_internal): Likewise.
7640         (abstf2): Likewise.
7641         (abs<mode>2, TFIFKF iterator): Likewise.
7642         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
7643         VSX insn support for negate, absolute value, and negative absolute
7644         value.
7645         (ieee_128bit_vsx_neg<mode>2): Likewise.
7646         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
7647         (ieee_128bit_vsx_abs<mode>2): Likewise.
7648         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7649         (ieee_128bit_vsx_nabs<mode>2): Likewise.
7650         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7651         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
7652         floating point in VSX registers.
7653         (unpack<mode>_dm): Likewise.
7654         (unpack<mode>_nodm): Likewise.
7655         (pack<mode>): Likewise.
7656         (unpackv1ti): Likewise.
7657         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
7658         (packv1ti): Likewise.
7659         (pack<mode>, FMOVE128_VSX iterator): Likewise.
7660         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
7661         registers.
7662         (extenddftf2_internal): Likewise.
7663         (trunctfdf2): Likewise.
7664         (trunctfdf2_internal2): Likewise.
7665         (fix_trunc_helper): Likewise.
7666         (fix_trunctfdi2"): Likewise.
7667         (floatditf2): Likewise.
7668         (floatuns<mode>tf2): Likewise.
7669         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
7670         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
7671         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
7672         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
7673         (float<SDI:mode><IFKF:mode>2): Likewise.
7674         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
7675
7676 2015-08-26  Renlin Li  <renlin.li@arm.com>
7677
7678         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
7679
7680 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7681             Jiong Wang  <jiong.wang@arm.com>
7682
7683         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
7684         (tlsie_tiny_<mode>): New define_insn.
7685         (tlsie_tiny_sidi): Likewise.
7686         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
7687         SYMBOL_TINY_TLSIE.
7688         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
7689         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7690         SYMBOL_TINY_TLSIE.
7691         (aarch64_expand_mov_immediate): Likewise.
7692         (aarch64_print_operand): Likewise.
7693         (arch64_classify_tls_symbol): Likewise.
7694
7695 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7696
7697         * config/arm/arm-arches.def: Replace single value flags with
7698         an initializer built from ARM_FSET_MAKE_CPU1.
7699         * config/arm/arm-cores.def: Likewise.
7700         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
7701         derivation from the ARM_CORE macro definition, use the given value
7702         instead.
7703         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
7704         ARM_ARCH macro definition, use the given value instead.
7705
7706 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7707
7708         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
7709         feature set.
7710         (struct builtin_description): Replace field mask with field
7711         features.
7712         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
7713         (IWMMXT2_BUILTIN): Likewise.
7714         (IWMMXT2_BUILTIN2): Likewise.
7715         (FP_BUILTIN): Likewise.
7716         (CRC32_BUILTIN): Likewise.
7717         (CRYPTO_BUILTIN): Likewise.
7718         (iwmmx_mbuiltin): Likewise.
7719         (iwmmx2_mbuiltin): Likewise.
7720         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
7721         struct builtin_description.
7722
7723 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7724
7725         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
7726         (struct builtin_description): Change type of mask to unsigned
7727         long.
7728         * config/arm/arm-protos.h (insn_flags): Declare as type
7729         arm_feature_set.
7730         (tune_flags): Likewise.
7731         * config/arm/arm.c (feature_count): New.
7732         (insn_flags): Define as type arm_feature_set.
7733         (tune_flags): Likewise.
7734         (struct processors): Define field flags as type arm_feature_set.
7735         (all_cores): Update for change to struct processors.
7736         (all_architectures): Likewise.
7737         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
7738         macros.
7739         (arm_option_override_internal): Likewise.
7740         (arm_option_override): Likewise.
7741
7742 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7743             Jiong Wang  <jiong.wang@arm.com>
7744
7745         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
7746         tls size for tiny, small, large memory model.
7747         (aarch64_load_symref_appropriately): Support new symbol types.
7748         (aarch64_expand_mov_immediate): Likewise.
7749         (aarch64_print_operand): Likewise.
7750         (aarch64_classify_tls_symbol): Likewise.
7751         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
7752         (aarch64_symbol_type): Likewise.
7753         * config/aarch64/aarch64.md (tlsle): Deleted.
7754         (tlsle12_<mode>): New define_insn.
7755         (tlsle24_<mode>): Likewise.
7756         (tlsle32_<mode>): Likewise.
7757         (tlsle48_<mode>): Likewise.
7758         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7759         "aarch64_tlsle32".
7760
7761 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7762
7763         * config/arm/arm-protos.h (FL_NONE): New.
7764         (FL_ANY): New.
7765         (arm_feature_set): New.
7766         (ARM_FSET_MAKE): New.
7767         (ARM_FSET_MAKE_CPU1): New.
7768         (ARM_FSET_MAKE_CPU2): New.
7769         (ARM_FSET_CPU1): New.
7770         (ARM_FSET_CPU2): New.
7771         (ARM_FSET_EMPTY): New.
7772         (ARM_FSET_ANY): New.
7773         (ARM_FSET_HAS_CPU1): New.
7774         (ARM_FSET_HAS_CPU2): New.
7775         (ARM_FSET_HAS_CPU): New.
7776         (ARM_FSET_ADD_CPU1): New.
7777         (ARM_FSET_ADD_CPU2): New.
7778         (ARM_FSET_DEL_CPU1): New.
7779         (ARM_FSET_DEL_CPU2): New.
7780         (ARM_FSET_UNION): New.
7781         (ARM_FSET_INTER): New.
7782         (ARM_FSET_XOR): New.
7783         (ARM_FSET_EXCLUDE): New.
7784         (AFM_FSET_IS_EMPTY): New.
7785         (ARM_FSET_CPU_SUBSET): New.
7786
7787 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7788
7789         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7790         SYMBOL_TLSLE to SYMBOL_TLSLE24.
7791         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7792         Likewise.
7793         (aarch64_expand_mov_immediate): Likewise.
7794         (aarch64_print_operand): Likewise.
7795         (aarch64_classify_symbol): Likewise.
7796
7797 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7798
7799         * config/aarch64/aarch64.opt (mtls-size): New entry.
7800         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
7801         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
7802         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
7803
7804 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7805
7806         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
7807         ARM_CORE entry.  Fix some white-space.
7808         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
7809         ARM_CORE definition.
7810
7811 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7812
7813         * fold-const.c (fold_binary_loc) : Move Optimize
7814         root(x)*root(y) as root(x*y) to match.pd.
7815         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
7816         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
7817         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
7818         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
7819         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
7820         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
7821         (mult (exps:s @0) (exps:s @1)) : New simplifier.
7822         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
7823         (rdiv @0 (exps:s @1)) : New simplifier.
7824
7825 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
7826
7827         * gcc.c (driver::finalize): Only assign to extra_specs if
7828         [EXTRA_SPECS].
7829
7830 2015-08-25  Marek Polacek  <polacek@redhat.com>
7831
7832         PR middle-end/67330
7833         * varasm.c (declare_weak): Return after giving an error.
7834
7835 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
7836
7837         * gcc-main.c (main): Add params to driver ctor.
7838         * gcc.c (class env_manager): New.
7839         (env): New global.
7840         (env_manager::init): New.
7841         (env_manager::get): New.
7842         (env_manager::xput): New.
7843         (env_manager::restore): New.
7844         Poison getenv and putenv.
7845         (DEFAULT_TARGET_SYSTEM_ROOT): New.
7846         (target_system_root): Update initialization to use
7847         DEFAULT_TARGET_SYSTEM_ROOT.
7848         (struct spec_list): Add field "default_ptr".
7849         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
7850         (init_spec): Likewise.
7851         (set_spec): Clear field "default_ptr".
7852         (read_specs): Free "spec" and "buffer".
7853         (xputenv): Reimplement in terms of env_manager.
7854         (process_command): Replace ::getenv calls with calls to the
7855         env_manager singleton.
7856         (process_brace_body): Free string in three places.
7857         (driver::driver): New.
7858         (driver::~driver): New.
7859         (used_arg): Convert from a function to...
7860         (class used_arg_t): ...this class, and...
7861         (used_arg): ...this new global instance.
7862         (used_arg_t::finalize): New function.
7863         (getenv_spec_function): Add "const" to local "value".  Replace
7864         ::getenv call with call to the env_manager singleton.
7865         (path_prefix_reset): New function.
7866         (driver::finalize): New function.
7867         * gcc.h (driver::driver): New.
7868         (driver::~driver): New.
7869         (driver::finalize): New.
7870
7871 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7872
7873         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
7874         target doesn't have one.
7875
7876 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7877
7878         PR target/67346
7879         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
7880
7881 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7882
7883         PR target/67344
7884         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
7885         a define_insn, remove second alternative.
7886
7887 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
7888             Joseph Myers  <joseph@codesourcery.com>
7889
7890         * gcc.c (struct switchstr): Expand comment.
7891
7892 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7893
7894         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
7895         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
7896
7897 2015-08-25  Richard Biener  <rguenther@suse.de>
7898
7899         PR middle-end/67306
7900         * genmatch.c (expr::gen_transform): Verify the result of
7901         builtin_decl_implicit.
7902         (dt_simplify::gen_1): Likewise.
7903
7904 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7905
7906         * config/arm/constraints.md: Also list Cs and US ARM-specific
7907         constraints as used.
7908
7909 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7910
7911         PR target/66609
7912         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
7913         UNSPEC_PCREL.
7914         (nonpic_symbol_mentioned_p): Likewise.
7915         (sh_delegitimize_address): Likewise.
7916         (sh_function_ok_for_sibcall): Take into account weak symbols.
7917         (sh_expand_sym_label2reg): New.
7918         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
7919         * config/sh/sh.md (UNSPEC_PCREL): New enum.
7920         (call_pcrel): Use sh_expand_sym_label2reg.
7921         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7922         (symPCREL_label2reg) New expand.
7923
7924 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7925
7926         * graphite-poly.c: Change type of region from void* to sese.
7927         * graphite-poly.h (struct scop): Changing the type of scop::region
7928         from void* to sese. Change accessor macro accordingly.
7929         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
7930
7931 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7932
7933         * graphite-scop-detection.c (stmt_simple_for_scop_p):
7934         Constrain only on INTEGER_TYPE.
7935
7936 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7937
7938         PR target/67211
7939         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
7940         -mefficient-unaligned-vsx on ISA 2.7.
7941
7942         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
7943         option to a masked option.
7944
7945         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
7946         logic for -mefficient-unaligned-vsx so that it is set via an arch
7947         ISA option, instead of being set if -mtune=power8 is set. Move
7948         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
7949         near other default option handling.
7950
7951 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7952
7953         * genflags.c (gen_macro): Delete.
7954         (gen_proto): Don't create GEN.*CALL.* macros.
7955         * gensupport.h (get_file_location): Declare.
7956         * gensupport.c (rtx_locs): New variable.
7957         (read_md_rtx): Record rtx locations.
7958         (get_file_location): New function.
7959         * target-insns.def (call, call_pop, call_value, call_value_pop)
7960         (sibcall, sibcall_value): New patterns.
7961         * gentarget-def.c (parse_argument): New function.
7962         (def_target_insn): Use it.  Handle optional operands.  Raise an
7963         error if an .md pattern has the wrong number of operands for the
7964         pattern name.  Remove the names of unused operands from the prototype.
7965         * builtins.c (expand_builtin_apply): Use targetm functions
7966         instead of HAVE_call_value and GEN_CALL_VALUE.
7967         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
7968         and sibcall_value_pop.
7969         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
7970         of GEN_CALL.
7971         * config/alpha/alpha.md (untyped_call): Likewise.
7972         * config/iq2000/iq2000.md (untyped_call): Likewise.
7973         * config/m68k/m68k.md (untyped_call): Likewise.
7974         * config/mips/mips.md (untyped_call): Likewise.
7975         * config/pa/pa.md (untyped_call): Likewise.
7976         * config/rs6000/rs6000.md (untyped_call): Likewise.
7977         * config/sparc/sparc.md (untyped_call): Likewise.
7978         * config/tilegx/tilegx.md (untyped_call): Likewise.
7979         * config/tilepro/tilepro.md (untyped_call): Likewise.
7980         * config/visium/visium.md (untyped_call): Likewise.
7981         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
7982         gen_call_value instead of GEN_CALL_VALUE.
7983         * config/arm/arm.md (untyped_call): Likewise.
7984         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
7985         GEN_CALL.
7986
7987 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7988
7989         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
7990         (have_cbranchcc4): New variable.
7991         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
7992         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
7993         (if_convert): Initialize have_cbranchcc4.
7994
7995 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7996
7997         * builtins.c (expand_cmpstrn): Rename to...
7998         (expand_cmpstrn_or_cmpmem): ...this.
7999         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
8000         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
8001         Remove mode argument.
8002         (expand_builtin): Update accordingly.
8003
8004 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
8005
8006         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
8007         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
8008         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
8009         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
8010         Add predicates for operands 0 and 3.
8011         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
8012         operand.
8013         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
8014         immediate_operand to nonmemory_operand.
8015
8016 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
8017
8018         * df-scan.c (df_insn_info_init_fields): New function, split out
8019         from...
8020         (df_insn_create_insn_record): ...here.
8021         (df_insn_info_free_fields): New function, split out from...
8022         (df_insn_info_delete): ...here.
8023         (df_insn_rescan): Use the new functions instead of freeing and
8024         reallocating the df_insn_info.
8025
8026 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8027
8028         * doc/install.texi (Binaries): Remove links no longer valid.
8029
8030 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
8031
8032         * config/nvptx/mkoffload.c (process): Replace
8033         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
8034
8035 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
8036
8037         PR target/67329
8038         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
8039
8040 2015-08-24  Renlin Li  <renlin.li@arm.com>
8041
8042         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
8043         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
8044         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
8045         * config/arm/constraints.md ("j"): Add check for high code.
8046
8047 2015-08-24  Tom de Vries  <tom@codesourcery.com>
8048
8049         PR tree-optimization/65468
8050         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
8051         chunk_size is one.
8052
8053 2015-08-24  Nathan Sidwell  <nathan@acm.org>
8054
8055         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
8056         change to nvptx_type_from_mode call. Use arg_promotion for both
8057         split and non-split args.
8058
8059 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
8060
8061         * target-insns.def (movstr): New pattern.
8062         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
8063         (expand_movstr): Use targetm rather than HAVE_movstr/
8064         CODE_FOR_movstr.
8065
8066 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
8067
8068         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
8069         cast syntax.
8070
8071 2015-08-24  Andrew Pinski  <apinski@cavium.com>
8072
8073         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
8074         AARCH64_EXTRA_TUNING_OPTION.
8075         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
8076         New enum.
8077         (aarch64_extra_tuning_flags): Base the shifted value on the index
8078         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
8079         * config/aarch64/aarch64.c: Remove the last argument to
8080         AARCH64_EXTRA_TUNING_OPTION.
8081
8082 2015-08-23  Nathan Sidwell  <nathan@acm.org>
8083
8084         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
8085         decls.
8086         (nvptx_declare_function_name): Insert formatting tabs for
8087         consistency.
8088
8089 2015-08-23  Tom de Vries  <tom@codesourcery.com>
8090
8091         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
8092         parm_decl, rather than generating a dummy default def in cfun.
8093         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
8094         ssa_name from cfun and child_fn do not share a stmt as def stmt.
8095         (move_stmt_op): Handle PARM_DECl.
8096         (gather_ssa_name_hash_map_from): New function.
8097         (move_sese_region_to_fn): Add default defs for function params, and add
8098         them to vars_map.  Release copied ssa names.
8099         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
8100
8101 2015-08-23  Tom de Vries  <tom@codesourcery.com>
8102
8103         * doc/sourcebuild.texi: Rename vect_no_int_max with
8104         vect_no_int_min_max.  Update description.
8105
8106 2015-08-22  Andrew Pinski  <apinski@cavium.com>
8107
8108          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
8109         * config/aarch64/aarch64-protos.h
8110         (aarch64_fusion_pairs_index): New enum.
8111         (aarch64_fusion_pairs): Base the shifted value on the index instead
8112         Rewrite AARCH64_FUSE_ALL to be based on the end index.
8113         of the argument to AARCH64_FUSION_PAIR.
8114         * config/aarch64/aarch64.c: Remove the last argument to
8115         AARCH64_FUSION_PAIR.
8116
8117 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
8118
8119         * dominance.c (new_zero_array): Define.
8120         (dom_info): Redefine as class with proper encapsulation.
8121         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
8122         Add new members.
8123         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
8124         allocations/deallocations.  Pass function as parameter (instead of
8125         using cfun).
8126         (dom_info::get_idom): Define accessor method.
8127         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
8128         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
8129         (calculate_dominance_info): Adjust to use dom_info class.
8130         (verify_dominators): Likewise.
8131
8132 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
8133
8134         * print-rtl.c (print_rtx): Check the correct range for
8135         flag_dump_unnumbered_links to behave as documented.
8136
8137         PR rtl-optimization/67227
8138         PR rtl-optimization/64164
8139         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
8140         (nonoverlapping_memrefs_p): Test offsets and sizes when given
8141         identical gimple_reg exprs.
8142
8143 2015-08-21  Nathan Sidwell  <nathan@acm.org>
8144
8145         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
8146         expansion.
8147         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
8148         crtl->stack_alignment_needed to determine alignment.
8149         (nvptx_get_drap_rtx): New.
8150         (TARGET_GET_DRAP_RTX): Override.
8151         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
8152
8153 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8154
8155         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
8156
8157 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8158
8159         * configure.ac: Remove uwin* cases.
8160         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
8161         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
8162         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
8163         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
8164         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
8165         i[34567]86-*-uwin*, powerpc-*-beos*.
8166
8167 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
8168
8169         * gencodes.c (gencodes): Print the comma for the preceding
8170         enum value rather than the current one.  Use aliased enum values
8171         rather than #defines for compiled-out patterns.
8172         (main): Update accordingly.  Replace LAST_INSN_CODE with
8173         NUM_INSN_CODES.
8174         * lra.c (insn_code_data): Update accordingly.
8175         (finish_insn_code_data_once, get_static_insn_data): Likewise.
8176         * recog.h (target_recog): Likewise.
8177         (preprocess_insn_constraints): Change parameter to unsigned int.
8178         * recog.c (preprocess_insn_constraints): Likewise.
8179         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
8180         * tree-vect-stmts.c (vectorizable_operation): Simplify.
8181
8182 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
8183
8184         PR rtl-optimization/61657
8185         * loop-iv.c (iv_number_of_iterations): Declare up and down as
8186         unsigned.  Remove superflous uint64_t cast.
8187
8188 2014-08-21  Felix Yang  <felix.yang@huawei.com>
8189             Jiji Jiang  <jiangjiji@huawei.com>
8190
8191         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
8192         argument and get builtin function code directly from CALL.
8193         (gimple_stringop_fixed_value): Modified accordingly.
8194         (gimple_stringops_transform, gimple_stringops_values_to_profile):
8195         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
8196
8197 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8198
8199         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
8200
8201 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8202
8203         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
8204         to match.pd.
8205         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
8206         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
8207         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
8208         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
8209         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
8210         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
8211         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
8212         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
8213         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
8214         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
8215
8216         * match.pd (SIN ) : New Operator.
8217         (TAN) : New Operator.
8218         (mult (SQRT@1 @0) @1) : New simplifier.
8219         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
8220         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
8221         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
8222         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
8223         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
8224         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
8225         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
8226         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
8227         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
8228         (rdiv @0 (POW:s @1 @2)) : New simplifier.
8229
8230 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
8231
8232         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
8233         loop if EXPR is simplified to const value.
8234
8235 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
8236
8237         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
8238         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
8239
8240 2015-08-21  Richard Biener  <rguenther@suse.de>
8241
8242         PR middle-end/67285
8243         * gimple-fold.c (replace_stmt_with_simplification): Assert
8244         seq is empty when replacing a call with itself but different
8245         arguments.
8246         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
8247         a call require that it is const.
8248
8249 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8250
8251         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
8252         * builtins.c (get_object_alignment_2): Adjust.
8253         * varasm.c (align_variable): Likewise.
8254         (get_variable_align): Likewise.
8255         (build_constant_desc): Likewise.
8256         (force_const_mem): Likewise.
8257         * doc/tm.texi.in: Likewise.
8258         * doc/tm.texi: Regenerate.
8259
8260 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8261
8262         * genconfig.c (main): Always define HAVE_cc0.
8263         * recog.c (rest_of_handle_peephole2): Adjust.
8264
8265 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8266
8267         * reorg.c (relax_delay_slots): Don't use #if to check value of
8268         HAVE_cc0.
8269
8270 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8271
8272         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
8273         * targhooks.c (default_have_conditional_execution): Adjust.
8274
8275 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8276
8277         * rtl.h (rtvec_all_equal_p): Declare.
8278         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
8279         * rtl.c (rtvec_all_equal_p): New function.
8280         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
8281         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
8282         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
8283         * config/arm/arm.c (neon_vdup_constant): Likewise.
8284         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
8285         * config/tilegx/constraints.md (W, Y): Likewise.
8286         * config/tilepro/constraints.md (W, Y): Likewise.
8287         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
8288         (classify_immediate): Use unwrap_const_vec_duplicate.
8289         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
8290         (reg_or_v2s8bit_operand): Likewise.
8291         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
8292         (reg_or_v4s8bit_operand): Likewise.
8293
8294 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8295
8296         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
8297         (vec_shasigma_be): New #define.
8298         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
8299         (VPMSUMH): Likewise.
8300         (VPMSUMW): Likewise.
8301         (VPMSUMD): Likewise.
8302         (VPMSUM): New BU_P8V_OVERLOAD_2.
8303         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
8304         entries for VEC_MADD and VEC_VPMSUM.
8305
8306 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
8307
8308         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
8309         Multiply argument avr_n_flash by 64 to match unit of "KiB".
8310         (avr_pgm_check_var_decl): Same.
8311
8312 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
8313
8314         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
8315         initialization of HFmode scalar type (float16_t) to...
8316         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
8317         code.
8318
8319         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
8320
8321         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
8322         having an -mfp16-format.
8323
8324 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8325
8326         * config/i386/predicates.md (vector_all_ones_operand): Use
8327         CONSTM1_RTX to simplify definition.
8328
8329 2015-08-20  Richard Biener  <rguenther@suse.de>
8330
8331         * toplev.c (compile_file): Remove loop calling late_global_decl
8332         on all symbols.
8333         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
8334         on decls we assembled.
8335
8336 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
8337
8338         * common/config/aarch64/aarch64-common.c
8339         (AARCH64_CPU_NAME_LENGTH): Delete.
8340         (aarch64_option_extension): New.
8341         (all_extensions): Likewise.
8342         (processor_name_to_arch): Likewise.
8343         (arch_to_arch_name): Likewise.
8344         (all_cores): New.
8345         (all_architectures): Likewise.
8346         (aarch64_get_extension_string_for_isa_flags): Likewise.
8347         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
8348         architecture names.
8349         * config/aarch64/aarch64-protos.h
8350         (aarch64_get_extension_string_for_isa_flags): New.
8351         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
8352         (aarch64_option_print): Get the string to print from
8353         aarch64_get_extension_string_for_isa_flags.
8354         (aarch64_declare_function_name): Likewise.
8355         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
8356         (MCPU_TO_MARCH_SPEC): This.
8357         (ASM_CPU_SPEC): Use it.
8358         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
8359         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
8360         (EXTRA_SPEC_FUNCTIONS): Use it.
8361
8362 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
8363
8364         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
8365         expansion when !ISA_HAS_LWL_LWR.
8366         (mips_block_move_straight): Update the size of elements copied to
8367         account for alignment when !ISA_HAS_LWL_LWR.
8368         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
8369
8370 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8371
8372         * expr.c (expand_expr_real_2): Check gimple statement during
8373         LSHIFT_EXPR expand.
8374
8375 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
8376
8377         * common.opt (fstack-protector): Initialize to -1.
8378         (fstack-protector-all): Likewise.
8379         (fstack-protector-strong): Likewise.
8380         (fstack-protector-explicit): Likewise.
8381         * configure.ac: Add --enable-default-ssp.
8382         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
8383         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
8384         -1.
8385         * doc/install.texi: Document --enable-default-ssp.
8386         * config.in: Regenerated.
8387         * configure: Likewise.
8388
8389 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
8390
8391         PR rtl-optimization/64164
8392         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
8393         (parm_in_stack_slot_p): ... this.  Disregard mode, what
8394         matters is whether the parm will live in a pseudo or a stack
8395         slot.
8396         (expand_one_ssa_partition): Deal with params without a default
8397         def.  Disregard mode.
8398         * cfgexpand.h: Renamed function declaration.
8399         * tree-ssa-coalesce.c: Adjust.
8400         * function.c (split_complex_args): Allocate stack slot for
8401         unassigned parms before splitting.
8402         (parm_in_unassigned_mem_p): New.  Use it instead of
8403         parm_maybe_byref_p throughout this file.
8404         (assign_parm_setup_block): Use it.  Accept pseudos in the
8405         expand-assigned rtl.
8406         (assign_parm_setup_reg): Drop BLKmode requirement.
8407         (assign_parm_setup_stack): Allocate and fill in the address of
8408         unassigned MEM parms.
8409
8410 2015-08-19  David Sherwood  <david.sherwood@arm.com>
8411
8412         * genmodes.c (emit_mode_unit_size_inline): New function.
8413         (emit_mode_unit_precision_inline): New function.
8414         (emit_insn_modes_h): Emit new #define.  Emit new functions.
8415         (emit_mode_unit_size): New function.
8416         (emit_mode_unit_precision): New function.
8417         (emit_mode_adjustments): Add mode_unit_size adjustments.
8418         (emit_insn_modes_c): Emit new arrays.
8419         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
8420         use new inline methods.
8421
8422 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8423
8424         * config/aarch64/aarch64.c (bit_count): Delete prototype
8425         and definition.
8426         (aarch64_print_operand): Use popcount_hwi instead of the above.
8427
8428 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8429
8430         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
8431         comment.
8432
8433 2015-08-19  Marek Polacek  <polacek@redhat.com>
8434
8435         PR middle-end/67133
8436         * gimple-ssa-isolate-paths.c
8437         (insert_trap_and_remove_trailing_statements): Rename to ...
8438         (insert_trap): ... this.  Don't remove trailing statements; split
8439         block instead.
8440         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
8441
8442 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
8443
8444         PR other/67042
8445         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
8446         conditionalize the whole on __GNUC__.  Add fallback code
8447         depending neither on undefined nor implementation-defined behaviour.
8448
8449 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8450
8451         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
8452         whitespaces with tab.
8453
8454 2015-08-19  Florian Weimer  <fweimer@redhat.com>
8455
8456         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
8457         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
8458         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
8459         Move Name_Ids instantiation to the Prj.Proc package, to avoid
8460         trampolines.
8461
8462 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8463
8464         * config/arm/arm.c (bounds_check): Use %wd print format
8465         for HOST_WIDE_INT arguments.
8466
8467 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
8468
8469         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
8470         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
8471         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
8472         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
8473         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
8474         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
8475         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
8476         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
8477         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
8478         typedefs.
8479
8480 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
8481
8482         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
8483         function.c, graphite-scop-detection.c, haifa-sched.c,
8484         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
8485         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
8486         varasm.c: Remove typedefs of structs.
8487
8488 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
8489
8490         * config/rs6000/altivec.h (vec_adde): New define.
8491         (vec_addec): Likewise.
8492         (vec_double): Likewise.
8493         (vec_bperm): Likewise.
8494         (vec_gb): Likewise.
8495         * config/rs6000/rs6000-builtin.def (ADDE): New
8496         BU_ALTIVEC_OVERLOAD_3.
8497         (ADDEC): Likewise.
8498         (DOUBLE): New BU_VSX_OVERLOAD_1.
8499         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
8500         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
8501         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
8502         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
8503         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
8504         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
8505         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
8506         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
8507         and P8V_BUILTIN_VEC_VBPERMQ.
8508
8509 2015-08-18  Jason Merrill  <jason@redhat.com>
8510
8511         * print-tree.c (print_node): Handle TREE_BINFO.
8512
8513 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8514
8515         PR middle-end/36757
8516         * builtins.c (expand_builtin_signbit): Add asserts to make sure
8517         we can expand BUILT_IN_SIGNBIT inline.
8518         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
8519         * doc/extend.texi: Document the type-generic __builtin_signbit.
8520
8521 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
8522
8523         PR rtl-optimization/67218
8524         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
8525         (simplify_unary_operation_1): Use it.
8526
8527 2015-08-18  Marek Polacek  <polacek@redhat.com>
8528
8529         PR middle-end/67222
8530         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
8531         if the call isn't valid.
8532         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
8533         gimple_call_builtin_p.
8534         (call_may_clobber_ref_p_1): Likewise.
8535         (stmt_kills_ref_p): Likewise.
8536
8537 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
8538
8539         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
8540         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
8541         (mips_hard_regno_scratch_ok): Likewise.
8542         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
8543         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
8544
8545 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
8546
8547         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
8548         (determine_value_range): Call refine_value_range_using_guard for
8549         each loop initial condition to improve value range.
8550
8551 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
8552
8553         * config/i386/i386.c: Remove include of fibheap.h.
8554
8555 2015-08-17  Richard Biener  <rguenther@suse.de>
8556
8557         PR tree-optimization/67221
8558         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
8559         (sccvn_dom_walker::before_dom_children): Mark backedges of
8560         non-executable blocks as not executable.
8561
8562 2015-08-17  David Sherwood  <david.sherwood@arm.com>
8563
8564         * config/arm/arm.c (neon_element_bits): Replace call to
8565         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
8566         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
8567         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
8568         (neon_vdup_lane<mode>): Likewise.
8569         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
8570         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
8571         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
8572         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8573         * config/spu/spu.c (arith_immediate_p): Likewise.
8574         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8575         * expr.c (expand_expr_real_2): Likewise.
8576         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
8577         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8578         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8579         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
8580         New variable.
8581         * fold-const.c (fold_binary_loc): Replace call to
8582         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
8583         GET_MODE_UNIT_PRECISION (m).
8584
8585 2015-08-17  Mike Stump  <mikestump@comcast.net>
8586
8587         * config/arm/arm.c (arm_block_move_unaligned_straight):
8588         Emit normal move instead of unaligned load when source or destination
8589         are appropriately aligned.
8590
8591 2015-08-17  Richard Biener  <rguenther@suse.de>
8592             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8593
8594         PR middle-end/16107
8595         * match.pd (div (coss (op @0) : New simplifier.
8596
8597 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
8598
8599         PR rtl-optimization/64164
8600         PR bootstrap/66978
8601         PR middle-end/66983
8602         PR rtl-optimization/67000
8603         PR middle-end/67034
8604         PR middle-end/67035
8605         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
8606         * tree-ssa-copyrename.c: Removed.
8607         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
8608         -ftree-coalesce-vars.
8609         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
8610         * common.opt (ftree-copyrename): Ignore.
8611         (ftree-coalesce-inlined-vars): Likewise.
8612         * doc/invoke.texi: Remove the ignored options above.
8613         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
8614         * tree-ssa-coalesce.h: ... here.
8615         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
8616         headers required by it.
8617         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
8618         across variables when flag_tree_coalesce_vars.  Check register
8619         use and promoted modes to allow coalescing.  Do not coalesce
8620         maybe-byref parms with SSA_NAMEs of other variables, or
8621         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
8622         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
8623         with its member functions to tree-ssa-coalesce.c.
8624         (var_map_base_init): Likewise.  Renamed to
8625         compute_samebase_partition_bases.
8626         (partition_view_normal): Drop want_bases parameter.
8627         (partition_view_bitmap): Likewise.
8628         * tree-ssa-live.h: Adjust declarations.
8629         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
8630         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
8631         default defs at the entry point.
8632         (dump_part_var_map): New.
8633         (compute_optimized_partition_bases): New, called by...
8634         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
8635         of compute_samebase_partition_bases.  Adjust.
8636         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
8637         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
8638         (ssa_default_def_partition): New.
8639         (get_rtl_for_parm_ssa_default_def): New.
8640         (align_local_variable, add_stack_var): Support anonymous SSA
8641         names.
8642         (defer_stack_allocation): Likewise.  Declare earlier.
8643         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
8644         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
8645         Do no record deferred-allocation marker in
8646         SA.partition_to_pseudo.
8647         (expand_stack_vars): Adjust check for the marker in it.
8648         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
8649         redundant MEM attr setting.
8650         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
8651         from...
8652         (expand_one_stack_var): ... this.  New wrapper to check and
8653         skip already expanded SSA partitions.
8654         (record_alignment_for_reg_var): New, factored out of...
8655         (expand_one_var): ... this.
8656         (expand_one_ssa_partition): New.
8657         (adjust_one_expanded_partition_var): New.
8658         (expand_one_register_var): Check and skip already expanded SSA
8659         partitions.
8660         (expand_used_vars): Don't create DECLs for anonymous SSA
8661         names.  Expand all SSA partitions, then adjust all SSA names.
8662         (pass::execute): Replace the loops that set
8663         SA.partition_to_pseudo from partition leaders and cleared
8664         DECL_RTL for multi-location variables, and that which used to
8665         rename vars and set attrs, with one that clears DECL_RTL and
8666         checks that PARMs and RESULTs default_defs match DECL_RTL.
8667         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
8668         * emit-rtl.c: Include stor-layout.h.
8669         (set_reg_attrs_for_parm): Handle NULL decl.
8670         (set_reg_attrs_for_decl_rtl): Take mode from expression if
8671         it's not a DECL.
8672         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
8673         rather than its possibly-NULL DECL.
8674         * explow.c (promote_ssa_mode): New.
8675         * explow.h (promote_ssa_mode): Declare.
8676         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
8677         (read_complex_part): Export.
8678         * expr.h (read_complex_part): Declare.
8679         * cfgexpand.h (parm_maybe_byref_p): Declare.
8680         * function.c: Include cfgexpand.h.
8681         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
8682         (use_register_for_parm_decl): Wrapper for the above to
8683         special-case the result_ptr.
8684         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
8685         (split_complex_args): Take assign_parm_data_all argument.
8686         Pass it to rtl_for_parm.  Set up rtl and context for split
8687         args.  Reset complex parm before fetching its default decl
8688         rtl.
8689         (assign_parms_unsplit_complex): Use the default-def complex
8690         parm rtl if it matches the components.
8691         (assign_parms_augmented_arg_list): Adjust.
8692         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
8693         multiple locations.  Recognize split complex args.
8694         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
8695         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
8696         (assign_parm_setup_block): Prefer SSA-assigned location, and
8697         fill in its address if the memory location of a maybe-byref
8698         parm was not assigned by cfgexpand.
8699         (assign_parm_setup_reg): Likewise.  Adjust its mode as
8700         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
8701         sure passed_pointer parms don't need conversion.  Copy address
8702         or value as needed.
8703         (assign_parm_setup_stack): Prefer SSA-assigned location.
8704         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
8705         rtl before testing for pointer bounds.  Special-case result_ptr.
8706         (expand_function_start): Maybe reset DECL_RTL of result.
8707         Prefer SSA-assigned location for result and static chain.
8708         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
8709         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
8710         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
8711         anonymous SSA names.  Use promote_ssa_mode.
8712         (get_temp_reg): Likewise.
8713         (remove_ssa_form): Adjust.
8714         * stor-layout.c (layout_decl): Don't set mem attributes of
8715         non-MEMs.
8716         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
8717         and get its reg_usage for reg invalidation.
8718         (compute_bb_dataflow): Pass it insn.
8719         (emit_notes_in_bb): Likewise.
8720
8721 2015-08-14  Marek Polacek  <polacek@redhat.com>
8722
8723         * tree-core.h (tree_base): Fix typo.
8724
8725 2015-08-14  Marek Polacek  <polacek@redhat.com>
8726
8727         PR middle-end/67133
8728         * gimple.c (infer_nonnull_range_by_attribute): Check that the
8729         nonnull argument position is not outside function arguments.
8730
8731 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
8732
8733         PR target/67143
8734         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
8735         'lconst_atomic' with 'const_atomic'.
8736         (atomic_fetch_<optab><mode>): Likewise.
8737         (atomic_<optab>_fetch<mode>): Likewise.
8738         * config/aarch64/iterators.md (lconst-atomic): Move below
8739         'const_atomic'.
8740         (const_atomic): New.
8741
8742 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
8743             Bernd Schmidt  <bernds@codesourcery.com>
8744
8745         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
8746         debug options.
8747         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
8748         (DWARF2_DEBUGGING_INFO): Don't define.
8749         * debug.h (dwarf2_lineno_debug_hooks): Declare.
8750         * toplev.c (process_options): Add a case for it.
8751         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
8752         (dwarf2out_init): Skip most initializations if
8753         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
8754         case.
8755         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
8756         DWARF2_LINENO_DEBUGGING_INFO.
8757         * opts.c (set_debug_level): Likewise.
8758
8759 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
8760
8761         * config/arm/types.md (is_neon_type): Add missing types.
8762
8763 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8764
8765         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
8766         for skylake.
8767         * config/i386/i386.c (PTA_SKYLAKE): New macros.
8768         (processor_alias_table): Add skylake description.
8769         (enum processor_model): Add skylake processor.
8770         (arch_names_table): Add skylake record.
8771         * doc/invoke.texi: Add skylake item.
8772
8773 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
8774
8775         * ira-int.h: Include recog.h.
8776         * ira-build.c: Don't include recog.h.
8777         * ira-color.c: Likewise.
8778         * ira-conflicts.c: Likewise.
8779         * ira-costs.c: Likewise.
8780         * ira-emit.c: Likewise.
8781         * ira-lives.c: Likewise.
8782         * ira.c: Likewise.
8783         * sched-deps.c: Likewise.
8784         * sel-sched.c: Likewise.
8785         * target-globals.c: Likewise.
8786
8787 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
8788
8789         PR bootstrap/55035
8790         * reload1.c (elimination_costs_in_insn): Make it obvious to the
8791         compiler that the n_dups and n_operands loop bounds are invariant.
8792
8793 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8794
8795         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
8796         expressions in A and B.
8797
8798 2015-08-13  Richard Biener  <rguenther@suse.de>
8799
8800         * tree.c (nonnull_arg_p): Move from ...
8801         * tree-vrp.c (nonnull_arg_p): ... here.
8802         * tree.h (nonnull_arg_p): Declare.
8803         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
8804         here, register ptr != 0 for nonnull_arg_p pointer arguments.
8805         Properly initialize static chain and by-reference result pointer.
8806         (run_scc_vn): Adjust.
8807
8808 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8809
8810         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
8811         TUNE_I6400.
8812
8813 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8814
8815         * config/aarch64/aarch64-protos.h
8816         (aarch64_gen_atomic_cas): Declare.
8817         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
8818         Choose appropriate instruction pattern for the target.
8819         (aarch64_gen_atomic_cas): New.
8820         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
8821         (atomic_compare_and_swap<mode>_1): Rename to
8822         aarch64_compare_and_swap<mode>.  Fix some indentation.
8823         (aarch64_compare_and_swap<mode>_lse): New.
8824         (aarch64_atomic_cas<mode>): New.
8825
8826 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8827
8828         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
8829         (TARGET_LSE): New.
8830
8831 2015-08-13  Richard Biener  <rguenther@suse.de>
8832
8833         PR tree-optimization/67191
8834         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
8835         assert we value-numbered last stmts operand because it can validly
8836         trigger for unreachable code.
8837
8838 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8839
8840         PR rtl-optimization/67103
8841         * ifcvt.c (noce_try_store_flag_constants): Move
8842         x = (-(test != 0) & (b - a)) + a transformation to...
8843         (noce_try_cmove): ... Here.  Try it if normal conditional
8844         move fails.
8845
8846 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8847
8848         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
8849         pseudo-processors.
8850         * config/mips/mips.md (processor): Remove w32 and w64.
8851
8852 2015-08-13  Richard Biener  <rguenther@suse.de>
8853
8854         PR tree-optimization/66502
8855         PR tree-optimization/67167
8856         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
8857         backedge arguments.
8858         (vn_phi_lookup): Adjust.
8859         (vn_phi_insert): Likewise.
8860         (visit_phi): Prefer to value-number to another PHI node
8861         over value-numbering to a PHI argument.
8862         (init_scc_vn): Mark DFS back edges.
8863
8864 2015-08-13  Richard Biener  <rguenther@suse.de>
8865
8866         * gimple.h (gcall::code_): New constant static member.
8867         (gcond::code_): Likewise.
8868         * gimple.c (gcall::code_): Define.
8869         (gcond::code_): Likewise.
8870         (is_a_helper <const gcond *>): Add.
8871         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
8872         and forward to a new gcall overload with less checking and a
8873         cheaper way to access the operand.
8874         (gimple_call_lhs_ptr): Likewise.
8875         (gimple_call_set_lhs): Likewise.
8876         (gimple_call_internal_p): Likewise.
8877         (gimple_call_with_bounds_p): Likewise.
8878         (gimple_call_set_with_bounds): Likewise.
8879         (gimple_call_internal_fn): Likewise.
8880         (gimple_call_set_ctrl_altering): Likewise.
8881         (gimple_call_ctrl_altering_p): Likewise.
8882         (gimple_call_fntype): Likewise.
8883         (gimple_call_fn): Likewise.
8884         (gimple_call_fn_ptr): Likewise.
8885         (gimple_call_set_fndecl): Likewise.
8886         (gimple_call_fndecl): Likewise.
8887         (gimple_call_chain): Likewise.
8888         (gimple_call_num_args): Likewise.
8889         (gimple_call_arg): Likewise.
8890         (gimple_call_arg_ptr): Likewise.
8891         (gimple_call_set_arg): Likewise.
8892         (gimple_call_noreturn_p): Likewise.
8893         (gimple_cond_code): Likewise.
8894         (gimple_cond_lhs): Likewise.
8895         (gimple_cond_rhs): Likewise.
8896         (gimple_has_lhs): Reduce checking.
8897
8898 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8899
8900         PR middle-end/25529
8901         * match.pd (div (mult @0 @1) @1) : New simplifier.
8902
8903 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8904
8905         PR target/67071
8906         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
8907         predicate to allow construction of vector constants using the
8908         VSLDOI vector shift instruction.
8909
8910         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
8911         declaration.
8912
8913         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
8914         the number of bytes to be shifted left and filled in with either
8915         all zero or all one bits.
8916         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
8917         methods exist.
8918         (output_vec_const_move): On power8, generate XXLORC to generate
8919         a vector constant with all 1's. Do a split if we need to use a
8920         VSLDOI instruction.
8921
8922         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
8923         properly test for the MSB.
8924
8925         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
8926         vector constants that can be created with VSLDOI.
8927
8928 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8929
8930         revert:
8931         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8932         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8933         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8934         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8935         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8936         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8937         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8938         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8939         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8940
8941 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
8942
8943         * config/xtensa/constraints.md (define_constraint "Y"): New
8944         constraint.
8945         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
8946         * config/xtensa/linux.h (ASM_SPEC): Likewise.
8947         * config/xtensa/predicates.md (move_operand): Match constants
8948         and symbols in the presence of TARGET_AUTO_LITPOOLS.
8949         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
8950         immediate references to TLS data.
8951         (xtensa_emit_move_sequence): Don't force constants to memory in
8952         the presence of TARGET_AUTO_LITPOOLS.
8953         (print_operand): Add 'y' format, same as default, but capable of
8954         printing SF mode constants as well.
8955         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
8956         (movsf_internal): Add movi pattern that loads literal.
8957         (movsf, movdf): Don't force constants to memory in the presence
8958         of TARGET_AUTO_LITPOOLS.
8959         (movdf_internal): Add 'Y' constraint.
8960         * config/xtensa/xtensa.opt (mauto-litpools): New option.
8961         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
8962
8963 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8964
8965         * config/arm/arm-fpus.def: Replace booleans with feature flags.
8966         Update comment.
8967         * config/arm/arm.c (ARM_FPU): Update macro.
8968         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
8969         (TARGET_FP16): Likewise.
8970         (TARGET_CRYPTO): Likewise.
8971         (TARGET_NEON): Likewise.
8972         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
8973         field features.
8974
8975 2015-08-12  Tom de Vries  <tom@codesourcery.com>
8976
8977         PR other/67092
8978         PR other/67098
8979         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
8980         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
8981         accordingly.  Mention default for --with-stage1-ldflags.
8982
8983 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8984
8985         * config/arm/arm.h (arm_fpu_feature_set): New.
8986         (ARM_FPU_FSET_HAS): New.
8987         (FPU_FL_NONE): New.
8988         (FPU_FL_NEON): New.
8989         (FPU_FL_FP16): New.
8990         (FPU_FL_CRYPTO): New.
8991
8992 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8993
8994         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
8995         after -mcmodel=large -fPIC sorry.
8996
8997 2015-08-12  Richard Biener  <rguenther@suse.de>
8998
8999         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
9000         comparison operand order and commutative ternary op operand order.
9001         (sccvn_dom_walker::cond_stack): New state to track temporary
9002         expressions.
9003         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
9004         no longer valid.
9005         (sccvn_dom_walker::record_cond): Add a single temporary conditional
9006         expression.
9007         (sccvn_dom_walker::record_conds): Add a temporary conditional
9008         expressions and all related expressions also true/false.
9009         (sccvn_dom_walker::before_dom_children): Record temporary
9010         expressions based on the controlling condition of a single
9011         predecessor.  When trying to simplify a conditional statement
9012         lookup expressions we might have inserted earlier.
9013
9014 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
9015
9016         PR target/67127
9017         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
9018         to ARM core registers.
9019
9020 2015-08-12  Nathan Sidwell  <nathan@acm.org>
9021
9022         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
9023         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
9024
9025 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
9026
9027         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
9028         line with comments.
9029         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
9030
9031 2015-08-12  Richard Biener  <rguenther@suse.de>
9032
9033         * gimple.h (remove_pointer): New trait.
9034         (GIMPLE_CHECK2): New inline template function.
9035         (gassign::code_): New constant static member.
9036         (is_a_helper<const gassign *>): Add.
9037         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
9038         and forward to a new gassign overload with less checking and a
9039         cheaper way to access the operand.
9040         (gimple_assign_lhs_ptr): Likewise.
9041         (gimple_assign_set_lhs): Likewise.
9042         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
9043         Likewise.
9044         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
9045         Likewise.
9046         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
9047         Likewise.
9048         (gimple_assign_rhs_code): Likewise.
9049         * gimple.c (gassign::code_): Define.
9050
9051 2015-08-12  Richard Biener  <rguenther@suse.de>
9052
9053         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9054         Eliminate edges marked as not executable by SCCVN.
9055         * tree-ssa-sccvn.c: Include gimple-iterator.h.
9056         (cond_dom_walker): Rename to sccvn_dom_walker.
9057         (sccvn_dom_walker::before_dom_children): Value-number defs
9058         of all stmts.
9059         (run_scc_vn): Remove loop value-numbering all SSA names.
9060         Drop not visited SSA names to varying.
9061
9062 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
9063
9064         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
9065         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
9066         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
9067         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
9068         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
9069         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
9070         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
9071         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
9072         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
9073
9074 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
9075
9076         PR target/66954
9077         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
9078         to enum feature_priority and feature_list.
9079         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
9080         and isa_names_table.
9081
9082 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
9083
9084         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
9085         vect_induction_def.
9086
9087 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9088
9089         PR c/66098
9090         PR c/66711
9091         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
9092         account when deciding what was the command-line status.
9093
9094 2015-08-11  Nathan Sidwell  <nathan@acm.org>
9095
9096         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
9097
9098         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
9099         we're not the only contributor to target phi.
9100
9101 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
9102
9103         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
9104         FIXED_REG0.
9105
9106 2015-08-11  Tom de Vries  <tom@codesourcery.com>
9107
9108         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
9109
9110 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
9111
9112         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
9113         with CPU_SLM.
9114         * config/i386/i386.md (cpu): Remove knl.
9115
9116 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
9117
9118         PR libgomp/65742
9119         PR middle-end/66332
9120         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
9121         open-coded sequence.
9122         * omp-low.c (oacc_process_reduction_data): Remove handline of
9123         GOMP_DEVICE_HOST_NONSHM.
9124
9125         * lto-streamer-in.c (lto_input_mode_table): Adjust to
9126         GET_MODE_INNER changes.
9127
9128 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
9129             Ilya Verbin  <ilya.verbin@intel.com>
9130
9131         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
9132
9133 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9134
9135         * doc/options.texi (EnabledBy): Document that the argument must be
9136         a Common option.
9137         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
9138         Not enabled by -Wall.
9139         * optc-gen.awk: Give nicer error messages. Detect if the argument
9140         of EnabledBy is not a Common option.
9141         * common.opt (Wnull-dereference): Not enabled by -Wall.
9142         * opt-functions.awk (lang_enabled_by): Nicer error messages.
9143
9144 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
9145
9146         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
9147         model == 0x4f as Broadwell.
9148
9149 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
9150
9151         PR rtl-optimization/67028
9152         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
9153         Add test to see if a const_int fits in the new mode.
9154
9155 2015-08-07  DJ Delorie  <dj@redhat.com>
9156
9157         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
9158
9159 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
9160
9161         PR rtl-optimization/67029
9162         * ira-color.c: Include "recog.h" before including "ira-int.h".
9163         * target-globals.c: Likewise.
9164         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
9165         adds an alternative_mask argument and use it instead of
9166         preferred_alternatives.
9167         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
9168         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
9169         * sched-deps.c: Include "ira-int.h" after including "ira.h".
9170         (sched_analyze_insn): Update call to
9171         ira_implicitly_set_insn_hard_regs.
9172         * sel-sched.c: Include "ira-int.h" after including "ira.h".
9173         (implicit_clobber_conflict_p): Update call to
9174         ira_implicitly_set_insn_hard_regs.
9175
9176 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
9177
9178         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
9179
9180 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
9181
9182         PR target/67002
9183         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
9184         currently_expanding_to_rtl is set.
9185
9186 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
9187
9188         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
9189         * configure: Regenerate.
9190
9191 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9192             Jiong Wang  <jiong.wang@arm.com>
9193
9194         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
9195         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
9196         (REG_CLASS_NAMES): Likewise.
9197         (REG_CLASS_CONTENTS): Likewise.
9198         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
9199         (aarch64_register_move_cost): Likewise.
9200         (aarch64_load_symref_appropriately): Invoke the new added pattern if
9201         possible.
9202         * config/aarch64/constraints.md (Uc0): New constraint.
9203
9204 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
9205
9206         * config/aarch64/constraints.md (Usf): Add the test of
9207         aarch64_is_noplt_call_p.
9208
9209 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
9210
9211         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
9212         declaration.
9213         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
9214         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
9215         (call_symbol): Likewise.
9216
9217 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
9218
9219         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
9220         for vectorizing multiplication patterns.
9221         * tree-vectorizer.h: Adjust the number of patterns.
9222
9223 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
9224
9225         * config/i386/sse.md (*vec_concatv2df): Declare added
9226         alternatives as sselog type.
9227
9228 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9229
9230         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
9231         all GPRs.
9232
9233 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9234
9235         * config/s390/s390.c (s390_expand_tbegin): Expand either
9236         tbegin_1_z13 or tbegin_1 depending on VX flag.
9237         * config/s390/s390.md ("tbegin_1_z13"): New expander.
9238
9239 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9240
9241         * config/s390/s390.opt: Clarify description for -mzvector
9242         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
9243         -mzvector.
9244
9245 2015-08-06  Richard Biener  <rguenther@suse.de>
9246
9247         * gimple.h (gimple_call_set_fn): Access op member directly.
9248         (gimple_call_chain_ptr): Likewise.
9249         (gimple_call_set_chain): Likewise.
9250         (gimple_cond_lhs_ptr): Likewise.
9251         (gimple_cond_set_lhs): Likewise.
9252         (gimple_cond_rhs_ptr): Likewise.
9253         (gimple_cond_set_rhs): Likewise.
9254         (gimple_cond_true_label): Likewise.
9255         (gimple_cond_set_true_label): Likewise.
9256         (gimple_cond_set_false_label): Likewise.
9257         (gimple_cond_false_label): Likewise.
9258         (gimple_label_label): Likewise.
9259         (gimple_label_set_label): Likewise.
9260         (gimple_goto_set_dest): Likewise.
9261         (gimple_asm_input_op): Likewise.
9262         (gimple_asm_input_op_ptr): Likewise.
9263         (gimple_asm_set_input_op): Likewise.
9264         (gimple_asm_output_op): Likewise.
9265         (gimple_asm_output_op_ptr): Likewise.
9266         (gimple_asm_set_output_op): Likewise.
9267         (gimple_asm_clobber_op): Likewise.
9268         (gimple_asm_set_clobber_op): Likewise.
9269         (gimple_asm_label_op): Likewise.
9270         (gimple_asm_set_label_op): Likewise.
9271         (gimple_switch_index): Likewise.
9272         (gimple_switch_index_ptr): Likewise.
9273         (gimple_return_retval_ptr): Likewise.
9274         (gimple_return_retval): Likewise.
9275         (gimple_return_set_retval): Likewise.
9276         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
9277         (gimple_switch_label): Likewise.
9278         (gimple_switch_set_label): Likewise.
9279
9280 2015-08-06  Richard Biener  <rguenther@suse.de>
9281
9282         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
9283         bool comparison canonicalization and restrict to integers.
9284
9285 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
9286
9287         * coretypes.h (enum symbol_visibility): Relocate here.
9288         * flag-types.h (enum symbol_visibility): Remove.
9289         * tree-core.h (enum symbol_visibility): Remove.
9290
9291 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
9292
9293         PR target/66870
9294         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
9295         for no_split_stack function attribute along with
9296         flag_split_stack.
9297         (rs6000_expand_split_stack_prologue): Likewise.
9298
9299 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9300             Jeff Law  <law@redhat.com>
9301
9302         PR c/16351
9303         * doc/invoke.texi (Wnull-dereference): New.
9304         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
9305         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
9306         Warn for potential NULL dereferences.
9307         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
9308         * ubsan.c (instrument_nonnull_arg): Call
9309         infer_nonnull_range_by_attribute.
9310         (instrument_nonnull_return): Likewise.
9311         * common.opt (Wnull-dereference); New.
9312         * gimple.c (infer_nonnull_range): Remove bool arguments.
9313         (infer_nonnull_range_by_dereference): New.
9314         (infer_nonnull_range_by_attribute): New.
9315         * gimple.h: Update declarations.
9316
9317 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9318
9319         * gensupport.c (sequence_num): Replace with...
9320         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
9321         ...these new variables.
9322         (init_rtx_reader_args_cb): Update accordingly.
9323         (get_num_code_insns): Likewise.
9324         (read_md_rtx): Rework to use a while loop and get_c_test.
9325         Use the new counters.  Remove redundant DEFINE_SUBST case.
9326         * genoutput.c (gen_split): Delete.
9327         (main): Don't call it.
9328
9329 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9330
9331         * gensupport.h (get_c_test): Declare.
9332         * gensupport.c (get_c_test): New function.
9333         * genconditions.c (main): Use it.
9334         * genrecog.c (validate_pattern): Likewise.
9335         (match_pattern_1): Likewise.  Remove c_test argument.
9336         (match_pattern): Update accordingly and remove c_test argument.
9337         (main): Update accordingly.
9338
9339 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9340
9341         * gensupport.h (get_num_insn_codes): Declare.
9342         * gensupport.c (get_num_insn_codes): New function.
9343         * genattrtab.c (optimize_attrs): Rename max_insn_code to
9344         num_insn_codes.
9345         (main): Likewise.  Use get_num_insn_codes.
9346         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
9347
9348 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9349
9350         PR middle-end/66311
9351         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
9352         is zero- rather than sign-extended.
9353
9354 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9355
9356         * target-insns.def (can_extend): Delete.
9357
9358 2015-08-05  Richard Biener  <rguenther@suse.de>
9359
9360         PR tree-optimization/67121
9361         * tree-if-conv.c (combine_blocks): Clear range-info produced
9362         by stmts no longer executed conditionally.
9363
9364 2015-08-05  Nick Clifton  <nickc@redhat.com>
9365
9366         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
9367         to allow identical far pointers to remain.
9368
9369 2015-08-05  Richard Biener  <rguenther@suse.de>
9370
9371         PR middle-end/67120
9372         * match.pd: Compare address bases with == if they are decls
9373         or SSA names, not operand_equal_p.  Otherwise fail.
9374
9375 2015-08-05  Richard Biener  <rguenther@suse.de>
9376
9377         PR tree-optimization/67055
9378         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
9379         NULL gimple_block.
9380
9381         * g++.dg/torture/pr67055.C: New testcase.
9382
9383 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9384
9385         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
9386         noavx512vl.
9387         (define_attr "enabled"): Handle avx521vl and noavx512vl.
9388         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
9389         AVX-512 alternative out of SSE.
9390         (define_insn "*vec_concatv2df"): Ditto.
9391
9392 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9393
9394         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
9395         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
9396         CODE_FOR_avx_ptestv4di.
9397         * config/i386/sse.md (define_mode_iterator V_AVX): New.
9398         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
9399         (define_insn "avx_ptest256"): Merge this ...
9400         (define_insn "sse4_1_ptest"): And this ...
9401         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
9402
9403 2015-08-05  Richard Biener  <rguenther@suse.de>
9404
9405         PR tree-optimization/67109
9406         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
9407         against too big groups.  Print whether this is a load or store
9408         group.  Rename from ...
9409         (vect_analyze_group_access): ... this which is now a wrapper
9410         dissolving an invalid group.
9411         (vect_analyze_data_ref_accesses): Print whether this is a load
9412         or store group.
9413
9414 2015-08-05  Richard Biener  <rguenther@suse.de>
9415
9416         PR middle-end/67107
9417         * match.pd: Guard const_binop result checking against NULL_TREE
9418         result.
9419
9420 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
9421
9422         * cse.c (cse_insn): Restoring old behaviour for src_eqv
9423          when dest and value in the REG_EQUAL are same and dest
9424          is STRICT_LOW_PART.
9425
9426 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
9427
9428         * config/moxie/moxie.h (PRINT_OPERAND,
9429           PRINT_OPERAND_ADDRESS): Remove macros.
9430         * config/moxie/moxie-protos.h (moxie_print_operand,
9431           moxie_print_operand_address): Remove declaration.
9432         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
9433           TARGET_PRINT_OPERAND_ADDRESS): Define.
9434           (moxie_print_operand, moxie_print_operand_address): Make static.
9435
9436 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9437
9438         PR target/66731
9439         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
9440         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
9441
9442 2015-08-04  Richard Biener  <rguenther@suse.de>
9443
9444         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
9445         generated code.
9446         (dt_operand::gen_gimple_expr): Adjust.
9447
9448 2015-08-04  Richard Biener  <rguenther@suse.de>
9449
9450         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
9451         bool compares on RHS.
9452         * match.pd: Add X ==/!= !X is false/true pattern.
9453
9454 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
9455
9456         * config/aarch64/aarch64.c: Change inner loop statement cost
9457         to be consistent with other targets.
9458
9459 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
9460
9461         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
9462         targets.
9463
9464 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
9465
9466         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
9467         (machine_function): Remove pseudos field.
9468
9469 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9470
9471         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9472         Exit early and use target_option_current_node if processing current
9473         pragma.
9474
9475 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9476
9477         * doc/extend.texi (AArch64 Function Attributes): New node.
9478         (AArch64 Pragmas): Likewise.
9479
9480 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9481
9482         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9483         Initialize simd builtins if TARGET_SIMD.
9484         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
9485         Make sure that the builtins are initialized only once no matter how
9486         many times the function is called.
9487         (aarch64_init_builtins): Unconditionally initialize crc builtins.
9488         (aarch64_relayout_simd_param): New function.
9489         (aarch64_simd_expand_args): Use above during argument expansion.
9490         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
9491         simd builtins if TARGET_SIMD.
9492         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
9493         prototype.
9494         (aarch64_relayout_simd_types): Likewise.
9495
9496 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9497
9498         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
9499         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
9500         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
9501         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9502         static keyword.
9503         (aarch64_reset_previous_fndecl): New function.
9504         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
9505         the string.
9506         * config/aarch64/aarch64-c.c: New file.
9507         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
9508         Push and pop options at beginning and end.  Remove ifdef
9509         __ARM_FEATURE_CRC32.
9510         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
9511         Add pragma +nothing+simd and +nothing+crypto where appropriate.
9512         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
9513         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
9514         Define prototype.
9515         (aarch64_register_pragmas): Likewise.
9516         (aarch64_reset_previous_fndecl): Likewise.
9517         (aarch64_process_target_attr): Likewise.
9518         (aarch64_override_options_internal): Likewise.
9519
9520 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9521
9522         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
9523         New function.
9524         (aarch64_can_inline_p): Likewise.
9525         (TARGET_CAN_INLINE_P): Define.
9526
9527 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9528
9529         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9530         Remove static.  Handle OPT_mgeneral_regs_only,
9531         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
9532         OPT_momit_leaf_frame_pointer.
9533         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
9534         (aarch64_attr_opt_type): New enum.
9535         (aarch64_attribute_info): New struct.
9536         (aarch64_handle_attr_arch): New function.
9537         (aarch64_handle_attr_cpu): Likewise.
9538         (aarch64_handle_attr_tune): Likewise.
9539         (aarch64_handle_attr_isa_flags): Likewise.
9540         (aarch64_attributes): New table.
9541         (aarch64_process_one_target_attr): New function.
9542         (num_occurences_in_str): Likewise.
9543         (aarch64_process_target_attr): Likewise.
9544         (aarch64_option_valid_attribute_p): Likewise.
9545         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
9546         * config/aarch64/aarch64-protos.h: Include input.h
9547         (aarch64_handle_option): Declare prototype.
9548
9549 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9550
9551         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
9552         * config/aarch64/aarch64.c: Include target-globals.h
9553         (aarch64_previous_fndecl): New variable.
9554         (aarch64_set_current_function): New function.
9555         (TARGET_SET_CURRENT_FUNCTION): Define.
9556
9557 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9558
9559         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
9560         (explicit_arch): Likewise.
9561         (x_aarch64_isa_flags): Likewise.
9562         (mgeneral-regs-only): Mark as Save.
9563         (mfix-cortex-a53-835769): Likewise.
9564         (mcmodel=): Likewise.
9565         (mstrict-align): Likewise.
9566         (momit-leaf-frame-pointer): Likewise.
9567         (mtls-dialect): Likewise.
9568         (master=): Likewise.
9569         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
9570         (aarch64_isa_flags): Remove extern declaration.
9571         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
9572         to indicate success or failure.
9573         (aarch64_validate_march): Likewise.
9574         (aarch64_validate_mtune): Likewise.
9575         (aarch64_isa_flags): Delete.
9576         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
9577         instead of aarch64_isa_flags.
9578         (aarch64_get_tune_cpu): New function.
9579         (aarch64_get_arch): Likewise.
9580         (aarch64_override_options): Use above and set up explicit_tune_core
9581         and explicit_arch.
9582         (aarch64_print_extension): Move earlier in file.  Add isa_flags
9583         argument and use that instead of the global aarch64_isa_flags.
9584         (aarch64_option_save): New function.
9585         (aarch64_option_restore): Likewise.
9586         (aarch64_option_print): Likewise.
9587         (aarch64_declare_function_name): Likewise.
9588         (aarch64_start_file): Delete.
9589         (TARGET_ASM_FILE_START): Do not define.
9590         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
9591         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
9592         Declare prototype.
9593
9594 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9595
9596         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
9597         flag_omit_leaf_frame_pointer to 2.
9598
9599 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9600
9601         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
9602         define to 0 or 1.
9603         (TARGET_FIX_ERR_A53_835769): New macro.
9604         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9605         handling of opts->x_aarch64_fix_a53_err835769.
9606         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
9607         than aarch64_fix_a53_err835769.
9608         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
9609         * config/aarch64/aarch64-linux.h: Likewise.
9610
9611 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
9612
9613         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
9614         ix86_expand_int_movcc as boolean.
9615
9616 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9617
9618         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
9619         (aarch64_cpu_string): Likewise.
9620         (aarch64_tune_string): Likewise.
9621         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
9622         (aarch64_parse_extension): Return aarch64_parse_opt_result.
9623         Add extra argument to put result into.
9624         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
9625         (aarch64_parse_cpu): Add arguments to put results into. Return
9626         aarch64_parse_opt_result.
9627         (aarch64_parse_tune): Likewise.
9628         (aarch64_override_options_after_change_1): New function.
9629         (aarch64_override_options_internal): New function.
9630         (aarch64_validate_mcpu): Likewise.
9631         (aarch64_validate_march): Likewise.
9632         (aarch64_validate_mtune): Likewise.
9633         (aarch64_override_options): Update to reflect above changes.
9634         Move some logic into aarch64_override_options_internal.
9635         Initialize target_option_default_node and target_option_current_node.
9636         (aarch64_override_options_after_change): Move logic into
9637         aarch64_override_options_after_change_1 and call it with global_options.
9638         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
9639         flag values from that.
9640
9641 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9642
9643         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
9644         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
9645         * config/aarch64/aarch64.c (struct processor): Add arch field.
9646         (all_architectures): Handle above, move above all_cores.
9647         (all_cores): Handle above.
9648         (aarch64_parse_arch): Handle above changes.
9649         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
9650         above.  Update comments.
9651         (armv8.1-a): Likewise.
9652         * config/aarch64/aarch64-cores.def: Update according to above.
9653         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
9654         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
9655         aarch64_arch_driver_info.
9656
9657 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9658
9659         * config/aarch64/aarch64.c (struct processor): Add ident field.
9660         Rename core sched_core.
9661         (all_cores): Handle above changes.
9662         (all_architectures): Likewise.
9663         (aarch64_parse_arch): Likewise.
9664         (aarch64_override_options): Likewise.
9665
9666 2015-08-04  Richard Biener  <rguenther@suse.de>
9667
9668         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9669         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
9670         comparisons embedded in [VEC_]COND_EXPRs.
9671
9672 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
9673
9674         * tree-if-conv.c: Fix various typos in comments.
9675         * tree-vect-stmts.c: Likewise.
9676
9677 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9678
9679         PR tree-optimization/67043
9680         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
9681         preheader after hoisting invariant in it.
9682         (find_defs): Force recomputation of all luids.
9683
9684 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
9685
9686         * config/rs6000/htm.md (tabort.): Restrict the source operand to
9687         using a base register.
9688
9689 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
9690
9691         * main.c (main): Pass in NULL for toplev's external_timer.
9692         * timevar.c: Include coretypes.h.
9693         (class timer::named_items): New.
9694         (timer::named_items::named_items): New.
9695         (timer::named_items::~named_items): New.
9696         (timer::named_items::push): New.
9697         (timer::named_items::pop): New.
9698         (timer::named_items::print): New.
9699         (timer::timer): Initialize field "m_jit_client_items".
9700         (timer::~timer): New.
9701         (timer::push): Move bulk of implementation to...
9702         (timer::push_internal): ...here.  New function.
9703         (timer::pop): Move bulk of implementation to...
9704         (timer::pop_internal): ...here.  New function.
9705         (timer::push_client_item): New.
9706         (timer::pop_client_item): New.
9707         (timer::print_row): New function, taken from timer::print.
9708         (timer::print): Print "GCC items" header if we also have client
9709         items.  Move row-printing to timer::print_row.  Print any client
9710         items.
9711         (timer::get_topmost_item_name): New method.
9712         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
9713         (TV_JIT_CLIENT_CODE): New.
9714         * timevar.h (timer::push_client_item): New declaration.
9715         (timer::pop_client_item): New declaration.
9716         (timer::get_topmost_item_name): New method.
9717         (timer::push_internal): New declaration.
9718         (timer::pop_internal): New declaration.
9719         (timer::print_row): New declaration.
9720         (timer::named_items): New declaration.
9721         (timer::m_jit_client_items): New field.
9722         (timer): Add friend class named_items.
9723         (auto_timevar::auto_timevar): Add timer param.
9724         (auto_timevar::~auto_timevar): Use field "m_timer".
9725         (auto_timevar::m_timer): New field.
9726         * toplev.c (initialize_rtl): Add g_timer as param when
9727         constructing auto_timevar instance.
9728         (toplev::toplev): Add "external_timer" param, and use it to
9729         initialize the "g_timer" global if non-NULL.
9730         (toplev::~toplev): If this created "g_timer", delete it.
9731         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
9732         with "external_timer" timer *.
9733
9734 2015-08-03  Alexander Basov <coohpt@gmail.com>
9735
9736         PR middle-end/64744
9737         PR middle-end/48470
9738         PR middle-end/43404
9739         * cfgexpand.c (expand_one_var): Add check if stack is going to
9740         be used in naked function.
9741         * expr.c (expand_expr_addr_expr_1): Remove excess checking
9742         whether expression should not reside in MEM.
9743         * function.c (use_register_for_decl): Do not use registers for
9744         non-register things (volatile, float, BLKMode) in naked functions.
9745
9746 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
9747
9748         PR target/67060
9749         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
9750         Adjust splits to match new pattern.
9751
9752 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
9753
9754         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
9755         (VEC_M): Likewise.
9756         (VEC_N): Likewise.
9757         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
9758         point in VSX registers.
9759
9760         * config/rs6000/constraints.md (wb constraint): Document unused
9761         w<x> constraint.
9762         (we constraint): Likewise.
9763         (wo constraint): Likewise.
9764         (wp constraint): New constraint for IEEE 128-bit floating point in
9765         VSX registers.
9766         (wq constraint): Likewise.
9767
9768         * config/rs6000/predicates.md (easy_fp_constant): Add support for
9769         IEEE 128-bit floating point in VSX registers.
9770         (easy_scalar_constant): Likewise.
9771
9772         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
9773         constraints (wp, wq) for IEEE 128-bit floating point in VSX
9774         registers.
9775         (rs6000_init_hard_regno_mode_ok): Likewise.
9776
9777         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
9778         floating point in VSX registers.
9779         (VSX_L): Likewise.
9780         (VSX_M): Likewise.
9781         (VSX_M2): Likewise.
9782         (VSm): Likewise.
9783         (VSs): Likewise.
9784         (VSr): Likewise.
9785         (VSa): Likewise.
9786         (VSv): Likewise.
9787         (vsx_le_permute_<mode>): Add support to properly swap bytes for
9788         IEEE 128-bit floating point in VSX registers on little endian.
9789         (vsx_le_undo_permute_<mode>): Likewise.
9790         (vsx_le_perm_load_<mode>): Likewise.
9791         (vsx_le_perm_store_<mode>): Likewise.
9792         (splitters for IEEE 128-bit fp moves): Likewise.
9793
9794         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
9795         wq constraints.
9796
9797         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
9798         floating point in VSX registers.
9799         (VM2): Likewise.
9800
9801         * doc/md.text (Machine Constraints): Document wp and wq
9802         constraints on PowerPC.
9803
9804 2015-08-03  Jeff Law  <law@redhat.com>
9805
9806         PR middle-end/66314
9807         PR gcov-profile/66899
9808         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
9809         iterate over the jump threading paths when an element in the
9810         jump threading paths array is eliminated.
9811
9812 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
9813
9814         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
9815
9816 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
9817
9818         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
9819         is_use_properly_guarded the variable def_preds.  Free its
9820         contents before returning.
9821         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
9822         (is_use_properly_guarded): Replace local variable def_preds with
9823         a parameter.  Adjust accordingly.  Only update *def_preds if it's
9824         the empty vector.
9825
9826 2015-08-03  Richard Biener  <rguenther@suse.de>
9827
9828         * genmatch.c (simplify::for_subst_vec): New member.
9829         (binary_ok): New helper for for lowering.
9830         (lower_for): Delay substituting operators into result expressions
9831         if we can merge the results eventually again.
9832         (capture_info::walk_result): Adjust for user_id appearing as
9833         result expression operator.
9834         (expr::gen_transform): Likewise.
9835         (dt_simplify::gen_1): Likewise.
9836         (dt_simplify::gen): Pass not substituted operators to tail
9837         functions or initialize local variable with it.
9838         (decision_tree::gen): Adjust function signature.
9839         * match.pd: Fix tests against global code and add default
9840         cases to switch stmts.
9841
9842 2015-08-03  Richard Biener  <rguenther@suse.de>
9843
9844         * genmatch.c (dt_simplify::gen): Create captures array
9845         with an initializer.
9846
9847 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9848
9849         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
9850         the host compiler is affected by placement new aliasing bug.
9851         * configure: Regenerate.
9852         * Makefile.in (ALIASING_FLAGS): New variable.
9853         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
9854
9855 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9856
9857         PR target/66731
9858         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
9859         (negmulsf3_vfp): Likewise.
9860         (muldf3negdf_vfp): Disable for -frounding-math.
9861         (mulsf3negsf_vfp): Likewise.
9862         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
9863         fix MULT cost with -frounding-math.
9864
9865 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9866
9867         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
9868         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
9869         explicit.  Prefer to add the flag whenever possible.
9870         (noce_process_if_block): Try noce_try_store_flag_constants before
9871         noce_try_cmove.
9872
9873 2015-08-03  Richard Biener  <rguenther@suse.de>
9874
9875         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
9876         New hash-map to record equivalent transforms.
9877         (dt_node::analyze): Populate the equivalent transforms hash-map.
9878         (dt_simplify::info): Add reference to hash-map entry.
9879         (dt_simplify::gen): If we have split out a function for the
9880         transform, generate a call to it.
9881         (sinfo_hashmap_traits::hash): New function.
9882         (compare_op): New helper function for ...
9883         (sinfo_hashmap_traits::equal_keys): ... this new function.
9884         (decision_tree::gen): Split out common equivalent transforms
9885         into functions.
9886
9887 2015-08-03  Richard Biener  <rguenther@suse.de>
9888
9889         * gimple-fold.c (fold_gimple_assign): Remove folding of
9890         the comparison in COND_EXPRs.
9891
9892 2015-08-03  Richard Biener  <rguenther@suse.de>
9893
9894         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
9895         on the rhs of assignments first simplify the embedded
9896         GENERIC condition.
9897
9898 2015-08-03  Richard Biener  <rguenther@suse.de>
9899
9900         PR tree-optimization/66917
9901         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
9902         field.
9903         (DR_VECT_AUX): New macro.
9904         (set_dr_misalignment): Adjust.
9905         (dr_misalignment): Likewise.
9906         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9907         Compute whether the base is at least element aligned.
9908         * tree-vect-stmts.c (ensure_base_align): Adjust.
9909         (vectorizable_store): If the base is not element aligned
9910         preserve alignment of the original access if misalignment is unknown.
9911         (vectorizable_load): Likewise.
9912
9913 2015-08-02  Martin Sebor  <msebor@redhat.com>
9914
9915         * c-family/c.opt (-Wframe-address): New warning option.
9916         * doc/invoke.texi (Wframe-address): Document it.
9917         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
9918         Clarify possible effects of calling the functions with non-zero
9919         arguments and mention -Wframe-address.
9920         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
9921
9922 2015-08-01  Michael Collison  <michael.collison@linaro.org
9923             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9924
9925         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
9926         (*arm_umin_cmp): Likewise.
9927
9928 2015-08-01  Caroline Tice  <cmtice@google.com>
9929
9930         PR 66521
9931         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
9932         global variables.
9933         (vtbl_find_mangled_name):  New function.
9934         (vtbl_register_mangled_name):  New function.
9935         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
9936         mangled name in mangled name vectors.
9937         (find_or_create_vtbl_map_node):  Ditto.
9938         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
9939         update recursion_depth on function entry; pass it to every recursive
9940         call; automatically exit if depth > 25 (give up looking at that point).
9941         (verify_bb_vtables):  Initialize recursion_depth and pass it to
9942         var_is_used_for_virtual_call_p.
9943         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
9944         global variable decls.
9945         (vtbl_register_mangled_name): New extern function decl.
9946
9947 2015-08-01  Tom de Vries  <tom@codesourcery.com>
9948
9949         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
9950         function.
9951         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
9952         Declare.
9953         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
9954         operation_no_trapping_overflow.  Allow non-overflow operations.
9955         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
9956         operations.
9957
9958 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9959
9960         PR target/67049
9961         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
9962
9963 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9964
9965         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
9966         Enable for TARGET_32BIT.
9967         (*if_move_neg): Likewise.
9968
9969 2015-07-31  Nick Clifton  <nickc@redhat.com>
9970
9971         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
9972         Returns true for __model__.
9973         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9974
9975 2015-07-31  Alan Modra  <amodra@gmail.com>
9976
9977         PR target/66870
9978         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
9979         (rs6000_emit_prologue): Set it.
9980         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
9981
9982 2015-07-31  Richard Biener  <rguenther@suse.de>
9983
9984         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
9985         -> X == (C1 ^ C2) which is already implemented in match.pd.
9986         Remove redundant dispatching to fold_relational_const.
9987         Move unordered self and NaN compares ...
9988         * match.pd: ... as patterns here.  Remove some stray captures
9989         and add a comment.
9990
9991 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
9992
9993         * config/i386/i386.c
9994         (bdesc_special_args): Convert mask type from signed to unsigned for
9995         masked builtins.
9996         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
9997         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
9998         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
9999         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
10000         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
10001         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
10002         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
10003         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
10004         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
10005         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
10006         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
10007         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
10008         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
10009         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
10010         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
10011         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
10012         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
10013         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
10014         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
10015         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
10016         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
10017         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
10018         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
10019         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
10020         * config/i386/i386-builtin-types.def
10021         (V16QI_FTYPE_V16SI): Remove.
10022         (V8DF_FTYPE_V8SI): Ditto.
10023         (V8HI_FTYPE_V8DI): Ditto.
10024         (V8SI_FTYPE_V8DI): Ditto.
10025         (V8SF_FTYPE_V8DF): Ditto.
10026         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
10027         (V16HI_FTYPE_V16SI): Ditto.
10028         (V16SF_FTYPE_V16HI): Ditto.
10029         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
10030         (V16SF_FTYPE_V16SI): Ditto.
10031         (V4DI_FTYPE_V4DI): Ditto.
10032         (V16SI_FTYPE_V16SF): Ditto.
10033         (V16SF_FTYPE_FLOAT): Ditto.
10034         (V8DF_FTYPE_DOUBLE): Ditto.
10035         (V8DI_FTYPE_INT64): Ditto.
10036         (V8DI_FTYPE_V4DI): Ditto.
10037         (V16QI_FTYPE_V8DI): Ditto.
10038         (UINT_FTYPE_V4SF): Ditto.
10039         (UINT64_FTYPE_V4SF): Ditto.
10040         (UINT_FTYPE_V2DF): Ditto.
10041         (UINT64_FTYPE_V2DF): Ditto.
10042         (V16SI_FTYPE_V16SI): Ditto.
10043         (V8DI_FTYPE_V8DI): Ditto.
10044         (V16SI_FTYPE_PV4SI): Ditto.
10045         (V16SF_FTYPE_PV4SF): Ditto.
10046         (V8DI_FTYPE_PV2DI): Ditto.
10047         (V8DF_FTYPE_PV2DF): Ditto.
10048         (V4DI_FTYPE_PV2DI): Ditto.
10049         (V4DF_FTYPE_PV2DF): Ditto.
10050         (V16SI_FTYPE_PV2SI): Ditto.
10051         (V16SF_FTYPE_PV2SF): Ditto.
10052         (V8DI_FTYPE_PV4DI): Ditto.
10053         (V8DF_FTYPE_PV4DF): Ditto.
10054         (V8SF_FTYPE_FLOAT): Ditto.
10055         (V4SF_FTYPE_FLOAT): Ditto.
10056         (V4DF_FTYPE_DOUBLE): Ditto.
10057         (V8SF_FTYPE_PV4SF): Ditto.
10058         (V8SI_FTYPE_PV4SI): Ditto.
10059         (V4SI_FTYPE_PV2SI): Ditto.
10060         (V8SF_FTYPE_PV2SF): Ditto.
10061         (V8SI_FTYPE_PV2SI): Ditto.
10062         (V16SF_FTYPE_PV8SF): Ditto.
10063         (V16SI_FTYPE_PV8SI): Ditto.
10064         (V8DI_FTYPE_V8SF): Ditto.
10065         (V4DI_FTYPE_V4SF): Ditto.
10066         (V2DI_FTYPE_V4SF): Ditto.
10067         (V64QI_FTYPE_QI): Ditto.
10068         (V32HI_FTYPE_HI): Ditto.
10069         (V8UHI_FTYPE_V8UHI): Ditto.
10070         (V16UHI_FTYPE_V16UHI): Ditto.
10071         (V32UHI_FTYPE_V32UHI): Ditto.
10072         (V2UDI_FTYPE_V2UDI): Ditto.
10073         (V4UDI_FTYPE_V4UDI): Ditto.
10074         (V8UDI_FTYPE_V8UDI): Ditto.
10075         (V4USI_FTYPE_V4USI): Ditto.
10076         (V8USI_FTYPE_V8USI): Ditto.
10077         (V16USI_FTYPE_V16USI): Ditto.
10078         (V2DF_FTYPE_V2DF_UINT64): Ditto.
10079         (V2DI_FTYPE_V2DF_V2DF): Ditto.
10080         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
10081         (V8DF_FTYPE_V8DF_V8DI): Ditto.
10082         (V4SF_FTYPE_V4SF_UINT64): Ditto.
10083         (V4SI_FTYPE_V4SF_V4SF): Ditto.
10084         (V16SF_FTYPE_V16SF_V16SI): Ditto.
10085         (V64QI_FTYPE_V32HI_V32HI): Ditto.
10086         (V32HI_FTYPE_V16SI_V16SI): Ditto.
10087         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
10088         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
10089         (V32HI_FTYPE_V64QI_V64QI): Ditto.
10090         (V32HI_FTYPE_V32HI_V32HI): Ditto.
10091         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
10092         (V16SI_FTYPE_V16SI_V4SI): Ditto.
10093         (V16SI_FTYPE_V16SI_V16SI): Ditto.
10094         (V16SI_FTYPE_V32HI_V32HI): Ditto.
10095         (V16SI_FTYPE_V16SI_SI): Ditto.
10096         (V8DI_FTYPE_V8DI_V8DI): Ditto.
10097         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
10098         (V8DI_FTYPE_V16SI_V16SI): Ditto.
10099         (V8DI_FTYPE_V8DI_V2DI): Ditto.
10100         (QI_FTYPE_QI): Ditto.
10101         (SI_FTYPE_SI): Ditto.
10102         (DI_FTYPE_DI): Ditto.
10103         (QI_FTYPE_QI_QI): Ditto.
10104         (QI_FTYPE_QI_INT): Ditto.
10105         (HI_FTYPE_HI_INT): Ditto.
10106         (SI_FTYPE_SI_INT): Ditto.
10107         (DI_FTYPE_DI_INT): Ditto.
10108         (HI_FTYPE_V16QI_V16QI): Ditto.
10109         (SI_FTYPE_V32QI_V32QI): Ditto.
10110         (DI_FTYPE_V64QI_V64QI): Ditto.
10111         (QI_FTYPE_V8HI_V8HI): Ditto.
10112         (HI_FTYPE_V16HI_V16HI): Ditto.
10113         (SI_FTYPE_V32HI_V32HI): Ditto.
10114         (QI_FTYPE_V4SI_V4SI): Ditto.
10115         (QI_FTYPE_V8SI_V8SI): Ditto.
10116         (QI_FTYPE_V2DI_V2DI): Ditto.
10117         (QI_FTYPE_V4DI_V4DI): Ditto.
10118         (QI_FTYPE_V8DI_V8DI): Ditto.
10119         (HI_FTYPE_V16SI_V16SI): Ditto.
10120         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
10121         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
10122         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
10123         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
10124         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
10125         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
10126         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
10127         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
10128         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
10129         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
10130         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
10131         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
10132         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
10133         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
10134         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
10135         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
10136         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
10137         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
10138         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
10139         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
10140         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
10141         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
10142         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
10143         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
10144         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
10145         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
10146         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
10147         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
10148         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
10149         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
10150         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
10151         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
10152         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
10153         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
10154         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
10155         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
10156         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
10157         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
10158         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
10159         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
10160         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
10161         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
10162         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
10163         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
10164         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
10165         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
10166         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
10167         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
10168         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
10169         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
10170         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
10171         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
10172         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
10173         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
10174         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
10175         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
10176         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
10177         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
10178         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
10179         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
10180         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
10181         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10182         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10183         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10184         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
10185         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10186         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10187         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10188         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10189         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10190         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10191         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10192         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10193         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10194         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
10195         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10196         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
10197         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
10198         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
10199         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10200         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10201         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
10202         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
10203         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
10204         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10205         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
10206         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
10207         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10208         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10209         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10210         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
10211         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10212         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
10213         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
10214         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10215         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10216         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10217         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10218         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
10219         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
10220         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
10221         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10222         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10223         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10224         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10225         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
10226         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
10227         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
10228         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
10229         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10230         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10231         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10232         (HI_FTYPE_HI): Ditto.
10233         (HI_FTYPE_V16QI): Ditto.
10234         (SI_FTYPE_V32QI): Ditto.
10235         (DI_FTYPE_V64QI): Ditto.
10236         (QI_FTYPE_V8HI): Ditto.
10237         (HI_FTYPE_V16HI): Ditto.
10238         (SI_FTYPE_V32HI): Ditto.
10239         (QI_FTYPE_V4SI): Ditto.
10240         (QI_FTYPE_V8SI): Ditto.
10241         (HI_FTYPE_V16SI): Ditto.
10242         (QI_FTYPE_V2DI): Ditto.
10243         (QI_FTYPE_V4DI): Ditto.
10244         (QI_FTYPE_V8DI): Ditto.
10245         (V16QI_FTYPE_HI): Ditto.
10246         (V32QI_FTYPE_SI): Ditto.
10247         (V64QI_FTYPE_DI): Ditto.
10248         (V8HI_FTYPE_QI): Ditto.
10249         (V16HI_FTYPE_HI): Ditto.
10250         (V32HI_FTYPE_SI): Ditto.
10251         (V4SI_FTYPE_QI): Ditto.
10252         (V4SI_FTYPE_HI): Ditto.
10253         (V8SI_FTYPE_QI): Ditto.
10254         (V8SI_FTYPE_HI): Ditto.
10255         (V2DI_FTYPE_QI): Ditto.
10256         (V4DI_FTYPE_QI): Ditto.
10257         (HI_FTYPE_HI_HI): Ditto.
10258         (SI_FTYPE_SI_SI): Ditto.
10259         (DI_FTYPE_DI_DI): Ditto.
10260         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10261         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10262         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10263         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10264         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10265         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10266         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10267         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10268         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10269         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10270         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10271         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10272         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10273         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10274         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10275         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10276         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10277         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10278         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10279         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10280         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
10281         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
10282         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
10283         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
10284         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
10285         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
10286         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
10287         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
10288         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
10289         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
10290         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
10291         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
10292         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
10293         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
10294         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
10295         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
10296         (V16SI_FTYPE_HI): Ditto.
10297         (V8DI_FTYPE_QI): Ditto.
10298         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10299         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10300         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10301         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10302         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10303         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10304         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10305         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10306         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10307         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10308         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10309         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10310         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10311         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10312         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10313         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
10314         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
10315         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10316         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10317         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10318         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10319         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10320         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10321         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10322         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10323         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
10324         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
10325         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
10326         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10327         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10328         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10329         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10330         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10331         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
10332         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
10333         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
10334         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10335         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10336         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10337         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
10338         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10339         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10340         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
10341         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
10342         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10343         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10344         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10345         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10346         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10347         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10348         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10349         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10350         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
10351         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10352         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10353         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10354         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10355         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10356         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10357         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10358         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10359         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10360         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10361         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10362         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10363         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
10364         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
10365         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
10366         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10367         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
10368         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
10369         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
10370         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10371         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
10372         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
10373         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
10374         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
10375         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
10376         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10377         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
10378         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
10379         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10380         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10381         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10382         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10383         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10384         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10385         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10386         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10387         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10388         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10389         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10390         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10391         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10392         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10393         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10394         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10395         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10396         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10397         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10398         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10399         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10400         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10401         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10402         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10403         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10404         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10405         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10406         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10407         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10408         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10409         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10410         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10411         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10412         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10413         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
10414         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
10415         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
10416         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10417         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10418         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10419         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
10420         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10421         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10422         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10423         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10424         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10425         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10426         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10427         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10428         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
10429         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
10430         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
10431         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10432         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10433         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10434         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10435         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10436         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10437         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10438         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10439         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10440         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10441         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10442         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10443         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10444         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10445         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10446         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10447         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10448         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10449         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10450         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10451         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10452         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
10453         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
10454         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
10455         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10456         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10457         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10458         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10459         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10460         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10461         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10462         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10463         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
10464         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10465         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10466         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
10467         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10468         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10469         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
10470         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
10471         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
10472         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10473         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10474         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
10475         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10476         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10477         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10478         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10479         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10480         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10481         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10482         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10483         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10484         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10485         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
10486         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10487         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10488         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10489         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10490         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10491         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10492         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10493         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10494         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10495         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10496         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10497         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10498         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10499         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10500         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10501         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10502         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10503         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10504         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10505         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10506         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10507         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10508         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10509         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10510         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10511         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
10512         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10513         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10514         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10515         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10516         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10517         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10518         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10519         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10520         (QI_FTYPE_V8DF_INT_QI): Ditto.
10521         (QI_FTYPE_V4DF_INT_QI): Ditto.
10522         (QI_FTYPE_V2DF_INT_QI): Ditto.
10523         (HI_FTYPE_V16SF_INT_HI): Ditto.
10524         (QI_FTYPE_V8SF_INT_QI): Ditto.
10525         (QI_FTYPE_V4SF_INT_QI): Ditto.
10526         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
10527
10528 2015-07-31  Richard Biener  <rguenther@suse.de>
10529
10530         * gimple-fold.c (fold_gimple_assign): Remove folding of
10531         GIMPLE_BINARY_RHS.
10532
10533 2015-07-31  Tom de Vries  <tom@codesourcery.com>
10534
10535         PR tree-optimization/66846
10536         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
10537         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
10538         (expand_omp_target) [ENABLE_CHECKING]: Same.
10539         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
10540         cfun if !LOOPS_NEED_FIXUP.
10541         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
10542         that omp_for already has its own loop struct.
10543         * tree-parloops.c (create_phi_for_local_result)
10544         (create_call_for_reduction): Handle simple latch bb.
10545         (create_parallel_loop): Add simple latch bb to preserve
10546         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
10547         (gen_parallel_loop): Remove call to cancel_loop_tree.
10548         (parallelize_loops): Skip loops that are inner loops of parallelized
10549         loops.
10550         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
10551         verify_loop_structure.
10552
10553 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10554
10555         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
10556         * config/v850/v850.md (RV_REGNUM): New constants.
10557         * config/v850/v850.c (v850_libcall_value): New functions.
10558         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
10559         (TARGET_LIBCALL_VALUE): Define.
10560
10561 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10562
10563         * rtl.h (lowpart_subreg): Move in file.
10564         * loop-iv.c (lowpart_subreg): Move to...
10565         * simplify-rtx.c (lowpart_subreg): ...here.
10566           (simplify_binary_operation_1): Use lowpart_subreg instead of
10567           simplify_gen_subreg.
10568         * expr.c (expand_expr_real_2): Ditto.
10569         * emit-rtl.c (gen_lowpart_common): Ditto.
10570         * combine.c (gen_lowpart_for_combine): Ditto.
10571         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
10572           expand_debug_source_expr): Ditto.
10573
10574 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
10575
10576         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
10577         (expand_builtin_atomic_clear): Remove support for atomic_clear
10578         pattern.
10579
10580 2015-07-30  Richard Biener  <rguenther@suse.de>
10581
10582         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
10583         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
10584         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
10585         redundant operand canonicalization.
10586
10587 2015-07-30  David Sherwood  <david.sherwood@arm.com>
10588
10589         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
10590         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
10591         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
10592         * config/arm/arm.c (neon_valid_immediate): Likewise.
10593         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
10594         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
10595         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
10596         (expand_vec_perm_vpshufb2_vpermq): Likewise.
10597         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
10598         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
10599         * config/i386/sse.md
10600         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
10601         (*ssse3_palignr<mode>_perm): Likewise.
10602         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
10603         * config/spu/spu.c (arith_immediate_p): Likewise.
10604         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10605         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
10606
10607 2015-07-30  Richard Biener  <rguenther@suse.de>
10608
10609         * genmatch.c (decision_tree::gen_gimple): Merge with ...
10610         (decision_tree::gen_generic): ... this into ...
10611         (decision_tree::gen): ... this.
10612         (main): Adjust callers.
10613
10614 2015-07-30  Richard Biener  <rguenther@suse.de>
10615
10616         * genmatch.c (verbose): New global.
10617         (warning_at): Add overload with source_location.
10618         (capture_info::capture_info): Add bool whether generating gimple
10619         or generic.  Add gimple member.
10620         (capture_info::cinfo): Add capture member.
10621         (capture_info::walk_match): Record capture.  Warn on
10622         non-captured leafs.
10623         (capture_info::walk_c_expr): Add more fragments captures cannot
10624         escape through.  Warn on escaped captures.
10625         (dt_simplify::gen_1): Warn on operands we force to have no
10626         side-effects.
10627         (main): Initialize verbose.
10628         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
10629
10630 2015-07-30  Richard Biener  <rguenther@suse.de>
10631
10632         PR middle-end/67053
10633         * match.pd: Allow both operands to independently have conversion
10634         when simplifying compares of addresses.
10635
10636 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
10637
10638         PR target/66217
10639         PR target/67045
10640         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
10641         around those cases that need one.
10642
10643 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
10644
10645         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
10646
10647 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
10648
10649         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
10650         New.  Copied from config/i386/gnu-user.h.
10651         (ASM_COMMENT_START): Likewise.
10652         (DBX_REGISTER_NUMBER): Likewise.
10653
10654 2015-07-29  Richard Biener  <rguenther@suse.de>
10655
10656         * gimple-fold.c (fold_gimple_cond): Remove.
10657         (fold_stmt_1): Do not call it.
10658
10659 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
10660
10661         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
10662         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
10663
10664         * config/aarch64/aarch64-modes.def: Add HFmode.
10665
10666         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
10667         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
10668
10669         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
10670         aarch64_promoted_type): New.
10671
10672         (aarch64_float_const_representable_p): Disable HFmode.
10673         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
10674         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
10675         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
10676
10677         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
10678         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
10679
10680         * config/aarch64/iterators.md (GPF_F16): New.
10681
10682 2015-07-29  Richard Biener  <rguenther@suse.de>
10683
10684         * match.pd: Merge address comparison patterns and make them
10685         handle some more cases.
10686
10687 2015-07-29  Richard Biener  <rguenther@suse.de>
10688
10689         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
10690         (parser::parse_capture): Add bool argument on whether to reject
10691         unknown captures.
10692         (parser::parse_expr): Adjust.
10693         (parser::parse_op): Likewise.
10694         (parser::parse_pattern): Likewise.
10695
10696 2015-07-29  Richard Biener  <rguenther@suse.de>
10697
10698         * gimple-fold.c (has_use_on_stmt): New function.
10699         (replace_stmt_with_simplification): Use it to allow
10700         abnormals originally referenced in the stmt.
10701         (fold_stmt_1): Canonicalize operand order.
10702
10703 2015-07-28  David Sherwood  <david.sherwood@arm.com>
10704
10705         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
10706         GET_MODE_INNER unconditionally.
10707         * config/spu/spu.c (arith_immediate_p): Likewise.
10708         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
10709         * expmed.c (synth_mult): Remove check for VOIDmode result from
10710         GET_MODE_INNER.
10711         (expand_mult_const): Likewise.
10712         * fold-const.c (fold_binary_loc): Replace call to element_precision
10713         with call to GET_MODE_PRECISION.
10714         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
10715         m->name.
10716         (emit_mode_inner): Likewise.
10717         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
10718         result check.
10719         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
10720         (GET_MODE_UNIT_PRECISION): Likewise.
10721         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
10722         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10723         * stor-layout.c (bitwise_type_for_mode): Update assert.
10724         (element_precision): Remove.
10725
10726 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10727
10728         * target-insns.def (reload_load_address): New targetm instruction
10729         pattern.
10730         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
10731
10732 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10733
10734         * target-insns.def (atomic_test_and_set): New targetm instruction
10735         pattern.
10736         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
10737         HAVE_*/gen_* interface.
10738
10739 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10740
10741         * target-insns.def (can_extend, ptr_extend): New targetm instruction
10742         patterns.
10743         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
10744         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10745         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10746         * rtlanal.c (nonzero_bits1): Likewise.
10747         (num_sign_bit_copies1): Likewise.
10748
10749 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10750
10751         * target-insns.def (eh_return): New targetm instruction pattern.
10752         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
10753         interface.
10754         * function.c (thread_prologue_and_epilogue_insns): Remove
10755         preprocessor condition.
10756
10757 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10758
10759         * target-insns.def (indirect_jump): New targetm instruction pattern.
10760         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
10761         interface.
10762
10763 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10764
10765         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
10766         instead of nonimmediate_operand.  Remove C condiition.
10767
10768 2015-07-28  Richard Biener  <rguenther@suse.de>
10769
10770         * match.pd: Add more simplification of address comparisons.
10771
10772 2015-07-28  Richard Biener  <rguenther@suse.de>
10773
10774         * match.pd: Re-order two cases in comparison with max/min
10775         value simplification to make it apply for bools.
10776
10777 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10778
10779         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
10780         Handle simple SIGN_EXTEND or ZERO_EXTEND.
10781         (aarch64_rtx_costs): Properly strip extend or extract before
10782         passing down to rtx costs again.
10783
10784 2015-07-28  Nick Clifton  <nickc@redhat.com>
10785
10786         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
10787         Optimizes the case where -mes0 is active and a constant symbolic
10788         address is used.
10789         * config/rl78/rl78-protos.h: Prototype the new function.
10790         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
10791
10792 2015-07-28  Tom de Vries  <tom@codesourcery.com>
10793
10794         * tree-parloops.c (reduc_stmt_res): New function.
10795         (initialize_reductions, add_field_for_reduction)
10796         (create_phi_for_local_result, create_loads_for_reductions)
10797         (create_stores_for_reduction, build_new_reduction): Handle case that
10798         reduc_stmt is a phi.
10799         (gather_scalar_reductions): Allow double_reduc reductions.
10800
10801 2015-07-28  Richard Biener  <rguenther@suse.de>
10802
10803         * fold-const.c (fold_comparison): Remove equality folding
10804         of decl addresses ...
10805         * match.pd: ... here and merge with existing pattern.
10806
10807 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10808
10809         PR tree-optimization/66828
10810         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
10811         from int64_t to uint64_t.
10812
10813 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10814
10815         * opts-common.c (read_cmdline_option): List DriverOnly enum values
10816         as valid only in the error message of the driver, not in the
10817         messages of the language compilers.
10818
10819 2015-07-27  Tom de Vries  <tom@codesourcery.com>
10820
10821         * tree-parloops.c (gather_scalar_reductions): Simplify function
10822         structure.
10823
10824 2015-07-27  Marek Polacek  <polacek@redhat.com>
10825
10826         * ipa-devirt.c (types_same_for_odr): Fix typo.
10827
10828 2015-07-27  Jason Merrill  <jason@redhat.com>
10829
10830         PR debug/66468
10831         * dwarf2out.c (gen_inlined_subroutine_die): Check
10832         cgraph_function_possibly_inlined_p.
10833
10834 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10835
10836         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
10837         Place integer variant first.
10838         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10839
10840 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10841
10842         PR/63870
10843         * config/arm/arm-builtins.c (enum arm_builtins):
10844         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
10845         (ARM_BUILTIN_NEON_BASE): Rename macro to....
10846         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
10847         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
10848         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
10849
10850 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10851
10852         PR/63870
10853         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
10854         Add qualifier_lane_index.
10855         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
10856         (arm_getlane_qualifiers): Use qualifier_lane_index.
10857         (arm_lanemac_qualifiers): Rename to...
10858         (arm_mac_n_qualifiers): ...this.
10859         (LANEMAC_QUALIFIERS): Rename to...
10860         (MAC_N_QUALIFIERS): ...this.
10861         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
10862         (arm_setlane_qualifiers): Use qualifier_lane_index.
10863         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
10864         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
10865         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
10866         (arm_expand_neon_builtin): Handle qualifier_lane_index.
10867
10868         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
10869         * config/arm/arm.c (bounds_check): Likewise, improve error message.
10870         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
10871         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
10872         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
10873         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
10874         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
10875         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
10876         qualifiers to TERNOP_IMM.
10877         (vdup_lane): Change qualifiers to GETLANE.
10878         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
10879         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
10880         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
10881         vqdmlsl_n): Change qualifiers to MAC_N.
10882
10883         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
10884         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
10885         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
10886         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
10887         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
10888         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
10889         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
10890         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
10891         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
10892         Remove call to neon_lane_bounds.
10893
10894 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10895
10896         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10897         Place integer variant first.
10898
10899 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
10900
10901         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
10902         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
10903         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
10904         for armv6kz targets.
10905         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
10906         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
10907         (FL_FOR_ARCH6ZK): Remove.
10908         (FL_FOR_ARCH6KZ): New.
10909         (arm_arch6zk): New declaration.
10910         * config/arm/arm-tables.opt: Regenerate.
10911         * config/arm/arm.c (arm_arch6kz): New.
10912         (arm_option_override): Set arm_arch6kz.
10913         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
10914         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
10915         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
10916
10917 2015-07-27  Marek Polacek  <polacek@redhat.com>
10918
10919         PR c++/66555
10920         PR c/54979
10921         * doc/invoke.texi: Document -Wtautological-compare.
10922
10923 2015-07-27  Richard Biener  <rguenther@suse.de>
10924
10925         * genmatch.c (decision_tree::gen_gimple): Split out large
10926         subtrees into separate functions.
10927         (decision_tree::gen_generic): Likewise.
10928
10929 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
10930
10931         * config/alpha/alpha.c: Use SUBREG_P predicate.
10932         * config/alpha/predicates.md: Ditto.
10933
10934 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10935
10936         * config.host (s390*-*-*): Include driver-native.c only when
10937         building with s390* as host *and* target.
10938
10939 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
10940
10941         PR target/66930
10942         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
10943         T bit register modified_between_p check.
10944
10945 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10946
10947         * config/i386/i386.c: Use SUBREG_P predicate.
10948         * config/i386/i386.md: Ditto.
10949         * config/i386/sse.md: Ditto.
10950         * config/i386/predicates.md: Ditto.
10951
10952 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10953
10954         PR target/67004
10955         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
10956         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
10957
10958 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10959
10960         * Makefile.in: Remove use of TREEBROWSER.
10961         * config.in: Regenerated.
10962         * configure: Regenerated.
10963         * configure.ac: Remove definition of TREEBROWSER.
10964         * tree-browser.c: Removed.
10965         * tree-browser.def: Removed.
10966
10967 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10968
10969         * graphite-scop-detection.c: Include gimple-pretty-print.h.
10970         (stmt_simple_for_scop_p): Print when a stmt is not handled in
10971         Graphite.
10972         (scopdet_basic_block_info): Print when a loop or bb cannot be
10973         represented in Graphite.
10974
10975 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10976
10977         PR target/66648
10978         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
10979         execution guard when min_size is less than size_needed.
10980
10981 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10982
10983         * doc/install.texi: Document supported versions of ISL.
10984
10985 2015-07-25  Jeff Law  <law@redhat.com>
10986
10987         Revert:
10988         PR lto/66752
10989         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10990         unable to find X NE 0 in the tables, return X as the simplified
10991         condition.
10992         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10993         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10994         to VISISTED_BBS.  */
10995         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10996         after removing the control flow statement and unnecessary edges.
10997
10998 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
10999
11000         Revert:
11001         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
11002
11003         PR rtl-optimization/64164
11004         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11005         * tree-ssa-copyrename.c: Removed.
11006         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11007         -ftree-coalesce-vars.
11008         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11009         * common.opt (ftree-copyrename): Ignore.
11010         (ftree-coalesce-inlined-vars): Likewise.
11011         * doc/invoke.texi: Remove the ignored options above.
11012         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11013         * tree-ssa-coalesce.h: ... here.
11014         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11015         headers required by it.
11016         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11017         across variables when flag_tree_coalesce_vars.  Check register
11018         use and promoted modes to allow coalescing.  Moved to
11019         tree-ssa-coalesce.c.
11020         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11021         with its member functions to tree-ssa-coalesce.c.
11022         (var_map_base_init): Likewise.  Renamed to
11023         compute_samebase_partition_bases.
11024         (partition_view_normal): Drop want_bases parameter.
11025         (partition_view_bitmap): Likewise.
11026         * tree-ssa-live.h: Adjust declarations.
11027         * tree-ssa-coalesce.c: Include explow.h.
11028         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11029         default defs at the entry point.
11030         (dump_part_var_map): New.
11031         (compute_optimized_partition_bases): New, called by...
11032         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11033         of compute_samebase_partition_bases.  Adjust.
11034         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11035         * cfgexpand.c (leader_merge): New.
11036         (get_rtl_for_parm_ssa_default_def): New.
11037         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11038         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11039         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11040         redundant MEM attr setting.
11041         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11042         from...
11043         (expand_one_stack_var): ... this.  New wrapper to check and
11044         skip already expanded SSA partitions.
11045         (record_alignment_for_reg_var): New, factored out of...
11046         (expand_one_var): ... this.
11047         (expand_one_ssa_partition): New.
11048         (adjust_one_expanded_partition_var): New.
11049         (expand_one_register_var): Check and skip already expanded SSA
11050         partitions.
11051         (expand_used_vars): Don't create DECLs for anonymous SSA
11052         names.  Expand all SSA partitions, then adjust all SSA names.
11053         (pass::execute): Replace the loops that set
11054         SA.partition_to_pseudo from partition leaders and cleared
11055         DECL_RTL for multi-location variables, and that which used to
11056         rename vars and set attrs, with one that clears DECL_RTL and
11057         checks that PARMs and RESULTs default_defs match DECL_RTL.
11058         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11059         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11060         * explow.c (promote_ssa_mode): New.
11061         * explow.h (promote_ssa_mode): Declare.
11062         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11063         * function.c: Include cfgexpand.h.
11064         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11065         (use_register_for_parm_decl): Wrapper for the above to
11066         special-case the result_ptr.
11067         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11068         (split_complex_args): Take assign_parm_data_all argument.
11069         Pass it to rtl_for_parm.  Set up rtl and context for split
11070         args.
11071         (assign_parms_augmented_arg_list): Adjust.
11072         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11073         multiple locations.  Recognize split complex args.
11074         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11075         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11076         (assign_parm_setup_block): Prefer SSA-assigned location.
11077         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11078         if stack_parm is NULL.
11079         (assign_parm_setup_stack): Prefer SSA-assigned location.
11080         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11081         rtl before testing for pointer bounds.  Special-case result_ptr.
11082         (expand_function_start): Maybe reset DECL_RTL of result.
11083         Prefer SSA-assigned location for result and static chain.
11084         Factor out DECL_RESULT and SET_DECL_RTL.
11085         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11086         anonymous SSA names.  Use promote_ssa_mode.
11087         (get_temp_reg): Likewise.
11088         (remove_ssa_form): Adjust.
11089         * stor-layout.c (layout_decl): Don't set mem attributes of
11090         non-MEMs.
11091         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11092         and get its reg_usage for reg invalidation.
11093         (compute_bb_dataflow): Pass it insn.
11094         (emit_notes_in_bb): Likewise.
11095
11096 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
11097
11098         * config/i386/i386.c (ix86_va_start): Remove
11099         unneeded !TARGET_64BIT check.
11100         (ix86_gimplify_va_arg): Ditto.
11101
11102 2015-07-24  Tom de Vries  <tom@codesourcery.com>
11103
11104         * graphite-sese-to-poly.c (build_poly_scop): Always call
11105         rewrite_commutative_reductions_out_of_ssa.
11106
11107 2015-07-24  Tom de Vries  <tom@codesourcery.com>
11108
11109         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
11110         flag_associative_math to FLOAT_TYPE_P.  Honour
11111         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
11112
11113 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11114
11115         PR c++/64079
11116         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
11117         and "%qD" in warning_at instead of "%q+D" in warning.
11118
11119 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
11120
11121         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
11122         (ix86_function_abi): Cleanup.
11123
11124 2015-07-24  Michael Darling  <darlingm@gmail.com>
11125
11126         PR other/66259
11127         * acinclude.m4: Reflects renaming of configure.in to configure.ac
11128         * configure: Likewise
11129         * configure.ac: Likewise
11130         * doc/install.texi: Likewise
11131         * doc/tm.texi: Likewise
11132         * doc/tm.texi.in: Likewise
11133
11134 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11135
11136         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
11137         manually swapping values.
11138         * cse.c (fold_rtx): Likewise.
11139         * lra-eliminations.c (form_sum): Likewise.
11140
11141 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
11142
11143         PR target/64003
11144         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
11145         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
11146         (*jcc_1, *jcc_2, jump, simple_return_internal)
11147         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
11148         Set length_nobnd attribute instead of length attribute.
11149         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
11150         (length_nobnd): Remove attribute.
11151         (length): Remove length_nobnd processing.
11152
11153 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
11154
11155         * gimplify.c (omp_default_clause): New function.  Reorganize flow
11156         for clarity. Broken out of ...
11157         (omp_notice_variable): ... here.
11158
11159 2015-07-24  Gary Funck  <gary@intrepid.com>
11160
11161         PR middle-end/66984
11162         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
11163         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
11164
11165 2015-07-24  Tom de Vries  <tom@codesourcery.com>
11166
11167         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
11168         exit-first loop transform.
11169
11170 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
11171
11172         PR 66714
11173         * tree-cfg.c (struct replace_decls_d): New struct.
11174         (replace_block_vars_by_duplicates_1): New function.
11175         (replace_block_vars_by_duplicates): Use it to replace the decls
11176         in the value exprs by duplicates.
11177
11178 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11179
11180         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
11181         -shared, -symbolic, -rdynamic.
11182
11183 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11184
11185         PR target/65711
11186         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
11187         -dynamic-linker within %{!static %{!shared, and -rdynamic within
11188         %{!static.
11189
11190 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
11191
11192         PR ipa/66566
11193         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
11194         edge summary is available.
11195
11196 2015-07-24  Richard Biener  <rguenther@suse.de>
11197
11198         * genmatch.c (struct dt_node): Add statistic fields.
11199         (dt_node::analyze): New method.
11200         (decision_tree::gen_gimple): Call analyze on the root node
11201         and print statistics to stderr.
11202         (decision_tree::gen_generic): Likewise.
11203
11204 2015-07-24  Richard Biener  <rguenther@suse.de>
11205
11206         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
11207         against the highest or lowest possible integer ...
11208         * match.pd: ... as patterns here.
11209
11210 2015-07-24  Richard Biener  <rguenther@suse.de>
11211
11212         * genmatch.c (struct capture_info): Add same_as field.
11213         (capture_info::capture_info): Initialize same_as.
11214         (capture_info::walk_match): Compute same_as.
11215         (capture_info::walk_result): Compute stuff for the leader.
11216         (capture_info::walk_c_expr): Likewise.
11217         (dt_simplify::gen_1): Only look at leaders when deciding
11218         to force no side-effects or emit side-effects of omitted operands.
11219
11220 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11221
11222         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
11223         reg note to the GPR -> FPR save instructions.
11224
11225 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11226
11227         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
11228         cheaper.
11229         (s390_expand_insv): Don't generate risbg pattern for constant zero
11230         sources.
11231         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
11232         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
11233         splitters.
11234
11235 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11236
11237         * config/s390/s390.c (s390_reorg): Clean up handling of processors
11238         with
11239         -mtune=
11240         (s390_issue_rate): Likewise.
11241         (s390_sched_reorder): Likewise.
11242         (s390_sched_variable_issue): Likewise.
11243         (s390_loop_unroll_adjust): Likewise.
11244         (s390_option_override):  Likewise.
11245
11246 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11247
11248         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
11249         processor capabilities with -march=native.
11250         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
11251         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
11252         (S390_TARGET_BITS_STRING): Macro to simplify specs.
11253
11254 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11255
11256         * config/s390/s390.c (s390_issue_rate): Handle
11257         PROCESSOR_2094_Z9_EC.
11258         (s390_option_override): Likewise.
11259         (s390_adjust_priority): Likewise.
11260
11261 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11262
11263         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
11264         when cross compiling.
11265
11266 2015-07-24  Richard Biener  <rguenther@suse.de>
11267
11268         * fold-const.c (maybe_canonicalize_comparison_1): Move
11269         A code CST canonicalization ...
11270         * match.pd: ... to a pattern here.
11271
11272 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
11273
11274         Revert:
11275         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11276         PR target/63521
11277         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11278         (HONOR_REG_ALLOC_ORDER): Define.
11279
11280 2015-07-24  Richard Biener  <rguenther@suse.de>
11281
11282         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
11283         * fold-const.c (fold_comparison): Move parameter does not
11284         alias &local simplification ...
11285         * match.pd: ... as a pattern here.
11286
11287 2015-07-24  Richard Biener  <rguenther@suse.de>
11288
11289         * gimple-fold.c (replace_stmt_with_simplification): Special-case
11290         valueizing call operands.
11291         * gimple-match-head.c (maybe_push_res_to_seq): Take
11292         number of call arguments from ops array.
11293         (do_valueize): New function.
11294         (gimple_simplify): Return true if valueization changed
11295         any operand even if the result didn't simplify further.
11296
11297 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11298
11299         PR middle-end/25530
11300         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
11301
11302 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11303
11304         PR middle-end/25529
11305         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
11306
11307 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11308
11309         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
11310         instruction.
11311
11312 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11313
11314         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
11315         clean up.
11316
11317 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
11318
11319         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
11320         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
11321         targets here.
11322         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
11323         ms_va_list_type_node initialization.
11324
11325 2015-07-23  Jeff Law  <law@redhat.com>
11326
11327         PR lto/66752
11328         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
11329         unable to find X NE 0 in the tables, return X as the simplified
11330         condition.
11331         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
11332         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
11333         to VISISTED_BBS.  */
11334         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
11335         after removing the control flow statement and unnecessary edges.
11336
11337 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11338
11339         * tree-pass.h (get_current_pass_name): Removed.
11340
11341 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
11342
11343         PR rtl-optimization/64164
11344         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11345         * tree-ssa-copyrename.c: Removed.
11346         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11347         -ftree-coalesce-vars.
11348         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11349         * common.opt (ftree-copyrename): Ignore.
11350         (ftree-coalesce-inlined-vars): Likewise.
11351         * doc/invoke.texi: Remove the ignored options above.
11352         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11353         * tree-ssa-coalesce.h: ... here.
11354         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11355         headers required by it.
11356         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11357         across variables when flag_tree_coalesce_vars.  Check register
11358         use and promoted modes to allow coalescing.  Moved to
11359         tree-ssa-coalesce.c.
11360         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11361         with its member functions to tree-ssa-coalesce.c.
11362         (var_map_base_init): Likewise.  Renamed to
11363         compute_samebase_partition_bases.
11364         (partition_view_normal): Drop want_bases parameter.
11365         (partition_view_bitmap): Likewise.
11366         * tree-ssa-live.h: Adjust declarations.
11367         * tree-ssa-coalesce.c: Include explow.h.
11368         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11369         default defs at the entry point.
11370         (dump_part_var_map): New.
11371         (compute_optimized_partition_bases): New, called by...
11372         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11373         of compute_samebase_partition_bases.  Adjust.
11374         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11375         * cfgexpand.c (leader_merge): New.
11376         (get_rtl_for_parm_ssa_default_def): New.
11377         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11378         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11379         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11380         redundant MEM attr setting.
11381         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11382         from...
11383         (expand_one_stack_var): ... this.  New wrapper to check and
11384         skip already expanded SSA partitions.
11385         (record_alignment_for_reg_var): New, factored out of...
11386         (expand_one_var): ... this.
11387         (expand_one_ssa_partition): New.
11388         (adjust_one_expanded_partition_var): New.
11389         (expand_one_register_var): Check and skip already expanded SSA
11390         partitions.
11391         (expand_used_vars): Don't create DECLs for anonymous SSA
11392         names.  Expand all SSA partitions, then adjust all SSA names.
11393         (pass::execute): Replace the loops that set
11394         SA.partition_to_pseudo from partition leaders and cleared
11395         DECL_RTL for multi-location variables, and that which used to
11396         rename vars and set attrs, with one that clears DECL_RTL and
11397         checks that PARMs and RESULTs default_defs match DECL_RTL.
11398         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11399         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11400         * explow.c (promote_ssa_mode): New.
11401         * explow.h (promote_ssa_mode): Declare.
11402         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11403         * function.c: Include cfgexpand.h.
11404         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11405         (use_register_for_parm_decl): Wrapper for the above to
11406         special-case the result_ptr.
11407         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11408         (split_complex_args): Take assign_parm_data_all argument.
11409         Pass it to rtl_for_parm.  Set up rtl and context for split
11410         args.
11411         (assign_parms_augmented_arg_list): Adjust.
11412         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11413         multiple locations.  Recognize split complex args.
11414         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11415         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11416         (assign_parm_setup_block): Prefer SSA-assigned location.
11417         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11418         if stack_parm is NULL.
11419         (assign_parm_setup_stack): Prefer SSA-assigned location.
11420         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11421         rtl before testing for pointer bounds.  Special-case result_ptr.
11422         (expand_function_start): Maybe reset DECL_RTL of result.
11423         Prefer SSA-assigned location for result and static chain.
11424         Factor out DECL_RESULT and SET_DECL_RTL.
11425         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11426         anonymous SSA names.  Use promote_ssa_mode.
11427         (get_temp_reg): Likewise.
11428         (remove_ssa_form): Adjust.
11429         * stor-layout.c (layout_decl): Don't set mem attributes of
11430         non-MEMs.
11431         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11432         and get its reg_usage for reg invalidation.
11433         (compute_bb_dataflow): Pass it insn.
11434         (emit_notes_in_bb): Likewise.
11435
11436 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
11437
11438         PR target/66217
11439         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
11440         prototype.
11441         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
11442         (rs6000_emit_2insn_and): Handle dot forms.
11443         * config/rs6000/rs6000.md (and<mode>3): Adjust.
11444         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
11445         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
11446
11447 2015-07-23  Richard Biener  <rguenther@suse.de>
11448
11449         * generic-match-head.c: Include cgraph.h.
11450         * gimple-match-head.c: Likewise.
11451         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
11452         SSA names.
11453         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
11454         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
11455         pattern.
11456
11457 2015-07-23  Richard Biener  <rguenther@suse.de>
11458
11459         * gimple-fold.c (fold_gimple_cond): Do not require folding
11460         results to pass valid_gimple_rhs_p.
11461         * tree-cfg.h (fold_cond_expr_cond): Remove.
11462         * tree-cfg.c (fold_cond_expr_cond): Likewise.
11463         (make_edges): Do not call it.
11464         * tree-inline.c (tree_function_versioning): Likewise.
11465
11466 2015-07-23  Tom de Vries  <tom@codesourcery.com>
11467
11468         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
11469         vect_force_simple_reduction.
11470         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
11471         (vect_is_simple_reduction_1): Add and handle
11472         need_wrapping_integral_overflow parameter.
11473         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
11474         need_wrapping_integral_overflow parameter.
11475         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
11476         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
11477         decl.
11478
11479 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
11480
11481         PR tree-optimization/66926,66951
11482         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
11483         INNER_LOOP and fix up condition for renaming virtual operands.
11484
11485 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11486
11487         * combine.c (try_combine): Use std::swap instead of manually
11488         swapping.
11489
11490 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
11491
11492         * config/mips/i6400.md: New file.
11493         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
11494         (mips64r6): Likewise.
11495         (i6400): Define.
11496         * config/mips/mips-tables.opt: Regenerate.
11497         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
11498         (mips_issue_rate): Add support for i6400.
11499         (mips_multipass_dfa_lookahead): Likewise.
11500         * config/mips/mips.h (TUNE_I6400): Define.
11501         * config/mips/mips.md: Include i6400.md.
11502         (processor): Add i6400.
11503         * doc/invoke.texi (-march=@var{arch}): Add i6400.
11504
11505 2015-07-23  Richard Biener  <rguenther@suse.de>
11506
11507         PR middle-end/66916
11508         * match.pd: Guard widen and sign-change comparison simplification
11509         with single_use.
11510
11511 2015-07-23  Richard Biener  <rguenther@suse.de>
11512
11513         PR tree-optimization/66945
11514         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
11515         ::before_dom_children): Force the propagators idea of
11516         non-executable edges to materialize, not what the folder
11517         chooses.
11518
11519 2015-07-23  Richard Biener  <rguenther@suse.de>
11520
11521         * gimple.h (gimple_cond_make_false): Use 0 != 0.
11522         (gimple_cond_make_true): Use 1 != 0.
11523
11524 2015-07-22  DJ Delorie  <dj@redhat.com>
11525
11526         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
11527         slashes.
11528
11529         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
11530         (ashrhi3): Likewise.
11531         (lshrhi3): Likewise.
11532         (movhi): Take advantage of zero-extend to load small constants.
11533         (movpsi): Likewise.
11534         (and<mode>3): Likewise.
11535         (zero_extendqihi2): Likewise.
11536         (zero_extendqisi2): New.
11537         * config/msp430/constraints.md (N,O): New.
11538         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
11539
11540 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
11541
11542         PR target/66954
11543         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
11544         to enum feature_priority and feature_list.
11545         (fold_builtin_cpu): Add F_AES to enum processor_features
11546         and isa_names_table.
11547
11548 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11549
11550         PR driver/66737
11551         * config/i386/linux-common.h (MPX_SPEC): Use linker option
11552         for 64bit target only.
11553
11554 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
11555
11556         * config/nvptx/nvptx.c: Expand some comments.
11557
11558 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
11559
11560         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
11561         (cortex_a53_advsimd): ...This.
11562
11563 2015-07-22  Richard Biener  <rguenther@suse.de>
11564
11565         * genmatch.c (expr::gen_transform): Clarify error message
11566         and display location.
11567
11568 2015-07-22  Richard Biener  <rguenther@suse.de>
11569
11570         * genmatch.c (struct operand): Add location member.
11571         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
11572         constructors.
11573         (struct simplify): Remove match_location and result_location
11574         members.
11575         (elsehwere): Adjust.
11576
11577 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
11578
11579         * config/mips/m5100.md: New file.
11580         * config/mips/mips-cpus.def (m5100, m5101): Define.
11581         * config/mips/mips-tables.opt: Regenerate.
11582         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
11583         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
11584         -march=m5101 to -mips32r5.
11585         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
11586         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
11587         !-msoft-float.
11588         * config/mips/mips.md: Include m5100.md.
11589         (processor): Add m5100.
11590         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
11591
11592 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
11593
11594         * config/mips/mips-cpus.def (interaptiv): Define.
11595         * config/mips/mips-tables.opt: Regenerate.
11596         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
11597         -mips32r2.
11598         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
11599         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
11600
11601 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11602
11603         PR target/63521
11604         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11605         (HONOR_REG_ALLOC_ORDER): Define.
11606
11607 2015-07-22  Richard Biener  <rguenther@suse.de>
11608
11609         PR tree-optimization/66952
11610         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
11611         blocks we end up executing unconditionally reset all SSA
11612         info such as range and alignment.
11613         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
11614         * tree-ssanames.c (reset_flow_sensitive_info): New function.
11615
11616 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11617
11618         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
11619         typo in attribute.
11620
11621 2015-07-22  Richard Biener  <rguenther@suse.de>
11622
11623         * genmatch.c (parser::parse_result): Properly handle
11624         match with result operands and conditions.
11625
11626 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11627
11628         PR target/63870
11629         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11630         Add qualifier_struct_load_store_lane_index.
11631         (aarch64_types_loadstruct_lane_qualifiers): Use
11632         qualifier_struct_load_store_lane_index for lane index argument for
11633         last argument.
11634         (aarch64_types_storestruct_lane_qualifiers): Ditto.
11635         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11636         (aarch64_simd_expand_args): Add new argument describing mode of
11637         builtin. Check lane bounds for arguments with
11638         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11639         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
11640         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11641         (aarch64_simd_expand_builtin): Handle arguments with
11642         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
11643         aarch64_simd_expand_args.
11644         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
11645         vst[234]_lane with BUILTIN_VALLDIF.
11646         * config/aarch64/aarch64-simd.md:
11647         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
11648         endianness reversal on lane index.
11649         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
11650         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
11651         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
11652         (vec_store_lanesci_lane<mode>): Ditto.
11653         (vec_store_lanesxi_lane<mode>): Ditto.
11654         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
11655         reversal of lane index.
11656         (aarch64_ld3_lane<mode>): Ditto.
11657         (aarch64_ld4_lane<mode>): Ditto.
11658         (aarch64_st2_lane<mode>): Ditto.
11659         (aarch64_st3_lane<mode>): Ditto.
11660         (aarch64_st4_lane<mode>): Ditto.
11661         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
11662         to qmode. Add new mode parameter. Update uses.
11663         (__LD3_LANE_FUNC): Ditto.
11664         (__LD4_LANE_FUNC): Ditto.
11665         (__ST2_LANE_FUNC): Ditto.
11666         (__ST3_LANE_FUNC): Ditto.
11667         (__ST4_LANE_FUNC): Ditto.
11668
11669 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
11670
11671         * doc/invoke.texi (Language Independent Options): Rename node to
11672         Diagnostic Message Formatting Options.
11673
11674 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
11675
11676         PR ipa/66424.
11677         * lra-remat.c (operand_to_remat): Prevent using insns with input
11678         subregs processed separately by IRA.
11679
11680 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
11681
11682         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
11683         straight loops.
11684         (single_imm_use): Check for iterator node.
11685         (num_imm_uses): Likewise.
11686         * tree-ssa-operands.c (has_zero_uses_1): Delete.
11687         (single_imm_use_1): Check for iterator node.
11688
11689 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
11690             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11691
11692         * configure.ac: Add check for new options in isl-0.15.
11693         * config.in, configure: Rebuilt.
11694         * graphite-blocking.c: Include <isl/constraint.h>
11695         * graphite-interchange.c,  graphite-poly.c: Likewise.
11696         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
11697         * graphite.c: Likewise.
11698         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
11699         <isl/union_set.h>.
11700         * graphite-dependences.c: Include <isl/constraint.h>.
11701         (max_number_of_out_dimensions): Returns isl_stat.
11702         (extend_schedule_1): Likewise
11703         (extend_schedule): Corresponding changes.
11704         * graphite-optimize-isl.c: Include <isl/constraint.h> and
11705         <isl/union_set.h>.
11706         (getSingleMap): Change return type of isl_stat.
11707         (optimize_isl): Conditionally use
11708         isl_options_set_schedule_serialize_sccs.
11709         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
11710         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
11711
11712 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
11713
11714         PR target/66956
11715         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
11716         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
11717
11718 2015-07-21  Richard Biener  <rguenther@suse.de>
11719
11720         PR tree-optimization/66948
11721         * genmatch.c (capture_info::walk_match): Also recurse to
11722         captures.  Properly compute expr state from captures of
11723         captures.
11724         * match.pd: Add single-use guards to
11725         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
11726
11727 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11728
11729         * config/nvptx/mkoffload.c (process): Add static destructor call.
11730
11731 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11732
11733         PR middle-end/66915
11734         * match.pd (A - B -> A + (-B)): Don't allow folding
11735         when type if a fixed-point type.
11736
11737 2015-07-20  DJ Delorie  <dj@redhat.com>
11738
11739         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
11740         (iorqi3_real): Likewise for set1.
11741
11742 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
11743
11744         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
11745         for !TARGET_64BIT.
11746
11747 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
11748
11749         * graphite-isl-ast-to-gimple.c:
11750         Refactor so that each function can access 'region'. This will help
11751         maintain a parameter rename_map within a region.
11752
11753 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11754
11755         * config/rs6000/rs6000.md (*lt0_disi): New.
11756
11757 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11758
11759         PR target/66217
11760         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
11761         "available letters" comment.
11762         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
11763         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
11764         and_2rld_operand):  Delete.
11765         (and_operand): Adjust.
11766         (rotate_mask_operator): New.
11767         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
11768         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
11769         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
11770         extract_ME): Delete.
11771         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11772         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
11773         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
11774         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11775         rs6000_emit_2insn_and): New.
11776         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
11777         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
11778         includes_rldic_lshift_p, includes_rldicr_lshift_p,
11779         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
11780         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11781         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
11782         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
11783         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11784         rs6000_emit_2insn_and): New.
11785         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
11786         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
11787         handling.
11788         <NOT>: Don't fall through to next case.
11789         <AND>: Handle the various rotate-and-mask cases directly.
11790         <IOR>: Always cost as one insn.
11791         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
11792         (and<mode>3): Adjust expander for the new patterns.
11793         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
11794         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
11795         (*and<mode>3_imm_dot_shifted): New.
11796         (*and<mode>3_mask): Delete, rewrite as ...
11797         (and<mode>3_mask): ... New.
11798         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
11799         (andsi3_internal0_nomc): Delete.
11800         (*andsi3_internal6): Delete.
11801         (*and<mode>3_2insn): New.
11802         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
11803         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
11804         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
11805         *insvdi_internal3): Delete.
11806         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
11807         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
11808         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
11809         *ior<mode>_mask): New.
11810         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
11811         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11812         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11813         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11814         Delete.
11815         (ashr<mode>3): Delete expander.
11816         (*ashr<mode>3): Rename to ...
11817         (ashr<mode>3): ... This.
11818         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
11819         (*rotldi3_internal4, *rotldi3_internal5 and split,
11820         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
11821         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
11822         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
11823         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
11824         (splitter for loading a mask): Adjust.
11825         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
11826
11827 2015-07-20  Marek Polacek  <polacek@redhat.com>
11828
11829         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
11830         output_add_clobbers, output_added_clobbers_hard_reg_p,
11831         gen_rtx_scratch): Remove declarations.
11832
11833 2015-07-20  Marek Polacek  <polacek@redhat.com>
11834
11835         PR c++/55095
11836         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
11837
11838 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11839
11840         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
11841         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
11842
11843 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11844
11845         * combine.c (combine_simplify_rtx): Move simplification step
11846         before various transformations/substitutions.
11847
11848 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
11849
11850         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
11851         (struct int_traits): Likewise.
11852
11853 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11854
11855         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
11856         function to vmsdbgout_function_decl.
11857
11858 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11859
11860         PR target/66922
11861         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
11862         from misaligned positions.
11863         (ix86_expand_pinsr): Reject insertions to misaligned positions.
11864
11865 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
11866
11867         PR middle-end/46851
11868         PR middle-end/60340
11869         * Makefile.in: Removed omega.o.
11870         * common.opt: Document flag fcheck-data-deps as deprecated.
11871         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
11872         its associated params: omega-max-vars, omega-max-geqs,
11873         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
11874         omega-max-keys, omega-eliminate-redundant-constraints.
11875         * doc/loop.texi: Remove all the section on Omega.
11876         * graphite-blocking.c: Include missing params.h: it used to be
11877         included through tree-data-ref.h and omega.h.
11878         * graphite-isl-ast-to-gimple.c: Same.
11879         * graphite-optimize-isl.c: Same.
11880         * graphite-sese-to-poly.c: Same.
11881         * graphite.c: Same.
11882         * omega.c: Remove.
11883         * omega.h: Remove.
11884         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11885         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11886         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
11887         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
11888         * passes.def: Remove pass_check_data_deps.
11889         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
11890         (dump_conflict_function): Same.
11891         (dump_subscript): Same.
11892         (print_direction_vector): Same.
11893         (print_dir_vectors): Same.
11894         (print_lambda_vector): Same.
11895         (print_dist_vectors): Same.
11896         (dump_data_dependence_relation): Same.
11897         (dump_data_dependence_relations): Same.
11898         (dump_dist_dir_vectors): Same.
11899         (dump_ddrs): Same.
11900         (init_omega_eq_with_af): Removed.
11901         (omega_extract_distance_vectors): Removed.
11902         (omega_setup_subscript): Removed.
11903         (init_omega_for_ddr_1): Removed.
11904         (init_omega_for_ddr): Removed.
11905         (ddr_consistent_p): Removed.
11906         (compute_affine_dependence): Do not use omega to check data
11907         dependences.
11908         (compute_data_dependences_for_bb): Removed.
11909         (analyze_all_data_dependences): Removed.
11910         (tree_check_data_deps): Removed.
11911         * tree-data-ref.h: Do not include omega.h.
11912         (compute_data_dependences_for_bb): Removed.
11913         (tree_check_data_deps): Removed.
11914         * tree-ssa-loop.c (pass_check_data_deps): Removed.
11915         (make_pass_check_data_deps): Removed.
11916         * tree-ssa-phiopt.c: Include params.h.
11917         * tree-vect-data-refs.c: Same.
11918         * tree-vect-slp.c: Same.
11919
11920 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11921
11922         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
11923         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
11924         (mem->fpreg splitters): Ditto.
11925         (general_operand->nonimmediate_operand splitter): Use explicit modes.
11926         Disable DFmode for TARGET_64BIT.
11927
11928 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
11929
11930         PR target/66906
11931         * config/i386/i386.c (ix86_expand_prologue): Replicate static
11932         chain on the stack.
11933
11934 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11935
11936         * config/nvptx/mkoffload.c (process): Constify host data.
11937         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11938         Constify host data.
11939         (generate_host_descr_file): Likewise.
11940
11941 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
11942             Sebastian Pop  <s.pop@samsung.com>
11943
11944         PR middle-end/61929
11945         * graphite-dependences.c (add_pdr_constraints): Renamed
11946         pdr->extent to pdr->subscript_sizes.
11947         * graphite-interchange.c (build_linearized_memory_access): Add
11948         back all gcc_assert's that the "isl_int to isl_val conversion"
11949         patch has removed.  Refactored.
11950         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
11951         * graphite-poly.c (new_poly_dr): Same.
11952         (free_poly_dr): Same.
11953         * graphite-poly.h (struct poly_dr): Same.
11954         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
11955         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
11956         * graphite-scop-detection.h: Fix space.
11957         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
11958         back all gcc_assert's removed by a previous patch.
11959         (wrap): Remove the_isl_ctx global variable that the same patch has
11960         added.
11961         (build_loop_iteration_domains): Same.
11962         (add_param_constraints): Same.
11963         (pdr_add_data_dimensions): Same.  Refactored.
11964         (build_poly_dr): Renamed extent to subscript_sizes.
11965
11966 2015-07-17  Marek Polacek  <polacek@redhat.com>
11967
11968         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
11969         * match.pd: ... here.
11970
11971 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11972
11973         * config/nvptx/mkoffload.c (process): Constify target data.
11974         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11975         Constify target data.
11976         (generate_target_offloadend_file): Likewise.
11977
11978 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
11979
11980         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
11981         to allow renaming of PHI arguments on edges incoming from outer
11982         loop header, add corresponding check before start PHI iterator.
11983         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
11984         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
11985         with true force_vectorize.  Set-up dominator for outer loop too.
11986         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
11987         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
11988         was marked with force_vectorize and has restricted cfg.
11989         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
11990         inner loop.
11991         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
11992         do peeling for outer loops.
11993
11994 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
11995             Matthias Klose  <doko@ubuntu.com>
11996
11997         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
11998         build-sysroot, sysroot from the `Miscenalleous configure options' to
11999         the `Directories' section and strip trailing `/' from with_sysroot.
12000         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
12001         * configure: Regenerated.
12002
12003 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
12004
12005         PR target/66824
12006         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
12007         (TARGET_HARD_DF_REGS): Ditto.
12008         (TARGET_HARD_XF_REGS): Ditto.
12009         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
12010         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
12011         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
12012         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
12013         (*movsf_internal): Add alternatives 16 and 17. Enable
12014         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
12015
12016 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
12017
12018         PR rtl-optimization/66891
12019         * calls.c (expand_call): Wrap precompute_register_parameters with
12020         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
12021
12022 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
12023
12024         * config/nvptx/mkoffload.c (process): Constify mapping variables.
12025         Define target data struct and initialize it.
12026
12027 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
12028
12029         PR rtl-optimization/66626
12030         * ira.h (emit-rtl.h): Include.
12031         (non_spilled_static_chain_regno_p): New.
12032         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
12033         unless it is non spilled static chain pseudo.
12034         (assign_hard_rego): Spill memory profitable allocno unless it is
12035         non spilled static chain pseudo.
12036         (allocno_spill_priority_compare): Put non spilled static chain
12037         pseudo at the end of sorted array.
12038         (improve_allocation): Do nothing if we have static chain and
12039         non-local goto.
12040         (allocno__priority_compare_func): Put non spilled static chain
12041         pseudo at the beginning of sorted array.
12042         (move_spill_restore): Ignore non spilled static chain pseudo.
12043         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
12044         to non spilled static chain pseudo.
12045         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
12046         pseudo at the beginning of sorted array.
12047         (spill_for): Spill non spilled static chain pseudo last.
12048         * lra-constraints.c (lra_constraints): Remove static chain pseudo
12049         check for equivalence.
12050
12051 2015-07-16  Martin Liska  <mliska@suse.cz>
12052
12053         PR ipa/66896.
12054         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
12055         dst_ctx if it does not exist.
12056
12057 2015-07-16  Martin Liska  <mliska@suse.cz>
12058
12059         * hash-set.h (remove): New function.
12060         (iterator): New iteration class for hash_set.
12061
12062 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12063
12064         * genattrtab.c (make_canonical): Add a file_location parameter.
12065         Use fatal_at rather than fatal.
12066         (get_attr_value): Likewise.  Update call to make_canonical.
12067         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
12068         (make_internal_attr): Update calls accordingly.
12069
12070 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12071
12072         * read-md.h (message_with_line, error_with_line): Delete.
12073         * read-md.c (message_with_line, error_with_line): Delete.
12074         * gensupport.h: Include read-md.h.
12075         (md_rtx_info): New structure.
12076         (read_md_rtx): Use it.  Return a bool success value.
12077         * gensupport.c (read_md_rtx): Likewise.
12078         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
12079         (main): Update after interface changes.
12080         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
12081         (main): Update after interface changes.
12082         * genattrtab.c (insn_code_number): Delete.
12083         (optimize_attrs): Add a max_insn_code parameter and use it instead
12084         of insn_code_number.
12085         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
12086         Use *_at rather than *_with_line functions.
12087         (gen_insn): Likewise.
12088         (gen_delay): Likewise.
12089         (gen_insn_reserv): Likewise.
12090         (gen_bypass): Take an md_rtx_info rather than an rtx.
12091         (main): Update after interface changes.  Use a local max_insn_code
12092         variable instead of insn_code_number.
12093         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
12094         an rtx.  Use fatal_at rather than fatal.
12095         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
12096         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
12097         (gen_absence_set, gen_final_absence_set, gen_automaton)
12098         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
12099         (main): Update after interface changes.
12100         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
12101         and code number.
12102         (main): Update after interface changes.
12103         * genconditions.c (main): Use new read_md_rtx interface.
12104         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
12105         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
12106         (main): Update after interface changes.
12107         * genemit.c (insn_code_number, insn_index_number): Delete.
12108         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
12109         Use fatal_at rather than fatal.
12110         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
12111         rather than fatal.
12112         (gen_split): Likewise.
12113         (main): Update after interface changes.
12114         * genextract.c (line_no): Delete.
12115         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
12116         Update call to walk_rtx.
12117         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
12118         rather than message_with_line.
12119         (walk_rtx): Add an md_rtx_info argument.  Update call to
12120         VEC_safe_set_locstr.
12121         (main): Update after interface changes.
12122         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
12123         and lineno.  Use error_at rather than separate message_with_line
12124         calls and have_error assignments.
12125         (main): Update after interface changes.
12126         * genmddump.c (main): Use new read_md_rtx interface.
12127         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
12128         (main): Update after interface changes.
12129         * genoutput.c (next_code_number): Delete.
12130         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
12131         (gen_peephole, gen_expand, gen_split): Likewise.
12132         (note_constraint): Likewise.  Use *_at rather than *_with_line
12133         functions.
12134         (main): Update after interface changes.
12135         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
12136         rtx and lineno.
12137         (main): Update after interface changes.
12138         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
12139         than an rtx and lineno.
12140         (process_define_constraint): Likewise.
12141         (process_define_register_constraint): Likewise.
12142         (main): Update after interface changes.
12143         * genrecog.c (next_insn_code, pattern_lineno): Delete.
12144         (validate_pattern): Replace top-level rtx with an md_rtx_info.
12145         Use *_at rather than *_with_line functions.
12146         (match_pattern_2): Likewise.
12147         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
12148         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
12149         Use *_at rather than *_with_line functions.
12150         * gentarget-def.c (add_insn): New function.
12151         (main): Use it.  Use new read_md_rtx interface.
12152
12153 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12154
12155         * gensupport.h (compute_test_codes): Take a file_location rather
12156         than a line number.
12157         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
12158         rather than *_with_line functions.
12159         (process_define_predicate): Update call to compute_test_codes.
12160         * genpreds.c (validate_exp): Take a file_location rather than a
12161         line number.  Use *_at functions rather than *_with_line functions.
12162         (process_define_predicate): Update call to validate_exp.
12163         (constraint_data): Replace lineno field with a file_location.
12164         (add_constraint): Take a file_location rather than a line number.
12165         Use *_at functions rather than *_with_line functions.  Fix error
12166         message for address constraints.  Update after changes to
12167         validate_exp, constraint_data and compute_test_codes.
12168         (process_define_constraint): Update accordingly.
12169         (process_define_register_constraint): Likewise.
12170
12171 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12172
12173         * genoutput.c (data): Use a file_location to record the source
12174         position.
12175         (nothing): Delete.
12176         (idata, idata_end): Remove initialization.
12177         (constraint_data): Replace lineno with a file_location.
12178         (output_insn_data): Update after changes to data.
12179         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
12180         (scan_operands): Likewise, using *_at rather than *_with_line
12181         functions.
12182         (process_template): Likewise.
12183         (validate_insn_alternatives): Likewise.
12184         (validate_insn_operands): Likewise.
12185         (validate_optab_operands): Likewise.
12186         (init_insn_for_nothing): Initialize idata and idata_end.
12187         (note_constraint): Update after changes to constraint_data,
12188         using at rather than with_line functions.
12189         (mdep_constraint_len): Take a file_location rather than a
12190         line number.  Use at rather than with_line functions.
12191
12192 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12193
12194         * read-md.h (fatal_at): Declare.
12195         * read-md.c (fatal_at): New function.
12196         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
12197         to record the source position.
12198         (check_attr_test): Take a file_location instead of a line number.
12199         Use fatal_at instead of fatal.
12200         (check_attr_value): Update after above changes, using "at"
12201         rather than "with_line" reporting functions.
12202         (convert_set_attr_alternative): Likewise.
12203         (gen_attr): Likewise.
12204         (check_defs): Likewise.  Don't assign to read_md_filename.
12205         (gen_insn): Update initialization after above changes.
12206         (gen_delay): Likewise.
12207         (write_insn_cases): Print the filename for a define_peephole.
12208         (gen_insn_reserv): Take a line number as argument and update
12209         the call to check_attr_test.
12210         (main): Pass a line number to gen_insn_reserv.
12211
12212 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12213
12214         * read-md.h (file_location): New structure.
12215         (directive_handler_t): Take a file_location rather than a line number.
12216         (message_at, error_at): Declare.
12217         (read_skip_construct): Delete.
12218         * read-md.c (message_with_line_1): Replace with...
12219         (message_at_1): ...this new function.
12220         (message_at, error_at): New functions.
12221         (message_with_line, error_with_line): Update to use message_at_1.
12222         (handle_enum): Take a file_location rather than a line number
12223         and use error_at for error reporting.
12224         (handle_include): Likewise.
12225         (read_skip_construct): Likewise.  Make static.
12226         (handle_file): Update after above changes.  Pass a file_location
12227         rather than a line number to handle_directive.
12228         * gensupport.c (queue_elem): Replace separate filename and lineno
12229         with a file_location.
12230         (queue_pattern): Replace filename and lineno arguments with a
12231         file_location.  Update after change to queue_elem.
12232         (process_define_predicate): Replace lineno argument with a
12233         file_location and use error_at for error reporting.  Update
12234         after above changes.
12235         (process_rtx): Likewise.
12236         (subst_pattern_match): Likewise.
12237         (get_alternatives_number): Likewise.
12238         (alter_predicate_for_insn): Likewise.
12239         (rtx_handle_directive): Likewise.
12240         (is_predicable): Update after above changes, using error_at rather
12241         than error_with_line.
12242         (has_subst_attribute): Likewise.
12243         (identify_predicable_attribute): Likewise.
12244         (alter_attrs_for_subst_insn): Likewise.
12245         (process_one_cond_exec): Likewise.
12246         (process_substs_on_one_elem): Likewise.
12247         (process_define_subst): Likewise.
12248         (check_define_attr_duplicates): Likewise.
12249         (read_md_rtx): Update after change to queue_elem.
12250
12251 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12252
12253         * genoutput.c (next_index_number): Delete.
12254         (data): Remove index_number.
12255         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
12256         (main): Remove manipulation of next_index_number.
12257
12258 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12259
12260         * genattrtab.c (check_attr_value): Remove handling of null attrs.
12261         (make_canonical): Likewise.
12262
12263 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
12264
12265         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
12266         instead of adjust_address_nv.
12267         (restore_stack_nonlocal): Likewise.
12268         (nonlocal_goto): Likewise.
12269
12270 2015-07-16  Tom de Vries  <tom@codesourcery.com>
12271
12272         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
12273         not have a corresponding loop header phi.
12274
12275 2015-07-16  Tom de Vries  <tom@codesourcery.com>
12276
12277         * tree-parloops.c (create_loads_for_reductions): Handle case that
12278         reduction is unused.
12279
12280 2015-07-16  Richard Biener  <rguenther@suse.de>
12281
12282         PR tree-optimization/66894
12283         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
12284         about deriving NE_EXPR from truncated values.
12285
12286 2015-07-16  Martin Liska  <mliska@suse.cz>
12287
12288         * alloc-pool.h
12289         (object_allocator): Add new class.
12290         (pool_allocator::initialize): Use the underlying class.
12291         (pool_allocator::allocate): Likewise.
12292         (pool_allocator::remove): Likewise.
12293         (operator new): A new generic allocator.
12294         * asan.c (struct asan_mem_ref): Remove unused members.
12295         (asan_mem_ref_new): Replace new operator with
12296         object_allocator::allocate.
12297         (free_mem_ref_resources): Change deallocation.
12298         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
12299         with object_allocator.
12300         * config/sh/sh.c (add_constant): Replace new operator with
12301         object_allocator::allocate.
12302         (sh_reorg): Change call to a release method.
12303         * cselib.c (struct elt_list): Remove unused members.
12304         (new_elt_list): Replace new operator with
12305         object_allocator::allocate.
12306         (new_elt_loc_list): Likewise.
12307         (new_cselib_val): Likewise.
12308         (unchain_one_elt_list): Change delete operator with remove method.
12309         (unchain_one_elt_loc_list): Likewise.
12310         (unchain_one_value): Likewise.
12311         (cselib_finish): Release newly added static allocators.
12312         * cselib.h (struct cselib_val): Remove unused members.
12313         (struct elt_loc_list): Likewise.
12314         * df-problems.c (df_chain_alloc): Replace pool_allocator with
12315         object_allocator.
12316         * df-scan.c (struct df_scan_problem_data): Likewise.
12317         (df_scan_alloc): Likewise.
12318         * df.h (struct dataflow): Likewise.
12319         * dse.c (struct read_info_type): Likewise.
12320         (struct insn_info_type): Likewise.
12321         (struct dse_bb_info_type): Likewise.
12322         (struct group_info): Likewise.
12323         (struct deferred_change): Likewise.
12324         (get_group_info): Likewise.
12325         (delete_dead_store_insn): Likewise.
12326         (free_read_records): Likewise.
12327         (replace_read): Likewise.
12328         (check_mem_read_rtx): Likewise.
12329         (scan_insn): Likewise.
12330         (dse_step1): Likewise.
12331         (dse_step7): Likewise.
12332         * et-forest.c (struct et_occ): Remove unused members.
12333         (et_new_occ): Use allocate instead of new operator.
12334         (et_new_tree): Likewise.
12335         (et_free_tree): Call release method explicitly.
12336         (et_free_tree_force): Likewise.
12337         (et_free_pools): Likewise.
12338         (et_split): Use remove instead of delete operator.
12339         * et-forest.h (struct et_node): Remove unused members.
12340         * ipa-cp.c: Change pool_allocator to object_allocator.
12341         * ipa-inline-analysis.c: Likewise.
12342         * ipa-profile.c: Likewise.
12343         * ipa-prop.c: Likewise.
12344         * ipa-prop.h: Likewise.
12345         * ira-build.c (initiate_cost_vectors): Cast return value.
12346         (ira_allocate_cost_vector): Likewise.
12347         * ira-color.c (struct update_cost_record): Remove unused members.
12348         * lra-int.h (struct lra_live_range): Likewise.
12349         (struct lra_copy): Likewise.
12350         (struct lra_insn_reg): Likewise.
12351         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
12352         * lra.c (new_insn_reg): Replace new operator with allocate method.
12353         (free_insn_regs): Same for operator delete.
12354         (finish_insn_regs): Release new static allocator.
12355         (finish_insn_recog_data): Likewise.
12356         (lra_free_copies): Replace delete operator with remove method.
12357         (lra_create_copy): Replace operator new with allocate method.
12358         (invalidate_insn_data_regno_info): Same for remove method.
12359         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
12360         (free_debug_insn_changes): Replace delete operator with remove method.
12361         (replace_oldest_value_reg): Replace operator new with allocate method.
12362         (pass_cprop_hardreg::execute): Release new static variable.
12363         * sched-deps.c (sched_deps_init): Change pool_allocator to
12364         object_allocator.
12365         * sel-sched-ir.c: Likewise.
12366         * sel-sched-ir.h: Likewise.
12367         * stmt.c (expand_case): Likewise.
12368         (expand_sjlj_dispatch_table): Likewise.
12369         * tree-sra.c (struct access): Remove unused members.
12370         (struct assign_link): Likewise.
12371         (sra_deinitialize): Release newly added static pools.
12372         (create_access_1):Replace operator new with allocate method.
12373         (build_accesses_from_assign): Likewise.
12374         (create_artificial_child_access): Likewise.
12375         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
12376         pool_allocator to object_allocator.
12377         * tree-ssa-pre.c: Likewise.
12378         * tree-ssa-reassoc.c: Likewise.
12379         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
12380         * tree-ssa-strlen.c: Likewise.
12381         * tree-ssa-structalias.c: Likewise.
12382         * var-tracking.c (onepart_pool_allocate): New function.
12383         (unshare_variable): Use the newly added function.
12384         (variable_merge_over_cur): Likewise.
12385         (variable_from_dropped): Likewise.
12386         (variable_was_changed): Likewise.
12387         (set_slot_part): Likewise.
12388         (emit_notes_for_differences_1): Likewise.
12389         (vt_finalize): Release newly added static pools.
12390
12391 2015-07-16  Martin Jambor  <mjambor@suse.cz>
12392
12393         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
12394         all uses.  Fix two typos in its general comment.
12395         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
12396
12397 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
12398
12399         * config/i386/linux-common.h (LINK_MPX): New.
12400         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
12401         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
12402         indicating '-z bndplt' support by linker.
12403         * configure: Regenerate.
12404         * config.in: Regenerate.
12405
12406 2015-07-16  Richard Biener  <rguenther@suse.de>
12407
12408         * fold-const.c (fold_widened_comparison): Remove.
12409         (fold_sign_changed_comparison): Likewise.
12410         (fold_comparison): Move widened and sign-changed comparison
12411         simplification ...
12412         * match.pd: ... to patterns here.
12413         * generic-match-head.c: Include target.h.
12414         * gimple-match-head.c: Likewise.
12415
12416 2015-07-16  Richard Biener  <rguenther@suse.de>
12417
12418         * tree-ssa-dom.c (dom_valueize): New function.
12419         (record_temporary_equivalences): Also record equivalences
12420         for dominating stmts that have uses of equivalences we are
12421         about to record.
12422
12423 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
12424
12425         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
12426         add_autoinc_candidates.
12427         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
12428         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
12429         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
12430         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
12431         Call new function.
12432         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
12433         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
12434         Remove parameter struct iv*.  Call add_autoinc_candidates here.
12435         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
12436         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
12437         Call new function.
12438         (find_iv_candidates): Call new functions.
12439
12440 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
12441
12442         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
12443         uninitialized-variable warning.
12444
12445 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12446
12447         PR target/65249
12448         * config/sh/sh.md (movdi): Split simple reg move to two movsi
12449         when the destination is R0.
12450
12451 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
12452
12453         PR target/66866
12454         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
12455         * config/i386/i386.c (ix86_expand_pextr): New function.
12456         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
12457         for non-lowpart subregs.
12458         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
12459         (insv<mode>): Use SWI248 mode iterator.
12460         (insv<mode>_1): Ditto.
12461
12462 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12463             Sebastian Pop  <s.pop@samsung.com>
12464
12465         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
12466         iterator to use_stmt.
12467
12468 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12469             Sebastian Pop <s.pop@samsung.com>
12470
12471         * graphite-scop-detection.c (build_scops_1): Discard scops for
12472         which entry==exit.
12473
12474 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12475             Sebastian Pop <s.pop@samsung.com>
12476
12477         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
12478         case of a return statement in scop.
12479
12480 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12481             Sebastian Pop <s.pop@samsung.com>
12482
12483         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
12484         INTEGER_TYPE parameters.
12485         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
12486         VECTOR_CST in scan_tree_for_params.
12487         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
12488
12489 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12490
12491         * gimple-pretty-print.h: Don't include pretty-print.h.
12492         * tree-streamer.h: Don't include lto-streamer.h.
12493         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
12494         * gimple-streamer-in.c: Remove redundant includes.
12495         * gimple-streamer-out.c: Likewise.
12496         * ipa-devirt.c: Likewise.
12497         * ipa-icf.c: Likewise.
12498         * ipa-inline-analysis.c: Likewise.
12499         * ipa-polymorphic-call.c: Likewise.
12500         * ipa-profile.c: Likewise.
12501         * ipa-prop.c: Likewise.
12502         * ipa-pure-const.c: Likewise.
12503         * lto-cgraph.c: Likewise.
12504         * lto-streamer-in.c: Likewise.
12505         * lto-streamer-out.c: Likewise.
12506         * lto-streamer.c: Likewise.
12507         * tree-streamer-in.c: Likewise.
12508         * tree-streamer-out.c: Likewise.
12509         * tree-streamer.c: Likewise.
12510
12511 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12512
12513         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
12514         include input.h.
12515         * opts.c: Remove multiline #include comment.
12516
12517 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
12518
12519         * config/nvptx/mkoffload.c (process): Add C++ protection to
12520         emitted code.
12521
12522 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12523
12524         PR target/66854
12525         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
12526         null before IEEE 128-bit floating point support patch.
12527
12528 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12529
12530         * simplify-rtx.c (simplify_ternary_operation): Add simplification
12531         for (!c) != {0,...,0} ? a : b for vector modes.
12532
12533 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
12534             Martin Jambor  <mjambor@suse.cz>
12535
12536         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
12537         struct func_body_info* instead of struct ipa_node_params*, expecting
12538         fbi->info to be filled in.  Replace throughout.  Adjust call to
12539         ipa_load_from_parm_agg.
12540         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
12541         instead of struct ipa_node_params*.  Adjust calls to other functions
12542         so that they pass either fbi or fbi->info.
12543         (set_switch_stmt_execution_predicate): Likewise.
12544         (will_be_nonconstant_predicate): Likewise.
12545         (compute_bb_predicates): Likewise.
12546         (estimate_function_body_sizes): Move asserts earlier.  Fill in
12547         struct func_body_info, replace parms_info with fbi.info.  Adjust
12548         calls to functions that now accept struct func_body_info.
12549         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
12550         (struct func_body_info): Likewise.
12551         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
12552         remove static.  Adjust callers.
12553         (ipa_load_from_parm_agg): Remove.
12554         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
12555         (func_body_info): Likewise.
12556         (ipa_load_from_parm_agg): Adjust prototype.
12557
12558 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12559
12560         * gensupport.c (rtx_handle_directive): Adjust.
12561         * read-rtl.c (apply_iterators): Take vector to add rtxs to
12562         instead of expr list rtx.
12563         (add_define_attr_for_define_subst): Likewise.
12564         (add_define_subst_attr): Likewise.
12565         (read_subst_mapping): Likewise.
12566         (read_rtx): Likewise.
12567         * rtl.h (read_rtx): Adjust.
12568
12569 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12570
12571         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
12572
12573 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12574
12575         PR target/58066
12576         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
12577         (*tls_local_dynamic_base_64_<mode>): Ditto.
12578         (*tls_local_dynamic_base_64_largepic): Ditto.
12579         (tls_global_dynamic_64_<mode>): Update expander pattern.
12580         (tls_local_dynamic_base_64_<mode>): Ditto.
12581
12582 2015-07-15  Richard Biener  <rguenther@suse.de>
12583
12584         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
12585         and bool_var == 1 -> bool_var simplifications ...
12586         * match.pd: ... to patterns here.  Factor out negate_expr_p
12587         cases from the A - B -> A + (-B) patterns as negate_expr_p
12588         predicate and add a -(A + B) -> (-B) - A pattern.
12589
12590 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12591
12592         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
12593
12594 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12595             Robert Suchanek  <robert.suchanek@imgtec.com>
12596
12597         * config/mips/mips.c (mips_int_mask): New enum.
12598         (mips_shadow_set): Likewise.
12599         (int_mask): New variable.
12600         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
12601         (machine_function): Add int_mask and use_shadow_register_set.
12602         (mips_attribute_table): Add attribute handlers for interrupt and
12603         use_shadow_register_set.
12604         (mips_interrupt_mask): New static function.
12605         (mips_handle_interrupt_attr): Likewise.
12606         (mips_handle_use_shadow_register_set_attr): Likewise.
12607         (mips_use_shadow_register_set): Change return type to enum
12608         mips_shadow_set.  Add argument handling for use_shadow_register_set
12609         attribute.
12610         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
12611         compare with mips_shadow_set enum.
12612         (mips_compute_frame_info): Add interrupt mask and
12613         use_shadow_register_set to per-function information structure.
12614         Add a stack slot for EPC unconditionally.
12615         (mips_expand_prologue): Compare use_shadow_register_set value
12616         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
12617         masked interrupt register but in EIC mode use K0 and save Cause in K0.
12618         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
12619         copying the stack pointer from the shadow register set.
12620         * config/mips/mips.h (SR_IM0): New define.
12621         * config/mips/mips.md (mips_rdpgpr): Rename to...
12622         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
12623         * doc/extend.texi (Declaring Attributes of Functions): Document
12624         optional arguments for interrupt and use_shadow_register_set
12625         attributes.
12626
12627 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12628
12629         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
12630         interrupt attribute.
12631         (mips_expand_prologue): Disable the floating point unit in an ISR.
12632         * config/mips/mips.h (SR_COP1): New define.
12633
12634 2015-07-15  Richard Biener  <rguenther@suse.de>
12635
12636         * genmatch.c (parser::peek, parser::peek_ident): Add argument
12637         to tell how many tokens to peek ahead (default 1).
12638         (parser::eat_token, parser::eat_ident): Return token consumed.
12639         (parser::parse_result): Parse new switch statement.
12640         * match.pd: Use case statements where appropriate.
12641
12642 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12643
12644         PR rtl-optimization/58066
12645         * calls.c (expand_call): Precompute register parameters before stack
12646         alignment is performed.
12647
12648 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12649
12650         PR rtl-optimization/66838
12651         * postreload.c (reload_cse_move2add): Also process
12652         CALL_INSN_FUNCTION_USAGE when resetting information of
12653         call-clobbered registers.
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/constraints.md (U, v): New constraints.
12660         * config/nios2/predicates.md (rdprs_dcache_operand): New.
12661         (ldstex_memory_operand): New.
12662         * config/nios2/sync.md: New file.
12663         * config/nios2/nios2.md (unspecv): Add new builtin function
12664         UNSPECV codes.
12665         (rdprs, flushd, flushda, wrpie, eni): New patterns.
12666         (top-level): Include sync.md.
12667         * config/nios2/nios2.c (N2_FTYPES): Add function types for
12668         new builtins.
12669         (N2_BUILTINS): Add arch field setting, add new builtins.
12670         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
12671         for arch field.
12672         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
12673         Also handle ldex/stex/ldsex/stsex builtins.
12674         (nios2_expand_rdprs_builtin): New function.
12675         (nios2_expand_cache_builtin): New function.
12676         (nios2_expand_wrpie_builtin): New function.
12677         (nios2_expand_eni_builtin): New function.
12678         (nios2_expand_builtin): Add arch field handling and new builtin
12679         cases.
12680         * doc/extend.texi (Altera Nios II Built-in Functions): Document
12681         new builtins.
12682         * doc/md.texi (Machine Constraints): Document U and v constraints.
12683
12684 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12685             Cesar Philippidis  <cesar@codesourcery.com>
12686             Chung-Lin Tang  <cltang@codesourcery.com>
12687
12688         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
12689         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
12690         callee_save_reg_size and uses_anonymous_args fields.
12691         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
12692         (nios2_create_cfa_notes): New function.
12693         (nios2_adjust_stack): New function for adjusting stack.
12694         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
12695         Use nios2_adjust_stack.
12696         (nios2_expand_epilogue): Likewise.
12697         (nios2_expand_return): New function.
12698         (nios2_can_use_return_insn): Update for CDX pop.n usage.
12699         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
12700         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
12701         * config/nios2/nios2.md (return): Use nios2_expand_return.
12702
12703 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12704             Cesar Philippidis  <cesar@codesourcery.com>
12705             Chung-Lin Tang  <cltang@codesourcery.com>
12706
12707         * config/nios2/predicates.md (pop_operation): New.
12708         (ldwm_operation, stwm_operation): New.
12709         (nios2_hard_register_operand): New.
12710         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
12711         (ldstwm_operation_p): Declare.
12712         (gen_ldstwm_peep): Declare.
12713         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
12714         (base_reg_adjustment_p): New.
12715         (pop_operation_p): New.
12716         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
12717         (nios2_ldstwm_regset_p): New.
12718         (ldstwm_operation_p): New.
12719         (gen_ldst): New.
12720         (nios2_ldst_parallel): New.
12721         (struct ldswm_operand): Declare.
12722         (compare_ldstwm_operands): New.
12723         (can_use_cdx_ldstw): New.
12724         (gen_ldstwm_peep): New.
12725         * config/nios2/nios2-ldstwm.sml: New.
12726         * config/nios2/nios2.md: Include ldstwm.md.
12727         * config/nios2/ldstwm.md: Generated.
12728
12729 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12730             Cesar Philippidis  <cesar@codesourcery.com>
12731             Chung-Lin Tang  <cltang@codesourcery.com>
12732
12733         * config/nios2/nios2.h (LABEL_ALIGN): Define.
12734         (REG_ALLOC_ORDER): Define.
12735         (ADJUST_REG_ALLOC_ORDER): Define.
12736         (HONOR_REG_ALLOC_ORDER): Define.
12737         (CDX_REG_P): Define.
12738         (ANDCLEAR_INT): Define.
12739         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
12740         (nios2_label_align): Declare.
12741         (nios2_cdx_narrow_form_p): Declare.
12742         (nios2_adjust_reg_alloc_order): Declare.
12743         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
12744         operation.
12745         (nios2_large_unspec_reloc_p): New function, split from...
12746         (nios2_legitimate_pic_operand_p): ...here.
12747         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
12748         (nios2_print_operand_punct_valid_p): New.
12749         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
12750         (split_mem_address): New.
12751         (split_alu_insn): New.
12752         (cdxreg): New.
12753         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
12754         (enum nios2_add_insn_kind): New.
12755         (nios2_add_insn_names, nios2_add_insn_narrow): New.
12756         (nios2_add_insn_classify): New.
12757         (nios2_add_insn_asm): New.
12758         (nios2_cdx_narrow_form_p): New.
12759         (label_align, min_labelno, max_labelno): New.
12760         (nios2_reorg): New.
12761         (nios2_label_align): New.
12762         (nios2_adjust_reg_alloc_order): New.
12763         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12764         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12765         * config/nios2/constraints.md (P): New constraint.
12766         * config/nios2/predicates.md (const_and_operand): New.
12767         (and_operand): New.
12768         (stack_memory_operand): New.
12769         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
12770         (length): Update to use nios2_cdx_narrow_form_p().
12771         (type): Add new insn type values.
12772         (control, alu, st, ld, shift): Update insn reservations with
12773         new insn type values.
12774         (*high, *lo_sum): Define new insn patterns for constant generation.
12775         (movqi_internal, movhi_internal, movsi_internal): Reduce
12776         alternatives, update asm template to handle CDX variants, update
12777         type attributes.
12778         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
12779         template, update type attributes.
12780         (extendhisi2, extendqi<mode>2): Likewise.
12781         (addsi3): Change to use function for asm string.
12782         (subsi3): Add CDX notation to asm template, update type attributes.
12783         (negsi3, one_cmplsi3): Likewise.
12784         (andsi3): New pattern, specialized from logical patterns.
12785         (<code>si3): Remove and case, combine alternatives, update asm
12786         template.
12787         (<shift_op>si3): Add CDX notation, update type attributes.
12788         (rotrsi3): Update type attribute.
12789         (*merge, extzv, insv): New insn patterns.
12790         (return): Change to define_expand.
12791         (simple_return): Add CDX notation, update type attributes.
12792         (indirect_jump): Add CDX notation.
12793         (jump): Update asm cases, update length attribute expression.
12794         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
12795         (nios2_cbranch): Update asm cases and length attribute expression
12796         to handle CDX variants.
12797         (nios2_cmp<code>): Update asm template.
12798         (nop): Add CDX notation, update type attributes.
12799         (trap): Add CDX notation.
12800         (ctrapsi4): Update asm cases and length attribute expression to
12801         handle CDX variant.
12802         * doc/md.texi (Machine Constraints): Document P constraint.
12803
12804 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12805             Cesar Philippidis  <cesar@codesourcery.com>
12806             Chung-Lin Tang  <cltang@codesourcery.com>
12807
12808         * config/nios2/nios2.h (SMALL_INT12): New macro.
12809         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
12810         (nios2_valid_addr_expr_p): Use it.
12811         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
12812         with implicit "io" instructions on R2.
12813         * config/nios2/constraints.md (w): New constraint.
12814         * config/nios2/predicates.md (ldstio_memory_operand): New.
12815         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
12816         operand predicate and constraint.
12817         (ld<bh>io_signed, st<bhw>io>): Likewise.
12818         * doc/md.texi (Machine Constraints): Document w constraint.
12819
12820 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12821             Cesar Philippidis  <cesar@codesourcery.com>
12822             Chung-Lin Tang  <cltang@codesourcery.com>
12823
12824         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
12825         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
12826         Nios II architecture level.
12827         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
12828         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
12829         (OPTION_DEFAULT_SPECS): Define.
12830         (ASM_SPEC): Add -march= spec strings.
12831         * config/nios2/nios2.c (nios2_option_override): Check for
12832         conflicts involving new options.
12833         * config.gcc (nios2*-*-*): Support --with-arch=.
12834         * doc/invoke.texi (Option Summary, Nios II Options): Document
12835         -march=, -mbmx, and -mcdx.
12836
12837 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
12838
12839         PR rtl-optimization/66626
12840         * lra-constraints.c (lra_constraints): Prevent equivalence
12841         substitution for static chain pseudo in functions with nonlocal
12842         goto.
12843
12844 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12845
12846         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
12847         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12848         -fstack-limit-symbol as well as -fstack-limit-register.
12849         (nios2_expand_prologue): Emit only a single stack limit check,
12850         even if multiple stack adjustments are required.
12851         (nios2_option_override): Diagnose unsupported combination of -fpic
12852         and -stack-limit-symbol.
12853
12854 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
12855
12856         * Makefile.in (top_srcdir): New.
12857         * configure.ac: Use AM_ZLIB.
12858         * configure: Regeneated.
12859
12860 2015-07-14  Matthias Klose  <doko@ubuntu.com>
12861
12862         PR target/66840
12863         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
12864
12865 2015-07-14  Richard Biener  <rguenther@suse.de>
12866
12867         PR tree-optimization/66863
12868         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
12869         what we record for conversion use stmt lhs inequalities.
12870
12871 2015-07-14  Richard Biener  <rguenther@suse.de>
12872
12873         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
12874         (decision_tree::gen_gimple): Likewise.
12875
12876 2015-07-14  Tom de Vries  <tom@codesourcery.com>
12877
12878         * gcc.c (greater_than_spec_func): Declare forward.
12879         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
12880         -ftree-parallelize-loops={0,1}.
12881         (static_spec_functions): Add greater_than_spec_func function with name
12882         "gt".
12883         (greater_than_spec_func): New function.
12884
12885 2015-07-14  Richard Biener  <rguenther@suse.de>
12886
12887         * tree-ssa-dom.c (record_temporary_equivalences): Merge
12888         wideing type conversion case from record_equivalences_from_incoming_edge
12889         and use record_equality to record equivalences.
12890         (record_equivalences_from_incoming_edge): Call
12891         record_temporary_equivalences.
12892
12893 2015-07-14  Richard Biener  <rguenther@suse.de>
12894
12895         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
12896         (struct if_expr): New.
12897         (struct with_expr): Likewise.
12898         (is_a_helper): Add helpers for if_expr and with_expr.
12899         (struct simplify): Add simplify_kind enum and member.  Remove
12900         ifexpr_vec member.
12901         (simplify::simplify): Adjust.
12902         (lower_commutative): Adjust.
12903         (lower_opt_convert): Likewise.
12904         (lower_cond): Likewise.
12905         (replace_id): Handle with_expr and if_expr.
12906         (lower_for): Adjust.
12907         (dt_simplify::gen_1): New recursive worker, split out from ...
12908         (dt_simplify::gen): ... here.  Deal with if and with expansion
12909         recursively.
12910         (capture_info::capture_info): Take context argument
12911         (capture_info::walk_result): Only analyze specific result.
12912         (parser::parse_result): New function.
12913         (parser::parse_simplify): Adjust to parse ifs with then end
12914         else case.
12915         (parser::parse_if): Simplify.
12916         (parser::parse_pattern): Pass down simplify kind.
12917         * match.pd: Convert if structure to new syntax.
12918
12919 2015-07-13  Marek Polacek  <polacek@redhat.com>
12920
12921         * rtl.c (rtx_equal_p_cb): Fix typo.
12922
12923 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
12924
12925         * omega.h: Don't include config.h, don't include params.h again if
12926         omega.h has already been included.
12927         * graphite-poly.h: Include sese.h.
12928         * graphite.c: Don't include sese.h, remove needless includes and
12929         minimize includes outside #ifdef HAVE_isl block.
12930         * graphite-blocking.c: Don't include sese.h, remove needless includes,
12931         and wrap entire file in #ifdef HAVE_isl
12932         * graphite-dependences.c: Likewise.
12933         * graphite-interchange.c: Likewise.
12934         * graphite-isl-ast-to-gimple.c: Likewise.
12935         * graphite-optimize-isl.c: Likewise.
12936         * graphite-poly.c: Likewise.
12937         * graphite-scop-detection.c: Likewise.
12938         * graphite-sese-to-poly.c: Likewise.
12939
12940 2015-07-13  Tom de Vries  <tom@codesourcery.com>
12941
12942         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
12943
12944 2015-07-13  Renlin Li  <renlin.li@arm.com>
12945
12946         PR rtl/66556
12947         * simplify-rtx.c (simplify_const_relational_operation): Add
12948         side_effects_p checks.
12949
12950 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
12951
12952         * bitmap.h: Fix double word typos.
12953         * builtins.c: Same.
12954         * calls.c: Same.
12955         * cfgloopmanip.c: Same.
12956         * cgraph.c: Same.
12957         * cgraph.h: Same.
12958         * cgraphclones.c: Same.
12959         * combine.c: Same.
12960         * config/aarch64/aarch64-protos.h: Same.
12961         * config/aarch64/aarch64.c: Same.
12962         * config/aarch64/aarch64.md: Same.
12963         * config/arm/arm.md: Same.
12964         * config/arm/arm1020e.md: Same.
12965         * config/arm/arm1026ejs.md: Same.
12966         * config/arm/arm926ejs.md: Same.
12967         * config/arm/fa526.md: Same.
12968         * config/arm/fa606te.md: Same.
12969         * config/arm/fa626te.md: Same.
12970         * config/arm/fa726te.md: Same.
12971         * config/arm/fmp626.md: Same.
12972         * config/darwin.c: Same.
12973         * config/epiphany/epiphany.c: Same.
12974         * config/frv/frv.c: Same.
12975         * config/ft32/ft32.c: Same.
12976         * config/gnu-user.h: Same.
12977         * config/h8300/constraints.md: Same.
12978         * config/i386/i386.c: Same.
12979         * config/i386/i386.md: Same.
12980         * config/iq2000/iq2000.md: Same.
12981         * config/mips/mips.c: Same.
12982         * config/mmix/mmix.md: Same.
12983         * config/moxie/moxie.c: Same.
12984         * config/nds32/nds32.md: Same.
12985         * config/pa/pa.h: Same.
12986         * config/rs6000/aix.h: Same.
12987         * config/rs6000/rs6000.h: Same.
12988         * config/sh/sh.c: Same.
12989         * config/tilegx/tilegx.md: Same.
12990         * config/tilepro/gen-mul-tables.cc: Same.
12991         * cse.c: Same.
12992         * dbxout.c: Same.
12993         * doc/invoke.texi: Same.
12994         * dse.c: Same.
12995         * dwarf2out.c: Same.
12996         * final.c: Same.
12997         * gcc.c: Same.
12998         * genmatch.c: Same.
12999         * gimplify.c: Same.
13000         * hash-table.h: Same.
13001         * internal-fn.c: Same.
13002         * ipa-cp.c: Same.
13003         * ipa-devirt.c: Same.
13004         * ipa-icf.c: Same.
13005         * ipa-icf.h: Same.
13006         * ipa-profile.c: Same.
13007         * ipa-prop.c: Same.
13008         * ipa-prop.h: Same.
13009         * ira.c: Same.
13010         * omp-low.c: Same.
13011         * reg-stack.c: Same.
13012         * regcprop.c: Same.
13013         * reorg.c: Same.
13014         * rtl.h: Same.
13015         * sbitmap.h: Same.
13016         * tree-eh.c: Same.
13017         * tree-inline.c: Same.
13018         * tree-sra.c: Same.
13019         * tree-ssa-dom.c: Same.
13020         * tree-ssa-loop-ivopts.c: Same.
13021         * tree-ssa-structalias.c: Same.
13022         * tree-ssa-tail-merge.c: Same.
13023         * tree-ssa-ter.c: Same.
13024         * tree-ssa-threadupdate.c: Same.
13025         * tree-ssa-uninit.c: Same.
13026         * tree-ssanames.c: Same.
13027         * tree-vect-loop-manip.c: Same.
13028         * tree-vrp.c: Same.
13029         * tree.c: Same.
13030         * valtrack.c: Same.
13031         * vec.h: Same.
13032
13033 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13034
13035         PR middle-end/66726
13036         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
13037         tree_ssa_phiopt_worker): Call it.
13038
13039 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
13040
13041         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
13042         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
13043         REG_EQUAL note.
13044
13045 2015-07-11  Marek Polacek  <polacek@redhat.com>
13046
13047         PR middle-end/66353
13048         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
13049         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
13050         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
13051         rather than bb_has_abnormal_call_pred.
13052         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
13053         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
13054         rather than bb_has_abnormal_call_pred.
13055
13056 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
13057
13058         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
13059         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
13060         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
13061         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
13062         v850_legitimate_address_p): New functions.
13063         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
13064
13065 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
13066
13067         PR target/66819
13068         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
13069         indirect sibcall with register arguments if register available
13070         for argument passing.
13071         (init_cumulative_args): Set cfun->machine->arg_reg_available
13072         to (cum->nregs > 0) or to true if function has a variable
13073         argument list.
13074         (function_arg_advance_32): Set cfun->machine->arg_reg_available
13075         to false if cum->nregs <= 0.
13076         * config/i386/i386.h (machine_function): Add arg_reg_available.
13077
13078 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
13079
13080         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
13081         and gen_higpart instead of gen_rtx_SUBREG.
13082         * config/i386/i386.md
13083         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
13084         (read-modify peephole2): Use gen_lowpart instead of
13085         gen_rtx_SUBREG for operand 5.
13086
13087 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
13088
13089         * config/tilepro/gen-mul-tables.cc (main): Change include list for
13090         generated files.
13091         * config/tilepro/mul-tables.c: Regenerate.
13092         * config/tilegx/mul-tables.c: Regenerate.
13093
13094 2015-07-10  Richard Biener  <rguenther@suse.de>
13095
13096         * fold-const.c (distribute_bit_expr): Remove.
13097         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
13098         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
13099         to A & (B | C) and simplifying A << C1 << C2 to ...
13100         * match.pd: ... patterns here.
13101
13102 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
13103
13104         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
13105         Mark mem as READONLY and NOTRAP for PIC symbol.
13106
13107 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
13108
13109         * gimple-predict.h: New file.
13110         (gimple_predict_predictor, gimple_predict_set_predictor,
13111         gimple_predict_outcome, gimple_predict_set_outcome,
13112         gimple_build_predict): Relocate here.
13113         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
13114         gimple_predict_outcome, gimple_predict_set_outcome): Move to
13115         gimple-predict.h.
13116         * gimple.c (gimple_build_predict): Move to gimple-predict.h
13117         * basic-block.h: Don't include cfghooks.h.
13118         * backend.h: Don't include predict.h.
13119         * cfghooks.h: Include predict.h.
13120         * gimple-pretty-print.c: Include gimple-predict.h.
13121         * gimplify.c: Likwise.
13122         * predict.c: Adjust includes.
13123         * tree-inline.c: Likewise.
13124         * asan.c: Likewise.
13125         * auto-inc-dec.c: Likewise.
13126         * auto-profile.c: Likewise.
13127         * bb-reorder.c: Likewise.
13128         * builtins.c: Likewise.
13129         * caller-save.c: Likewise.
13130         * calls.c: Likewise.
13131         * cfganal.c: Likewise.
13132         * cfgbuild.c: Likewise.
13133         * cfg.c: Likewise.
13134         * cfgcleanup.c: Likewise.
13135         * cfgexpand.c: Likewise.
13136         * cfghooks.c: Likewise.
13137         * cfgloopanal.c: Likewise.
13138         * cfgloop.c: Likewise.
13139         * cfgloopmanip.c: Likewise.
13140         * cfgrtl.c: Likewise.
13141         * cgraph.c: Likewise.
13142         * cgraphunit.c: Likewise.
13143         * combine.c: Likewise.
13144         * cprop.c: Likewise.
13145         * cse.c: Likewise.
13146         * dce.c: Likewise.
13147         * dojump.c: Likewise.
13148         * dse.c: Likewise.
13149         * except.c: Likewise.
13150         * expmed.c: Likewise.
13151         * expr.c: Likewise.
13152         * final.c: Likewise.
13153         * fold-const.c: Likewise.
13154         * function.c: Likewise.
13155         * fwprop.c: Likewise.
13156         * gcc-plugin.h: Likewise.
13157         * gcse.c: Likewise.
13158         * genattrtab.c: Likewise.
13159         * genemit.c: Likewise.
13160         * gengtype.c: Likewise.
13161         * genopinit.c: Likewise.
13162         * genoutput.c: Likewise.
13163         * genpreds.c: Likewise.
13164         * genrecog.c: Likewise.
13165         * gimple-fold.c: Likewise.
13166         * gimple-iterator.c: Likewise.
13167         * gimple-ssa-isolate-paths.c: Likewise.
13168         * gimple-ssa-strength-reduction.c: Likewise.
13169         * graph.c: Likewise.
13170         * graphite-blocking.c: Likewise.
13171         * graphite.c: Likewise.
13172         * graphite-dependences.c: Likewise.
13173         * graphite-interchange.c: Likewise.
13174         * graphite-isl-ast-to-gimple.c: Likewise.
13175         * graphite-optimize-isl.c: Likewise.
13176         * graphite-poly.c: Likewise.
13177         * graphite-scop-detection.c: Likewise.
13178         * graphite-sese-to-poly.c: Likewise.
13179         * haifa-sched.c: Likewise.
13180         * ifcvt.c: Likewise.
13181         * internal-fn.c: Likewise.
13182         * ipa-cp.c: Likewise.
13183         * ipa-profile.c: Likewise.
13184         * ipa-split.c: Likewise.
13185         * ipa-utils.c: Likewise.
13186         * ira-build.c: Likewise.
13187         * ira-color.c: Likewise.
13188         * ira-conflicts.c: Likewise.
13189         * ira-costs.c: Likewise.
13190         * ira-emit.c: Likewise.
13191         * ira-lives.c: Likewise.
13192         * jump.c: Likewise.
13193         * loop-doloop.c: Likewise.
13194         * loop-init.c: Likewise.
13195         * loop-invariant.c: Likewise.
13196         * loop-unroll.c: Likewise.
13197         * lower-subreg.c: Likewise.
13198         * lra-assigns.c: Likewise.
13199         * lra.c: Likewise.
13200         * lra-coalesce.c: Likewise.
13201         * lra-constraints.c: Likewise.
13202         * lra-lives.c: Likewise.
13203         * lto-cgraph.c: Likewise.
13204         * lto-streamer-in.c: Likewise.
13205         * mode-switching.c: Likewise.
13206         * modulo-sched.c: Likewise.
13207         * omp-low.c: Likewise.
13208         * optabs.c: Likewise.
13209         * passes.c: Likewise.
13210         * postreload.c: Likewise.
13211         * postreload-gcse.c: Likewise.
13212         * profile.c: Likewise.
13213         * recog.c: Likewise.
13214         * regstat.c: Likewise.
13215         * reload1.c: Likewise.
13216         * reorg.c: Likewise.
13217         * rtlanal.c: Likewise.
13218         * sched-ebb.c: Likewise.
13219         * sel-sched-ir.c: Likewise.
13220         * sese.c: Likewise.
13221         * shrink-wrap.c: Likewise.
13222         * simplify-rtx.c: Likewise.
13223         * stmt.c: Likewise.
13224         * store-motion.c: Likewise.
13225         * tracer.c: Likewise.
13226         * trans-mem.c: Likewise.
13227         * tree-call-cdce.c: Likewise.
13228         * tree-cfg.c: Likewise.
13229         * tree-cfgcleanup.c: Likewise.
13230         * tree-chkp.c: Likewise.
13231         * tree-complex.c: Likewise.
13232         * tree-eh.c: Likewise.
13233         * tree-if-conv.c: Likewise.
13234         * tree-loop-distribution.c: Likewise.
13235         * tree-outof-ssa.c: Likewise.
13236         * tree-parloops.c: Likewise.
13237         * tree-predcom.c: Likewise.
13238         * tree-pretty-print.c: Likewise.
13239         * tree-profile.c: Likewise.
13240         * tree-sra.c: Likewise.
13241         * tree-ssa.c: Likewise.
13242         * tree-ssa-coalesce.c: Likewise.
13243         * tree-ssa-dce.c: Likewise.
13244         * tree-ssa-dom.c: Likewise.
13245         * tree-ssa-forwprop.c: Likewise.
13246         * tree-ssa-ifcombine.c: Likewise.
13247         * tree-ssa-loop-ch.c: Likewise.
13248         * tree-ssa-loop-im.c: Likewise.
13249         * tree-ssa-loop-ivcanon.c: Likewise.
13250         * tree-ssa-loop-ivopts.c: Likewise.
13251         * tree-ssa-loop-manip.c: Likewise.
13252         * tree-ssa-loop-prefetch.c: Likewise.
13253         * tree-ssa-loop-unswitch.c: Likewise.
13254         * tree-ssa-math-opts.c: Likewise.
13255         * tree-ssa-phiopt.c: Likewise.
13256         * tree-ssa-pre.c: Likewise.
13257         * tree-ssa-reassoc.c: Likewise.
13258         * tree-ssa-sink.c: Likewise.
13259         * tree-ssa-tail-merge.c: Likewise.
13260         * tree-ssa-threadedge.c: Likewise.
13261         * tree-ssa-threadupdate.c: Likewise.
13262         * tree-switch-conversion.c: Likewise.
13263         * tree-tailcall.c: Likewise.
13264         * tree-vect-data-refs.c: Likewise.
13265         * tree-vect-loop.c: Likewise.
13266         * tree-vect-loop-manip.c: Likewise.
13267         * tree-vectorizer.c: Likewise.
13268         * tree-vrp.c: Likewise.
13269         * ubsan.c: Likewise.
13270         * value-prof.c: Likewise.
13271         * varasm.c: Likewise.
13272         * var-tracking.c: Likewise.
13273         * config/aarch64/aarch64-builtins.c: Likewise.
13274         * config/aarch64/aarch64.c: Likewise.
13275         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13276         * config/alpha/alpha.c: Likewise.
13277         * config/arc/arc.c: Likewise.
13278         * config/arm/arm.c: Likewise.
13279         * config/avr/avr.c: Likewise.
13280         * config/bfin/bfin.c: Likewise.
13281         * config/c6x/c6x.c: Likewise.
13282         * config/cr16/cr16.c: Likewise.
13283         * config/cris/cris.c: Likewise.
13284         * config/darwin.c: Likewise.
13285         * config/darwin-c.c: Likewise.
13286         * config/epiphany/epiphany.c: Likewise.
13287         * config/epiphany/mode-switch-use.c: Likewise.
13288         * config/epiphany/resolve-sw-modes.c: Likewise.
13289         * config/fr30/fr30.c: Likewise.
13290         * config/frv/frv.c: Likewise.
13291         * config/ft32/ft32.c: Likewise.
13292         * config/h8300/h8300.c: Likewise.
13293         * config/i386/i386.c: Likewise.
13294         * config/i386/winnt.c: Likewise.
13295         * config/ia64/ia64.c: Likewise.
13296         * config/iq2000/iq2000.c: Likewise.
13297         * config/lm32/lm32.c: Likewise.
13298         * config/m32c/m32c.c: Likewise.
13299         * config/m32r/m32r.c: Likewise.
13300         * config/m68k/m68k.c: Likewise.
13301         * config/mcore/mcore.c: Likewise.
13302         * config/mep/mep.c: Likewise.
13303         * config/microblaze/microblaze.c: Likewise.
13304         * config/mips/mips.c: Likewise.
13305         * config/mmix/mmix.c: Likewise.
13306         * config/mn10300/mn10300.c: Likewise.
13307         * config/moxie/moxie.c: Likewise.
13308         * config/msp430/msp430.c: Likewise.
13309         * config/nds32/nds32.c: Likewise.
13310         * config/nds32/nds32-cost.c: Likewise.
13311         * config/nds32/nds32-fp-as-gp.c: Likewise.
13312         * config/nds32/nds32-intrinsic.c: Likewise.
13313         * config/nds32/nds32-isr.c: Likewise.
13314         * config/nds32/nds32-md-auxiliary.c: Likewise.
13315         * config/nds32/nds32-memory-manipulation.c: Likewise.
13316         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13317         * config/nds32/nds32-predicates.c: Likewise.
13318         * config/nios2/nios2.c: Likewise.
13319         * config/nvptx/nvptx.c: Likewise.
13320         * config/pa/pa.c: Likewise.
13321         * config/pdp11/pdp11.c: Likewise.
13322         * config/rl78/rl78.c: Likewise.
13323         * config/rs6000/rs6000.c: Likewise.
13324         * config/rx/rx.c: Likewise.
13325         * config/s390/s390.c: Likewise.
13326         * config/sh/sh.c: Likewise.
13327         * config/sh/sh-mem.cc: Likewise.
13328         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
13329         * config/sh/sh_treg_combine.cc: Likewise.
13330         * config/sparc/sparc.c: Likewise.
13331         * config/spu/spu.c: Likewise.
13332         * config/stormy16/stormy16.c: Likewise.
13333         * config/tilegx/tilegx.c: Likewise.
13334         * config/tilepro/tilepro.c: Likewise.
13335         * config/v850/v850.c: Likewise.
13336         * config/vax/vax.c: Likewise.
13337         * config/visium/visium.c: Likewise.
13338         * config/xtensa/xtensa.c: Likewise.
13339
13340 2015-07-10  Richard Biener  <rguenther@suse.de>
13341
13342         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
13343         (decision_tree::gen_gimple): Likewise.
13344         (decision_tree::gen_generic): Likewise.
13345
13346 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
13347
13348         PR target/66813
13349         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
13350         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
13351
13352 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
13353
13354         PR middle-end/66820
13355         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
13356         or ORT_TASK contexts.
13357         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
13358         is non-zero.
13359
13360 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13361
13362         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
13363         above function.
13364
13365 2015-07-10  Tom de Vries  <tom@codesourcery.com>
13366
13367         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
13368         insert nit + 1 bound.
13369
13370 2015-07-10  Richard Biener  <rguenther@suse.de>
13371
13372         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
13373         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
13374         (if_convertible_loop_p_1): For this always compute bb predicates.
13375         (if_convertible_loop_p): And free them.
13376
13377 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13378
13379         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
13380         in dump message.
13381
13382 2015-07-10  Richard Biener  <rguenther@suse.de>
13383
13384         PR tree-optimization/66823
13385         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
13386         inverted predicate.
13387
13388 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
13389
13390         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
13391         to handle mips[32|64]r3 and mips[32|64]r5.
13392
13393 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
13394
13395         PR middle-end/66633
13396         * tree-nested.c (get_static_chain): Or in a flag into
13397         info->static_chain_added.
13398         (get_frame_field, get_nonlocal_debug_decl): Likewise.
13399         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
13400         2015-07-01 changes.
13401         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
13402         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
13403         add it to clauses.
13404
13405         PR tree-optimization/66718
13406         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
13407         field.
13408         (vect_simd_lane_linear): New function.
13409         (vectorizable_simd_clone_call): Support using linear arguments for
13410         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
13411
13412 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13413
13414         PR target/66821
13415         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
13416
13417 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13418
13419         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
13420         Use machine mode, not enum machine_mode in the prototype.
13421
13422         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
13423         classify 128-bit floating point support.
13424         (FLOAT128_IBM_P): Likewise.
13425         (FLOAT128_VECTOR_P): Likewise.
13426         (FLOAT128_2REG_P): Likewise.
13427         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
13428         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
13429         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
13430         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
13431
13432         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
13433         tests against TFmode/TDmode, since those modes do not use VSX
13434         addresses.
13435         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
13436         support.
13437         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
13438         tests against TFmode, etc.
13439         (invalid_e500_subreg): Add tests against IFmode/KFmode.
13440         (reg_offset_addressing_ok_p): Likewise.
13441         (rs6000_legitimate_offset_address_p): Likewise.
13442         (rs6000_legitimize_address): Likewise.
13443         (rs6000_legitimize_reload_address): Likewise.
13444         (rs6000_legitimate_address_p): Clean up tests against TFmode and
13445         TDmode to use the new helper macros, which will include IFmode and
13446         KFmode.
13447         (rs6000_emit_move): Likewise.
13448         (rs6000_darwin64_record_arg_recurse): Likewise.
13449         (print_operand): Likewise.
13450         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
13451         that uses a single vector register as a vector and not as a
13452         floating point register in terms of the calling sequence.
13453         (rs6000_discover_homogeneous_aggregate): Likewise.
13454         (rs6000_return_in_memory): Likewise.
13455         (init_cumulative_args): Likewise.
13456         (rs6000_function_arg_boundary): Likewise.
13457         (rs6000_function_arg_advance_1): Likewise.
13458         (rs6000_function_arg): Likewise.
13459         (rs6000_pass_by_reference): Likewise.
13460         (rs6000_gimplify_va_arg): Likewise.
13461         (rs6000_secondary_reload_memory): Use machine_mode not enum
13462         machine mode.
13463         (rs6000_split_multireg_move): Use new helper macros.
13464         (spe_func_has_64bit_regs_p): Likewise.
13465         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
13466         (output_toc): Use new helper macros.
13467         (rs6000_register_move_cost): Likewise.
13468         (rs6000_function_value): Add IEEE 128-bit floating point calling
13469         sequence support.
13470         (rs6000_libcall_value): Likewise.
13471         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
13472         floating point support.
13473         (rs6000_vector_mode_supported_p): Likewise.
13474
13475 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
13476
13477         PR rtl-optimization/66782
13478         * lra-int.h (struct lra_insn_recog_data): Add comment about
13479         clobbered hard regs for arg_hard_regs.
13480         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
13481         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
13482         Add condition for processing used hard regs.
13483         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
13484         Process clobbered hard regs.
13485
13486 2015-07-09  Michael Matz  <matz@suse.de>
13487
13488         * genmatch.c (fprintf_indent): New function.
13489         (operand::gen_transform): Add indent parameter.
13490         (expr::gen_transform, c_expr::gen_transform,
13491         capture::gen_transform): Ditto and use fprintf_indent.
13492         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
13493         (dt_operand::gen, dt_operand::gen_predicate,
13494         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
13495         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
13496         (decision_tree::gen_gimple): Adjust calls and indent generated
13497         code.
13498         (decision_tree::gen_generic): Ditto.
13499         (write_predicate): Ditto.
13500
13501 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13502
13503         PR target/66814
13504         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
13505         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
13506         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
13507         {GENERAL,SSE,MMX}_REG_P where appropriate.
13508
13509 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13510
13511         * lto-streamer.h: Don't include target.h and alloc-pool.h.
13512         * builtins.c: Adjust includes.
13513         * gimple.c: Likewise.
13514         * ipa-icf.c: Likewise.
13515         * lto-opts.c: Likewise.
13516         * ipa-reference.c: Likewise.
13517         * lto-section-out.c: Likewise.
13518         * lto-streamer-in.c: Likewise.
13519         * lto-streamer-out.c: Likewise.
13520         * opts-global.c: Likewise.
13521         * symtab.c: Likewise.
13522         * tree-chkp.c: Likewise.
13523         * tree-ssa-live.c: Likewise.
13524         * tree-streamer-in.c: Likewise.
13525         * tree-streamer-out.c: Likewise.
13526         * config/darwin.c: Likewise.
13527         * config/i386/winnt.c: Likewise.
13528
13529 2015-07-09  Richard Biener  <rguenther@suse.de>
13530
13531         * genmatch.c (struct expr): Add force_single_use flag.
13532         (expr::expr): Add copy constructor.
13533         (capture_info::walk_match): Gather force_single_use captures.
13534         (expr::gen_transform): Use possibly NULLified sequence.
13535         (dt_simplify::gen): Apply single-use restrictions by NULLifying
13536         seq if any constrained expr is not single-use.
13537         (parser::parse_expr): Refactor to allow multiple flags.  Handle
13538         's' flag to force an expression have a single-use if the pattern
13539         simplifies to more than one statement.
13540         * match.pd: Convert most single_use conditionals to :s flags.
13541
13542 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13543
13544         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
13545         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
13546         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
13547
13548 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13549
13550         * flags.h: Don't include flag-types.h or options.h.
13551         * opts-common.c: Adjust includes.
13552         * opts-global.c: Likewise.
13553         * common/config/epiphany/epiphany-common.c: Likewise.
13554
13555 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13556
13557         PR target/66818
13558         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
13559         for IA MCU.
13560
13561 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13562
13563         PR target/66817
13564         * config/i386/i386.c (ix86_return_in_memory): Return true
13565         if int_size_in_bytes returns negative for IA MCU.
13566
13567 2015-07-09  Marek Polacek  <polacek@redhat.com>
13568
13569         PR tree-optimization/66718
13570         * Makefile.in (OBJS): Add gimple-laddress.o.
13571         * passes.def: Schedule pass_laddress.
13572         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
13573         * tree-pass.h (make_pass_laddress): Declare.
13574         * gimple-laddress.c: New file.
13575
13576 2015-07-09  Richard Biener  <rguenther@suse.de>
13577
13578         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
13579
13580 2015-07-09  Richard Biener  <rguenther@suse.de>
13581
13582         PR tree-optimization/66807
13583         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
13584
13585 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
13586
13587         * function.c (stack_protect_epilogue): Use if rather than switch for
13588         check targetm.have_stack_protect_test.
13589
13590 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13591
13592         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
13593         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
13594         * config/arc/arc.h: Likewise.
13595         * config/arm/arm.h: Likewise.
13596         * config/bfin/bfin.h: Likewise.
13597         * config/epiphany/epiphany.h: Likewise.
13598         * config/frv/frv.h: Likewise.
13599         * config/ia64/ia64.h: Likewise.
13600         * config/iq2000/iq2000.h: Likewise.
13601         * config/lm32/lm32.h: Likewise.
13602         * config/m32r/m32r.h: Likewise.
13603         * config/mcore/mcore.h: Likewise.
13604         * config/mep/mep.h: Likewise.
13605         * config/microblaze/microblaze.h: Likewise.
13606         * config/mips/mips.h: Likewise.
13607         * config/mmix/mmix.h: Likewise.
13608         * config/mn10300/mn10300.h: Likewise.
13609         * config/nds32/nds32.h: Likewise.
13610         * config/nios2/nios2.h: Likewise.
13611         * config/pa/pa.h: Likewise.
13612         * config/rl78/rl78.h: Likewise.
13613         * config/sh/sh.h: Likewise.
13614         * config/sparc/sparc.h: Likewise.
13615         * config/stormy16/stormy16.h: Likewise.
13616         * config/tilegx/tilegx.h: Likewise.
13617         * config/tilepro/tilepro.h: Likewise.
13618         * config/v850/v850.h: Likewise.
13619         * config/xtensa/xtensa.h: Likewise.
13620         * doc/tm.texi: Regenerate.
13621         * doc/tm.texi.in: Adjust.
13622         * combine.c (simplify_set): Likewise.
13623         (simplify_comparison): Likewise.
13624         * expr.c (store_constructor): Likewise.
13625         * internal-fn.c (expand_arith_overflow): Likewise.
13626         * reload.c (push_reload): Likewise.
13627         (find_reloads): Likewise.
13628         (find_reloads_subreg_address): Likewise.
13629         * reload1.c (eliminate_regs_1): Likewise.
13630         * rtlanal.c (nonzero_bits1): Likewise.
13631         (num_sign_bit_copies1): Likewise.
13632         * simplify-rtx.c (simplify_truncation): Likewise.
13633
13634 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13635
13636         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
13637         of AUTO_INC_DEC with the preprocessor.
13638         * combine.c (combine_instructions): Likewise.
13639         (can_combine_p): Likewise.
13640         (try_combine): Likewise.
13641         * emit-rtl.c (try_split): Likewise.
13642         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13643         * lower-subreg.c (resolve_simple_move): Likewise.
13644         * lra.c (update_inc_notes): Likewise.
13645         * recog.c (asm_operand_ok): Likewise.
13646         (constrain_operands): Likewise.
13647         * regrename.c (scan_rtx_address): Likewise.
13648         * reload.c (update_auto_inc_notes): Likewise.
13649         (reg_inc_found_and_valid_p): Likewise.
13650         * reload1.c (reload): Likewise.
13651         (emit_input_reload_insns): Likewise.
13652         (delete_output_reload): Likewise.
13653         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13654         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13655
13656 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13657
13658         * rtl.h: Always define AUTO_INC_DEC.
13659         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
13660         * combine.c (combine_instructions): Likewise.
13661         (can_combine_p): Likewise.
13662         (try_combine): Likewise.
13663         * emit-rtl.c (try_split): Likewise.
13664         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13665         * lower-subreg.c (resolve_simple_move): Likewise.
13666         * lra.c (update_inc_notes): Likewise.
13667         * recog.c (asm_operand_ok): Likewise.
13668         (constrain_operands): Likewise.
13669         * regrename.c (scan_rtx_address): Likewise.
13670         * reload.c (update_auto_inc_notes): Likewise.
13671         (find_equiv_reg): Likewise.
13672         * reload1.c (reload): Likewise.
13673         (reload_as_needed): Likewise.
13674         (choose_reload_regs): Likewise.
13675         (emit_input_reload_insns): Likewise.
13676         (delete_output_reload): Likewise.
13677         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13678         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13679
13680 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13681
13682         * combine.c (can_combine_def_p): Don't check the value of
13683         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
13684         (combinable_i3pat): Likewise.
13685         (mark_used_regs_combine): Likewise.
13686         * regrename.c (rename_chains): Likewise.
13687         * reload.c (find_reloads_address): Likewise.
13688         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13689
13690 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13691
13692         * combine.c (update_rsp_from_reg_equal): Don't check if
13693         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
13694         (reg_nonzero_bits_for_combine): Likewise.
13695         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
13696         1.
13697         * config/frv/frv.h: Likewise.
13698         * config/lm32/lm32.h: Likewise.
13699         * config/mep/mep.h: Likewise.
13700         * config/mips/mips.h: Likewise.
13701         * config/rs6000/rs6000.h: Likewise.
13702         * config/sh/sh.h: Likewise.
13703         * config/tilegx/tilegx.h (enum reg_class): Likewise.
13704         * config/tilepro/tilepro.h: Likewise.
13705         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
13706         * doc/tm.texi: Regenerate.
13707         * doc/tm.texi.in: Adjust.
13708         * rtlanal.c (nonzero_bits1): Likewise.
13709
13710 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13711
13712         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
13713         with the preprocessor.
13714         (combine_instructions): Likewise.
13715         (try_combine): Likewise.
13716         (subst): Likewise.
13717         (distribute_notes): Likewise.
13718
13719 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13720
13721         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
13722         defined.
13723         (simplify_set): Likewise.
13724         * cse.c (cse_insn): Likewise.
13725         * fold-const.c (fold_single_bit_test): Likewise.
13726         (fold_unary_loc): Likewise.
13727         * postreload.c (reload_cse_simplify_set): Likewise.
13728         (reload_cse_simplify_operands): Likewise.
13729
13730 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
13731
13732         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
13733         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
13734
13735 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13736
13737         PR target/66746
13738         * config/i386/x86intrin.h: Include <adxintrin.h> even if
13739         __iamcu__ is defined.
13740
13741 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13742
13743         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
13744
13745 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
13746
13747         PR target/66523
13748         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
13749         names from preservation.
13750
13751 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13752
13753         PR target/66806
13754         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
13755         change for IAMCU.
13756         (function_arg_advance_32): Don't pass vectors in registers for
13757         IAMCU.
13758         (function_arg_32): Likewise.
13759         (ix86_return_in_memory): Don't return vectors in registers for
13760         IAMCU.
13761
13762 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13763
13764         PR middle-end/66334
13765         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
13766         hard regno live at the start of BB with incoming abnormal edges.
13767         * lra-lives.c (process_bb_lives): Ditto.
13768
13769 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
13770
13771         PR libgomp/65099
13772         * config/nvptx/mkoffload.c (main): Create an offload image only in
13773         64-bit configurations.
13774
13775 2015-07-08  Martin Liska  <mliska@suse.cz>
13776
13777         PR bootstrap/66744
13778         * tree-sra.c (create_access_1): Call ctor without brackets.
13779         (create_artificial_child_access): Likewise.
13780
13781 2015-07-08  Richard Biener  <rguenther@suse.de>
13782
13783         PR tree-optimization/66793
13784         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
13785         Properly split the block after stmts ending it.
13786
13787 2015-07-08  Richard Biener  <rguenther@suse.de>
13788
13789         PR tree-optimization/66794
13790         * passes.c (execute_function_todo): Assert that post-dominators
13791         are not computed.
13792         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
13793         Free post-dominators.
13794
13795 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13796
13797         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
13798         with early exit.
13799
13800 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13801
13802         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
13803         more than or equal 8 and less than 32 when optimizing for size.
13804
13805 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13806
13807         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
13808         COSTS_N_INSNS (1) and increment it appropriately throughout the
13809         function.
13810
13811 2015-07-08  Richard Biener  <rguenther@suse.de>
13812
13813         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
13814
13815 2015-07-08  Alan Modra  <amodra@gmail.com>
13816
13817         * target.def (rtx_costs): Remove "code" param, add "mode".
13818         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
13819         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
13820         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
13821         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
13822         call.  Track mode when given in rtx.
13823         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
13824         (default_address_cost): Pass Pmode to rtx_cost.
13825         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
13826         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
13827         with NULL set.
13828         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
13829         (notreg_cost): Add mode param.  Use it.
13830         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
13831         mode param and pass to set_src_cost.  Update all calls.
13832         (hash_scan_set): Formatting.
13833         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
13834         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
13835         * hooks.h: Ditto.
13836         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
13837         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
13838         emit_store_flag): Update set_src_cost and rtx_cost calls.
13839         * auto-inc-dec.c (attempt_change): Likewise.
13840         * calls.c (precompute_register_parameters): Likewise.
13841         * combine.c (expand_compound_operation, make_extraction,
13842         force_to_mode, distribute_and_simplify_rtx): Likewise.
13843         * dojump.c (prefer_and_bit_test): Likewise.
13844         * dse.c (find_shift_sequence): Likewise.
13845         * expr.c (compress_float_constant): Likewise.
13846         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13847         * ifcvt.c (noce_try_sign_mask): Likewise.
13848         * loop-doloop.c (doloop_optimize): Likewise.
13849         * loop-invariant.c (create_new_invariant): Likewise.
13850         * lower-subreg.c (shift_cost, compute_costs): Likewise.
13851         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
13852         lshift_cheap_p): Likewise.
13853         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13854         try_replace_in_use, reload_cse_move2add): Likewise.
13855         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
13856         Likewise.
13857         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13858         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13859         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
13860         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
13861         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
13862         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
13863         to rtx_cost calls.
13864         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
13865         * config/arc/arc.c (arc_rtx_costs): Likewise.
13866         * config/arm/arm.c (arm_rtx_costs): Likewise.
13867         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
13868         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13869         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13870         * config/cris/cris.c (cris_rtx_costs): Likewise.
13871         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
13872         * config/frv/frv.c (frv_rtx_costs): Likewise.
13873         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13874         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13875         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13876         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13877         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13878         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13879         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13880         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13881         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13882         * config/mep/mep.c (mep_rtx_cost): Likewise.
13883         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13884         * config/mips/mips.c (mips_rtx_costs): Likewise.
13885         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13886         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
13887         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
13888         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
13889         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
13890         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
13891         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
13892         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13893         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13894         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
13895         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13896         * config/s390/s390.c (s390_rtx_costs): Likewise.
13897         * config/sh/sh.c (sh_rtx_costs): Likewise.
13898         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13899         * config/spu/spu.c (spu_rtx_costs): Likewise.
13900         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13901         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
13902         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
13903         * config/v850/v850.c (v850_rtx_costs): Likewise.
13904         * config/vax/vax.c (vax_rtx_costs): Likewise.
13905         * config/visium/visium.c (visium_rtx_costs): Likewise.
13906         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13907         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
13908         "code" param, and pass as outer_code to first rtx_cost call.  Pass
13909         mode to rtx_cost calls.
13910         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
13911         calls.
13912         (aarch64_rtx_costs_wrapper): Update.
13913         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
13914         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
13915         rtx_cost calls.
13916         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
13917         and rtx_cost calls.
13918         (avr_operand_rtx_cost): Similarly.
13919         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
13920         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
13921         * config/mips/mips.c (mips_stack_address_p): Comment typo.
13922         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
13923         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
13924         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
13925         rtx_cost.
13926         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
13927         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
13928         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
13929         * doc/tm.texi: Regenerate.
13930
13931 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
13932
13933         * tree-core.h: Include symtab.h.
13934         * rtl.h: Include hard-reg-set.h but not flags.h.
13935         (HARD_CONST): Remove condition compilation involving HARD_CONST since
13936         hard-reg-set.h is always included.
13937         * regs.h: Don't include hard-reg-set.h or rtl.h.
13938         * cfg.h: Include dominance.h.
13939         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
13940         * backend.h: New.  Aggregate commonly used backend header files.
13941         * gimple-ssa.h: Don't include tree-hasher.h.
13942         * ssa.h: New.  Aggregate commonly used SSA header files.
13943         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
13944         * sel-sched-ir.h: Flatten includes.
13945         * lra-int.h: Flatten completely.
13946         * sel-sched-dump.h: Flatten includes.
13947         * ira-int.h: Flatten includes.
13948         * gimple-streamer.h: Remove all includes.
13949         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
13950         * resource.h: Flatten hard-reg-set.h and df.h.
13951         * sched-int.h: Flatten insn-arrt.h and df.h.
13952         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
13953         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
13954         * genattrtab.c (write_header): Adjust generated includes.
13955         * genautomata.c (main): Likewise.
13956         * genconditions.c (write-header): Likewise.
13957         * genemit.c (main): Likewise.
13958         * gengtype.c (open_base_files): Likewise.
13959         * genopinit.c (main): Likewise.
13960         * genoutput.c (output_prologue): Likewise.
13961         * genpeep.c (main): Likewise.
13962         * genpreds.c (write_insn_preds_c): Likewise.
13963         * genrecog.c (write_header): Likewise.
13964         * alias.c: Adjust includes.
13965         * asan.c: Likewise.
13966         * attribs.c: Likewise.
13967         * auto-inc-dec.c: Likewise.
13968         * auto-profile.c: Likewise.
13969         * bb-reorder.c: Likewise.
13970         * bt-load.c: Likewise.
13971         * builtins.c: Likewise.
13972         * caller-save.c: Likewise.
13973         * calls.c: Likewise.
13974         * ccmp.c: Likewise.
13975         * cfg.c: Likewise.
13976         * cfganal.c: Likewise.
13977         * cfgbuild.c: Likewise.
13978         * cfgcleanup.c: Likewise.
13979         * cfgexpand.c: Likewise.
13980         * cfghooks.c: Likewise.
13981         * cfgloop.c: Likewise.
13982         * cfgloopanal.c: Likewise.
13983         * cfgloopmanip.c: Likewise.
13984         * cfgrtl.c: Likewise.
13985         * cgraph.c: Likewise.
13986         * cgraphbuild.c: Likewise.
13987         * cgraphclones.c: Likewise.
13988         * cgraphunit.c: Likewise.
13989         * cilk-common.c: Likewise.
13990         * combine-stack-adj.c: Likewise.
13991         * combine.c: Likewise.
13992         * compare-elim.c: Likewise.
13993         * convert.c: Likewise.
13994         * coverage.c: Likewise.
13995         * cppbuiltin.c: Likewise.
13996         * cprop.c: Likewise.
13997         * cse.c: Likewise.
13998         * cselib.c: Likewise.
13999         * data-streamer-in.c: Likewise.
14000         * data-streamer-out.c: Likewise.
14001         * data-streamer.c: Likewise.
14002         * dbxout.c: Likewise.
14003         * dce.c: Likewise.
14004         * ddg.c: Likewise.
14005         * debug.c: Likewise.
14006         * df-core.c: Likewise.
14007         * df-problems.c: Likewise.
14008         * df-scan.c: Likewise.
14009         * dfp.c: Likewise.
14010         * dojump.c: Likewise.
14011         * dominance.c: Likewise.
14012         * domwalk.c: Likewise.
14013         * double-int.c: Likewise.
14014         * dse.c: Likewise.
14015         * dumpfile.c: Likewise.
14016         * dwarf2asm.c: Likewise.
14017         * dwarf2cfi.c: Likewise.
14018         * dwarf2out.c: Likewise.
14019         * emit-rtl.c: Likewise.
14020         * et-forest.c: Likewise.
14021         * except.c: Likewise.
14022         * explow.c: Likewise.
14023         * expmed.c: Likewise.
14024         * expr.c: Likewise.
14025         * final.c: Likewise.
14026         * fixed-value.c: Likewise.
14027         * fold-const.c: Likewise.
14028         * function.c: Likewise.
14029         * fwprop.c: Likewise.
14030         * gcc-plugin.h: Likewise.
14031         * gcse-common.c: Likewise.
14032         * gcse.c: Likewise.
14033         * generic-match-head.c: Likewise.
14034         * ggc-page.c: Likewise.
14035         * gimple-builder.c: Likewise.
14036         * gimple-expr.c: Likewise.
14037         * gimple-fold.c: Likewise.
14038         * gimple-iterator.c: Likewise.
14039         * gimple-low.c: Likewise.
14040         * gimple-match-head.c: Likewise.
14041         * gimple-pretty-print.c: Likewise.
14042         * gimple-ssa-isolate-paths.c: Likewise.
14043         * gimple-ssa-strength-reduction.c: Likewise.
14044         * gimple-streamer-in.c: Likewise.
14045         * gimple-streamer-out.c: Likewise.
14046         * gimple-walk.c: Likewise.
14047         * gimple.c: Likewise.
14048         * gimplify-me.c: Likewise.
14049         * gimplify.c: Likewise.
14050         * godump.c: Likewise.
14051         * graph.c: Likewise.
14052         * graphite-blocking.c: Likewise.
14053         * graphite-dependences.c: Likewise.
14054         * graphite-interchange.c: Likewise.
14055         * graphite-isl-ast-to-gimple.c: Likewise.
14056         * graphite-optimize-isl.c: Likewise.
14057         * graphite-poly.c: Likewise.
14058         * graphite-scop-detection.c: Likewise.
14059         * graphite-sese-to-poly.c: Likewise.
14060         * graphite.c: Likewise.
14061         * haifa-sched.c: Likewise.
14062         * hw-doloop.c: Likewise.
14063         * ifcvt.c: Likewise.
14064         * init-regs.c: Likewise.
14065         * internal-fn.c: Likewise.
14066         * ipa-chkp.c: Likewise.
14067         * ipa-comdats.c: Likewise.
14068         * ipa-cp.c: Likewise.
14069         * ipa-devirt.c: Likewise.
14070         * ipa-icf-gimple.c: Likewise.
14071         * ipa-icf.c: Likewise.
14072         * ipa-inline-analysis.c: Likewise.
14073         * ipa-inline-transform.c: Likewise.
14074         * ipa-inline.c: Likewise.
14075         * ipa-polymorphic-call.c: Likewise.
14076         * ipa-profile.c: Likewise.
14077         * ipa-prop.c: Likewise.
14078         * ipa-pure-const.c: Likewise.
14079         * ipa-ref.c: Likewise.
14080         * ipa-reference.c: Likewise.
14081         * ipa-split.c: Likewise.
14082         * ipa-utils.c: Likewise.
14083         * ipa-visibility.c: Likewise.
14084         * ipa.c: Likewise.
14085         * ira-build.c: Likewise.
14086         * ira-color.c: Likewise.
14087         * ira-conflicts.c: Likewise.
14088         * ira-costs.c: Likewise.
14089         * ira-emit.c: Likewise.
14090         * ira-lives.c: Likewise.
14091         * ira.c: Likewise.
14092         * jump.c: Likewise.
14093         * langhooks.c: Likewise.
14094         * lcm.c: Likewise.
14095         * loop-doloop.c: Likewise.
14096         * loop-init.c: Likewise.
14097         * loop-invariant.c: Likewise.
14098         * loop-iv.c: Likewise.
14099         * loop-unroll.c: Likewise.
14100         * lower-subreg.c: Likewise.
14101         * lra-assigns.c: Likewise.
14102         * lra-coalesce.c: Likewise.
14103         * lra-constraints.c: Likewise.
14104         * lra-eliminations.c: Likewise.
14105         * lra-lives.c: Likewise.
14106         * lra-remat.c: Likewise.
14107         * lra-spills.c: Likewise.
14108         * lra.c: Likewise.
14109         * lto-cgraph.c: Likewise.
14110         * lto-compress.c: Likewise.
14111         * lto-opts.c: Likewise.
14112         * lto-section-in.c: Likewise.
14113         * lto-section-out.c: Likewise.
14114         * lto-streamer-in.c: Likewise.
14115         * lto-streamer-out.c: Likewise.
14116         * lto-streamer.c: Likewise.
14117         * mcf.c: Likewise.
14118         * mode-switching.c: Likewise.
14119         * modulo-sched.c: Likewise.
14120         * omega.c: Likewise.
14121         * omp-low.c: Likewise.
14122         * optabs.c: Likewise.
14123         * opts-global.c: Likewise.
14124         * passes.c: Likewise.
14125         * plugin.c: Likewise.
14126         * postreload-gcse.c: Likewise.
14127         * postreload.c: Likewise.
14128         * predict.c: Likewise.
14129         * print-rtl.c: Likewise.
14130         * print-tree.c: Likewise.
14131         * profile.c: Likewise.
14132         * real.c: Likewise.
14133         * realmpfr.c: Likewise.
14134         * recog.c: Likewise.
14135         * ree.c: Likewise.
14136         * reg-stack.c: Likewise.
14137         * regcprop.c: Likewise.
14138         * reginfo.c: Likewise.
14139         * regrename.c: Likewise.
14140         * regstat.c: Likewise.
14141         * reload.c: Likewise.
14142         * reload1.c: Likewise.
14143         * reorg.c: Likewise.
14144         * resource.c: Likewise.
14145         * rtl-chkp.c: Likewise.
14146         * rtlanal.c: Likewise.
14147         * rtlhooks.c: Likewise.
14148         * sanopt.c: Likewise.
14149         * sched-deps.c: Likewise.
14150         * sched-ebb.c: Likewise.
14151         * sched-rgn.c: Likewise.
14152         * sched-vis.c: Likewise.
14153         * sdbout.c: Likewise.
14154         * sel-sched-dump.c: Likewise.
14155         * sel-sched-ir.c: Likewise.
14156         * sel-sched.c: Likewise.
14157         * sese.c: Likewise.
14158         * shrink-wrap.c: Likewise.
14159         * simplify-rtx.c: Likewise.
14160         * stack-ptr-mod.c: Likewise.
14161         * stmt.c: Likewise.
14162         * stor-layout.c: Likewise.
14163         * store-motion.c: Likewise.
14164         * stringpool.c: Likewise.
14165         * symtab.c: Likewise.
14166         * target-globals.c: Likewise.
14167         * targhooks.c: Likewise.
14168         * toplev.c: Likewise.
14169         * tracer.c: Likewise.
14170         * trans-mem.c: Likewise.
14171         * tree-affine.c: Likewise.
14172         * tree-browser.c: Likewise.
14173         * tree-call-cdce.c: Likewise.
14174         * tree-cfg.c: Likewise.
14175         * tree-cfgcleanup.c: Likewise.
14176         * tree-chkp-opt.c: Likewise.
14177         * tree-chkp.c: Likewise.
14178         * tree-chrec.c: Likewise.
14179         * tree-complex.c: Likewise.
14180         * tree-data-ref.c: Likewise.
14181         * tree-dfa.c: Likewise.
14182         * tree-diagnostic.c: Likewise.
14183         * tree-dump.c: Likewise.
14184         * tree-eh.c: Likewise.
14185         * tree-emutls.c: Likewise.
14186         * tree-if-conv.c: Likewise.
14187         * tree-inline.c: Likewise.
14188         * tree-into-ssa.c: Likewise.
14189         * tree-iterator.c: Likewise.
14190         * tree-loop-distribution.c: Likewise.
14191         * tree-nested.c: Likewise.
14192         * tree-nrv.c: Likewise.
14193         * tree-object-size.c: Likewise.
14194         * tree-outof-ssa.c: Likewise.
14195         * tree-parloops.c: Likewise.
14196         * tree-phinodes.c: Likewise.
14197         * tree-predcom.c: Likewise.
14198         * tree-pretty-print.c: Likewise.
14199         * tree-profile.c: Likewise.
14200         * tree-scalar-evolution.c: Likewise.
14201         * tree-sra.c: Likewise.
14202         * tree-ssa-address.c: Likewise.
14203         * tree-ssa-alias.c: Likewise.
14204         * tree-ssa-ccp.c: Likewise.
14205         * tree-ssa-coalesce.c: Likewise.
14206         * tree-ssa-copy.c: Likewise.
14207         * tree-ssa-copyrename.c: Likewise.
14208         * tree-ssa-dce.c: Likewise.
14209         * tree-ssa-dom.c: Likewise.
14210         * tree-ssa-dse.c: Likewise.
14211         * tree-ssa-forwprop.c: Likewise.
14212         * tree-ssa-ifcombine.c: Likewise.
14213         * tree-ssa-live.c: Likewise.
14214         * tree-ssa-loop-ch.c: Likewise.
14215         * tree-ssa-loop-im.c: Likewise.
14216         * tree-ssa-loop-ivcanon.c: Likewise.
14217         * tree-ssa-loop-ivopts.c: Likewise.
14218         * tree-ssa-loop-manip.c: Likewise.
14219         * tree-ssa-loop-niter.c: Likewise.
14220         * tree-ssa-loop-prefetch.c: Likewise.
14221         * tree-ssa-loop-unswitch.c: Likewise.
14222         * tree-ssa-loop.c: Likewise.
14223         * tree-ssa-math-opts.c: Likewise.
14224         * tree-ssa-operands.c: Likewise.
14225         * tree-ssa-phiopt.c: Likewise.
14226         * tree-ssa-phiprop.c: Likewise.
14227         * tree-ssa-pre.c: Likewise.
14228         * tree-ssa-propagate.c: Likewise.
14229         * tree-ssa-reassoc.c: Likewise.
14230         * tree-ssa-sccvn.c: Likewise.
14231         * tree-ssa-scopedtables.c: Likewise.
14232         * tree-ssa-sink.c: Likewise.
14233         * tree-ssa-strlen.c: Likewise.
14234         * tree-ssa-structalias.c: Likewise.
14235         * tree-ssa-tail-merge.c: Likewise.
14236         * tree-ssa-ter.c: Likewise.
14237         * tree-ssa-threadedge.c: Likewise.
14238         * tree-ssa-threadupdate.c: Likewise.
14239         * tree-ssa-uncprop.c: Likewise.
14240         * tree-ssa-uninit.c: Likewise.
14241         * tree-ssa.c: Likewise.
14242         * tree-ssanames.c: Likewise.
14243         * tree-stdarg.c: Likewise.
14244         * tree-streamer-in.c: Likewise.
14245         * tree-streamer-out.c: Likewise.
14246         * tree-streamer.c: Likewise.
14247         * tree-switch-conversion.c: Likewise.
14248         * tree-tailcall.c: Likewise.
14249         * tree-vect-data-refs.c: Likewise.
14250         * tree-vect-generic.c: Likewise.
14251         * tree-vect-loop-manip.c: Likewise.
14252         * tree-vect-loop.c: Likewise.
14253         * tree-vect-patterns.c: Likewise.
14254         * tree-vect-slp.c: Likewise.
14255         * tree-vect-stmts.c: Likewise.
14256         * tree-vectorizer.c: Likewise.
14257         * tree-vrp.c: Likewise.
14258         * tree.c: Likewise.
14259         * tsan.c: Likewise.
14260         * ubsan.c: Likewise.
14261         * valtrack.c: Likewise.
14262         * value-prof.c: Likewise.
14263         * var-tracking.c: Likewise.
14264         * varasm.c: Likewise.
14265         * varpool.c: Likewise.
14266         * vmsdbgout.c: Likewise.
14267         * vtable-verify.c: Likewise.
14268         * web.c: Likewise.
14269         * wide-int.cc: Likewise.
14270         * xcoffout.c: Likewise.
14271         * config/aarch64/aarch64-builtins.c: Likewise.
14272         * config/aarch64/aarch64.c: Likewise.
14273         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
14274         * config/alpha/alpha.c: Likewise.
14275         * config/arc/arc.c: Likewise.
14276         * config/arm/aarch-common.c: Likewise.
14277         * config/arm/arm-builtins.c: Likewise.
14278         * config/arm/arm-c.c: Likewise.
14279         * config/arm/arm.c: Likewise.
14280         * config/avr/avr-c.c: Likewise.
14281         * config/avr/avr-log.c: Likewise.
14282         * config/avr/avr.c: Likewise.
14283         * config/bfin/bfin.c: Likewise.
14284         * config/c6x/c6x.c: Likewise.
14285         * config/cr16/cr16.c: Likewise.
14286         * config/cris/cris.c: Likewise.
14287         * config/darwin-c.c: Likewise.
14288         * config/darwin.c: Likewise.
14289         * config/epiphany/epiphany.c: Likewise.
14290         * config/epiphany/mode-switch-use.c: Likewise.
14291         * config/epiphany/resolve-sw-modes.c: Likewise.
14292         * config/fr30/fr30.c: Likewise.
14293         * config/frv/frv.c: Likewise.
14294         * config/ft32/ft32.c: Likewise.
14295         * config/h8300/h8300.c: Likewise.
14296         * config/i386/i386-c.c: Likewise.
14297         * config/i386/i386.c: Likewise.
14298         * config/i386/msformat-c.c: Likewise.
14299         * config/i386/winnt-cxx.c: Likewise.
14300         * config/i386/winnt-stubs.c: Likewise.
14301         * config/i386/winnt.c: Likewise.
14302         * config/ia64/ia64-c.c: Likewise.
14303         * config/ia64/ia64.c: Likewise.
14304         * config/iq2000/iq2000.c: Likewise.
14305         * config/lm32/lm32.c: Likewise.
14306         * config/m32c/m32c-pragma.c: Likewise.
14307         * config/m32c/m32c.c: Likewise.
14308         * config/m32r/m32r.c: Likewise.
14309         * config/m68k/m68k.c: Likewise.
14310         * config/mcore/mcore.c: Likewise.
14311         * config/mep/mep-pragma.c: Likewise.
14312         * config/mep/mep.c: Likewise.
14313         * config/microblaze/microblaze-c.c: Likewise.
14314         * config/microblaze/microblaze.c: Likewise.
14315         * config/mips/mips.c: Likewise.
14316         * config/mmix/mmix.c: Likewise.
14317         * config/mn10300/mn10300.c: Likewise.
14318         * config/moxie/moxie.c: Likewise.
14319         * config/msp430/msp430-c.c: Likewise.
14320         * config/msp430/msp430.c: Likewise.
14321         * config/nds32/nds32-cost.c: Likewise.
14322         * config/nds32/nds32-fp-as-gp.c: Likewise.
14323         * config/nds32/nds32-intrinsic.c: Likewise.
14324         * config/nds32/nds32-isr.c: Likewise.
14325         * config/nds32/nds32-md-auxiliary.c: Likewise.
14326         * config/nds32/nds32-memory-manipulation.c: Likewise.
14327         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14328         * config/nds32/nds32-predicates.c: Likewise.
14329         * config/nds32/nds32.c: Likewise.
14330         * config/nios2/nios2.c: Likewise.
14331         * config/nvptx/nvptx.c: Likewise.
14332         * config/pa/pa.c: Likewise.
14333         * config/pdp11/pdp11.c: Likewise.
14334         * config/rl78/rl78-c.c: Likewise.
14335         * config/rl78/rl78.c: Likewise.
14336         * config/rs6000/rs6000-c.c: Likewise.
14337         * config/rs6000/rs6000.c: Likewise.
14338         * config/rx/rx.c: Likewise.
14339         * config/s390/s390-c.c: Likewise.
14340         * config/s390/s390.c: Likewise.
14341         * config/sh/sh-c.c: Likewise.
14342         * config/sh/sh-mem.cc: Likewise.
14343         * config/sh/sh.c: Likewise.
14344         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
14345         * config/sh/sh_treg_combine.cc: Likewise.
14346         * config/sol2-c.c: Likewise.
14347         * config/sol2-cxx.c: Likewise.
14348         * config/sol2-stubs.c: Likewise.
14349         * config/sol2.c: Likewise.
14350         * config/sparc/sparc-c.c: Likewise.
14351         * config/sparc/sparc.c: Likewise.
14352         * config/spu/spu-c.c: Likewise.
14353         * config/spu/spu.c: Likewise.
14354         * config/stormy16/stormy16.c: Likewise.
14355         * config/tilegx/mul-tables.c: Likewise.
14356         * config/tilegx/tilegx-c.c: Likewise.
14357         * config/tilegx/tilegx.c: Likewise.
14358         * config/tilepro/mul-tables.c: Likewise.
14359         * config/tilepro/tilepro-c.c: Likewise.
14360         * config/tilepro/tilepro.c: Likewise.
14361         * config/v850/v850-c.c: Likewise.
14362         * config/v850/v850.c: Likewise.
14363         * config/vax/vax.c: Likewise.
14364         * config/visium/visium.c: Likewise.
14365         * config/vms/vms-c.c: Likewise.
14366         * config/vms/vms.c: Likewise.
14367         * config/vxworks.c: Likewise.
14368         * config/xtensa/xtensa.c: Likewise.
14369
14370 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
14371
14372         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
14373         Remove operand constraints.  Change operand 2 predicate to
14374         nonmemory operand.  Limit const_int values to mode bitsize.  Only
14375         allow const_int values less than 32 when optimizing for size.
14376         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
14377         Remove operand constraints.
14378         (*bt<mode>): Use SImode for const_int values less than 32.
14379         (regmode): Remove mode attribute.
14380
14381 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
14382
14383         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14384         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
14385           moxie_legitimate_address_p): New functions.
14386           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
14387
14388 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14389
14390         PR tree-optimization/66642
14391         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
14392         header comment.  Rename split_edge variable to edge_at_split.  Split
14393         exit edge to create new loop exit bb.  Insert loop exit phis in new
14394         loop exit bb.
14395
14396 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14397
14398         * tree-cfg.c (get_virtual_phi): New function.
14399         * tree-cfg.h (get_virtual_phi): Declare.
14400         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
14401         (rewrite_virtuals_into_loop_closed_ssa): New function.
14402         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
14403         Declare.
14404         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
14405         (transform_to_exit_first_loop_alt): Use
14406         rewrite_virtuals_into_loop_closed_ssa.
14407
14408 2015-07-07  Richard Biener  <rguenther@suse.de>
14409
14410         * fold-const.c (fold_binary_loc): Move
14411         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
14412         * match.pd: ... here.
14413         Add (X * C1) % C2 -> 0 simplification pattern derived from
14414         extract_muldiv_1.
14415
14416 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14417
14418         PR target/66780
14419         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
14420         change for target/65249.
14421
14422 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
14423
14424         * symtab.c (address_matters_1): Fix typo in comment above.
14425         (can_increase_alignment_p): Likewise.
14426
14427 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14428
14429         * function.c (free_after_compilation): Clear PROP_cfg in
14430         f->curr_properties.
14431
14432 2015-07-07  Richard Biener  <rguenther@suse.de>
14433
14434         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
14435         add which use to.
14436         (add_control_edge): Remove excessive vertical space in dumping.
14437         (process_ssa_edge_worklist): Simulate at most one statement and
14438         return whether we did.  Do not simulate PHIs if they are in a
14439         BB not yet simulated.
14440         (ssa_propagate): Adjust to always drain the BB worklist whenever
14441         a BB is available there, likewise the VARYING edges list before
14442         the interesting edge list.
14443
14444 2015-07-07  Christian Bruel  <christian.bruel@st.com>
14445
14446         PR target/52144
14447         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
14448
14449 2015-07-07  Richard Biener  <rguenther@suse.de>
14450
14451         PR middle-end/66739
14452         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
14453         A - B.
14454
14455 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14456
14457         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
14458         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
14459         Copy operand 0 to a temporary if !ext_register_operand.  Remove
14460         ancient extract_bit_field workaround.
14461         (insv<mode>_1): Rename from mov<mode>_insv_1.
14462         (*insvqi): Rename from *movqi_insv_2.
14463         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
14464         for renamed insvsi_1.
14465         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
14466
14467 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
14468
14469         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
14470         call to nvptx_reorg_subreg.
14471
14472 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
14473
14474         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
14475         * graphite-dependencies.c, graphite-interchange.c,
14476         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
14477         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
14478         Likewise.
14479
14480 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
14481
14482         * match.pd: Remove element_mode inside HONOR_*.
14483         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
14484         (~X | X -> -1, ~X ^ X -> -1): Merge.
14485         * tree.c (build_each_one_cst): New function.
14486         * tree.h (build_each_one_cst): Likewise.
14487
14488 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14489
14490         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14491         PROCESSOR_IAMCU.
14492
14493 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
14494
14495         * config.gcc <mips*-*-*>: Add fused-madd.opt.
14496         * config/mips/mips.opt (mfused-madd): Remove.
14497         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
14498         * config/mips/mips.h (TARGET_MIPS8000): New.
14499         (ISA_HAS_FP_MADD4_MSUB4): Remove.
14500         (ISA_HAS_FP_MADDF_MSUBF): Remove.
14501         (ISA_HAS_FP_MADD3_MSUB3): Remove.
14502         (ISA_HAS_NMADD4_NMSUB4): Remove.
14503         (ISA_HAS_NMADD3_NMSUB3): Remove.
14504         (ISA_HAS_FUSED_MADD4): New.
14505         (ISA_HAS_UNFUSED_MADD4): New.
14506         (ISA_HAS_FUSED_MADDF): New.
14507         (ISA_HAS_FUSED_MADD3): New.
14508         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
14509         (*fma<mode>4_madd3) New.
14510         (*fma<mode>4_madd4) New.
14511         (*fma<mode>4_maddf) New.
14512         (fms<mode>4) New.
14513         (*fms<mode>4_msub3) New.
14514         (*fms<mode>4_msub4) New.
14515         (fnma<mode>4) New.
14516         (*fnma<mode>4_nmadd3) New.
14517         (*fnma<mode>4_nmadd4) New.
14518         (fnms<mode>4) New.
14519         (*fnms<mode>4_nmsub3) New.
14520         (*fnms<mode>4_nmsub4) New.
14521         (*madd4<mode>) Modify to be unfused only.
14522         (*msub4<mode>) Modify to be unfused only.
14523         (*nmadd4<mode>) Modify to be unfused only.
14524         (*nmsub4<mode>) Modify to be unfused only.
14525         (*madd3<mode>) Remove.
14526         (*msub3<mode>) Remove.
14527         (*nmadd3<mode>) Remove.
14528         (*nmsub3<mode>) Remove.
14529         (*nmadd3<mode>_fastmath) Remove.
14530         (*nmsub3<mode>_fastmath) Remove.
14531         (*nmadd4<mode>_fastmath) Update condition.
14532         (*nmsub4<mode>_fastmath) Update condition.
14533
14534 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14535
14536         PR target/65956
14537         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
14538         alignment attribute, exploring one level down for records and arrays.
14539
14540 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14541
14542         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
14543         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
14544         Copy operand 1 to a temporary if !ext_register_operand.  Remove
14545         ancient extract_bit_field workaround.
14546         (*extv<mode>): Rename from *mov<mode>_extv_1.
14547         (*extvqi): Rename from *movqi_extv_1.
14548         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
14549         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
14550         to a temporary if !ext_register_operand.  Remove ancient
14551         extract_bit_field workaround.
14552         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
14553         (*extzvqi): Rename from *movqi_extzv_2.
14554         (*testqi_ext_3): Remove modes from const_int_operand predicated
14555         operands.  Add "n" constraint.
14556         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
14557         operand.  Add "J" constraint.
14558         (*btsq, *btrq, *btcq peephole2s): Remove mode from
14559         const_0_to_63 predicated operand.
14560         (regmode): New insn attribute.
14561         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
14562         to nonmemory_operand.  Use regmode insn attribute.
14563         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
14564         (*jcc_bt<mode>_mask): Remove mode from operand 3.
14565         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
14566         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
14567         operands.  Use "N" constraint instead of "n".
14568
14569 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14570
14571         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
14572
14573 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14574
14575         PR target/66749
14576         * config/i386/i386.c (iamcu_cost): New.
14577         (m_IAMCU): Likewise.
14578         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
14579         (processor_target_table): Add an entry for "iamcu".
14580         (processor_alias_table): Likewise.
14581         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
14582         (ix86_adjust_cost): Likewise.
14583         (ia32_multipass_dfa_lookahead): Likewise.
14584         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
14585         * config/i386/x86-tune.def: Updated for m_IAMCU.
14586
14587 2015-07-06  Richard Biener  <rguenther@suse.de>
14588
14589         PR tree-optimization/66772
14590         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
14591         values are available in the PHI node BB when there are
14592         still unexecutable edges.
14593
14594 2015-07-06  Richard Biener  <rguenther@suse.de>
14595
14596         PR tree-optimization/66767
14597         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
14598         Make sure to build the alignment test on a SSA name without
14599         final alignment info valid only if the alignment test
14600         evaluates to true.
14601
14602 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
14603
14604         PR target/66620
14605         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
14606         loop start when inserting LSETUP.
14607
14608 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14609
14610         PR target/53383
14611         * config/i386/i386.c (ix86_option_override_internal): Allow
14612         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
14613
14614 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14615
14616         * read-md.c (decimal_string): Rename to ...
14617         (md_decimal_string): ... this.
14618         (handle_enum): Reflect this.
14619
14620 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14621
14622         PR target/66731
14623         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
14624
14625 2015-07-06  Richard Biener  <rguenther@suse.de>
14626
14627         PR middle-end/66759
14628         * match.pd: Add missing constraint of y to REAL_CST in
14629         REAL_CST - x CMP y to y - CST CMP x simplification.
14630
14631 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
14632
14633         PR tree-optimization/66757
14634         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
14635
14636 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
14637             Sandra Loosemore <sandra@codesourcery.com>
14638
14639         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
14640         Delete extern declaration.
14641         (gprel_constant_p): Add extern declaration.
14642         * config/nios2/constraints.md ("S"): Use gprel_constant_p
14643         instead of nios2_symbol_ref_in_small_data_p.
14644         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
14645         (nios2_symbol_ref_in_small_data_p): Make static.
14646         (gprel_constant_p): Make non-static.
14647
14648 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14649
14650         * doc/fragments.texi (Target Fragment): Convert debian.org
14651         link to use https.
14652         * doc/install.texi (Configuration): Ditto.
14653
14654 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
14655
14656         PR tree-optimization/66718
14657         * tree-vect-stmts.c (vectorizable_call): Replace uses of
14658         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
14659
14660         PR tree-optimization/66718
14661         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
14662         vectorizable_load, vectorizable_condition): Move vectype,
14663         nunits, ncopies computation after checking what kind of statement
14664         stmt is.
14665
14666 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14667
14668         * target-insns.def (extv, extzv, insv): New targetm instruction
14669         patterns.
14670         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
14671         interface.
14672         * recog.c (simplify_while_replacing): Likewise.
14673
14674 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14675
14676         * target-insns.def (doloop_begin, doloop_end): New targetm
14677         instruction patterns.
14678         * loop-init.c: Include target.h.
14679         (pass_loop2::gate): Use the new targetm patterns instead of
14680         HAVE_*/gen_* interface.
14681         (pass_rtl_doloop::gate): Likewise.
14682         (pass_rtl_doloop::execute): Remove preprocessor condition.
14683         * hw-doloop.c: Build unconditionally.
14684         * loop-doloop.c: Likewise.
14685         (doloop_optimize): Use the new targetm patterns instead of
14686         HAVE_*/gen_* interface.
14687         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
14688         * modulo-sched.c (doloop_register_get): Likewise.
14689
14690 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14691
14692         * target-insns.def (clear_cache): New targetm instruction pattern.
14693         * builtins.c (expand_builtin___clear_cache): Use it instead of
14694         HAVE_*/gen_* interface.
14695
14696 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14697
14698         * target-insns.def (allocate_stack, check_stack, probe_stack)
14699         (probe_stack_address, split_stack_prologue, split_stack_space_check):
14700         New targetm instruction patterns.
14701         * explow.c (allocate_dynamic_stack_space): Use them instead of
14702         HAVE_*/gen_* interface.
14703         (emit_stack_probe): Likewise.
14704         (probe_stack_range): Likewise.
14705         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14706
14707 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14708
14709         * target-insns.def (stack_protect_set, stack_protect_test): New
14710         targetm instruction patterns.
14711         * cfgexpand.c (stack_protect_prologue): Use them instead of
14712         HAVE_*/gen_* interface.
14713         * function.c (stack_protect_epilogue): Likewise.
14714
14715 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14716
14717         * expr.h (gen_move_insn_uncast): Delete.
14718         * expr.c (gen_move_insn_uncast): Delete.
14719
14720 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14721
14722         * target-insns.def (restore_stack_block, restore_stack_function)
14723         (restore_stack_nonlocal, save_stack_block, save_stack_function)
14724         (save_stack_nonlocal): New targetm instruction patterns.
14725         * builtins.c (expand_builtin_apply): Use them instead of
14726         HAVE_*/gen_* interface.
14727         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
14728
14729 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14730
14731         * target-insns.def (trap): New targetm instruction pattern.
14732         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
14733         interface.
14734         * explow.c (allocate_dynamic_stack_space): Likewise.
14735         * ifcvt.c (find_if_header): Likewise.
14736
14737 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14738
14739         * target-insns.def (prefetch): New targetm instruction pattern.
14740         * tree-ssa-loop-prefetch.c: Include targeth.
14741         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
14742         of HAVE_*/gen_* interface.
14743         * builtins.c (expand_builtin_prefetch): Likewise.
14744         * toplev.c (process_options): Likewise.
14745
14746 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14747
14748         * target-insns.def (untyped_call, untyped_return): New targetm
14749         instruction patterns.
14750         * builtins.c (expand_builtin_apply): Use them instead of
14751         HAVE_*/gen_* interface.
14752         (result_vector): Define unconditionally.
14753
14754 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14755
14756         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
14757         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
14758         (nonlocal_goto_receiver): New targetm instruction patterns.
14759         * builtins.c (expand_builtin_setjmp_setup): Use them instead
14760         of HAVE_*/gen_* interface.
14761         (expand_builtin_setjmp_receiver): Likewise.
14762         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14763         * except.c (expand_dw2_landing_pad_for_region): Likewise.
14764
14765 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14766
14767         * target.def: Add code_for_* hooks.
14768         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
14769         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
14770         * target-insns.def (casesi, tablejump): New targetm instruction
14771         patterns.
14772         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
14773         (do_tablejump): Likewise.
14774         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
14775         (expand_sjlj_dispatch_table): Likewise.
14776         * targhooks.c (default_case_values_threshold): Likewise.
14777
14778 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
14779
14780         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
14781         Use rtx_insn * instead of rtx.
14782         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
14783         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
14784         (nios2_call_tls_get_addr): Likewise.
14785         (nios2_emit_expensive_div): Likewise.
14786         (nios2_emit_move_sequence): Change return type to bool.
14787         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
14788         Change return type to bool.
14789
14790 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14791
14792         PR target/66747
14793         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
14794
14795 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
14796
14797         PR target/66114
14798         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
14799         of register_operand.  Remove constraint.
14800
14801 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
14802
14803         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
14804         the first argument.
14805
14806 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
14807
14808         * attribs.c (decl_attributes): Guard inform with the return value
14809         of the preceding warning.
14810
14811 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14812
14813         * doc/invoke.texi (moverride): Move to correct section.
14814
14815 2015-07-03  Richard Biener  <rguenther@suse.de>
14816
14817         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
14818         Copy from tree.c
14819         (dt_operand::gen_gimple_expr): After valueizing operands
14820         re-canonicalize operand order for commutative tree codes.
14821
14822 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14823
14824         PR target/66746.
14825         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
14826         is defined.
14827         (__crc32w): Likewise.
14828         (__crc32d): Likewise.
14829         (__rdpmc): Likewise.
14830         (__rdtscp): Likewise.
14831         (_rdpmc): Likewise.
14832         (_rdtscp): Likewise.
14833         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
14834         is defined.
14835
14836 2015-07-03  Richard Biener  <rguenther@suse.de>
14837
14838         * fold-const.c (fold_mathfn_compare): Remove.
14839         (fold_inf_compare): Likewise.
14840         (fold_comparison): Move floating point comparison simplifications...
14841         * match.pd: ... to patterns here.  Introduce simple_comparisons
14842         operator list and use it for patterns formerly in fold_comparison.
14843
14844 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14845
14846         PR tree-optimization/66119
14847         * toplev.c (process_options): Don't set up default values for
14848         the sra_max_scalarization_size_{speed,size} parameters.
14849         * tree-sra (analyze_all_variable_accesses): If no values
14850         have been set for the sra_max_scalarization_size_{speed,size}
14851         parameters, call get_move_ratio to get target defaults.
14852
14853 2015-07-03  Richard Biener  <rguenther@suse.de>
14854
14855         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
14856         * match.pd: ... here.
14857
14858 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
14859
14860         PR target/37072
14861         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
14862         is not actually the default on FreeBSD.
14863
14864 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14865
14866         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
14867         definition.
14868         (CMPGE_8HI): Likewise.
14869         (CMPGE_4SI): Likewise.
14870         (CMPGE_2DI): Likewise.
14871         (CMPGE_U16QI): Likewise.
14872         (CMPGE_U8HI): Likewise.
14873         (CMPGE_U4SI): Likewise.
14874         (CMPGE_U2DI): Likewise.
14875         (CMPLE_16QI): Likewise.
14876         (CMPLE_8HI): Likewise.
14877         (CMPLE_4SI): Likewise.
14878         (CMPLE_2DI): Likewise.
14879         (CMPLE_U16QI): Likewise.
14880         (CMPLE_U8HI): Likewise.
14881         (CMPLE_U4SI): Likewise.
14882         (CMPLE_U2DI): Likewise.
14883         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14884         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
14885         ALTIVEC_BUILTIN_VEC_CMPLE.
14886         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
14887         floating-point vector modes.
14888         (vector_nlt<mode>): New define_expand.
14889         (vector_nltu<mode>): Likewise.
14890         (vector_ngt<mode>): Likewise.
14891         (vector_ngtu<mode>): Likewise.
14892
14893 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14894
14895         PR rtl-optimization/66706
14896         * combine.c (make_compound_operation): If an AND of SUBREG of
14897         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
14898
14899 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
14900
14901         * tree-pass.h (make_pass_ch_vect): New.
14902         * passes.def: Add pass_ch_vect just before pass_if_conversion.
14903
14904         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
14905         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
14906         make_pass_ch_vect): New.
14907         (pass_ch): Extend ch_base.
14908
14909         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
14910         (ch_base::copy_headers): ...here.
14911
14912 2015-07-02  Richard Biener  <rguenther@suse.de>
14913
14914         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
14915         * fold-const.c (get_pointer_modulus_and_residue): Remove.
14916         (fold_binary_loc): Implement (T)ptr & CST in terms of
14917         get_pointer_alignment_1.
14918         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
14919         Make sure to build the alignment test on a SSA name without
14920         final alignment info valid only after the prologue.
14921
14922 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
14923
14924         * config/cris/cris.md ("epilogue"): Remove condition.
14925         ("prologue"): Ditto.
14926
14927 2015-07-02  Richard Biener  <rguenther@suse.de>
14928
14929         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
14930         parameter to record a condition that is false.
14931         (record_conditions): When recording an extra NE_EXPR that is
14932         true also record a EQ_EXPR that is false.
14933
14934 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
14935
14936         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
14937         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
14938         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
14939         (set_iv, find_interesting_uses_address, add_candidate_1): New
14940         argument to alloc_iv.
14941         (find_interesting_uses_op, find_interesting_uses_cond): Don't
14942         duplicate struct iv.
14943         (free_loop_data): Don't free struct iv explicitly.
14944         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
14945
14946 2015-07-01  DJ Delorie  <dj@redhat.com>
14947
14948         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
14949         (LIB_SPEC): Add.
14950         (SUPPORTS_DISCRIMINATOR): Define.
14951
14952 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14953
14954         PR bootstrap/66685
14955         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
14956         there are no CALLs in the same pattern.
14957
14958 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14959
14960         PR rtl-optimization/61047
14961         * rtlanal.c (get_initial_register_offset): New function.
14962         (rtx_addr_can_trap_p_1): Check offsets of stack references.
14963
14964 2015-07-01  Richard Biener  <rguenther@suse.de>
14965
14966         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
14967         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
14968         ~X CMP C -> X CMP' ~C to ...
14969         * match.pd: ... patterns here.
14970
14971 2015-07-01  Nick Clifton  <nickc@redhat.com>
14972
14973         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
14974         a 16-bit value into a 20-bit memory slot.
14975
14976 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14977
14978         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14979         "aarch64_tiny", "aarch64_small", "aarch64_large",
14980         "aarch64_little_endian", "aarch64_big_endian".
14981
14982 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14983
14984         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
14985         Document "aarch64_small_fpic".
14986
14987 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14988
14989         * configure.ac: Add check for aarch64 assembler -fpic relocation
14990         modifier support.
14991         * configure: Regenerate.
14992         * config.in: Regenerate.
14993         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
14994         to -fPIC if not support of -fpic relocation modifier in assembler.
14995
14996 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14997
14998         PR bootstrap/66685
14999         * rtl.c (classify_insn): Handle returns in PARALLELs.
15000
15001 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
15002
15003         PR middle-end/66633
15004         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
15005         to true if the function is nested and if not optimizing.
15006         (convert_local_omp_clauses): Initialize need_frame to true if the
15007         function contains nested functions and if not optimizing.
15008
15009 2015-07-01  Richard Biener  <rguenther@suse.de>
15010
15011         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
15012         (X & Y) ^ Y -> ~X & Y transforms to ...
15013         * match.pd: ... here.
15014
15015 2015-07-01  Richard Biener <rguenther@suse.de>
15016
15017         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
15018         of converts to avoid uninteresting noise from the conversion
15019         simplifying patterns.
15020
15021 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
15022
15023         * config/c6x/c6x.c (try_rename_operands): Do not depend on
15024         gcc_assert evaluating its argument for side-effect.
15025
15026 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
15027
15028         PR target/64833
15029         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
15030         flag_pic is set.
15031
15032 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
15033
15034         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
15035         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
15036         (hash_scc): Add this_ref_p and ref_p parameters and pass them
15037         to the inner DFS walk.
15038
15039 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15040
15041         * target-insns.def (jump): New targetm instruction pattern.
15042         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
15043         instead of gen_jump.
15044         (fix_up_crossing_landing_pad): Likewise.
15045         (add_labels_and_missing_jumps): Likewise.
15046         (fix_crossing_conditional_branches): Likewise.
15047         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
15048         (force_nonfallthru_and_redirect): Likewise.
15049         * cse.c (cse_insn): Likewise.
15050         * expmed.c (expand_divmod): Likewise.
15051         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
15052         * haifa-sched.c (init_before_recovery): Likewise.
15053         (sched_create_recovery_edges): Likewise.
15054         * ifcvt.c (find_cond_trap): Likewise.
15055         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
15056         (expand_float, expand_fix): Likewise.
15057         * stmt.c (emit_jump): Likewise.
15058
15059 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15060
15061         * defaults.h (HAVE_load_multiple, gen_load_multiple)
15062         (HAVE_store_multiple, gen_store_multiple): Delete.
15063         * target-insns.def (load_multiple, store_multiple): New targetm
15064         instruction patterns.
15065         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
15066         of HAVE_*/gen_* interface.
15067
15068 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15069
15070         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
15071         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
15072         (gen_mem_signal_fence): Delete.
15073         * target-insns.def (mem_signal_fence, mem_thread_fence)
15074         (memory_barrier): New targetm instruction patterns.
15075         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
15076         interface.
15077         (expand_mem_signal_fence): Likewise.
15078
15079 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
15080
15081         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
15082         * target-insns.def (epilogue, prologue, sibcall_prologue): New
15083         targetm instruction patterns.
15084         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
15085         interface.
15086         * calls.c (expand_call): Likewise.
15087         * cfgrtl.c (cfg_layout_finalize): Likewise.
15088         * df-scan.c (df_get_entry_block_def_set): Likewise.
15089         (df_get_exit_block_use_set): Likewise.
15090         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
15091         * final.c (final_start_function): Likewise.
15092         * function.c (thread_prologue_and_epilogue_insns): Likewise.
15093         (reposition_prologue_and_epilogue_notes): Likewise.
15094         * reorg.c (find_end_label): Likewise.
15095         * toplev.c (process_options): Likewise.
15096
15097 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
15098
15099         * typed-splay-tree.h: New file.
15100
15101 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
15102
15103         PR debug/66691
15104         * lra-int.h (lra_substitute_pseudo): Add a parameter.
15105         (lra_substitute_pseudo_within_insn): Ditto.
15106         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
15107         of constant.
15108         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
15109         to lra_substitute_pseudo.
15110         * lra-lives.c (process_bb_lives): Add an argument to
15111         lra_substitute_pseudo_within_insn call.
15112         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
15113         argument to lra_substitute_pseudo and
15114         lra_substitute_pseudo_within_insn calls.
15115         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
15116
15117 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
15118
15119         * configure: Regenerated.
15120
15121 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
15122
15123         * config.gcc: Support i[34567]86-*-elfiamcu target.
15124         * config/i386/iamcu.h: New.
15125         * config/i386/i386.opt: Add -miamcu.
15126         * doc/invoke.texi: Document -miamcu.
15127         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
15128         off x87/MMX/SSE/AVX codegen for -miamcu.
15129         * config/i386/i386-c.c (ix86_target_macros_internal): Define
15130         __iamcu/__iamcu__ for -miamcu.
15131         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
15132         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
15133         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
15134         * config/i386/i386.c (ix86_option_override_internal): Ignore and
15135         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
15136         MCU by default.  Default long double to 64-bit for Intel MCU.
15137         Turn on -freg-struct-return for Intel MCU.  Issue an error when
15138         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
15139         AVX is turned on.
15140         (function_arg_advance_32): Pass value whose size is no larger
15141         than 8 bytes in registers for Intel MCU.
15142         (function_arg_32): Likewise.
15143         (ix86_return_in_memory): Return value whose size is no larger
15144         than 8 bytes in registers for Intel MCU.
15145         (iamcu_alignment): New function.
15146         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
15147         true.
15148         (ix86_local_alignment): Don't increase alignment for Intel MCU.
15149         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
15150         true.
15151
15152 2015-06-30  Marek Polacek  <polacek@redhat.com>
15153
15154         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
15155         both operands of the resulting expression.
15156
15157         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
15158         the final expression with the operand's type and then convert
15159         it to the type of the expression.
15160
15161 2015-06-30  Richard Biener  <rguenther@suse.de>
15162
15163         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
15164         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
15165         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
15166         * match.pd: ... to patterns here.
15167
15168 2015-06-30  Richard Biener  <rguenther@suse.de>
15169
15170         PR tree-optimization/66704
15171         * tree-vect-data-refs.c (vect_setup_realignment): Use
15172         make_ssa_name for non-SSA name source.
15173
15174 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
15175
15176         PR middle-end/66702
15177         * omp-low.c (simd_clone_adjust): Handle addressable linear
15178         or uniform parameters or non-gimple type uniform parameters.
15179
15180 2015-06-30  Richard Biener  <rguenther@suse.de>
15181
15182         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
15183         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
15184         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
15185         * match.pd: ... here.
15186         Add a few cases of A - B -> A + (-B) when B "easily" negates.
15187         Move (x & y) | x -> x and friends before
15188         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
15189
15190 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
15191
15192         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
15193         -mfix-ut699 is not specified.
15194         (leon3_load): Rename into...
15195         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
15196         is specified.
15197
15198 2015-06-30  Marek Polacek  <polacek@redhat.com>
15199
15200         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
15201         * match.pd: ... here.
15202
15203 2015-06-30  Richard Biener  <rguenther@suse.de>
15204
15205         * target-insns.def (canonicalize_funcptr_for_compare): Add.
15206         * fold-const.c (build_range_check): Replace uses of
15207         HAVE_canonicalize_funcptr_for_compare.
15208         (fold_widened_comparison): Likewise.
15209         (fold_sign_changed_comparison): Likewise.
15210         * dojump.c: Include "target.h".
15211         (do_compare_and_jump): Replace uses of
15212         HAVE_canonicalize_funcptr_for_compare and
15213         gen_canonicalize_funcptr_for_compare.
15214         * expr.c (do_store_flag): Likewise.
15215
15216 2015-06-30  Tom de Vries  <tom@codesourcery.com>
15217
15218         PR tree-optimization/66652
15219         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
15220         max_loop_iterations to determine if nit + 1 overflows.
15221
15222 2015-06-30  Richard Biener  <rguenther@suse.de>
15223
15224         * tree-vrp.c (register_edge_assert_for_2): Also register
15225         asserts for dominating conversion results.
15226
15227 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
15228
15229         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
15230         field in struct iv.
15231
15232 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
15233
15234         PR target/66509
15235         * configure.ac: Fix filds and fildq test for 64-bit.
15236         * configure: Regenerated.
15237
15238 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
15239
15240         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
15241         (nvptx_reorg): Here.  Keep the non-subreg pieces.
15242
15243 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
15244
15245         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
15246         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
15247
15248 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
15249
15250         * config/i386/i386.md (*jcc_1): Use %! in asm template.
15251         Set attribute "length_nobnd" instead of "length".
15252         (*jcc_2): Ditto.
15253         (jump): Ditto.
15254         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
15255
15256 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
15257
15258         * config/nios2/nios2.c (nios2_delegitimize_address): Make
15259         assert less restrictive.
15260
15261 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15262
15263         PR fortran/66605
15264         * cgraphunit.c (cgraph_node::finalize_function): Do not call
15265         do_warn_unused_parameter.
15266         * function.c (do_warn_unused_parameter): Move from here.
15267         * function.h (do_warn_unused_parameter): Do not declare.
15268
15269 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15270
15271         PR target/65697
15272         * gcc.target/arm/armv-sync-comp-swap.c: New.
15273         * gcc.target/arm/armv-sync-op-acquire.c: New.
15274         * gcc.target/arm/armv-sync-op-full.c: New.
15275         * gcc.target/arm/armv-sync-op-release.c: New.
15276
15277 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15278
15279         PR target/65697
15280         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
15281         initial acquire barrier with final barrier.
15282
15283 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15284
15285         PR target/65697
15286         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
15287         initial acquire barrier with final barrier.
15288
15289 2015-06-29  Richard Henderson  <rth@redhat.com>
15290
15291         * config/i386/constraints.md (Bf): New constraint.
15292         * config/i386/i386-c.c (ix86_target_macros): Define
15293         __GCC_ASM_FLAG_OUTPUTS__.
15294         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
15295         as flags outputs.
15296         * doc/extend.texi (FlagOutputOperands): Document them.
15297
15298 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
15299
15300         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
15301         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
15302         unspec name.
15303         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
15304         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
15305         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
15306         (aarch64_symbol_context): Ditto.
15307         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
15308         and use new pattern name.
15309         (aarch64_expand_mov_immediate): Ditto.
15310         (aarch64_print_operand): Ditto.
15311         (aarch64_classify_tls_symbol): Ditto.
15312
15313 2015-06-29  Marek Polacek  <polacek@redhat.com>
15314             Marc Glisse  <marc.glisse@inria.fr>
15315
15316         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
15317         * match.pd: ... pattern here.
15318
15319 2015-06-29  Tom de Vries  <tom@codesourcery.com>
15320
15321         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
15322         function structure.
15323
15324 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15325
15326         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
15327         feature description, split out the native option, add a link to
15328         the feature documentation, rearrange and slightly rewrite text.
15329         (Aarch64 options, -mcpu): Likewise.
15330         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
15331         +rdma implies Adv. SIMD.
15332
15333 2015-06-29  Marek Polacek  <polacek@redhat.com>
15334
15335         PR c/66322
15336         * function.c (stack_protect_epilogue): Remove a cast to int.
15337         * doc/invoke.texi: Update -Wswitch-bool description.
15338
15339 2015-06-29  Richard Biener  <rguenther@suse.de>
15340
15341         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
15342         * fold-const.c (fold_binary_loc): Move &A - &B simplification
15343         via ptr_difference_const ...
15344         * match.pd: ... here.
15345         When matching (X ^ Y) == Y also match with swapped operands.
15346
15347 2015-06-29  Richard Biener  <rguenther@suse.de>
15348
15349         * lto-streamer.h (LTO_major_version): Bump to 5.
15350
15351 2015-06-29  Richard Biener  <rguenther@suse.de>
15352
15353         PR tree-optimization/66677
15354         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
15355         STMT_VINFO_VEC_STMT clobbering less strict.
15356
15357 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
15358
15359         PR middle-end/64130
15360         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
15361         division, compute max and min when value ranges for dividend and
15362         divisor are available.
15363
15364 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
15365             Sandra Loosemore <sandra@codesourcery.com>
15366
15367         * regrename.h (regrename_do_replace): Change to return bool.
15368         * regrename.c (rename_chains): Check return value of
15369         regname_do_replace.
15370         (regrename_do_replace): Re-validate the modified insns and
15371         return bool status.
15372         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
15373         Update to match rename_chains changes.
15374         * config/c6x/c6x.c (try_rename_operands): Assert that
15375         regrename_do_replace returns true.
15376
15377 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
15378
15379         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
15380         operand 2 here.  Use copy_addr_to_reg to copy non-index
15381         register operand 2 to a temporary.
15382         (<mode>_stx): Ditto for operand 1.
15383         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
15384         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
15385         (ix86_store_bounds): Ditto.
15386
15387 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
15388
15389         * print-tree.c (print_node) [TREE_VEC]: Print its length.
15390
15391 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
15392
15393         * gimple.c (gimple_call_set_fndecl): Remove.
15394         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
15395         build1_loc directly instead of build_fold_addr_expr_loc.
15396
15397 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15398
15399         * hash-map.h (hash_map::traverse): Use the definition of the
15400         Key typedef rather than the typedef itself.
15401
15402 2015-06-26  Martin Jambor  <mjambor@suse.cz>
15403
15404         PR debug/66301
15405         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
15406         NULL instead of calling dump_enabled_p.
15407
15408 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15409
15410         * config/aarch64/aarch64.opt: (override): New.
15411         * doc/invoke.texi (override): Document.
15412         * config/aarch64/aarch64.c (aarch64_flag_desc): New
15413         (aarch64_fusible_pairs): Likewise.
15414         (aarch64_tuning_flags): Likewise.
15415         (aarch64_tuning_override_function): Likewise.
15416         (aarch64_tuning_override_functions): Likewise.
15417         (aarch64_parse_one_option_token): Likewise.
15418         (aarch64_parse_boolean_options): Likewise.
15419         (aarch64_parse_fuse_string): Likewise.
15420         (aarch64_parse_tune_string): Likewise.
15421         (aarch64_parse_one_override_token): Likewise.
15422         (aarch64_parse_override_string): Likewise.
15423         (aarch64_override_options): Parse the -override string if it
15424         is present.
15425
15426 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15427
15428         * config/aarch64/aarch64-protos.h (tune_params): Remove
15429         const from members.
15430         (aarch64_tune_params): Remove const, change to no longer be
15431         a pointer.
15432         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
15433         change to no longer be a pointer, initialize to generic_tunings.
15434         (aarch64_min_divisions_for_recip_mul): Change dereference of
15435         aarch64_tune_params to member access.
15436         (aarch64_reassociation_width): Likewise.
15437         (aarch64_rtx_mult_cost): Likewise.
15438         (aarch64_address_cost): Likewise.
15439         (aarch64_branch_cost): Likewise.
15440         (aarch64_rtx_costs): Likewise.
15441         (aarch64_register_move_cost): Likewise.
15442         (aarch64_memory_move_cost): Likewise.
15443         (aarch64_sched_issue_rate): Likewise.
15444         (aarch64_builtin_vectorization_cost): Likewise.
15445         (aarch64_override_options): Take a copy of the selected tuning
15446         struct in to aarch64_tune_params, rather than just setting
15447         a pointer, change dereferences of aarch64_tune_params to member
15448         accesses.
15449         (aarch64_override_options_after_change): Change dereferences of
15450         aarch64_tune_params to member access.
15451         (aarch64_macro_fusion_p): Likewise.
15452         (aarch_macro_fusion_pair_p): Likewise.
15453         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
15454
15455 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15456
15457         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
15458         (aarch64_tune_flags): Likewise.
15459         (AARCH64_TUNE_FMA_STEERING): Likewise.
15460         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
15461         to AARCH64_FL_USE_FMA_STEERING_PASS.
15462         (cortex-a57.cortex-a53): Likewise.
15463         (cortex-a72): Use cortexa72_tunings.
15464         (cortex-a72.cortex-a53): Likewise.
15465         (exynos-m1): Likewise.
15466         * config/aarch64/aarch64-protos.h (tune_params): Add
15467         a field: extra_tuning_flags.
15468         * config/aarch64/aarch64-tuning-flags.def: New.
15469         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
15470         (aarch64_extra_tuning_flags): Likewise.
15471         (aarch64_tune_params): Declare here.
15472         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
15473         (cortexa53_tunings): Likewise.
15474         (cortexa57_tunings): Likewise.
15475         (thunderx_tunings): Likewise.
15476         (xgene1_tunings): Likewise.
15477         (cortexa72_tunings): New.
15478         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
15479          (gate): Check against aarch64_tune_params.
15480         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
15481         aarch64-protos.h.
15482
15483 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15484
15485         * config/aarch64/aarch64-fusion-pairs.def: New.
15486         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
15487         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
15488         aarch64_fusion_pairs.
15489         (AARCH64_FUSE_MOV_MOVK): Likewise.
15490         (AARCH64_FUSE_ADRP_ADD): Likewise.
15491         (AARCH64_FUSE_MOVK_MOVK): Likewise.
15492         (AARCH64_FUSE_ADRP_LDR): Likewise.
15493         (AARCH64_FUSE_CMP_BRANCH): Likewise.
15494
15495 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15496
15497         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
15498         SYMBOL_SMALL_GOT_28K.
15499         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
15500         relocation modifiers.
15501         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
15502         (ldr_got_small_28k_<mode>): New.
15503         (ldr_got_small_28k_sidi): New.
15504         * config/aarch64/iterators.md (got_modifier): New mode iterator.
15505         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
15506         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15507         SYMBOL_SMALL_GOT_28K.
15508         (aarch64_rtx_costs): Add costs for new instruction sequences.
15509         (initialize_aarch64_code_model): Initialize new model.
15510         (aarch64_classify_symbol): Recognize new model and new symbol classification.
15511         (aarch64_asm_preferred_eh_data_format): Support new model.
15512         (aarch64_load_symref_appropriately): Generate new instruction
15513         sequences for -fpic.
15514         (TARGET_USE_PSEUDO_PIC_REG): New definition.
15515         (aarch64_use_pseudo_pic_reg): New function.
15516
15517 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15518
15519         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15520         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
15521         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
15522         (aarch64_expand_mov_immediate): Ditto.
15523         (aarch64_print_operand): Ditto.
15524         (aarch64_classify_symbol): Ditto.
15525
15526 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
15527
15528         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
15529
15530 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
15531
15532         PR bootstrap/66638
15533         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
15534         assertion failed.  Remove assertion itself.
15535
15536 2015-06-26  Richard Biener  <rguenther@suse.de>
15537
15538         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
15539         and -A CMP CST -> A CMP -CST which is redundant with a pattern
15540         in match.pd.
15541         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
15542         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
15543         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
15544         * match.pd: ... patterns here.
15545
15546 2015-06-26  Marek Polacek  <polacek@redhat.com>
15547
15548         * match.pd ((x | y) & ~(x & y) -> x ^ y,
15549         (x | y) & (~x ^ y) -> x & y): New patterns.
15550
15551 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15552
15553         * rtl.h (emit): Add an optional boolean parameter to control
15554         whether barriers are emitted.
15555         * emit-rtl.c (emit): Likewise.
15556         * gensupport.c (get_emit_function): Return null rather than "emit".
15557         * genemit.c (gen_emit_seq): Handle the null return value.
15558         Don't emit barriers after the final instruction in the sequence.
15559         * gentarget-def.c (main): Don't emit barriers after the instruction.
15560
15561 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15562
15563         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
15564         TARGET_UNIFIED_ASM.
15565
15566 2015-06-26  Richard Biener  <rguenther@suse.de>
15567
15568         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
15569
15570 2015-06-26  Richard Biener  <rguenther@suse.de>
15571
15572         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
15573         irrespective on whether the inner operation has a single use
15574         of both off are constant.
15575
15576 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
15577             Segher Boessenkool  <segher@kernel.crashing.org>
15578
15579         PR target/66412
15580         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
15581         before doing PUT_MODE or PUT_CODE on operands to avoid
15582         in-place RTX modification.
15583
15584 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15585
15586         * gentarget-def.c (def_target_insn): Cast return of strtol to
15587         unsigned int.
15588
15589 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15590
15591         * gimple.h (gimple_call_set_fn): Move inline function.
15592         * gimple.c (gimple_call_set_fn): Relocate here.
15593
15594 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
15595
15596         PR target/65979
15597         PR target/66611
15598         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
15599         the replacement insn will work.
15600
15601 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15602
15603         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
15604         by default.
15605
15606 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15607
15608         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
15609         * cgraph.h: Include ipa-ref.h and plugin-api.h.
15610         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
15611         (symtab_node::address_can_be_compared_p): Move function.
15612         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
15613         definition here.
15614         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
15615         * auto-profile.c: Likewise.
15616         * bb-reorder.c: Likewise.
15617         * builtins.c: Likewise.
15618         * calls.c: Likewise.
15619         * cfgexpand.c: Likewise.
15620         * cgraphbuild.c: Likewise.
15621         * cgraphclones.c: Likewise.
15622         * cgraphunit.c: Likewise.
15623         * combine.c: Likewise.
15624         * coverage.c: Likewise.
15625         * data-streamer-in.c: Likewise.
15626         * data-streamer-out.c: Likewise.
15627         * data-streamer.c: Likewise.
15628         * dbxout.c: Likewise.
15629         * dwarf2out.c: Likewise.
15630         * except.c: Likewise.
15631         * expr.c: Likewise.
15632         * final.c: Likewise.
15633         * fold-const.c: Likewise.
15634         * ggc-page.c: Likewise.
15635         * gimple-fold.c: Likewise.
15636         * gimple-iterator.c: Likewise.
15637         * gimple-pretty-print.c: Likewise.
15638         * gimple-streamer-in.c: Likewise.
15639         * gimple-streamer-out.c: Likewise.
15640         * gimple.c: Likewise.
15641         * gimplify.c: Likewise.
15642         * ipa-chkp.c: Likewise.
15643         * ipa-comdats.c: Likewise.
15644         * ipa-cp.c: Likewise.
15645         * ipa-devirt.c: Likewise.
15646         * ipa-icf-gimple.c: Likewise.
15647         * ipa-icf.c: Likewise.
15648         * ipa-inline-analysis.c: Likewise.
15649         * ipa-inline-transform.c: Likewise.
15650         * ipa-inline.c: Likewise.
15651         * ipa-polymorphic-call.c: Likewise.
15652         * ipa-profile.c: Likewise.
15653         * ipa-prop.c: Likewise.
15654         * ipa-pure-const.c: Likewise.
15655         * ipa-ref.c: Likewise.
15656         * ipa-reference.c: Likewise.
15657         * ipa-split.c: Likewise.
15658         * ipa-utils.c: Likewise.
15659         * ipa-visibility.c: Likewise.
15660         * ipa.c: Likewise.
15661         * langhooks.c: Likewise.
15662         * lto-cgraph.c: Likewise.
15663         * lto-compress.c: Likewise.
15664         * lto-opts.c: Likewise.
15665         * lto-section-in.c: Likewise.
15666         * lto-section-out.c: Likewise.
15667         * lto-streamer-in.c: Likewise.
15668         * lto-streamer-out.c: Likewise.
15669         * lto-streamer.c: Likewise.
15670         * omp-low.c: Likewise.
15671         * opts-global.c: Likewise.
15672         * passes.c: Likewise.
15673         * predict.c: Likewise.
15674         * print-tree.c: Likewise.
15675         * profile.c: Likewise.
15676         * ree.c: Likewise.
15677         * sanopt.c: Likewise.
15678         * stor-layout.c: Likewise.
15679         * symtab.c: Likewise.
15680         * toplev.c: Likewise.
15681         * trans-mem.c: Likewise.
15682         * tree-cfg.c: Likewise.
15683         * tree-chkp.c: Likewise.
15684         * tree-eh.c: Likewise.
15685         * tree-emutls.c: Likewise.
15686         * tree-inline.c: Likewise.
15687         * tree-nested.c: Likewise.
15688         * tree-parloops.c: Likewise.
15689         * tree-pretty-print.c: Likewise.
15690         * tree-profile.c: Likewise.
15691         * tree-sra.c: Likewise.
15692         * tree-ssa-alias.c: Likewise.
15693         * tree-ssa-live.c: Likewise.
15694         * tree-ssa-loop-ivcanon.c: Likewise.
15695         * tree-ssa-loop-ivopts.c: Likewise.
15696         * tree-ssa-pre.c: Likewise.
15697         * tree-ssa-sccvn.c: Likewise.
15698         * tree-ssa-strlen.c: Likewise.
15699         * tree-ssa-structalias.c: Likewise.
15700         * tree-streamer-in.c: Likewise.
15701         * tree-streamer-out.c: Likewise.
15702         * tree-streamer.c: Likewise.
15703         * tree-switch-conversion.c: Likewise.
15704         * tree-tailcall.c: Likewise.
15705         * tree-vect-data-refs.c: Likewise.
15706         * tree-vect-stmts.c: Likewise.
15707         * tree-vectorizer.c: Likewise.
15708         * tree.c: Likewise.
15709         * tsan.c: Likewise.
15710         * ubsan.c: Likewise.
15711         * value-prof.c: Likewise.
15712         * varasm.c: Likewise.
15713         * varpool.c: Likewise.
15714         * config/arm/arm.c: Likewise.
15715         * config/bfin/bfin.c: Likewise.
15716         * config/c6x/c6x.c: Likewise.
15717         * config/cris/cris.c: Likewise.
15718         * config/darwin-c.c: Likewise.
15719         * config/darwin.c: Likewise.
15720         * config/i386/i386.c: Likewise.
15721         * config/i386/winnt.c: Likewise.
15722         * config/microblaze/microblaze.c: Likewise.
15723         * config/mips/mips.c: Likewise.
15724         * config/rs6000/rs6000.c: Likewise.
15725         * config/rx/rx.c: Likewise.
15726         * config/s390/s390.c: Likewise.
15727         * config/tilegx/mul-tables.c: Likewise.
15728
15729 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15730
15731         * config/aarch64/aarch64.c, config/alpha/alpha.c,
15732         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
15733         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
15734         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
15735         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15736         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15737         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15738         config/microblaze/microblaze.c, config/mips/mips.c,
15739         config/mmix/mmix.c, config/mn10300/mn10300.c,
15740         config/moxie/moxie.c, config/msp430/msp430.c,
15741         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15742         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15743         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15744         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15745         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15746         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15747         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
15748         target-def.h include.
15749         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
15750
15751 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15752
15753         * Makefile.in (TARGET_DEF): Add target-insns.def.
15754         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
15755         (build/gentarget-def.o): New rule.
15756         (genprogrtl): Add target-def.
15757         * target-insns.def, gentarget-def.c: New files.
15758         * target.def: Add targetm.have_* and targetm.gen_* hooks,
15759         based on the contents of target-insns.def.
15760         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
15761         (HAVE_return, gen_return): Delete.
15762         * target-def.h: Include insn-target-def.h.
15763         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
15764         instead of direct calls.  Rely on them to do the appropriate assertions.
15765         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
15766         (convert_jumps_to_returns): Use targetm interface instead of
15767         direct calls.
15768         (thread_prologue_and_epilogue_insns): Likewise.
15769         * reorg.c (find_end_label, dbr_schedule): Likewise.
15770         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
15771         * shrink-wrap.c (convert_to_simple_return): Likewise.
15772         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
15773
15774 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15775
15776         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
15777         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15778         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
15779         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
15780         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15781         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15782         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15783         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
15784         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
15785         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15786         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15787         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15788         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15789         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15790         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15791         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
15792         includes to end.
15793
15794 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15795
15796         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
15797         (unbounded_int_hashmap_traits::key_type): Likewise.
15798         * hash-map.h (hash_map): Get the key type from the traits.
15799         * hash-traits.h (default_hash_traits): By default, inherit from the
15800         template parameter.
15801         * alias.c (alias_set_traits): Delete.
15802         (alias_set_entry_d::children): Use alias_set_hash as the first
15803         template parameter.
15804         (record_alias_subset): Update accordingly.
15805         * except.c (tree_hash_traits): Delete.
15806         (type_to_runtime_map): Use tree_hash as the first template parameter.
15807         (init_eh): Update accordingly.
15808         * genmatch.c (capture_id_map_hasher): Delete.
15809         (cid_map_t): Use nofree_string_hash as first template parameter.
15810         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
15811         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
15812         Use symbol_compare_hash as the first template parameter in
15813         subdivide_hash_map.
15814         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
15815         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
15816         template parameter.
15817         * passes.c (pass_registry_hasher): Delete.
15818         (name_to_pass_map): Use nofree_string_hash as the first template
15819         parameter.
15820         (register_pass_name): Update accordingly.
15821         * sanopt.c (sanopt_tree_map_traits): Delete.
15822         (sanopt_tree_triplet_map_traits): Delete.
15823         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
15824         template parameter.
15825         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
15826         the first template parameter.
15827         * sese.c (rename_map_hasher): Delete.
15828         (rename_map_type): Use tree_ssa_name_hash as the first template
15829         parameter.
15830         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
15831         (function_summary::m_map): Use map_hash as the first template
15832         parameter.
15833         (function_summary::release): Update accordingly.
15834         * tree-if-conv.c (phi_args_hash_traits): Delete.
15835         (predicate_scalar_phi): Use tree_operand_hash as the first template
15836         parameter to phi_arg_map.
15837         * tree-inline.h (dependence_hasher): Delete.
15838         (copy_body_data::dependence_map): Use dependence_hash as the first
15839         template parameter.
15840         * tree-inline.c (remap_dependence_clique): Update accordingly.
15841         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
15842         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
15843         parameter.
15844         (addr_stridxptr): Update accordingly.
15845         * value-prof.c (profile_id_traits): Delete.
15846         (cgraph_node_map): Use profile_id_hash as the first template
15847         parameter.
15848         (init_node_map): Update accordingly.
15849         * config/alpha/alpha.c (string_traits): Delete.
15850         (machine_function::links): Use nofree_string_hash as the first
15851         template parameter.
15852         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
15853         * config/m32c/m32c.c (pragma_traits): Delete.
15854         (pragma_htab): Use nofree_string_hash as the first template parameter.
15855         (m32c_note_pragma_address): Update accordingly.
15856         * config/mep/mep.c (pragma_traits): Delete.
15857         (pragma_htab): Use nofree_string_hash as the first template parameter.
15858         (mep_note_pragma_flag): Update accordingly.
15859         * config/mips/mips.c (mips16_flip_traits): Delete.
15860         (mflip_mips16_htab): Use nofree_string_hash as the first template
15861         parameter.
15862         (mflip_mips16_use_mips16_p): Update accordingly.
15863         (local_alias_traits): Delete.
15864         (mips16_local_aliases): Use nofree_string_hash as the first template
15865         parameter.
15866         (mips16_local_alias): Update accordingly.
15867
15868 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15869
15870         * hash-map-traits.h (default_hashmap_traits): Delete.
15871
15872 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15873
15874         * hash-map-traits.h (unbounded_hashmap_traits): New class.
15875         (unbounded_int_hashmap_traits): Likewise.
15876         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
15877
15878 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15879
15880         * ipa-icf.h (symbol_compare_hash): New class.
15881         (symbol_compare_hashmap_traits): Use it.
15882         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
15883         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
15884         (mem_alloc_description::reverse_mem_map_t): Remove redundant
15885         default_hashmap_traits.
15886         * sanopt.c (sanopt_tree_triplet_hash): New class.
15887         (sanopt_tree_triplet_map_traits): Use it.
15888
15889 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15890
15891         * gengtype-parse.c (require_template_declaration): Allow '+' in
15892         template parameters.  Consolidate cases.
15893         * hash-traits.h (int_hash): New class.
15894         * alias.c (alias_set_hash): New structure.
15895         (alias_set_traits): Use it.
15896         * symbol-summary.h (function_summary::map_hash): New class.
15897         (function_summary::summary_hashmap_traits): Use it.
15898         * tree-inline.h (dependence_hash): New class.
15899         (dependence_hasher): Use it.
15900         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
15901         * value-prof.c (profile_id_hash): New class.
15902         (profile_id_traits): Use it.
15903
15904 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15905
15906         * config/mips/mips.c (mips16_flip_traits): Use it.
15907         (local_alias_traits, mips16_local_aliases): Convert from a map of
15908         rtxes to a map of symbol names.
15909         (mips16_local_alias): Update accordingly.
15910
15911 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15912
15913         * hash-traits.h (string_hash, nofree_string_hash): New classes.
15914         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
15915         * passes.c (pass_registry_hasher): Likewise.
15916         * config/alpha/alpha.c (string_traits): Likewise.
15917         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
15918         * config/m32c/m32c.c (pragma_traits): Likewise.
15919         * config/mep/mep.c (pragma_traits): Likewise.
15920
15921 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15922
15923         * tree-hash-traits.h (tree_hash): New class.
15924         * except.c: Include tree-hash-traits.h.
15925         (tree_hash_traits): Use tree_hash.
15926
15927 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15928
15929         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
15930         * sese.c: Include tree-hash-traits.h.
15931         (rename_map_hasher): Use tree_ssa_name_hasher.
15932
15933 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15934
15935         * tree-hash-traits.h (tree_decl_hash): New class.
15936         * tree-ssa-strlen.c: Include tree-hash-traits.h.
15937         (stridxlist_hash_traits): Use tree_decl_hash.
15938
15939 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15940
15941         * tree-hash-traits.h: New file.
15942         (tree_operand_hash): New class.
15943         * sanopt.c: Include tree-hash-traits.h.
15944         (sanopt_tree_map_traits): Use tree_operand_hash.
15945         * tree-if-conv.c: Include tree-hash-traits.h.
15946         (phi_args_hash_traits): Use tree_operand_hash.
15947         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
15948         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
15949
15950 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15951
15952         * hash-map-traits.h: Include hash-traits.h.
15953         (simple_hashmap_traits): New class.
15954         * mem-stats.h (hash_map): Change the default traits to
15955         simple_hashmap_traits<default_hash_traits<Key> >.
15956
15957 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15958
15959         * hash-table.h: Update comments.
15960
15961 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15962
15963         * hash-traits.h (default_hash_traits): New structure.
15964         * hash-set.h (default_hashset_traits): Delete.
15965         (hash_set): Use default_hash_traits<Key> instead of
15966         default_hashset_traits.  Delete hash_entry type and use Key directly.
15967         * ipa-devirt.c (pair_traits): Delete.
15968         (default_hash_traits <type_pair>): Override.
15969         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
15970         (odr_types_equivalent_p, add_type_duplicate): Likewise.
15971
15972 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15973
15974         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
15975
15976 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15977
15978         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
15979         (has_is_empty, is_empty_helper): Delete.
15980         (has_mark_deleted, mark_deleted_helper): Delete.
15981         (has_mark_empty, mark_empty_helper): Delete.
15982         (hash_table::is_deleted): Call the Descriptor unconditionally.
15983         (hash_table::is_empty): Likewise.
15984         (hash_table::mark_deleted): Likewise.
15985         (hash_table::mark_empty): Likewise.
15986
15987 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15988
15989         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
15990         redundant typedefs and members.
15991         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
15992         redundant typedefs.
15993         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
15994         * ipa-devirt.c (odr_name_hasher): Likewise.
15995         (polymorphic_call_target_hasher): Likewise.
15996         * ira-costs.c (cost_classes_hasher): Likewise.
15997         * statistics.c (stats_counter_hasher): Likewise.
15998         * trans-mem.c (log_entry_hasher): Likewise.
15999         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
16000         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
16001         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
16002         * var-tracking.c (variable_hasher): Likewise.
16003         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
16004         Remove redundant typedefs and members.
16005
16006 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16007
16008         * hash-traits.h (ggc_cache_hasher): Rename to...
16009         (ggc_cache_remove): ...this and remove typedefs.
16010         (ggc_cache_ptr_hash): New class.
16011         * hash-table.h: Update commentary.
16012         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
16013         rather than ggc_cache_hasher.
16014         (const_wide_int_hasher, reg_attr_hasher): Likewise.
16015         (const_double_hasher, const_fixed_hasher): Likewise.
16016         * function.c (insn_cache_hasher): Likewise.
16017         * trans-mem.c (tm_wrapper_hasher): Likewise.
16018         * tree.h (tree_decl_map_cache_hasher): Likewise.
16019         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
16020         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
16021         * ubsan.c (tree_type_map_cache_hasher): Likewise.
16022         * varasm.c (tm_clone_hasher): Likewise.
16023         * config/i386/i386.c (dllimport_hasher): Likewise.
16024         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
16025         (tree_hasher): Likewise.
16026
16027 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16028
16029         * hash-traits.h (ggc_hasher): Rename to...
16030         (ggc_remover): ...this and remove typedefs.
16031         (ggc_cache_hasher): Update accordingly.  Add typedefs.
16032         (ggc_ptr_hash): New class.
16033         * hash-table.h: Update comment.
16034         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
16035         ggc_hasher.
16036         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
16037         (tree_descriptor_hasher): Likewise.
16038         * cgraph.c (function_version_hasher): Likewise.
16039         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
16040         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
16041         (dw_loc_list_hasher, addr_hasher): Likewise.
16042         * function.h (used_type_hasher): Likewise.
16043         * function.c (temp_address_hasher): Likewise.
16044         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
16045         * libfuncs.h (libfunc_hasher): Likewise.
16046         * lto-streamer.h (decl_state_hasher): Likewise.
16047         * optabs.c (libfunc_decl_hasher): Likewise.
16048         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
16049         * varasm.c (section_hasher, object_block_hasher): Likewise.
16050         (const_rtx_desc_hasher): Likewise.
16051         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
16052         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
16053
16054 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16055
16056         * hash-traits.h (free_ptr_hash): New class.
16057         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
16058         rather than typed_free_remove.  Remove redudant typedefs.
16059         (external_ref_hasher): Likewise.
16060         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
16061         (ehspec_hasher): Likewise.
16062         * ggc-common.c (saving_hasher): Likewise.
16063         * gimplify.c (gimplify_hasher): Likewise.
16064         * haifa-sched.c (delay_i2_hasher): Likewise.
16065         * loop-invariant.c (invariant_expr_hasher): Likewise.
16066         * loop-iv.c (biv_entry_hasher): Likewise.
16067         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
16068         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
16069         * tree-cfg.c (locus_discrim_hasher): Likewise.
16070         * tree-eh.c (finally_tree_hasher): Likewise.
16071         * tree-into-ssa.c (var_info_hasher): Likewise.
16072         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
16073         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
16074         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
16075         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
16076         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
16077         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
16078         (shared_bitmap_hasher): Likewise.
16079         * tree-ssa-threadupdate.c (redirection_data): Likewise.
16080         * tree-vectorizer.h (peel_info_hasher): Likewise.
16081         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
16082         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
16083
16084 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16085
16086         * hash-table.h: Update comments.
16087         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
16088         (nofree_ptr_hash): New class.
16089         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
16090         than typed_noop_remove.  Remove redudant typedefs.
16091         * attribs.c (attribute_hasher): Likewise.
16092         * cfg.c (bb_copy_hasher): Likewise.
16093         * cselib.c (cselib_hasher): Likewise.
16094         * dse.c (invariant_group_base_hasher): Likewise.
16095         * dwarf2cfi.c (trace_info_hasher): Likewise.
16096         * dwarf2out.c (macinfo_entry_hasher): Likewise.
16097         (comdat_type_hasher, loc_list_hasher): Likewise.
16098         * gcse.c (pre_ldst_expr_hasher): Likewise.
16099         * genmatch.c (id_base): Likewise.
16100         * genrecog.c (test_pattern_hasher): Likewise.
16101         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
16102         * haifa-sched.c (delay_i1_hasher): Likewise.
16103         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
16104         * ipa-icf.h (congruence_class_group_hash): Likewise.
16105         * ipa-profile.c (histogram_hash): Likewise.
16106         * ira-color.c (allocno_hard_regs_hasher): Likewise.
16107         * lto-streamer.h (string_slot_hasher): Likewise.
16108         * lto-streamer.c (tree_entry_hasher): Likewise.
16109         * plugin.c (event_hasher): Likewise.
16110         * postreload-gcse.c (expr_hasher): Likewise.
16111         * store-motion.c (st_expr_hasher): Likewise.
16112         * tree-sra.c (uid_decl_hasher): Likewise.
16113         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
16114         (ssa_name_var_hash): Likewise.
16115         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
16116         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
16117         * tree-ssa-pre.c (pre_expr_d): Likewise.
16118         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
16119         * vtable-verify.h (registration_hasher): Likewise.
16120         * vtable-verify.c (vtbl_map_hasher): Likewise.
16121         * config/arm/arm.c (libcall_hasher): Likewise.
16122         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
16123         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
16124         * config/sol2.c (comdat_entry_hasher): Likewise.
16125         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
16126         (print_fold_checksum, fold_checksum_tree): Likewise.
16127         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
16128         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
16129         (fold_build_call_array_loc): Likewise.
16130         * tree-ssa-ccp.c (gimple_htab): Likewise.
16131         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
16132         rather than pointer_type.
16133
16134 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16135
16136         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
16137         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
16138
16139 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16140
16141         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
16142         (ggc_hasher::ggc_mx): Likewise.
16143         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
16144         that duplicate ggc_hasher ones.
16145
16146 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16147
16148         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
16149         (gt_cleare_cache): Check here for deleted and empty entries.
16150         Replace handle_cache_entry with a call to keep_cache_entry.
16151         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
16152         (ggc_cache_hasher::keep_cache_entry): New function.
16153         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
16154         (tm_wrapper_hasher::keep_cache_entry): New function.
16155         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
16156         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
16157         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
16158         (type_cache_hasher::keep_cache_entry): New function.
16159         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
16160         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
16161         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
16162         (tree_type_map_cache_hasher::keep_cache_entry): New function.
16163         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
16164         (tm_clone_hasher::keep_cache_entry): New function.
16165         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
16166         (dllimport_hasher::keep_cache_entry): New function.
16167
16168 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16169
16170         * hash-table.h: Include hash-traits.h.
16171         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
16172         (ggc_cache_hasher): Move to...
16173         * hash-traits.h: ...this new file.
16174
16175 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16176
16177         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
16178         struct cl_optimization.
16179         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
16180         * tree.c (make_node_stat): Allocate cl_optimization struct.
16181         (copy_node_stat): Allocate and copy cl_optimization struct.
16182
16183 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16184
16185         * function.h (struct incoming_args): Move struct.
16186         (pass_by_reference, reference_callee_copied): Remove prototypes.
16187         * emit-rtl.h (struct incoming_args): Relocate struct here.
16188         * calls.h (pass_by_reference, reference_callee_copied): Relocate
16189         prototypes here.
16190         * function.c (pass_by_reference, reference_callee_copied): Move.
16191         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
16192         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
16193         * ipa-chkp.c: Include calls.h.
16194
16195 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
16196
16197         * alias.h (alias_set_type): Move typedef.
16198         * coretypes.h (alias_set_type): Relocate typedef here.
16199         * rtl.h: Don't include alias.h.
16200
16201 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16202
16203         * cgraph.h (cgraph_rtl_info): Move to rtl.h
16204         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
16205         and instance.
16206         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
16207         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
16208         doesn't exist.
16209         * calls.c: Include hard-reg-set.h before rtl.h.
16210         * ira.c: Likewise.
16211
16212 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
16213             Vladimir Makarov  <vmakarov@redhat.com>
16214
16215         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
16216         Add assert.
16217
16218 2015-06-25  Richard Biener  <rguenther@suse.de>
16219
16220         * fold-const.c (fold_binary_loc): Move simplification of
16221         (X <<>> C1) & C2 ...
16222         * match.pd: ... here.
16223
16224 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
16225
16226         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
16227
16228 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16229
16230         * match.pd: Add patterns for vec_conds between 1 and 0.
16231
16232 2015-06-25  Richard Biener  <rguenther@suse.de>
16233
16234         * tree-vect-stmts.c (vectorizable_conversion): Do not set
16235         STMT_VINFO_VEC_STMT for SLP.
16236         (vectorizable_store): Likewise.
16237         (vectorizable_load): Likewise.
16238         (vect_transform_stmt): Catch SLP vectorization clobbering
16239         STMT_VINFO_VEC_STMT.
16240
16241 2015-06-25  Richard Biener  <rguenther@suse.de>
16242
16243         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
16244         dumping.
16245         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
16246         cleanup resulting dead code and parameters.
16247         (vect_transform_slp_perm_load): Adjust.
16248
16249 2015-06-25  Nick Clifton  <nickc@redhat.com>
16250
16251         * config/bfin/bfin.c (bfin_expand_prologue): Set
16252         current_function_static_stack_size if flag_stack_usage_info is set.
16253         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
16254         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
16255         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16256         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
16257
16258 2015-06-25  Tom de Vries  <tom@codesourcery.com>
16259
16260         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
16261         comment that the generated IV is unsigned.
16262
16263 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16264
16265         PR target/29693
16266         * config/arm/arm.c (arm_dbx_register_number): Return
16267         DWARF_FRAME_REGISTERS by default.
16268
16269 2015-06-25  Tom de Vries  <tom@codesourcery.com>
16270
16271         * dominance.c (calculate_dominance_info): Fix verify_dominators call
16272         argument.  Call verify_dominator when reusing dominator info.
16273
16274 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
16275
16276         PR target/66563
16277         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
16278         an additional element of the unspec vector.  Modify indices
16279         of operands.
16280         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
16281         * config/sh/sh.c (prepare_move_operands): Pass incremented
16282         const_int to gen_GOTaddr2picreg.
16283         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
16284
16285 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16286
16287         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
16288         Condition on TARGET_FLOAT.
16289
16290 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16291
16292         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
16293         and (no)crypto.
16294
16295 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16296
16297         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
16298
16299         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
16300         aarch64_err_no_fpadvsimd.
16301
16302         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
16303         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
16304         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
16305         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
16306         Turn error into assert, test TARGET_FLOAT.
16307         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
16308         TARGET_FLOAT.
16309
16310 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
16311
16312         PR debug/66482
16313         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
16314
16315 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
16316
16317         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
16318
16319 2015-06-24  Renlin Li <renlin.li@arm.com>
16320
16321         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
16322         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
16323
16324 2015-06-24  Richard Biener  <rguenther@suse.de>
16325
16326         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
16327         (main): Likewise.
16328         (lower_opt_convert): Support lowering of conditional view_convert.
16329         (parser::parse_operation): Likewise.
16330         (parser::parse_for): Likewise.
16331
16332 2015-06-24  Renlin Li  <renlin.li@arm.com>
16333
16334         * varasm.c (emit_local): Use unsigned int for align variable.
16335
16336 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16337
16338         PR target/63408
16339         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
16340         for negative numbers.
16341
16342 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16343
16344         PR rtl-optimization/66306
16345         * reload.c (find_reloads): Swap the match_dup info for
16346         commutative operands.
16347
16348 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16349
16350         * config/s390/vx-builtins.md
16351         ("vec_scatter_element<mode>_<non_vec_int>")
16352         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
16353         attribute with bhfgq.
16354
16355 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16356
16357         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
16358
16359 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16360
16361         * config/s390/s390-builtin-types.def: Add flag to indicate the
16362         options under which the function type is needed.
16363         * config/s390/s390-builtins.def: Add flag to indicate the options
16364         under which the builtin is enabled.
16365         * config/s390/s390-builtins.h: Add flags parameter to macro
16366         definitions.
16367         (bflags_for_builtin): New function.
16368         (flags_for_builtin): Renamed to ...
16369         (opflags_for_builtin): ... this.
16370         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
16371         flags_for_builtin to bflags_for_builtin and
16372         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
16373         * config/s390/s390.c: Add initialization of bflags_builtin and
16374         opflags_builtin arrays.
16375         Remove code for flags_builtin.
16376         (s390_init_builtins): Only create builtin function types if one of
16377         their flags is active.
16378         Only create builtins if all of their flags are active.
16379         (s390_expand_builtin): Rename flags_for_builtin to
16380         opflags_for_builtin.
16381
16382 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16383
16384         * config/s390/vecintrin.h: Remove internal builtins.
16385
16386 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16387
16388         * config/s390/s390.c (s390_secondary_reload): Fix check for
16389         GENERAL_REGS register class.
16390
16391 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16392
16393         * config/s390/s390.c (s390_support_vector_misalignment): Call
16394         default implementation for !TARGET_VX.
16395
16396 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16397
16398         * config/s390/s390.c (s390_legitimate_constant_p): Add
16399         TARGET_VX check.
16400
16401 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16402
16403         * config/s390/s390.c (s390_vector_abi): New variable definition.
16404         (s390_check_type_for_vector_abi): New function.
16405         (TARGET_ASM_FILE_END): New macro definition.
16406         (s390_asm_file_end): New function.
16407         (s390_function_arg): Call s390_check_type_for_vector_abi.
16408         (s390_gimplify_va_arg): Likewise.
16409         * configure: Regenerate.
16410         * configure.ac: Check for .gnu_attribute Binutils feature.
16411
16412 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
16413
16414         PR target/65803
16415         * config/bfin/bfin.c (hwloop_optimize): Initialize
16416         JUMP_LABEL for newly created jump.
16417
16418 2015-06-23  Tristan Gingold  <gingold@adacore.com>
16419
16420         * collect-utils.c (collect_wait): Unlink the response file here
16421         instead of...
16422         (do_wait): ...here.
16423         (utils_cleanup): ...and here.
16424
16425 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
16426
16427         * df-scan.c: Don't include target-def.h.
16428         * targhooks.c: Likewise.
16429         * config/arm/arm-c.c: Likewise.
16430         * config/i386/i386-c.c: Likewise.
16431         * config/nds32/nds32-cost.c: Likewise.
16432         * config/nds32/nds32-fp-as-gp.c: Likewise.
16433         * config/nds32/nds32-intrinsic.c: Likewise.
16434         * config/nds32/nds32-isr.c: Likewise.
16435         * config/nds32/nds32-md-auxiliary.c: Likewise.
16436         * config/nds32/nds32-memory-manipulation.c: Likewise.
16437         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16438         * config/nds32/nds32-predicates.c: Likewise.
16439
16440 2015-06-23  Richard Biener  <rguenther@suse.de>
16441
16442         PR tree-optimization/66636
16443         * tree-vect-stmts.c (vectorizable_store): Properly compute the
16444         def type for further defs for strided stores.
16445
16446 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
16447
16448         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
16449         conditional selects.
16450         (setcc_int<mode>, setcc_float<mode>): Reformat.
16451
16452 2015-06-23  Marek Polacek  <polacek@redhat.com>
16453
16454         * match.pd ((x + y) - (x | y) -> x & y,
16455         (x + y) - (x & y) -> x | y): New patterns.
16456
16457 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
16458
16459         PR 65711
16460         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
16461         '-dynamic-linker' within %{!shared: ...}.
16462
16463 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
16464
16465         PR target/66560
16466         * config/i386/predicates.md (addsub_vm_operator): New predicate.
16467         (addsub_vs_operator): Ditto.
16468         (addsub_vs_parallel): Ditto.
16469         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
16470         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
16471         Put minus RTX before plus and adjust vec_merge selector.
16472         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
16473         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
16474         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
16475         (addsub vec_merge splitters): New combiner splitters.
16476         (addsub vec_select/vec_concat splitters): Ditto.
16477
16478 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
16479
16480         PR tree-optimization/66449
16481         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
16482         POINTER_PLUS_EXPR for pointers.
16483
16484 2015-06-23  Alan Modra  <amodra@gmail.com>
16485
16486         * rtlanal.c (commutative_operand_precedence): Correct comments.
16487         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
16488         declaration.  Return an int.  Distinguish REG,REG return from
16489         others.
16490         (struct simplify_plus_minus_op_data): Make local to function.
16491         (simplify_plus_minus): Don't set canonicalized if merely sorting
16492         registers.  Avoid packing ops if nothing changes.  White space fixes.
16493
16494 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
16495
16496         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
16497         -fdump-ada-spec is passed but not if -fsyntax-only is.
16498
16499 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
16500
16501         PR bootstrap/63740
16502         * lra-lives.c (process_bb_lives): Check insn copying the same
16503         reload pseudo and don't create a copy for it.
16504
16505 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16506
16507         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
16508         for cond_stmt.
16509
16510 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16511
16512         * builtins.def (DEF_GOMP_BUILTIN): Test
16513         'flag_tree_parallelize_loops > 1' instead of
16514         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
16515
16516 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16517
16518         * dominance.c (calculate_dominance_info): Verify dominators if
16519         early-out.
16520
16521 2015-06-22  Marek Polacek  <polacek@redhat.com>
16522
16523         * match.pd ((x ^ y) ^ (x | y) -> x & y,
16524         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
16525         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
16526         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
16527
16528 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
16529
16530         PR target/65871
16531         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
16532         cost of embedded comparison.
16533
16534 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16535
16536         PR target/65914
16537         * config/rs6000/predicates.md (altivec_register_operand): Permit
16538         virtual stack registers.
16539         (vsx_register_operand): Likewise.
16540         (vfloat_operand): Likewise.
16541         (vint_operand): Likewise.
16542         (vlogical_operand): Likewise.
16543
16544 2015-06-22  Richard Biener  <rguenther@suse.de>
16545
16546         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
16547         and single_scalar_iteration_cost members.
16548         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
16549         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
16550         (vect_get_single_scalar_iteration_cost): Remove.
16551         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
16552         Use LOOP_VINFO_SCALAR_ITERATION_COST.
16553         * tree-vect-loop.c (destroy_loop_vec_info): Free
16554         scalar_cost_vec.
16555         (vect_get_single_scalar_iteration_cost): Compute result into
16556         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
16557         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
16558         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
16559         (vect_estimate_min_profitable_iters): Use them.
16560
16561 2015-06-22  Christian Bruel  <christian.bruel@st.com>
16562
16563         PR target/52144
16564         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
16565         (TARGET_INSERT_ATTRIBUTES): Define.
16566         (thumb_flipper): New var.
16567         * config/arm/arm.opt (-mflip-thumb): New switch.
16568
16569 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16570             Martin Liska  <mliska@suse.cz>
16571
16572         PR ipa/65908
16573         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
16574         construction of arg_types.
16575         (sem_function::sem_function): Likewise.
16576         (sem_function::~sem_function): Remove destruction of arg_types.
16577         (sem_function::compatible_parm_types_p): New function.
16578         (sem_function::equals_wpa): Reorg matching of return values
16579         and parameter types.
16580         (sem_function::equals_private): Reorg mathcing of argument types.
16581         (sem_function::parse_tree_args): Remove.
16582         * ipa-icf.h (init_wpa): Do not call it.
16583         (parse_tree_args): Remove.
16584         (compatible_parm_types_p): Declare.
16585         (result_type): Remove.
16586         (arg_types): Remove.
16587
16588 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16589
16590         PR ipa/66351
16591         * ipa-polymorphic-call.c
16592         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
16593         initializing alias oracle; fix formating; set base_alias_set if it
16594         is known.
16595
16596 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
16597
16598         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
16599         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
16600         (find_inc): Likewise.
16601         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
16602         swapping.
16603         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
16604         * df-scan.c (df_swap_refs): Remove.
16605         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
16606         * dominance.c (link_roots): Use std::swap instead of manually swapping.
16607         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
16608         * fold-const.c (fold_relational_const): Likewise.
16609         * genattrtab.c (simplify_test_exp): Likewise.
16610         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
16611         gimple_simplify): Likewise.
16612         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
16613         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
16614         * ipa-devirt.c (add_type_duplicate): Likewise.
16615         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
16616         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
16617         * lra.c (lra_create_copy): Likewise.
16618         * lto-streamer-out.c (DFS::DFS): Likewise.
16619         * modulo-sched.c (get_sched_window): Likewise.
16620         * omega.c (omega_pretty_print_problem): Likewise.
16621         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
16622         * reload1.c (reloads_unique_chain_p): Likewise.
16623         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
16624         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
16625         use std::swap.
16626         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
16627         manually swapping.
16628         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
16629         predicate_mem_writes): Likewise.
16630         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
16631         * tree-predcom.c (combine_chains): Likewise.
16632         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
16633         refs_may_alias_p_1): Likewise.
16634         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
16635         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
16636         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
16637         number_of_iterations_cond): Likewise.
16638         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
16639         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
16640         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16641         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
16642         * tree-vrp.c (extract_range_from_binary_expr_1,
16643         extract_range_from_unary_expr_1): Likewise.
16644
16645 2015-06-20  Marek Polacek  <polacek@redhat.com>
16646
16647         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
16648
16649 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16650
16651         PR target/66591
16652         * config/sh/sh.c (prepare_move_operands): Replace subreg
16653         index term with R0 for base and index addressing.
16654
16655 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
16656
16657         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
16658         op1 is an fp zero.
16659         (movsf_aarch64): Change condition from register_operand to
16660         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
16661         load1.  Change type for alternative 7 to store1.
16662         (movdf_aarch64): Likewise.
16663
16664 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
16665
16666         * config/vax/vax.md: Adjust sign/zero extend patterns to
16667         handle SUBREGs in operands[1].
16668
16669 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16670
16671         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
16672         of manually swapping.
16673         (expand_vec_perm_interleave2): Likewise.
16674
16675 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
16676
16677         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
16678         reuse bounds created for abnormal ssa names.
16679
16680 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
16681
16682         * config/nvptx/nvptx.md (allocate_stack): Rename to...
16683         (allocate_stack_<mode>): ... this, and add :P on both
16684         match_operand and unspec.
16685         (allocate_stack): New expander.
16686
16687 2015-06-19  Christian Bruel  <christian.bruel@st.com>
16688
16689         PR target/66541
16690         PR target/52144
16691         * config/arm/arm.c (arm_set_current_function): Handle
16692         explicit default options.
16693
16694 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16695
16696         * config/i386/i386.md (*movsicc_noc_zext): New insn.
16697         (zero-extended cmove with mem peephole2): New pattern.
16698         (cmove with mem peephole2): Merge patterns.
16699
16700 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16701
16702         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
16703
16704 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
16705
16706         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
16707         * config/mips/mips.md (*madd4<mode>): Ditto.
16708         (*nmadd3<mode>) Ditto.
16709         (*nmadd4<mode>_fastmath): Ditto.
16710         (*nmadd3<mode>_fastmath): Ditto.
16711         (*nmsub4<mode>): Ditto.
16712         (*nmsub3<mode>): Ditto.
16713         (*nmsub4<mode>_fastmath): Ditto.
16714         (*nmsub3<mode>_fastmath): Ditto.
16715
16716 2015-06-18  Michael Matz  <matz@suse.de>
16717
16718         PR middle-end/66253
16719         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
16720         grouped strided stores.
16721         (vectorizable_load): Don't use the DR from first_stmt in
16722         the non-SLP grouped strided case.
16723
16724 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16725
16726         PR target/66569
16727         * function.c (assign_bounds): Add arguments assign_regs,
16728         assign_special, assign_bt.
16729         (assign_parms): For vararg functions handle bounds in BT
16730         and special slots after incoming vararg bounds.
16731
16732 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16733
16734         PR middle-end/66568
16735         * cfgexpand.c (expand_return): Handle missing bounds.
16736         (expand_gimple_stmt_1): Likewise.
16737         * tree-chkp.c (chkp_expand_zero_bounds): New.
16738         * tree-chkp.h (chkp_expand_zero_bounds): New.
16739
16740 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16741
16742         PR middle-end/66567
16743         * ipa-chkp.c (chkp_maybe_create_clone): Require
16744         functions to be instrumentable.
16745         * tree-chkp.c (chkp_replace_function_pointer): Use
16746         chkp_instrumentable_p instead of attribute check.
16747
16748 2015-06-18  Richard Biener  <rguenther@suse.de>
16749
16750         PR tree-optimization/66510
16751         * tree-vect-stmts.c (vectorizable_load): Properly compute the
16752         number of vector loads for SLP permuted loads.
16753         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
16754         check the stride for loop vectorization.
16755         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
16756         vectorization factor.
16757         (vect_analyze_group_access): If the group size is not a power
16758         of two require a epilogue loop.
16759         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
16760         compute and optimizing and alias test pruning after final
16761         vectorization factor computation.
16762         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
16763         vector alignment.
16764         (vect_transform_slp_perm_load): Properly compute the original
16765         number of vector load stmts.
16766
16767 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16768
16769         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
16770         "unlikely character , in @var" warning.
16771
16772 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
16773
16774         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
16775         (ix86_function_arg_advance): Ditto.
16776         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
16777
16778 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16779
16780         * function.h (struct rtl_data): Remove struct and accessor macros.
16781         * emit-rtl.h (struct rtl_data): Relocate to here.
16782         * Makefile.in (GTFILES): Add emit-rtl.h.
16783         * df-core.c: Include emit-rtl.h.
16784         * genattrtab.c: Likewise.
16785         * genconditions.c: Likewise.
16786         * genpreds.c: Likewise.
16787         * genrecog.c: Likewise.
16788         * regcprop.c: Likewise.
16789         * resource.c: Likewise.
16790         * sched-rgn.c: Likewise.
16791         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16792         * config/i386/winnt.c: Likewise.
16793
16794 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
16795
16796         PR middle-end/66429
16797         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
16798         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
16799         and has_force_vectorize_loops flags from cfun into
16800         child_cfun.
16801         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
16802         if simduid is non-NULL.
16803         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
16804         * passes.def (pass_simduid_cleanup): Add new pass after loop
16805         passes.
16806         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
16807         indirection from htab argument's type.
16808         (shrink_simd_arrays): New function.
16809         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
16810         Don't call adjust_simduid_builtins if there are no loops.
16811         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
16812         (pass_simduid_cleanup::execute): New method.
16813         (make_pass_simduid_cleanup): New function.
16814
16815 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
16816
16817         * tree-core.h (tree_target_option): Make opts field a pointer to a
16818         cl_target_option instead of an instance of the struct.
16819         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
16820         the structure.
16821         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
16822         TARGET_OPTION_NODE.
16823         (copy_node_stat): Allocate and copy struct cl_target_option.
16824
16825 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16826
16827         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
16828         Remove conditional exposure of prototypes.
16829         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
16830         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
16831         definitions in tree.h with functions.
16832         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
16833         anon_aggrname_p.
16834         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
16835
16836 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
16837
16838         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
16839         (*cmp<mode>_signed): ... this.
16840         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
16841         (*cmp<mode>_unsigned): ... this.  Remove %b.
16842
16843 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16844
16845         * coretypes.h: Include input.h and as-a.h.
16846         * rtl.h: Include input.h and as-a.h for generator files.
16847         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
16848         * vec.c: Don't include diagnostic-core.h.
16849         * alias.c: Do not include input.h, line-map.h or is-a.h.
16850         * asan.c: Likewise.
16851         * attribs.c: Likewise.
16852         * auto-inc-dec.c: Likewise.
16853         * auto-profile.c: Likewise.
16854         * bb-reorder.c: Likewise.
16855         * bt-load.c: Likewise.
16856         * builtins.c: Likewise.
16857         * caller-save.c: Likewise.
16858         * calls.c: Likewise.
16859         * ccmp.c: Likewise.
16860         * cfg.c: Likewise.
16861         * cfganal.c: Likewise.
16862         * cfgbuild.c: Likewise.
16863         * cfgcleanup.c: Likewise.
16864         * cfgexpand.c: Likewise.
16865         * cfghooks.c: Likewise.
16866         * cfgloop.c: Likewise.
16867         * cfgloop.h: Likewise.
16868         * cfgloopanal.c: Likewise.
16869         * cfgloopmanip.c: Likewise.
16870         * cfgrtl.c: Likewise.
16871         * cgraph.c: Likewise.
16872         * cgraphbuild.c: Likewise.
16873         * cgraphclones.c: Likewise.
16874         * cgraphunit.c: Likewise.
16875         * cilk-common.c: Likewise.
16876         * combine-stack-adj.c: Likewise.
16877         * combine.c: Likewise.
16878         * compare-elim.c: Likewise.
16879         * convert.c: Likewise.
16880         * coverage.c: Likewise.
16881         * cppbuiltin.c: Likewise.
16882         * cprop.c: Likewise.
16883         * cse.c: Likewise.
16884         * cselib.c: Likewise.
16885         * data-streamer-in.c: Likewise.
16886         * data-streamer-out.c: Likewise.
16887         * data-streamer.c: Likewise.
16888         * dbxout.c: Likewise.
16889         * dce.c: Likewise.
16890         * ddg.c: Likewise.
16891         * debug.c: Likewise.
16892         * df-core.c: Likewise.
16893         * df-problems.c: Likewise.
16894         * df-scan.c: Likewise.
16895         * df.h: Likewise.
16896         * dfp.c: Likewise.
16897         * diagnostic-core.h: Likewise.
16898         * diagnostic.c: Likewise.
16899         * dojump.c: Likewise.
16900         * dominance.c: Likewise.
16901         * domwalk.c: Likewise.
16902         * double-int.c: Likewise.
16903         * dse.c: Likewise.
16904         * dumpfile.c: Likewise.
16905         * dumpfile.h: Likewise.
16906         * dwarf2asm.c: Likewise.
16907         * dwarf2cfi.c: Likewise.
16908         * dwarf2out.c: Likewise.
16909         * emit-rtl.c: Likewise.
16910         * et-forest.c: Likewise.
16911         * except.c: Likewise.
16912         * explow.c: Likewise.
16913         * expmed.c: Likewise.
16914         * expr.c: Likewise.
16915         * final.c: Likewise.
16916         * fixed-value.c: Likewise.
16917         * fold-const.c: Likewise.
16918         * function.c: Likewise.
16919         * fwprop.c: Likewise.
16920         * gcc-plugin.h: Likewise.
16921         * gcse.c: Likewise.
16922         * generic-match-head.c: Likewise.
16923         * ggc-page.c: Likewise.
16924         * gimple-builder.c: Likewise.
16925         * gimple-expr.c: Likewise.
16926         * gimple-fold.c: Likewise.
16927         * gimple-iterator.c: Likewise.
16928         * gimple-low.c: Likewise.
16929         * gimple-match-head.c: Likewise.
16930         * gimple-pretty-print.c: Likewise.
16931         * gimple-ssa-isolate-paths.c: Likewise.
16932         * gimple-ssa-strength-reduction.c: Likewise.
16933         * gimple-streamer-in.c: Likewise.
16934         * gimple-streamer-out.c: Likewise.
16935         * gimple-streamer.h: Likewise.
16936         * gimple-walk.c: Likewise.
16937         * gimple.c: Likewise.
16938         * gimplify-me.c: Likewise.
16939         * gimplify.c: Likewise.
16940         * godump.c: Likewise.
16941         * graph.c: Likewise.
16942         * graphite-blocking.c: Likewise.
16943         * graphite-dependences.c: Likewise.
16944         * graphite-interchange.c: Likewise.
16945         * graphite-isl-ast-to-gimple.c: Likewise.
16946         * graphite-optimize-isl.c: Likewise.
16947         * graphite-poly.c: Likewise.
16948         * graphite-scop-detection.c: Likewise.
16949         * graphite-sese-to-poly.c: Likewise.
16950         * graphite.c: Likewise.
16951         * haifa-sched.c: Likewise.
16952         * hw-doloop.c: Likewise.
16953         * ifcvt.c: Likewise.
16954         * init-regs.c: Likewise.
16955         * input.c: Likewise.
16956         * internal-fn.c: Likewise.
16957         * ipa-chkp.c: Likewise.
16958         * ipa-comdats.c: Likewise.
16959         * ipa-cp.c: Likewise.
16960         * ipa-devirt.c: Likewise.
16961         * ipa-icf-gimple.c: Likewise.
16962         * ipa-icf.c: Likewise.
16963         * ipa-inline-analysis.c: Likewise.
16964         * ipa-inline-transform.c: Likewise.
16965         * ipa-inline.c: Likewise.
16966         * ipa-polymorphic-call.c: Likewise.
16967         * ipa-profile.c: Likewise.
16968         * ipa-prop.c: Likewise.
16969         * ipa-pure-const.c: Likewise.
16970         * ipa-ref.c: Likewise.
16971         * ipa-reference.c: Likewise.
16972         * ipa-split.c: Likewise.
16973         * ipa-utils.c: Likewise.
16974         * ipa-visibility.c: Likewise.
16975         * ipa.c: Likewise.
16976         * ira-build.c: Likewise.
16977         * ira-color.c: Likewise.
16978         * ira-conflicts.c: Likewise.
16979         * ira-costs.c: Likewise.
16980         * ira-emit.c: Likewise.
16981         * ira-lives.c: Likewise.
16982         * ira.c: Likewise.
16983         * jump.c: Likewise.
16984         * langhooks.c: Likewise.
16985         * lcm.c: Likewise.
16986         * loop-doloop.c: Likewise.
16987         * loop-init.c: Likewise.
16988         * loop-invariant.c: Likewise.
16989         * loop-iv.c: Likewise.
16990         * loop-unroll.c: Likewise.
16991         * lower-subreg.c: Likewise.
16992         * lra-assigns.c: Likewise.
16993         * lra-coalesce.c: Likewise.
16994         * lra-constraints.c: Likewise.
16995         * lra-eliminations.c: Likewise.
16996         * lra-lives.c: Likewise.
16997         * lra-remat.c: Likewise.
16998         * lra-spills.c: Likewise.
16999         * lra.c: Likewise.
17000         * lto-cgraph.c: Likewise.
17001         * lto-compress.c: Likewise.
17002         * lto-opts.c: Likewise.
17003         * lto-section-in.c: Likewise.
17004         * lto-section-out.c: Likewise.
17005         * lto-streamer-in.c: Likewise.
17006         * lto-streamer-out.c: Likewise.
17007         * lto-streamer.c: Likewise.
17008         * mcf.c: Likewise.
17009         * mode-switching.c: Likewise.
17010         * modulo-sched.c: Likewise.
17011         * omega.c: Likewise.
17012         * omp-low.c: Likewise.
17013         * optabs.c: Likewise.
17014         * opts-global.c: Likewise.
17015         * opts.h: Likewise.
17016         * passes.c: Likewise.
17017         * plugin.c: Likewise.
17018         * postreload-gcse.c: Likewise.
17019         * postreload.c: Likewise.
17020         * predict.c: Likewise.
17021         * pretty-print.h: Likewise.
17022         * print-rtl.c: Likewise.
17023         * print-tree.c: Likewise.
17024         * profile.c: Likewise.
17025         * real.c: Likewise.
17026         * realmpfr.c: Likewise.
17027         * recog.c: Likewise.
17028         * ree.c: Likewise.
17029         * reg-stack.c: Likewise.
17030         * regcprop.c: Likewise.
17031         * reginfo.c: Likewise.
17032         * regrename.c: Likewise.
17033         * regstat.c: Likewise.
17034         * reload.c: Likewise.
17035         * reload1.c: Likewise.
17036         * reorg.c: Likewise.
17037         * resource.c: Likewise.
17038         * rtl-chkp.c: Likewise.
17039         * rtl-error.c: Likewise.
17040         * rtlanal.c: Likewise.
17041         * rtlhooks.c: Likewise.
17042         * sanopt.c: Likewise.
17043         * sched-deps.c: Likewise.
17044         * sched-ebb.c: Likewise.
17045         * sched-rgn.c: Likewise.
17046         * sched-vis.c: Likewise.
17047         * sdbout.c: Likewise.
17048         * sel-sched-dump.c: Likewise.
17049         * sel-sched-ir.c: Likewise.
17050         * sel-sched.c: Likewise.
17051         * sese.c: Likewise.
17052         * shrink-wrap.c: Likewise.
17053         * simplify-rtx.c: Likewise.
17054         * stack-ptr-mod.c: Likewise.
17055         * statistics.c: Likewise.
17056         * stmt.c: Likewise.
17057         * stor-layout.c: Likewise.
17058         * store-motion.c: Likewise.
17059         * streamer-hooks.c: Likewise.
17060         * stringpool.c: Likewise.
17061         * symtab.c: Likewise.
17062         * target-globals.c: Likewise.
17063         * targhooks.c: Likewise.
17064         * toplev.c: Likewise.
17065         * tracer.c: Likewise.
17066         * trans-mem.c: Likewise.
17067         * tree-affine.c: Likewise.
17068         * tree-browser.c: Likewise.
17069         * tree-call-cdce.c: Likewise.
17070         * tree-cfg.c: Likewise.
17071         * tree-cfgcleanup.c: Likewise.
17072         * tree-chkp-opt.c: Likewise.
17073         * tree-chkp.c: Likewise.
17074         * tree-chrec.c: Likewise.
17075         * tree-complex.c: Likewise.
17076         * tree-data-ref.c: Likewise.
17077         * tree-dfa.c: Likewise.
17078         * tree-diagnostic.c: Likewise.
17079         * tree-dump.c: Likewise.
17080         * tree-eh.c: Likewise.
17081         * tree-emutls.c: Likewise.
17082         * tree-if-conv.c: Likewise.
17083         * tree-inline.c: Likewise.
17084         * tree-into-ssa.c: Likewise.
17085         * tree-iterator.c: Likewise.
17086         * tree-loop-distribution.c: Likewise.
17087         * tree-nested.c: Likewise.
17088         * tree-nrv.c: Likewise.
17089         * tree-object-size.c: Likewise.
17090         * tree-outof-ssa.c: Likewise.
17091         * tree-parloops.c: Likewise.
17092         * tree-phinodes.c: Likewise.
17093         * tree-predcom.c: Likewise.
17094         * tree-pretty-print.c: Likewise.
17095         * tree-profile.c: Likewise.
17096         * tree-scalar-evolution.c: Likewise.
17097         * tree-sra.c: Likewise.
17098         * tree-ssa-address.c: Likewise.
17099         * tree-ssa-alias.c: Likewise.
17100         * tree-ssa-ccp.c: Likewise.
17101         * tree-ssa-coalesce.c: Likewise.
17102         * tree-ssa-copy.c: Likewise.
17103         * tree-ssa-copyrename.c: Likewise.
17104         * tree-ssa-dce.c: Likewise.
17105         * tree-ssa-dom.c: Likewise.
17106         * tree-ssa-dse.c: Likewise.
17107         * tree-ssa-forwprop.c: Likewise.
17108         * tree-ssa-ifcombine.c: Likewise.
17109         * tree-ssa-live.c: Likewise.
17110         * tree-ssa-loop-ch.c: Likewise.
17111         * tree-ssa-loop-im.c: Likewise.
17112         * tree-ssa-loop-ivcanon.c: Likewise.
17113         * tree-ssa-loop-ivopts.c: Likewise.
17114         * tree-ssa-loop-manip.c: Likewise.
17115         * tree-ssa-loop-niter.c: Likewise.
17116         * tree-ssa-loop-prefetch.c: Likewise.
17117         * tree-ssa-loop-unswitch.c: Likewise.
17118         * tree-ssa-loop.c: Likewise.
17119         * tree-ssa-math-opts.c: Likewise.
17120         * tree-ssa-operands.c: Likewise.
17121         * tree-ssa-phiopt.c: Likewise.
17122         * tree-ssa-phiprop.c: Likewise.
17123         * tree-ssa-pre.c: Likewise.
17124         * tree-ssa-propagate.c: Likewise.
17125         * tree-ssa-reassoc.c: Likewise.
17126         * tree-ssa-sccvn.c: Likewise.
17127         * tree-ssa-scopedtables.c: Likewise.
17128         * tree-ssa-sink.c: Likewise.
17129         * tree-ssa-strlen.c: Likewise.
17130         * tree-ssa-structalias.c: Likewise.
17131         * tree-ssa-tail-merge.c: Likewise.
17132         * tree-ssa-ter.c: Likewise.
17133         * tree-ssa-threadedge.c: Likewise.
17134         * tree-ssa-threadupdate.c: Likewise.
17135         * tree-ssa-uncprop.c: Likewise.
17136         * tree-ssa-uninit.c: Likewise.
17137         * tree-ssa.c: Likewise.
17138         * tree-ssanames.c: Likewise.
17139         * tree-stdarg.c: Likewise.
17140         * tree-streamer-in.c: Likewise.
17141         * tree-streamer-out.c: Likewise.
17142         * tree-streamer.c: Likewise.
17143         * tree-switch-conversion.c: Likewise.
17144         * tree-tailcall.c: Likewise.
17145         * tree-vect-data-refs.c: Likewise.
17146         * tree-vect-generic.c: Likewise.
17147         * tree-vect-loop-manip.c: Likewise.
17148         * tree-vect-loop.c: Likewise.
17149         * tree-vect-patterns.c: Likewise.
17150         * tree-vect-slp.c: Likewise.
17151         * tree-vect-stmts.c: Likewise.
17152         * tree-vectorizer.c: Likewise.
17153         * tree-vrp.c: Likewise.
17154         * tree.c: Likewise.
17155         * tsan.c: Likewise.
17156         * ubsan.c: Likewise.
17157         * valtrack.c: Likewise.
17158         * value-prof.c: Likewise.
17159         * var-tracking.c: Likewise.
17160         * varasm.c: Likewise.
17161         * varpool.c: Likewise.
17162         * vmsdbgout.c: Likewise.
17163         * vtable-verify.c: Likewise.
17164         * web.c: Likewise.
17165         * wide-int.cc: Likewise.
17166         * xcoffout.c: Likewise.
17167         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
17168         * common/common-targhooks.c: Likewise.
17169         * config/aarch64/aarch64-builtins.c: Likewise.
17170         * config/aarch64/aarch64.c: Likewise.
17171         * config/alpha/alpha.c: Likewise.
17172         * config/arc/arc.c: Likewise.
17173         * config/arm/aarch-common.c: Likewise.
17174         * config/arm/arm-builtins.c: Likewise.
17175         * config/arm/arm-c.c: Likewise.
17176         * config/arm/arm.c: Likewise.
17177         * config/avr/avr-c.c: Likewise.
17178         * config/avr/avr-log.c: Likewise.
17179         * config/avr/avr.c: Likewise.
17180         * config/bfin/bfin.c: Likewise.
17181         * config/c6x/c6x.c: Likewise.
17182         * config/cr16/cr16.c: Likewise.
17183         * config/cris/cris.c: Likewise.
17184         * config/darwin-c.c: Likewise.
17185         * config/darwin.c: Likewise.
17186         * config/default-c.c: Likewise.
17187         * config/epiphany/epiphany.c: Likewise.
17188         * config/epiphany/mode-switch-use.c: Likewise.
17189         * config/epiphany/resolve-sw-modes.c: Likewise.
17190         * config/fr30/fr30.c: Likewise.
17191         * config/frv/frv.c: Likewise.
17192         * config/ft32/ft32.c: Likewise.
17193         * config/glibc-c.c: Likewise.
17194         * config/h8300/h8300.c: Likewise.
17195         * config/i386/i386-c.c: Likewise.
17196         * config/i386/i386.c: Likewise.
17197         * config/i386/msformat-c.c: Likewise.
17198         * config/i386/winnt-cxx.c: Likewise.
17199         * config/i386/winnt-stubs.c: Likewise.
17200         * config/i386/winnt.c: Likewise.
17201         * config/ia64/ia64-c.c: Likewise.
17202         * config/ia64/ia64.c: Likewise.
17203         * config/iq2000/iq2000.c: Likewise.
17204         * config/lm32/lm32.c: Likewise.
17205         * config/m32c/m32c-pragma.c: Likewise.
17206         * config/m32c/m32c.c: Likewise.
17207         * config/m32r/m32r.c: Likewise.
17208         * config/m68k/m68k.c: Likewise.
17209         * config/mcore/mcore.c: Likewise.
17210         * config/mep/mep-pragma.c: Likewise.
17211         * config/mep/mep.c: Likewise.
17212         * config/microblaze/microblaze-c.c: Likewise.
17213         * config/microblaze/microblaze.c: Likewise.
17214         * config/mips/mips.c: Likewise.
17215         * config/mmix/mmix.c: Likewise.
17216         * config/mn10300/mn10300.c: Likewise.
17217         * config/moxie/moxie.c: Likewise.
17218         * config/msp430/msp430-c.c: Likewise.
17219         * config/msp430/msp430.c: Likewise.
17220         * config/nds32/nds32-cost.c: Likewise.
17221         * config/nds32/nds32-fp-as-gp.c: Likewise.
17222         * config/nds32/nds32-intrinsic.c: Likewise.
17223         * config/nds32/nds32-isr.c: Likewise.
17224         * config/nds32/nds32-md-auxiliary.c: Likewise.
17225         * config/nds32/nds32-memory-manipulation.c: Likewise.
17226         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
17227         * config/nds32/nds32-predicates.c: Likewise.
17228         * config/nds32/nds32.c: Likewise.
17229         * config/nios2/nios2.c: Likewise.
17230         * config/nvptx/nvptx.c: Likewise.
17231         * config/pa/pa.c: Likewise.
17232         * config/pdp11/pdp11.c: Likewise.
17233         * config/rl78/rl78-c.c: Likewise.
17234         * config/rl78/rl78.c: Likewise.
17235         * config/rs6000/rs6000-c.c: Likewise.
17236         * config/rs6000/rs6000.c: Likewise.
17237         * config/rx/rx.c: Likewise.
17238         * config/s390/s390-c.c: Likewise.
17239         * config/s390/s390.c: Likewise.
17240         * config/sh/sh-c.c: Likewise.
17241         * config/sh/sh-mem.cc: Likewise.
17242         * config/sh/sh.c: Likewise.
17243         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
17244         * config/sh/sh_treg_combine.cc: Likewise.
17245         * config/sol2-c.c: Likewise.
17246         * config/sol2-cxx.c: Likewise.
17247         * config/sol2-stubs.c: Likewise.
17248         * config/sol2.c: Likewise.
17249         * config/sparc/sparc-c.c: Likewise.
17250         * config/sparc/sparc.c: Likewise.
17251         * config/spu/spu-c.c: Likewise.
17252         * config/spu/spu.c: Likewise.
17253         * config/stormy16/stormy16.c: Likewise.
17254         * config/tilegx/mul-tables.c: Likewise.
17255         * config/tilegx/tilegx-c.c: Likewise.
17256         * config/tilegx/tilegx.c: Likewise.
17257         * config/tilepro/mul-tables.c: Likewise.
17258         * config/tilepro/tilepro-c.c: Likewise.
17259         * config/tilepro/tilepro.c: Likewise.
17260         * config/v850/v850-c.c: Likewise.
17261         * config/v850/v850.c: Likewise.
17262         * config/vax/vax.c: Likewise.
17263         * config/visium/visium.c: Likewise.
17264         * config/vms/vms-c.c: Likewise.
17265         * config/vms/vms.c: Likewise.
17266         * config/vxworks.c: Likewise.
17267         * config/winnt-c.c: Likewise.
17268         * config/xtensa/xtensa.c: Likewise.
17269
17270 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
17271
17272         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
17273         function.
17274         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
17275
17276 2015-06-17  Richard Biener  <rguenther@suse.de>
17277
17278         PR tree-optimization/66251
17279         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
17280         stmts for SLP strided stores.
17281
17282         Revert
17283         2015-05-22  Richard Biener  <rguenther@suse.de>
17284
17285         PR tree-optimization/66251
17286         * tree-vect-stmts.c (vectorizable_conversion): Properly
17287         set STMT_VINFO_VEC_STMT even for the SLP case.
17288
17289         2015-05-26  Michael Matz  <matz@suse.de>
17290
17291         PR middle-end/66251
17292         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
17293         STMT_VINFO_VEC_STMT, also with SLP.
17294
17295 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
17296
17297         PR target/56766
17298         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
17299         (*avx_addsubv4df3_1s): Ditto.
17300         (*sse3_addsubv2df3_1): Ditto.
17301         (*sse3_addsubv2df3_1s): Ditto.
17302         (*avx_addsubv8sf3_1): Ditto.
17303         (*avx_addsubv8sf3_1s): Ditto.
17304         (*sse3_addsubv4sf3_1): Ditto.
17305         (*sse3_addsubv4sf3_1s): Ditto.
17306
17307 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
17308
17309         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
17310         (SYSROOT_SUFFIX_SPEC): Update.
17311         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
17312         (STARTFILE_PREFIX_SPEC): Update.
17313         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
17314         (MULTILIB_REQUIRED): New.
17315         (MULTILIB_OSDIRNAMES): New.
17316         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
17317         (MULTILIB_REQUIRED): New.
17318         (MULTILIB_OSDIRNAMES): New.
17319
17320 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
17321
17322         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
17323         * config/aarch64/aarch64-options-extensions.def: Update "fP",
17324         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
17325         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
17326         (AARCH64_FL_PAN): New.
17327         (AARCH64_FL_LOR): New.
17328         (AARCH64_FL_RDMA): New.
17329         (AARCH64_FL_FOR_ARCH8_1): New.
17330         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
17331         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
17332
17333 2015-06-16  Martin Liska  <mliska@suse.cz>
17334
17335         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
17336         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
17337         guard.
17338
17339 2015-06-16  Richard Biener  <rguenther@suse.de>
17340
17341         * tree-vect-stmts.c (vectorizable_store): Adjust.
17342         (vectorizable_load): Likewise.
17343         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17344         Simplify.
17345         (vect_create_data_ref_ptr): Likewise.
17346         (bump_vector_ptr): Adjust.
17347
17348 2015-06-16  Richard Biener  <rguenther@suse.de>
17349
17350         * tree-vect-stmts.c (vectorizable_load): Properly start loads
17351         with the first element if this is grouped loads.
17352
17353 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
17354
17355         * config/arm/arm-protos.h (struct tune_params): Rename
17356         log_op_non_sc to log_op_non_short_circuit, and rename enum
17357         values to expand SC to SHORT_CIRCUIT.
17358         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
17359         to LOG_OP_NON_SHORT_CIRCUIT.
17360         (arm_fastmul_tune):Likewise
17361         (arm_strongarm_tune): Likewise.
17362         (arm_xscale_tune): Likewise.
17363         (arm_9e_tune): Likewise.
17364         (arm_marvell_pj4_tune): Likewise.
17365         (arm_v6t2_tune): Likewise.
17366         (arm_cortex_tune): Likewise.
17367         (arm_cortex_a8_tune): Likewise.
17368         (arm_cortex_a7_tune): Likewise.
17369         (arm_cortex_a15_tune): Likewise.
17370         (arm_cortex_a53_tune): Likewise.
17371         (arm_cortex_a57_tune): Likewise.
17372         (arm_xgene1_tune): Likewise.
17373         (arm_cortex_a5_tune): Likewise.
17374         (arm_cortex_a9_tune): Likewise.
17375         (arm_cortex_a12_tune): Likewise.
17376         (arm_v7m_tune): Likewise.
17377         (arm_cortex_m7_tune): Likewise.
17378         (arm_v6m_tune): Likewise.
17379         (arm_fa726te_tune): Likewise.
17380
17381 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
17382
17383         * altivec.md: Delete UNSPEC_VMLADDUHM.
17384         (mulv4si3_p8): New pattern.
17385         (mulv4si3): Use it for POWER8.
17386         (mulv8hi3): Use vmladduhm with zero addend.
17387         (altivec_vmladduhm): Descriptive RTL.
17388
17389 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
17390
17391         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
17392         to use neon_move instead of mov_imm.
17393         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
17394         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
17395
17396         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
17397         aarch64_float_const_zero_rtx_p check before TFmode check.
17398         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
17399         an fp zero.
17400         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
17401         code and attributes to match.  Change condition from register_operand
17402         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
17403         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
17404         to store2.
17405
17406 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
17407
17408         PR debug/66535
17409         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
17410         there is no parent.
17411
17412 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
17413
17414         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
17415         HOST_WIDE_INT parameter.
17416
17417 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
17418
17419         PR ipa/66181
17420         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
17421         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
17422         TYPE_NO_FORCE_BLK.
17423         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
17424
17425 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
17426
17427         * rtl.h (classify_insn): Declare.
17428         * emit-rtl.c (classify_insn): Move to...
17429         * rtl.c: ...here and add generator support.
17430         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
17431         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
17432         * genemit.c (gen_emit_seq): New function.
17433         (gen_expand, gen_split): Use it.
17434
17435 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
17436
17437         * tree.c (make_vector_stat): Fix comment to state that the
17438         function returns a VECTOR_CST.
17439
17440 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
17441
17442         * gensupport.h (add_implicit_parallel): Declare.
17443         * genrecog.c (add_implicit_parallel): Move to...
17444         * gensupport.c (add_implicit_parallel): ...here.
17445         (process_one_cond_exec): Use it.
17446         * genemit.c (gen_insn): Likewise.
17447
17448 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
17449
17450         PR bootstrap/66448
17451         * passes.c (rest_of_decl_compilation): Do not register globals for
17452         early debug if they are declared in built-ins.
17453
17454 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
17455
17456         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
17457
17458 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17459
17460         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
17461         manually swapping.
17462         (noce_try_cmove_arith): Likewise.
17463         (noce_get_alt_condition): Likewise.
17464
17465 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
17466
17467         * common/config/i386/i386-common.c
17468         (OPTION_MASK_ISA_MWAITX_SET): New.
17469         (ix86_handle_option): Handle mwaitx.
17470         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
17471         (x86_64-*-*): Likewise.
17472         * config/i386/mwaitxintrin.h: New header.
17473         * config/i386/cpuid.h (bit_MWAITX):  Define.
17474         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
17475         MWAITX support.
17476         * config/i386/i386.opt (mwaitx): New.
17477         * config/i386/i386-builtin-types.def
17478         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
17479         * config/i386/i386-c.c: Define __MWAITX__ if needed.
17480         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
17481         (PTA_MWAITX): New.
17482         (ix86_option_override_internal): Handle new option.
17483         (processor_alias_table): Added PTA_MWAITX.
17484         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
17485         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
17486         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
17487         IX86_BUILTIN_MONITORX  built-ins.
17488         * config/i386/i386.h (TARGET_MWAITX): New.
17489         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
17490         UNSPEC_MONITORX.
17491         (mwaitx):  New pattern.
17492         (monitorx_<mode>): New pattern.
17493         * config/i386/x86intrin.h: Include mwaitxintrin.h.
17494         * doc/extend.texi: Document monitorx and mwaitx builtins.
17495         * doc/invoke.texi: Document -mmwaitx option.
17496
17497 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
17498
17499         * emit-rtl.c (need_atomic_barrier_p): Mask model with
17500         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
17501
17502 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17503
17504         * dbxout.c (xcoff_debug_hooks): Provide a function for
17505         register_main_translation_unit hook.
17506
17507 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17508
17509         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
17510         variants cases from switch.
17511         (rs6000_post_atomic_barrier): Same.
17512         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
17513         (rs6000_expand_atomic_exchange): Same.
17514         (rs6000_expand_atomic_op): Same.
17515         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
17516         SYNC variants cases from switch.
17517         (atomic_load): Same.
17518         (atomic_store): Same.
17519
17520 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
17521
17522         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
17523         CONST_INT for goto.
17524
17525 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
17526
17527         PR bootstrap/66448
17528         * dwarf2out.c (check_die): Check for common duplicate attributes.
17529         (add_location_or_const_value_attribute): Do not add duplicate
17530         attributes.
17531         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
17532         time around.
17533         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
17534         (gen_type_die_with_usage): Call check_die.
17535         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
17536
17537 2015-06-11  Jason Merrill  <jason@redhat.com>
17538
17539         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
17540         dies.
17541
17542 2015-06-11  Marek Polacek  <polacek@redhat.com>
17543
17544         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
17545
17546 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
17547
17548         PR bootstrap/66252
17549         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
17550         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
17551         (*addx_extend_sp32): Fix pasto.
17552         (*subx_extend): Rename into...
17553         (*subx_extend_sp32): ...this.
17554         (*adddi3_extend_sp32): Add earlyclobber.
17555         (*subdi3_insn_sp32): Likewise.
17556         (*subdi3_extend_sp32): Likewise.
17557         (*and_not_di_sp32): Likewise.
17558         (*or_not_di_sp32): Likewise.
17559         (*xor_not_di_sp32): Likewise.
17560         (*negdi2_sp32): Likewise.
17561         (*one_cmpldi2_sp32): Likewise.
17562
17563 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
17564
17565         * debug.h (struct gcc_debug_hooks): Add a
17566         register_main_translation_unit hook.
17567         * debug.c (do_nothing_debug_hooks): Provide a function for this
17568         new hook.
17569         * dbxout.c (dbx_debug_hooks): Likewise.
17570         * sdbout.c (sdb_debug_hooks): Likewise.
17571         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17572         * dwarf2out.c (main_translation_unit): New global variable.
17573         (dwarf2out_register_main_translation_unit): New function
17574         implementing the new hook.
17575         (dwarf2_debug_hooks): Assign
17576         dwarf2out_register_main_translation_unit to this new hook.
17577         (dwarf2out_init): Associate any main translation unit to
17578         comp_unit_die ().
17579
17580 2015-06-11  Marek Polacek  <polacek@redhat.com>
17581
17582         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
17583
17584 2015-06-11  Marek Polacek  <polacek@redhat.com>
17585
17586         * match.pd: Use single_use throughout.
17587
17588 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17589
17590         * config/arm/arm.c (arm_option_params_internal): When optimising
17591         for speed set max_insns_skipped when arm_restrict_it.
17592
17593 2015-06-11  Christian Bruel  <christian.bruel@st.com>
17594
17595         PR target/52144
17596         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
17597          macros in ...
17598         (arm_cpu_builtins): New function.
17599         (arm_pragma_target_parse): Call arm_cpu_builtins.
17600         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
17601         (arm_register_target_pragmas): Likewise.
17602         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
17603          Call arm_register_target_pragmas.
17604         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
17605         (arm_pragma_target_parse): Likewise.
17606
17607 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17608
17609         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
17610         of the second operand.
17611
17612 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
17613
17614         PR target/66473
17615         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
17616         to prepare mask operand for AVX512 modes.
17617
17618 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17619
17620         PR target/66474
17621         * doc/md.texi (Machine Constraints): Document that on the PowerPC
17622         if you use a constraint that targets a VSX register, you must use
17623         %x<n> in the template.
17624
17625 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
17626
17627         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
17628         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
17629         (define_insn "trap"): New definition.
17630
17631 2015-06-10  Richard Biener  <rguenther@suse.de>
17632
17633         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
17634         out from ...
17635         (vect_supported_load_permutation_p): ... here.  Handle
17636         supportable permutations in reductions.
17637         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
17638         for vectorizing strided group loads.
17639
17640 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
17641
17642         PR target/66470
17643         * config/i386/i386.c (ix86_split_long_move): For collisions
17644         involving direct tls segment refs, move the UNSPEC_TP possibly
17645         wrapped in ZERO_EXTEND out of the address for lea, to each of
17646         the memory loads.
17647
17648 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17649
17650         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
17651         dmb sy. Adjust tabs.
17652
17653 2015-06-10  Tom de Vries  <tom@codesourcery.com>
17654
17655         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
17656
17657 2015-06-10  Martin Liska  <mliska@suse.cz>
17658
17659         PR bootstrap/66471
17660         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
17661         all enum values in mem_alloc_origin.
17662         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
17663         name.
17664         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
17665         * bitmap.c (bitmap_register): Likewise.
17666         (dump_bitmap_statistics): Likewise.
17667         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
17668         (ggc_record_overhead): Likewise.
17669         * hash-map.h: Likewise.
17670         * hash-set.h: Likewise.
17671         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
17672         * hash-table.h: Likewise.
17673         * vec.c (vec_prefix::register_overhead): Likewise.
17674         (vec_prefix::release_overhead): Likewise.
17675         (dump_vec_loc_statistics): Likewise.
17676
17677 2015-06-09  Christian Bruel  <christian.bruel@st.com>
17678
17679         PR target/52144
17680         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
17681         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
17682         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
17683         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
17684         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
17685         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
17686         (arm_valid_target_attribute_p): Likewise.
17687         (arm_set_current_function, arm_can_inline_p): Likewise.
17688         (arm_valid_target_attribute_rec): Likewise.
17689         (arm_previous_fndecl): New variable.
17690         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17691         (TARGET_CAN_INLINE_P): Define.
17692         (arm_asm_trampoline_template): Emit mode.
17693         (arm_file_start): Don't set unified syntax.
17694         (arm_declare_function_name): Set unified syntax and mode.
17695         (arm_option_override): Init target_option_default_node.
17696         and target_option_current_node.
17697         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
17698         (*call_symbol): Likewise.
17699         * doc/extend.texi: Document ARM/Thumb target attribute.
17700         * doc/invoke.texi: Likewise.
17701
17702 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17703
17704         Revert:
17705         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17706         PR rtl-optimization/64164
17707         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17708         * tree-ssa-copyrename.c: Removed.
17709         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17710         -ftree-coalesce-vars.
17711         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17712         * common.opt (ftree-copyrename): Ignore.
17713         (ftree-coalesce-inlined-vars): Likewise.
17714         * doc/invoke.texi: Remove the ignored options above.
17715         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17716         * tree-ssa-coalesce.h: ... here.
17717         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17718         headers required by it.
17719         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17720         across variables when flag_tree_coalesce_vars.  Check register
17721         use and promoted modes to allow coalescing.  Moved to
17722         tree-ssa-coalesce.c.
17723         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17724         with its member functions to tree-ssa-coalesce.c.
17725         (var_map_base_init): Likewise.  Renamed to
17726         compute_samebase_partition_bases.
17727         (partition_view_normal): Drop want_bases parameter.
17728         (partition_view_bitmap): Likewise.
17729         * tree-ssa-live.h: Adjust declarations.
17730         * tree-ssa-coalesce.c: Include explow.h.
17731         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17732         default defs at the entry point.
17733         (dump_part_var_map): New.
17734         (compute_optimized_partition_bases): New, called by...
17735         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17736         of compute_samebase_partition_bases.  Adjust.
17737         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17738         * cfgexpand.c (leader_merge): New.
17739         (get_rtl_for_parm_ssa_default_def): New.
17740         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17741         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17742         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17743         redundant MEM attr setting.
17744         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17745         from...
17746         (expand_one_stack_var): ... this.  New wrapper to check and
17747         skip already expanded SSA partitions.
17748         (record_alignment_for_reg_var): New, factored out of...
17749         (expand_one_var): ... this.
17750         (expand_one_ssa_partition): New.
17751         (adjust_one_expanded_partition_var): New.
17752         (expand_one_register_var): Check and skip already expanded SSA
17753         partitions.
17754         (expand_used_vars): Don't create DECLs for anonymous SSA
17755         names.  Expand all SSA partitions, then adjust all SSA names.
17756         (pass::execute): Replace the loops that set
17757         SA.partition_to_pseudo from partition leaders and cleared
17758         DECL_RTL for multi-location variables, and that which used to
17759         rename vars and set attrs, with one that clears DECL_RTL and
17760         checks that PARMs and RESULTs default_defs match DECL_RTL.
17761         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17762         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17763         * explow.c (promote_ssa_mode): New.
17764         * explow.h (promote_ssa_mode): Declare.
17765         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17766         * function.c: Include cfgexpand.h.
17767         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17768         (use_register_for_parm_decl): Wrapper for the above to
17769         special-case the result_ptr.
17770         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17771         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17772         multiple locations.
17773         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17774         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17775         (assign_parm_setup_block): Prefer SSA-assigned location.
17776         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17777         if stack_parm is NULL.
17778         (assign_parm_setup_stack): Prefer SSA-assigned location.
17779         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17780         rtl before testing for pointer bounds.  Special-case result_ptr.
17781         (expand_function_start): Maybe reset DECL_RTL of result.
17782         Prefer SSA-assigned location for result and static chain.
17783         Factor out DECL_RESULT and SET_DECL_RTL.
17784         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17785         anonymous SSA names.  Use promote_ssa_mode.
17786         (get_temp_reg): Likewise.
17787         (remove_ssa_form): Adjust.
17788         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17789         and get its reg_usage for reg invalidation.
17790         (compute_bb_dataflow): Pass it insn.
17791         (emit_notes_in_bb): Likewise.
17792         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17793         fail assert on conversion between unsigned types.
17794
17795 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17796
17797         PR tree-optimization/65460
17798         * omp-low.c (expand_omp_target): Set parallelized_function on
17799         cgraph_node for child_fn.
17800
17801 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17802
17803         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
17804         parallelized_function before add_new_function.
17805
17806 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
17807
17808         * gcc-plugin.h: Move decls to plugin.h and include it.
17809         * plugin.h: Relocate decls from gcc-plugin.h
17810         * ggc-page.c: Include required header files.
17811         * passes.c: Likewise.
17812         * cgraphunit.c: Likewise.
17813
17814 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17815
17816         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
17817
17818 2015-06-09  Jason Merrill  <jason@redhat.com>
17819
17820         PR bootstrap/66448
17821         * toplev.c (check_global_declaration): Don't warn about a clone.
17822
17823 2015-06-09  Marek Polacek  <polacek@redhat.com>
17824
17825         PR tree-optimization/66299
17826         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
17827         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
17828         patterns.
17829
17830 2015-06-09  Richard Biener  <rguenther@suse.de>
17831
17832         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
17833         (vect_analyze_slp_instance): Instead do not falsely drop
17834         load permutations.
17835
17836 2015-06-09  Richard Biener  <rguenther@suse.de>
17837
17838         PR middle-end/66423
17839         * match.pd: Handle A % (unsigned)(1 << B).
17840
17841 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
17842
17843         * varasm.c (output_object_block_htab): Remove.
17844         (output_object_block_compare): New.
17845         (output_object_blocks): Sort named object_blocks before outputting
17846         them.
17847
17848 2015-06-09  Richard Biener  <rguenther@suse.de>
17849
17850         PR tree-optimization/66419
17851         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
17852         consider GROUP_GAP when detecting a perfect subchain.
17853
17854 2015-06-09  Nick Clifton  <nickc@redhat.com>
17855
17856         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
17857         place read only data in the .frodata section.
17858
17859 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
17860
17861         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
17862         (atomic_store<mode>): Likewise.
17863
17864 2015-06-09  Richard Biener  <rguenther@suse.de>
17865
17866         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
17867
17868 2015-06-09  Richard Biener  <rguenther@suse.de>
17869
17870         PR middle-end/66413
17871         * tree-inline.c (insert_init_debug_bind): Unshare value.
17872
17873 2015-06-09  Richard Biener  <rguenther@suse.de>
17874
17875         PR tree-optimization/66396
17876         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
17877         Rename virtual operands.
17878
17879 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17880
17881         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
17882         always return false.
17883
17884 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17885
17886         PR rtl-optimization/64164
17887         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17888         * tree-ssa-copyrename.c: Removed.
17889         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17890         -ftree-coalesce-vars.
17891         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17892         * common.opt (ftree-copyrename): Ignore.
17893         (ftree-coalesce-inlined-vars): Likewise.
17894         * doc/invoke.texi: Remove the ignored options above.
17895         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17896         * tree-ssa-coalesce.h: ... here.
17897         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17898         headers required by it.
17899         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17900         across variables when flag_tree_coalesce_vars.  Check register
17901         use and promoted modes to allow coalescing.  Moved to
17902         tree-ssa-coalesce.c.
17903         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17904         with its member functions to tree-ssa-coalesce.c.
17905         (var_map_base_init): Likewise.  Renamed to
17906         compute_samebase_partition_bases.
17907         (partition_view_normal): Drop want_bases parameter.
17908         (partition_view_bitmap): Likewise.
17909         * tree-ssa-live.h: Adjust declarations.
17910         * tree-ssa-coalesce.c: Include explow.h.
17911         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17912         default defs at the entry point.
17913         (dump_part_var_map): New.
17914         (compute_optimized_partition_bases): New, called by...
17915         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17916         of compute_samebase_partition_bases.  Adjust.
17917         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17918         * cfgexpand.c (leader_merge): New.
17919         (get_rtl_for_parm_ssa_default_def): New.
17920         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17921         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17922         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17923         redundant MEM attr setting.
17924         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17925         from...
17926         (expand_one_stack_var): ... this.  New wrapper to check and
17927         skip already expanded SSA partitions.
17928         (record_alignment_for_reg_var): New, factored out of...
17929         (expand_one_var): ... this.
17930         (expand_one_ssa_partition): New.
17931         (adjust_one_expanded_partition_var): New.
17932         (expand_one_register_var): Check and skip already expanded SSA
17933         partitions.
17934         (expand_used_vars): Don't create DECLs for anonymous SSA
17935         names.  Expand all SSA partitions, then adjust all SSA names.
17936         (pass::execute): Replace the loops that set
17937         SA.partition_to_pseudo from partition leaders and cleared
17938         DECL_RTL for multi-location variables, and that which used to
17939         rename vars and set attrs, with one that clears DECL_RTL and
17940         checks that PARMs and RESULTs default_defs match DECL_RTL.
17941         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17942         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17943         * explow.c (promote_ssa_mode): New.
17944         * explow.h (promote_ssa_mode): Declare.
17945         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17946         * function.c: Include cfgexpand.h.
17947         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17948         (use_register_for_parm_decl): Wrapper for the above to
17949         special-case the result_ptr.
17950         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17951         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17952         multiple locations.
17953         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17954         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17955         (assign_parm_setup_block): Prefer SSA-assigned location.
17956         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17957         if stack_parm is NULL.
17958         (assign_parm_setup_stack): Prefer SSA-assigned location.
17959         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17960         rtl before testing for pointer bounds.  Special-case result_ptr.
17961         (expand_function_start): Maybe reset DECL_RTL of result.
17962         Prefer SSA-assigned location for result and static chain.
17963         Factor out DECL_RESULT and SET_DECL_RTL.
17964         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17965         anonymous SSA names.  Use promote_ssa_mode.
17966         (get_temp_reg): Likewise.
17967         (remove_ssa_form): Adjust.
17968         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17969         and get its reg_usage for reg invalidation.
17970         (compute_bb_dataflow): Pass it insn.
17971         (emit_notes_in_bb): Likewise.
17972         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17973         fail assert on conversion between unsigned types.
17974
17975 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17976
17977         PR debug/58315
17978         * tree-inline.c (reset_debug_binding): New.
17979         (reset_debug_bindings): Likewise.
17980         (expand_call_inline): Call it.
17981
17982 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17983
17984         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
17985         TYPE_STRING_FLAG.
17986
17987 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17988
17989         * lto-streamer-out.c (lto_output_location): Stream
17990         reserved locations correctly.
17991         * lto-streamer-in.c (lto_output_location): Likewise.
17992
17993 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
17994
17995         * coretypes.h: Include hash-table.h and hash-set.h for host files.
17996         * ggc.h: Don't include statistics.h>
17997         * hash-map.h: Remove all includes.
17998         * hash-set.h: Likewise.
17999         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
18000         the include list. Remove <new>.
18001         * inchash.h: Remove all includes.
18002         * mem-stats.h: Likewise.
18003         * vec.h: No special processing for generators or ggc.
18004         * alias.c : Adjust include files.
18005         * alloc-pool.c : Likewise.
18006         * alloc-pool.h : Likewise.
18007         * asan.c : Likewise.
18008         * attribs.c : Likewise.
18009         * auto-inc-dec.c : Likewise.
18010         * auto-profile.c : Likewise.
18011         * bb-reorder.c : Likewise.
18012         * bitmap.c : Likewise.
18013         * bitmap.h : Likewise.
18014         * bt-load.c : Likewise.
18015         * builtins.c : Likewise.
18016         * caller-save.c : Likewise.
18017         * calls.c : Likewise.
18018         * ccmp.c : Likewise.
18019         * cfg.c : Likewise.
18020         * cfganal.c : Likewise.
18021         * cfgbuild.c : Likewise.
18022         * cfgcleanup.c : Likewise.
18023         * cfgexpand.c : Likewise.
18024         * cfghooks.c : Likewise.
18025         * cfgloop.c : Likewise.
18026         * cfgloop.h : Likewise.
18027         * cfgloopanal.c : Likewise.
18028         * cfgloopmanip.c : Likewise.
18029         * cfgrtl.c : Likewise.
18030         * cgraph.c : Likewise.
18031         * cgraphbuild.c : Likewise.
18032         * cgraphclones.c : Likewise.
18033         * cgraphunit.c : Likewise.
18034         * cilk-common.c : Likewise.
18035         * combine-stack-adj.c : Likewise.
18036         * combine.c : Likewise.
18037         * compare-elim.c : Likewise.
18038         * context.c : Likewise.
18039         * convert.c : Likewise.
18040         * coverage.c : Likewise.
18041         * cppbuiltin.c : Likewise.
18042         * cprop.c : Likewise.
18043         * cse.c : Likewise.
18044         * cselib.c : Likewise.
18045         * data-streamer-in.c : Likewise.
18046         * data-streamer-out.c : Likewise.
18047         * data-streamer.c : Likewise.
18048         * data-streamer.h : Likewise.
18049         * dbxout.c : Likewise.
18050         * dce.c : Likewise.
18051         * ddg.c : Likewise.
18052         * debug.c : Likewise.
18053         * df-core.c : Likewise.
18054         * df-problems.c : Likewise.
18055         * df-scan.c : Likewise.
18056         * df.h : Likewise.
18057         * dfp.c : Likewise.
18058         * dojump.c : Likewise.
18059         * dominance.c : Likewise.
18060         * domwalk.c : Likewise.
18061         * double-int.c : Likewise.
18062         * dse.c : Likewise.
18063         * dumpfile.c : Likewise.
18064         * dwarf2asm.c : Likewise.
18065         * dwarf2cfi.c : Likewise.
18066         * dwarf2out.c : Likewise.
18067         * emit-rtl.c : Likewise.
18068         * et-forest.c : Likewise.
18069         * except.c : Likewise.
18070         * except.h : Likewise.
18071         * explow.c : Likewise.
18072         * expmed.c : Likewise.
18073         * expr.c : Likewise.
18074         * final.c : Likewise.
18075         * fixed-value.c : Likewise.
18076         * fold-const.c : Likewise.
18077         * function.c : Likewise.
18078         * fwprop.c : Likewise.
18079         * gcc-plugin.h : Likewise.
18080         * gcc.c : Likewise.
18081         * gcse-common.c : Likewise.
18082         * gcse.c : Likewise.
18083         * genattrtab.c : Likewise.
18084         * genautomata.c : Likewise.
18085         * genconditions.c : Likewise.
18086         * genemit.c : Likewise.
18087         * generic-match-head.c : Likewise.
18088         * genextract.c : Likewise.
18089         * gengtype-state.c : Likewise.
18090         * gengtype.c : Likewise.
18091         * genhooks.c : Likewise.
18092         * genmatch.c : Likewise.
18093         * genmodes.c : Likewise.
18094         * genrecog.c : Likewise.
18095         * gensupport.c : Likewise.
18096         * ggc-common.c : Likewise.
18097         * ggc-internal.h : Likewise.
18098         * ggc-none.c : Likewise.
18099         * ggc-page.c : Likewise.
18100         * gimple-builder.c : Likewise.
18101         * gimple-expr.c : Likewise.
18102         * gimple-fold.c : Likewise.
18103         * gimple-iterator.c : Likewise.
18104         * gimple-low.c : Likewise.
18105         * gimple-match-head.c : Likewise.
18106         * gimple-pretty-print.c : Likewise.
18107         * gimple-ssa-isolate-paths.c : Likewise.
18108         * gimple-ssa-strength-reduction.c : Likewise.
18109         * gimple-ssa.h : Likewise.
18110         * gimple-streamer-in.c : Likewise.
18111         * gimple-streamer-out.c : Likewise.
18112         * gimple-streamer.h : Likewise.
18113         * gimple-walk.c : Likewise.
18114         * gimple.c : Likewise.
18115         * gimplify-me.c : Likewise.
18116         * gimplify.c : Likewise.
18117         * godump.c : Likewise.
18118         * graph.c : Likewise.
18119         * graphds.c : Likewise.
18120         * graphite-blocking.c : Likewise.
18121         * graphite-dependences.c : Likewise.
18122         * graphite-interchange.c : Likewise.
18123         * graphite-isl-ast-to-gimple.c : Likewise.
18124         * graphite-optimize-isl.c : Likewise.
18125         * graphite-poly.c : Likewise.
18126         * graphite-scop-detection.c : Likewise.
18127         * graphite-sese-to-poly.c : Likewise.
18128         * graphite.c : Likewise.
18129         * haifa-sched.c : Likewise.
18130         * hard-reg-set.h : Likewise.
18131         * hw-doloop.c : Likewise.
18132         * ifcvt.c : Likewise.
18133         * inchash.c : Likewise.
18134         * incpath.c : Likewise.
18135         * init-regs.c : Likewise.
18136         * input.c : Likewise.
18137         * internal-fn.c : Likewise.
18138         * ipa-chkp.c : Likewise.
18139         * ipa-comdats.c : Likewise.
18140         * ipa-cp.c : Likewise.
18141         * ipa-devirt.c : Likewise.
18142         * ipa-icf-gimple.c : Likewise.
18143         * ipa-icf.c : Likewise.
18144         * ipa-inline-analysis.c : Likewise.
18145         * ipa-inline-transform.c : Likewise.
18146         * ipa-inline.c : Likewise.
18147         * ipa-polymorphic-call.c : Likewise.
18148         * ipa-profile.c : Likewise.
18149         * ipa-prop.c : Likewise.
18150         * ipa-pure-const.c : Likewise.
18151         * ipa-ref.c : Likewise.
18152         * ipa-reference.c : Likewise.
18153         * ipa-split.c : Likewise.
18154         * ipa-utils.c : Likewise.
18155         * ipa-visibility.c : Likewise.
18156         * ipa.c : Likewise.
18157         * ira-build.c : Likewise.
18158         * ira-color.c : Likewise.
18159         * ira-conflicts.c : Likewise.
18160         * ira-costs.c : Likewise.
18161         * ira-emit.c : Likewise.
18162         * ira-lives.c : Likewise.
18163         * ira.c : Likewise.
18164         * jump.c : Likewise.
18165         * langhooks.c : Likewise.
18166         * lcm.c : Likewise.
18167         * libfuncs.h : Likewise.
18168         * lists.c : Likewise.
18169         * loop-doloop.c : Likewise.
18170         * loop-init.c : Likewise.
18171         * loop-invariant.c : Likewise.
18172         * loop-iv.c : Likewise.
18173         * loop-unroll.c : Likewise.
18174         * lower-subreg.c : Likewise.
18175         * lra-assigns.c : Likewise.
18176         * lra-coalesce.c : Likewise.
18177         * lra-constraints.c : Likewise.
18178         * lra-eliminations.c : Likewise.
18179         * lra-lives.c : Likewise.
18180         * lra-remat.c : Likewise.
18181         * lra-spills.c : Likewise.
18182         * lra.c : Likewise.
18183         * lto-cgraph.c : Likewise.
18184         * lto-compress.c : Likewise.
18185         * lto-opts.c : Likewise.
18186         * lto-section-in.c : Likewise.
18187         * lto-section-out.c : Likewise.
18188         * lto-streamer-in.c : Likewise.
18189         * lto-streamer-out.c : Likewise.
18190         * lto-streamer.c : Likewise.
18191         * lto-streamer.h : Likewise.
18192         * mcf.c : Likewise.
18193         * mode-switching.c : Likewise.
18194         * modulo-sched.c : Likewise.
18195         * omega.c : Likewise.
18196         * omp-low.c : Likewise.
18197         * optabs.c : Likewise.
18198         * opts-global.c : Likewise.
18199         * opts.h : Likewise.
18200         * passes.c : Likewise.
18201         * plugin.c : Likewise.
18202         * postreload-gcse.c : Likewise.
18203         * postreload.c : Likewise.
18204         * predict.c : Likewise.
18205         * print-rtl.c : Likewise.
18206         * print-tree.c : Likewise.
18207         * profile.c : Likewise.
18208         * read-md.c : Likewise.
18209         * read-md.h : Likewise.
18210         * read-rtl.c : Likewise.
18211         * real.c : Likewise.
18212         * realmpfr.c : Likewise.
18213         * recog.c : Likewise.
18214         * ree.c : Likewise.
18215         * reg-stack.c : Likewise.
18216         * regcprop.c : Likewise.
18217         * reginfo.c : Likewise.
18218         * regrename.c : Likewise.
18219         * regstat.c : Likewise.
18220         * reload.c : Likewise.
18221         * reload1.c : Likewise.
18222         * reorg.c : Likewise.
18223         * resource.c : Likewise.
18224         * rtl-chkp.c : Likewise.
18225         * rtl.c : Likewise.
18226         * rtl.h : Likewise.
18227         * rtlanal.c : Likewise.
18228         * rtlhash.c : Likewise.
18229         * rtlhash.h : Likewise.
18230         * rtlhooks.c : Likewise.
18231         * sanopt.c : Likewise.
18232         * sched-deps.c : Likewise.
18233         * sched-ebb.c : Likewise.
18234         * sched-rgn.c : Likewise.
18235         * sched-vis.c : Likewise.
18236         * sdbout.c : Likewise.
18237         * sel-sched-dump.c : Likewise.
18238         * sel-sched-ir.c : Likewise.
18239         * sel-sched-ir.h : Likewise.
18240         * sel-sched.c : Likewise.
18241         * sese.c : Likewise.
18242         * shrink-wrap.c : Likewise.
18243         * shrink-wrap.h : Likewise.
18244         * simplify-rtx.c : Likewise.
18245         * stack-ptr-mod.c : Likewise.
18246         * statistics.c : Likewise.
18247         * stmt.c : Likewise.
18248         * stor-layout.c : Likewise.
18249         * store-motion.c : Likewise.
18250         * stringpool.c : Likewise.
18251         * symtab.c : Likewise.
18252         * target-globals.c : Likewise.
18253         * targhooks.c : Likewise.
18254         * tlink.c : Likewise.
18255         * toplev.c : Likewise.
18256         * tracer.c : Likewise.
18257         * trans-mem.c : Likewise.
18258         * tree-affine.c : Likewise.
18259         * tree-affine.h : Likewise.
18260         * tree-browser.c : Likewise.
18261         * tree-call-cdce.c : Likewise.
18262         * tree-cfg.c : Likewise.
18263         * tree-cfgcleanup.c : Likewise.
18264         * tree-chkp-opt.c : Likewise.
18265         * tree-chkp.c : Likewise.
18266         * tree-chrec.c : Likewise.
18267         * tree-complex.c : Likewise.
18268         * tree-data-ref.c : Likewise.
18269         * tree-dfa.c : Likewise.
18270         * tree-diagnostic.c : Likewise.
18271         * tree-dump.c : Likewise.
18272         * tree-eh.c : Likewise.
18273         * tree-eh.h : Likewise.
18274         * tree-emutls.c : Likewise.
18275         * tree-hasher.h : Likewise.
18276         * tree-if-conv.c : Likewise.
18277         * tree-inline.c : Likewise.
18278         * tree-inline.h : Likewise.
18279         * tree-into-ssa.c : Likewise.
18280         * tree-iterator.c : Likewise.
18281         * tree-loop-distribution.c : Likewise.
18282         * tree-nested.c : Likewise.
18283         * tree-nrv.c : Likewise.
18284         * tree-object-size.c : Likewise.
18285         * tree-outof-ssa.c : Likewise.
18286         * tree-parloops.c : Likewise.
18287         * tree-phinodes.c : Likewise.
18288         * tree-predcom.c : Likewise.
18289         * tree-pretty-print.c : Likewise.
18290         * tree-profile.c : Likewise.
18291         * tree-scalar-evolution.c : Likewise.
18292         * tree-sra.c : Likewise.
18293         * tree-ssa-address.c : Likewise.
18294         * tree-ssa-alias.c : Likewise.
18295         * tree-ssa-ccp.c : Likewise.
18296         * tree-ssa-coalesce.c : Likewise.
18297         * tree-ssa-copy.c : Likewise.
18298         * tree-ssa-copyrename.c : Likewise.
18299         * tree-ssa-dce.c : Likewise.
18300         * tree-ssa-dom.c : Likewise.
18301         * tree-ssa-dse.c : Likewise.
18302         * tree-ssa-forwprop.c : Likewise.
18303         * tree-ssa-ifcombine.c : Likewise.
18304         * tree-ssa-live.c : Likewise.
18305         * tree-ssa-loop-ch.c : Likewise.
18306         * tree-ssa-loop-im.c : Likewise.
18307         * tree-ssa-loop-ivcanon.c : Likewise.
18308         * tree-ssa-loop-ivopts.c : Likewise.
18309         * tree-ssa-loop-manip.c : Likewise.
18310         * tree-ssa-loop-niter.c : Likewise.
18311         * tree-ssa-loop-prefetch.c : Likewise.
18312         * tree-ssa-loop-unswitch.c : Likewise.
18313         * tree-ssa-loop.c : Likewise.
18314         * tree-ssa-math-opts.c : Likewise.
18315         * tree-ssa-operands.c : Likewise.
18316         * tree-ssa-phiopt.c : Likewise.
18317         * tree-ssa-phiprop.c : Likewise.
18318         * tree-ssa-pre.c : Likewise.
18319         * tree-ssa-propagate.c : Likewise.
18320         * tree-ssa-reassoc.c : Likewise.
18321         * tree-ssa-sccvn.c : Likewise.
18322         * tree-ssa-scopedtables.c : Likewise.
18323         * tree-ssa-sink.c : Likewise.
18324         * tree-ssa-strlen.c : Likewise.
18325         * tree-ssa-structalias.c : Likewise.
18326         * tree-ssa-tail-merge.c : Likewise.
18327         * tree-ssa-ter.c : Likewise.
18328         * tree-ssa-threadedge.c : Likewise.
18329         * tree-ssa-threadupdate.c : Likewise.
18330         * tree-ssa-uncprop.c : Likewise.
18331         * tree-ssa-uninit.c : Likewise.
18332         * tree-ssa.c : Likewise.
18333         * tree-ssanames.c : Likewise.
18334         * tree-stdarg.c : Likewise.
18335         * tree-streamer-in.c : Likewise.
18336         * tree-streamer-out.c : Likewise.
18337         * tree-streamer.c : Likewise.
18338         * tree-streamer.h : Likewise.
18339         * tree-switch-conversion.c : Likewise.
18340         * tree-tailcall.c : Likewise.
18341         * tree-vect-data-refs.c : Likewise.
18342         * tree-vect-generic.c : Likewise.
18343         * tree-vect-loop-manip.c : Likewise.
18344         * tree-vect-loop.c : Likewise.
18345         * tree-vect-patterns.c : Likewise.
18346         * tree-vect-slp.c : Likewise.
18347         * tree-vect-stmts.c : Likewise.
18348         * tree-vectorizer.c : Likewise.
18349         * tree-vectorizer.h : Likewise.
18350         * tree-vrp.c : Likewise.
18351         * tree.c : Likewise.
18352         * tsan.c : Likewise.
18353         * ubsan.c : Likewise.
18354         * valtrack.c : Likewise.
18355         * valtrack.h : Likewise.
18356         * value-prof.c : Likewise.
18357         * var-tracking.c : Likewise.
18358         * varasm.c : Likewise.
18359         * varpool.c : Likewise.
18360         * vec.c: Likewise.
18361         * vmsdbgout.c : Likewise.
18362         * vtable-verify.c : Likewise.
18363         * vtable-verify.h : Likewise.
18364         * web.c : Likewise.
18365         * wide-int.cc : Likewise.
18366         * xcoffout.c : Likewise.
18367         * config/aarch64/aarch64-builtins.c : Likewise.
18368         * config/aarch64/aarch64.c : Likewise.
18369         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
18370         * config/alpha/alpha.c : Likewise.
18371         * config/arc/arc.c : Likewise.
18372         * config/arm/aarch-common.c : Likewise.
18373         * config/arm/arm-builtins.c : Likewise.
18374         * config/arm/arm-c.c : Likewise.
18375         * config/arm/arm.c : Likewise.
18376         * config/avr/avr-c.c : Likewise.
18377         * config/avr/avr-log.c : Likewise.
18378         * config/avr/avr.c : Likewise.
18379         * config/bfin/bfin.c : Likewise.
18380         * config/c6x/c6x.c : Likewise.
18381         * config/cr16/cr16.c : Likewise.
18382         * config/cris/cris.c : Likewise.
18383         * config/darwin-c.c : Likewise.
18384         * config/darwin.c : Likewise.
18385         * config/default-c.c : Likewise.
18386         * config/epiphany/epiphany.c : Likewise.
18387         * config/epiphany/mode-switch-use.c : Likewise.
18388         * config/epiphany/resolve-sw-modes.c : Likewise.
18389         * config/fr30/fr30.c : Likewise.
18390         * config/frv/frv.c : Likewise.
18391         * config/ft32/ft32.c : Likewise.
18392         * config/glibc-c.c : Likewise.
18393         * config/h8300/h8300.c : Likewise.
18394         * config/i386/i386-c.c : Likewise.
18395         * config/i386/i386.c : Likewise.
18396         * config/i386/msformat-c.c : Likewise.
18397         * config/i386/winnt-cxx.c : Likewise.
18398         * config/i386/winnt-stubs.c : Likewise.
18399         * config/i386/winnt.c : Likewise.
18400         * config/ia64/ia64-c.c : Likewise.
18401         * config/ia64/ia64.c : Likewise.
18402         * config/iq2000/iq2000.c : Likewise.
18403         * config/lm32/lm32.c : Likewise.
18404         * config/m32c/m32c-pragma.c : Likewise.
18405         * config/m32c/m32c.c : Likewise.
18406         * config/m32r/m32r.c : Likewise.
18407         * config/m68k/m68k.c : Likewise.
18408         * config/mcore/mcore.c : Likewise.
18409         * config/mep/mep-pragma.c : Likewise.
18410         * config/mep/mep.c : Likewise.
18411         * config/microblaze/microblaze-c.c : Likewise.
18412         * config/microblaze/microblaze.c : Likewise.
18413         * config/mips/mips.c : Likewise.
18414         * config/mmix/mmix.c : Likewise.
18415         * config/mn10300/mn10300.c : Likewise.
18416         * config/moxie/moxie.c : Likewise.
18417         * config/msp430/msp430-c.c : Likewise.
18418         * config/msp430/msp430.c : Likewise.
18419         * config/nds32/nds32-cost.c : Likewise.
18420         * config/nds32/nds32-fp-as-gp.c : Likewise.
18421         * config/nds32/nds32-intrinsic.c : Likewise.
18422         * config/nds32/nds32-isr.c : Likewise.
18423         * config/nds32/nds32-md-auxiliary.c : Likewise.
18424         * config/nds32/nds32-memory-manipulation.c : Likewise.
18425         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
18426         * config/nds32/nds32-predicates.c : Likewise.
18427         * config/nds32/nds32.c : Likewise.
18428         * config/nios2/nios2.c : Likewise.
18429         * config/nvptx/nvptx.c : Likewise.
18430         * config/pa/pa.c : Likewise.
18431         * config/pdp11/pdp11.c : Likewise.
18432         * config/rl78/rl78-c.c : Likewise.
18433         * config/rl78/rl78.c : Likewise.
18434         * config/rs6000/rs6000-c.c : Likewise.
18435         * config/rs6000/rs6000.c : Likewise.
18436         * config/rx/rx.c : Likewise.
18437         * config/s390/s390-c.c : Likewise.
18438         * config/s390/s390.c : Likewise.
18439         * config/sh/sh-c.c : Likewise.
18440         * config/sh/sh-mem.cc : Likewise.
18441         * config/sh/sh.c : Likewise.
18442         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
18443         * config/sh/sh_treg_combine.cc : Likewise.
18444         * config/sol2-c.c : Likewise.
18445         * config/sol2-cxx.c : Likewise.
18446         * config/sol2-stubs.c : Likewise.
18447         * config/sol2.c : Likewise.
18448         * config/sparc/sparc-c.c : Likewise.
18449         * config/sparc/sparc.c : Likewise.
18450         * config/spu/spu-c.c : Likewise.
18451         * config/spu/spu.c : Likewise.
18452         * config/stormy16/stormy16.c : Likewise.
18453         * config/tilegx/mul-tables.c : Likewise.
18454         * config/tilegx/tilegx-c.c : Likewise.
18455         * config/tilegx/tilegx.c : Likewise.
18456         * config/tilepro/mul-tables.c : Likewise.
18457         * config/tilepro/tilepro-c.c : Likewise.
18458         * config/tilepro/tilepro.c : Likewise.
18459         * config/v850/v850-c.c : Likewise.
18460         * config/v850/v850.c : Likewise.
18461         * config/vax/vax.c : Likewise.
18462         * config/visium/visium.c : Likewise.
18463         * config/vms/vms-c.c : Likewise.
18464         * config/vms/vms.c : Likewise.
18465         * config/vxworks.c : Likewise.
18466         * config/winnt-c.c : Likewise.
18467         * config/xtensa/xtensa.c : Likewise.
18468
18469 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
18470
18471         PR lto/65378
18472         * ipa-utils.h (warn_types_mismatch): Update prototype.
18473         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
18474         parameters.
18475         (type_mismatch_p): New function.
18476         (warn_types_mismatch): Reorg to work better on non-C++ types.
18477         (odr_types_equivalent_p): Add loc1/loc2 parameters.
18478         (add_type_duplicate): Update.
18479
18480 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18481
18482         PR rtl-optimization/66444
18483         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
18484         call_used_regs.
18485
18486 2015-06-08  Richard Biener  <rguenther@suse.de>
18487
18488         PR tree-optimization/66422
18489         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
18490         block after inserted gcc_unreachable.
18491
18492 2015-06-08  Nick Clifton  <nickc@redhat.com>
18493
18494         * config/rx/rx.c (rx_function_value): Do not promote vector types.
18495         (rx_promote_function_mode): Likewise.
18496         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
18497
18498 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
18499
18500         * genattrtab.c (insn_alternatives): Change type from int *
18501         to uint64_t *.
18502         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
18503         (get_attr_value): Change type of num_alt to uint64_t.
18504         (compute_alternative_mask): Change return type from
18505         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
18506         (make_alternative_compare, mk_attr_alt): Change argument type
18507         from int to uint64_t.
18508         (simplify_test_exp): Change type of i from int to uint64_t.
18509         Shift ((uint64_t) 1) instead of 1 up.
18510         (main): Adjust oballocvec first argument from int to uint64_t.
18511         Shift ((uint64_t) 1) instead of 1 up.
18512
18513 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
18514
18515         PR other/65366
18516         * gdbhooks.py: Import sys.
18517         (intptr): New function.  Replace int(...) by intptr(...).
18518
18519 2015-06-08  Richard Biener  <rguenther@suse.de>
18520
18521         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
18522         adjustment for gaps at the end of a SLP load group properly.
18523         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
18524         all permutations we can generate.
18525         (vect_transform_slp_perm_load): Use the correct group-size.
18526
18527 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
18528
18529         * genmatch.c (expr::gen_transform): For conditions, guess the type
18530         from the second operand.
18531
18532 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18533
18534         PR tree-optimization/66442
18535         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
18536         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
18537         if the loop latch is not a singleton.  Use
18538         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
18539
18540 2015-06-08  Marek Polacek  <polacek@redhat.com>
18541
18542         PR sanitizer/66452
18543         * toplev.c (check_global_declaration): Don't warn about artificial
18544         decls.
18545
18546 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18547
18548         PR tree-optimization/66436
18549         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
18550         dump file.
18551         * gimplify.c: Add tree-dump.h include.
18552         (gimplify_function_tree): Dump function to gimple dump file.
18553         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
18554         dump file.
18555
18556 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18557
18558         PR tree-optimization/66435
18559         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
18560         function.
18561
18562 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
18563
18564         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
18565         of ptr_type_node to not be ptr_to_node.
18566         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
18567         TREE_TYPE of pointers.
18568         * gimple-expr.c (useless_type_conversion): Reorder the check for
18569         function pointers and TYPE_CANONICAL.
18570
18571 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
18572
18573         PR bootstrap/66319
18574         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
18575         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
18576         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
18577         later.
18578         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
18579         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
18580         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
18581         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
18582         and non iso if unix2003.
18583
18584 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
18585
18586         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
18587
18588 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
18589
18590         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
18591         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
18592         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
18593         except.c, final.c, function.c, gcse-common.c, genemit.c,
18594         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
18595         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
18596         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
18597         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
18598         more derived ones.
18599
18600 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
18601
18602         * combine.c (combine_split_insns): Remove cast.
18603         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
18604         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
18605         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
18606         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
18607         * genemit.c (gen_split): Change return type of generated functions to
18608         rtx_insn.
18609         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
18610         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
18611         gen_peephole2_* functions.
18612         (print_subroutine, main): Likewise.
18613         * recog.c (peephole2_optimize): Remove cast.
18614         (peep2_next_insn): Promote return type to rtx_insn.
18615         * recog.h (peep2_next_insn): Fix prototype.
18616         * rtl.h (try_split, split_insns): Likewise.
18617
18618 2015-06-06  DJ Delorie  <dj@redhat.com>
18619
18620         * config/msp430/msp430.c (msp430_asm_integer): Support addition
18621         and subtraction too.
18622
18623 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18624
18625         PR target/66410
18626         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
18627         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
18628         instead of Snd.  Disparage Sid/z alternative with '^'.
18629
18630 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
18631
18632         * dwarf2out.c: Remove deferred_locations*.
18633         (dwarf2_debug_hooks): Add early_finish hook.
18634         Remove global_decl hook.
18635         Add early_global_decl and late_global_decl hook.
18636         New global early_dwarf.
18637         New structure set_early_dwarf.
18638         (output_die): Indicate whether a DIE was generated early
18639         when generating assembly with -dA.
18640         (struct limbo_die_struct): Document created_for field.
18641         Remove file_table_last_lookup.
18642         (remove_AT): Return TRUE if successful.
18643         (remove_child_TAG): Clear die_parent.
18644         (reparent_child): New function abstracted from...
18645         (splice_child_die): ...here.
18646         (new_die): ICE if a DIE ends up in limbo too late.
18647         (check_die): New.
18648         (defer_location): Remove.
18649         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
18650         (fill_variable_array_bounds): New.
18651         (decl_start_label): Call fill_variable_array_bounds.
18652         (gen_formal_parameter_die): Rewrite to reuse previously generated
18653         DIEs.
18654         (gen_subprogram_die): Same.
18655         (gen_variable_die): Same.
18656         (gen_const_die): Same.
18657         (gen_label_die): Same.
18658         (gen_lexical_block_die): Same.
18659         (decl_will_get_specification_p): New.
18660         (local_function_static): New.
18661         (gen_struct_or_union_type_die): Fill in variable-length fields.
18662         (gen_typedef_die): Fill in variable-length typedefs.
18663         (gen_tagged_type_die): Gracefully return on error_mark_node.
18664         Handle re-entrancy.
18665         (gen_type_die_with_usage): Handle variable-length types.
18666         Remove duplicate code for ARRAY_TYPE case.
18667         (process_scope_var): Only process imported modules during early
18668         dwarf.
18669         (dwarf2out_early_global_decl): New.
18670         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
18671         (dwarf2out_type_decl): Set early_dwarf while calling
18672         dwarf2out_decl.
18673         (dwarf2out_decl): Verify that we did not recreate a previously
18674         generated DIE.
18675         Do not return on DECL_EXTERNALs in VAR_DECLs.
18676         Abstract some code to local_function_static.
18677         (lookup_filename): Remove use of file_table_last_lookup.
18678         Gracefully exit on missing file_name.
18679         (dwarf2out_finish): Verify limbo list.
18680         Remove deferred_locations_list use.
18681         Move deferred_asm_name and limbo flushing to...
18682         (dwarf2out_early_finish): ...here.  New.
18683         (dwarf2out_c_finalize): Remove set of deferred_location_list,
18684         deferred_asm_name, and file_table_last_lookup.
18685         * cgraph.h (referred_to_p): Add default argument.
18686         * cgraphunit.c (referred_to_p): Add and handle include_self
18687         argument.
18688         (analyze_functions): Add first_time argument.
18689         Call check_global_declaration for all symbols.
18690         Call late_global_decl for nodes for moribund nodes.
18691         (finalize_compilation_unit): Add new argument to
18692         analyze_functions.
18693         Call early_global_decl for functions.
18694         Call early_finish debug hook.
18695         * dbxout.c (dbxout_early_global_decl): New.
18696         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
18697         (dbx_debug_hooks): Add new hooks.
18698         (xcoff_debug_hooks): Same.
18699         * debug.c (do_nothing_debug_hooks): Add early_finish field.
18700         Add early and late debug hooks.
18701         Remove global_decl hook.
18702         * debug.h (struct gcc_debug_hooks): Add early_finish,
18703         early_global_decl, and late_global_decl fields.
18704         Remove global_decl field.
18705         Document gcc_debug_hooks.
18706         * gengtype.c (output_typename): Remove.
18707         * godump.c (go_early_global_decl): New.
18708         (go_late_global_decl): New.
18709         (go_global_decl): Remove.
18710         (dump_go_spec_init): Remove global_decl.  Add
18711         {early,late}_global_decl.
18712         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
18713         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
18714         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
18715         (write_global_declarations): Remove.
18716         (global_decl_processing): New.
18717         * langhooks.h (struct lang_hooks_for_decls): Remove
18718         final_write_globals field.
18719         Add post_compilation_parsing_cleanups field.
18720         * passes.c (rest_of_decl_compilation): Call early_global_decl.
18721         * sdbout.c: Add early and late_global_decl hooks.  Remove
18722         sdbout_global_decl hook.
18723         Add early_finish field for sdb_debug_hooks.
18724         (sdbout_global_decl): Remove.
18725         (sdbout_early_global_decl): New.
18726         (sdbout_late_global_decl): New.
18727         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
18728         * toplev.c (check_global_declaration): Rename from
18729         check_global_declaration_1.
18730         Adapt to use symtab infrastructure.
18731         (check_global_declarations): Remove.
18732         (emit_debug_global_declarations): Remove.
18733         (compile_file): Remove call to final_write_globals langhook.
18734         Run the actual compilation process.
18735         Perform any post compilation parser cleanups.
18736         Generate late debug info.
18737         * toplev.h (check_global_declaration): New.
18738         (check_global_declaration_1): Remove.
18739         (check_global_declarations): Remove.
18740         (write_global_declarations): Remove.
18741         (emit_debug_global_declarations): Remove.
18742         (global_decl_processing): New.
18743         * tree-core.h (struct tree_block): Add DIE field.
18744         * tree.h (BLOCK_DIE): New.
18745         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
18746         throughout.
18747         (vmsdbgout_early_global_decl): New.
18748         (vmsdbgout_late_global_decl): New.
18749         Add early_finish debug hook field to vmsdbg_debug_hooks.
18750         Remove vmsdbgout_decl to vmsdbgout_function_decl.
18751         Add early and late_global_decl debug hooks.
18752
18753 2015-06-05  Julian Brown  <julian@codesourcery.com>
18754             Sandra Loosemore  <sandra@codesourcery.com>
18755
18756         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
18757         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
18758         to print-sysroot-suffix.sh script.
18759
18760 2015-06-05  Tom de Vries  <tom@codesourcery.com>
18761
18762         merge from gomp4 branch:
18763         2015-05-28  Tom de Vries  <tom@codesourcery.com>
18764
18765         PR tree-optimization/65443
18766         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
18767         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
18768         (try_transform_to_exit_first_loop_alt): New function.
18769         (transform_to_exit_first_loop): Use
18770         try_transform_to_exit_first_loop_alt.
18771
18772 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
18773
18774         * builtins.c (expand_builtin_atomic_compare_exchange): Call
18775         emit_cmp_and_jump_insns with the mode of target.
18776
18777 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18778
18779         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
18780
18781 2015-06-04  DJ Delorie  <dj@redhat.com>
18782
18783         * config/msp430/msp430.md (movsi_s): New.  Special case for
18784         storing a 20-bit symbol into a 32-bit register.
18785         * config/msp430/msp430.c (msp430_subreg): Add support for it.
18786         * config/msp430/predicates.md (msp430_symbol_operand): New.
18787
18788 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
18789
18790         * c-family/c-common.c (noplt): New attribute.
18791         (handle_noplt_attribute): New handler.
18792         * calls.c (prepare_call_address): Check for noplt
18793         attribute.
18794         * config/i386/i386.c (ix86_expand_call): Check
18795         for noplt attribute.
18796         (ix86_nopic_noplt_attribute_p): New function.
18797         (ix86_output_call_insn): Output indirect call for non-pic
18798         no plt calls.
18799         * doc/extend.texi (noplt): Document new attribute.
18800         * doc/invoke.texi: Document new attribute.
18801
18802 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
18803
18804         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
18805         real.h, and fixed-value.h when included in host source files.
18806         * double-int.h: Remove redundant #includes listed above.
18807         * fixed-value.h: Likewise.
18808         * real.h: Likewise.
18809         * wide-int.h: Likewise.
18810         * inchash.h: Likewise.
18811         * rtl.h: Add some include files When included from a generator file.
18812         * target.h: Remove wide-int.h and insn-modes.h from the include list.
18813         * internal-fn.h: Don't include coretypes.h.
18814         * alias.c: Adjust includes for restructured coretypes.h.
18815         * asan.c: Likewise.
18816         * attribs.c: Likewise.
18817         * auto-inc-dec.c: Likewise.
18818         * auto-profile.c: Likewise.
18819         * bb-reorder.c: Likewise.
18820         * bt-load.c: Likewise.
18821         * builtins.c: Likewise.
18822         * caller-save.c: Likewise.
18823         * calls.c: Likewise.
18824         * ccmp.c: Likewise.
18825         * cfg.c: Likewise.
18826         * cfganal.c: Likewise.
18827         * cfgbuild.c: Likewise.
18828         * cfgcleanup.c: Likewise.
18829         * cfgexpand.c: Likewise.
18830         * cfghooks.c: Likewise.
18831         * cfgloop.c: Likewise.
18832         * cfgloop.h: Likewise.
18833         * cfgloopanal.c: Likewise.
18834         * cfgloopmanip.c: Likewise.
18835         * cfgrtl.c: Likewise.
18836         * cgraph.c: Likewise.
18837         * cgraphbuild.c: Likewise.
18838         * cgraphclones.c: Likewise.
18839         * cgraphunit.c: Likewise.
18840         * cilk-common.c: Likewise.
18841         * combine-stack-adj.c: Likewise.
18842         * combine.c: Likewise.
18843         * compare-elim.c: Likewise.
18844         * convert.c: Likewise.
18845         * coverage.c: Likewise.
18846         * cppbuiltin.c: Likewise.
18847         * cprop.c: Likewise.
18848         * cse.c: Likewise.
18849         * cselib.c: Likewise.
18850         * data-streamer-in.c: Likewise.
18851         * data-streamer-out.c: Likewise.
18852         * data-streamer.c: Likewise.
18853         * dbxout.c: Likewise.
18854         * dce.c: Likewise.
18855         * ddg.c: Likewise.
18856         * debug.c: Likewise.
18857         * df-core.c: Likewise.
18858         * df-problems.c: Likewise.
18859         * df-scan.c: Likewise.
18860         * df.h: Likewise.
18861         * dfp.c: Likewise.
18862         * dojump.c: Likewise.
18863         * dominance.c: Likewise.
18864         * domwalk.c: Likewise.
18865         * double-int.c: Likewise.
18866         * dse.c: Likewise.
18867         * dumpfile.c: Likewise.
18868         * dwarf2asm.c: Likewise.
18869         * dwarf2cfi.c: Likewise.
18870         * dwarf2out.c: Likewise.
18871         * dwarf2out.h: Likewise.
18872         * emit-rtl.c: Likewise.
18873         * et-forest.c: Likewise.
18874         * except.c: Likewise.
18875         * explow.c: Likewise.
18876         * expmed.c: Likewise.
18877         * expr.c: Likewise.
18878         * final.c: Likewise.
18879         * fixed-value.c: Likewise.
18880         * fold-const.c: Likewise.
18881         * function.c: Likewise.
18882         * fwprop.c: Likewise.
18883         * gcc-plugin.h: Likewise.
18884         * gcse.c: Likewise.
18885         * generic-match-head.c: Likewise.
18886         * ggc-page.c: Likewise.
18887         * gimple-builder.c: Likewise.
18888         * gimple-expr.c: Likewise.
18889         * gimple-fold.c: Likewise.
18890         * gimple-iterator.c: Likewise.
18891         * gimple-low.c: Likewise.
18892         * gimple-match-head.c: Likewise.
18893         * gimple-pretty-print.c: Likewise.
18894         * gimple-ssa-isolate-paths.c: Likewise.
18895         * gimple-ssa-strength-reduction.c: Likewise.
18896         * gimple-streamer-in.c: Likewise.
18897         * gimple-streamer-out.c: Likewise.
18898         * gimple-streamer.h: Likewise.
18899         * gimple-walk.c: Likewise.
18900         * gimple.c: Likewise.
18901         * gimplify-me.c: Likewise.
18902         * gimplify.c: Likewise.
18903         * godump.c: Likewise.
18904         * graph.c: Likewise.
18905         * graphite-blocking.c: Likewise.
18906         * graphite-dependences.c: Likewise.
18907         * graphite-interchange.c: Likewise.
18908         * graphite-isl-ast-to-gimple.c: Likewise.
18909         * graphite-optimize-isl.c: Likewise.
18910         * graphite-poly.c: Likewise.
18911         * graphite-scop-detection.c: Likewise.
18912         * graphite-sese-to-poly.c: Likewise.
18913         * graphite.c: Likewise.
18914         * haifa-sched.c: Likewise.
18915         * hooks.h: Likewise.
18916         * hw-doloop.c: Likewise.
18917         * ifcvt.c: Likewise.
18918         * incpath.c: Likewise.
18919         * init-regs.c: Likewise.
18920         * internal-fn.c: Likewise.
18921         * ipa-chkp.c: Likewise.
18922         * ipa-comdats.c: Likewise.
18923         * ipa-cp.c: Likewise.
18924         * ipa-devirt.c: Likewise.
18925         * ipa-icf-gimple.c: Likewise.
18926         * ipa-icf.c: Likewise.
18927         * ipa-inline-analysis.c: Likewise.
18928         * ipa-inline-transform.c: Likewise.
18929         * ipa-inline.c: Likewise.
18930         * ipa-polymorphic-call.c: Likewise.
18931         * ipa-profile.c: Likewise.
18932         * ipa-prop.c: Likewise.
18933         * ipa-pure-const.c: Likewise.
18934         * ipa-ref.c: Likewise.
18935         * ipa-reference.c: Likewise.
18936         * ipa-split.c: Likewise.
18937         * ipa-utils.c: Likewise.
18938         * ipa-visibility.c: Likewise.
18939         * ipa.c: Likewise.
18940         * ira-build.c: Likewise.
18941         * ira-color.c: Likewise.
18942         * ira-conflicts.c: Likewise.
18943         * ira-costs.c: Likewise.
18944         * ira-emit.c: Likewise.
18945         * ira-lives.c: Likewise.
18946         * ira.c: Likewise.
18947         * jump.c: Likewise.
18948         * langhooks.c: Likewise.
18949         * lcm.c: Likewise.
18950         * loop-doloop.c: Likewise.
18951         * loop-init.c: Likewise.
18952         * loop-invariant.c: Likewise.
18953         * loop-iv.c: Likewise.
18954         * loop-unroll.c: Likewise.
18955         * lower-subreg.c: Likewise.
18956         * lra-assigns.c: Likewise.
18957         * lra-coalesce.c: Likewise.
18958         * lra-constraints.c: Likewise.
18959         * lra-eliminations.c: Likewise.
18960         * lra-lives.c: Likewise.
18961         * lra-remat.c: Likewise.
18962         * lra-spills.c: Likewise.
18963         * lra.c: Likewise.
18964         * lto-cgraph.c: Likewise.
18965         * lto-compress.c: Likewise.
18966         * lto-opts.c: Likewise.
18967         * lto-section-in.c: Likewise.
18968         * lto-section-out.c: Likewise.
18969         * lto-streamer-in.c: Likewise.
18970         * lto-streamer-out.c: Likewise.
18971         * lto-streamer.c: Likewise.
18972         * mcf.c: Likewise.
18973         * mode-switching.c: Likewise.
18974         * modulo-sched.c: Likewise.
18975         * omega.c: Likewise.
18976         * omp-low.c: Likewise.
18977         * optabs.c: Likewise.
18978         * opts-global.c: Likewise.
18979         * passes.c: Likewise.
18980         * plugin.c: Likewise.
18981         * postreload-gcse.c: Likewise.
18982         * postreload.c: Likewise.
18983         * predict.c: Likewise.
18984         * print-rtl.c: Likewise.
18985         * print-tree.c: Likewise.
18986         * profile.c: Likewise.
18987         * real.c: Likewise.
18988         * realmpfr.c: Likewise.
18989         * realmpfr.h: Likewise.
18990         * recog.c: Likewise.
18991         * ree.c: Likewise.
18992         * reg-stack.c: Likewise.
18993         * regcprop.c: Likewise.
18994         * reginfo.c: Likewise.
18995         * regrename.c: Likewise.
18996         * regs.h: Likewise.
18997         * regstat.c: Likewise.
18998         * reload.c: Likewise.
18999         * reload1.c: Likewise.
19000         * reorg.c: Likewise.
19001         * resource.c: Likewise.
19002         * rtl-chkp.c: Likewise.
19003         * rtlanal.c: Likewise.
19004         * rtlhooks.c: Likewise.
19005         * sanopt.c: Likewise.
19006         * sched-deps.c: Likewise.
19007         * sched-ebb.c: Likewise.
19008         * sched-rgn.c: Likewise.
19009         * sched-vis.c: Likewise.
19010         * sdbout.c: Likewise.
19011         * sel-sched-dump.c: Likewise.
19012         * sel-sched-ir.c: Likewise.
19013         * sel-sched.c: Likewise.
19014         * sese.c: Likewise.
19015         * shrink-wrap.c: Likewise.
19016         * shrink-wrap.h: Likewise.
19017         * simplify-rtx.c: Likewise.
19018         * stack-ptr-mod.c: Likewise.
19019         * statistics.c: Likewise.
19020         * stmt.c: Likewise.
19021         * stor-layout.c: Likewise.
19022         * store-motion.c: Likewise.
19023         * stringpool.c: Likewise.
19024         * symtab.c: Likewise.
19025         * target-globals.c: Likewise.
19026         * targhooks.c: Likewise.
19027         * toplev.c: Likewise.
19028         * tracer.c: Likewise.
19029         * trans-mem.c: Likewise.
19030         * tree-affine.c: Likewise.
19031         * tree-affine.h: Likewise.
19032         * tree-browser.c: Likewise.
19033         * tree-call-cdce.c: Likewise.
19034         * tree-cfg.c: Likewise.
19035         * tree-cfgcleanup.c: Likewise.
19036         * tree-chkp-opt.c: Likewise.
19037         * tree-chkp.c: Likewise.
19038         * tree-chrec.c: Likewise.
19039         * tree-complex.c: Likewise.
19040         * tree-data-ref.c: Likewise.
19041         * tree-dfa.c: Likewise.
19042         * tree-diagnostic.c: Likewise.
19043         * tree-dump.c: Likewise.
19044         * tree-eh.c: Likewise.
19045         * tree-emutls.c: Likewise.
19046         * tree-if-conv.c: Likewise.
19047         * tree-inline.c: Likewise.
19048         * tree-into-ssa.c: Likewise.
19049         * tree-iterator.c: Likewise.
19050         * tree-loop-distribution.c: Likewise.
19051         * tree-nested.c: Likewise.
19052         * tree-nrv.c: Likewise.
19053         * tree-object-size.c: Likewise.
19054         * tree-outof-ssa.c: Likewise.
19055         * tree-parloops.c: Likewise.
19056         * tree-phinodes.c: Likewise.
19057         * tree-predcom.c: Likewise.
19058         * tree-pretty-print.c: Likewise.
19059         * tree-pretty-print.h: Likewise.
19060         * tree-profile.c: Likewise.
19061         * tree-scalar-evolution.c: Likewise.
19062         * tree-sra.c: Likewise.
19063         * tree-ssa-address.c: Likewise.
19064         * tree-ssa-alias.c: Likewise.
19065         * tree-ssa-ccp.c: Likewise.
19066         * tree-ssa-coalesce.c: Likewise.
19067         * tree-ssa-copy.c: Likewise.
19068         * tree-ssa-copyrename.c: Likewise.
19069         * tree-ssa-dce.c: Likewise.
19070         * tree-ssa-dom.c: Likewise.
19071         * tree-ssa-dse.c: Likewise.
19072         * tree-ssa-forwprop.c: Likewise.
19073         * tree-ssa-ifcombine.c: Likewise.
19074         * tree-ssa-live.c: Likewise.
19075         * tree-ssa-loop-ch.c: Likewise.
19076         * tree-ssa-loop-im.c: Likewise.
19077         * tree-ssa-loop-ivcanon.c: Likewise.
19078         * tree-ssa-loop-ivopts.c: Likewise.
19079         * tree-ssa-loop-manip.c: Likewise.
19080         * tree-ssa-loop-niter.c: Likewise.
19081         * tree-ssa-loop-prefetch.c: Likewise.
19082         * tree-ssa-loop-unswitch.c: Likewise.
19083         * tree-ssa-loop.c: Likewise.
19084         * tree-ssa-loop.h: Likewise.
19085         * tree-ssa-math-opts.c: Likewise.
19086         * tree-ssa-operands.c: Likewise.
19087         * tree-ssa-phiopt.c: Likewise.
19088         * tree-ssa-phiprop.c: Likewise.
19089         * tree-ssa-pre.c: Likewise.
19090         * tree-ssa-propagate.c: Likewise.
19091         * tree-ssa-reassoc.c: Likewise.
19092         * tree-ssa-sccvn.c: Likewise.
19093         * tree-ssa-scopedtables.c: Likewise.
19094         * tree-ssa-sink.c: Likewise.
19095         * tree-ssa-strlen.c: Likewise.
19096         * tree-ssa-structalias.c: Likewise.
19097         * tree-ssa-tail-merge.c: Likewise.
19098         * tree-ssa-ter.c: Likewise.
19099         * tree-ssa-threadedge.c: Likewise.
19100         * tree-ssa-threadupdate.c: Likewise.
19101         * tree-ssa-uncprop.c: Likewise.
19102         * tree-ssa-uninit.c: Likewise.
19103         * tree-ssa.c: Likewise.
19104         * tree-ssanames.c: Likewise.
19105         * tree-stdarg.c: Likewise.
19106         * tree-streamer-in.c: Likewise.
19107         * tree-streamer-out.c: Likewise.
19108         * tree-streamer.c: Likewise.
19109         * tree-switch-conversion.c: Likewise.
19110         * tree-tailcall.c: Likewise.
19111         * tree-vect-data-refs.c: Likewise.
19112         * tree-vect-generic.c: Likewise.
19113         * tree-vect-loop-manip.c: Likewise.
19114         * tree-vect-loop.c: Likewise.
19115         * tree-vect-patterns.c: Likewise.
19116         * tree-vect-slp.c: Likewise.
19117         * tree-vect-stmts.c: Likewise.
19118         * tree-vectorizer.c: Likewise.
19119         * tree-vrp.c: Likewise.
19120         * tree.c: Likewise.
19121         * tsan.c: Likewise.
19122         * ubsan.c: Likewise.
19123         * valtrack.c: Likewise.
19124         * value-prof.c: Likewise.
19125         * var-tracking.c: Likewise.
19126         * varasm.c: Likewise.
19127         * varpool.c: Likewise.
19128         * vmsdbgout.c: Likewise.
19129         * vtable-verify.c: Likewise.
19130         * web.c: Likewise.
19131         * wide-int-print.cc: Likewise.
19132         * wide-int-print.h: Likewise.
19133         * wide-int.cc: Likewise.
19134         * xcoffout.c: Likewise.
19135         * config/aarch64/aarch64-builtins.c: Likewise.
19136         * config/aarch64/aarch64.c: Likewise.
19137         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
19138         * config/alpha/alpha.c: Likewise.
19139         * config/arc/arc.c: Likewise.
19140         * config/arm/aarch-common.c: Likewise.
19141         * config/arm/arm-builtins.c: Likewise.
19142         * config/arm/arm-c.c: Likewise.
19143         * config/arm/arm.c: Likewise.
19144         * config/avr/avr-c.c: Likewise.
19145         * config/avr/avr-log.c: Likewise.
19146         * config/avr/avr.c: Likewise.
19147         * config/bfin/bfin.c: Likewise.
19148         * config/c6x/c6x.c: Likewise.
19149         * config/cr16/cr16.c: Likewise.
19150         * config/cris/cris.c: Likewise.
19151         * config/darwin-c.c: Likewise.
19152         * config/darwin.c: Likewise.
19153         * config/default-c.c: Likewise.
19154         * config/epiphany/epiphany.c: Likewise.
19155         * config/epiphany/mode-switch-use.c: Likewise.
19156         * config/epiphany/resolve-sw-modes.c: Likewise.
19157         * config/fr30/fr30.c: Likewise.
19158         * config/frv/frv.c: Likewise.
19159         * config/ft32/ft32.c: Likewise.
19160         * config/glibc-c.c: Likewise.
19161         * config/h8300/h8300.c: Likewise.
19162         * config/i386/i386-c.c: Likewise.
19163         * config/i386/i386.c: Likewise.
19164         * config/i386/msformat-c.c: Likewise.
19165         * config/i386/winnt-cxx.c: Likewise.
19166         * config/i386/winnt-stubs.c: Likewise.
19167         * config/i386/winnt.c: Likewise.
19168         * config/ia64/ia64-c.c: Likewise.
19169         * config/ia64/ia64.c: Likewise.
19170         * config/iq2000/iq2000.c: Likewise.
19171         * config/lm32/lm32.c: Likewise.
19172         * config/m32c/m32c-pragma.c: Likewise.
19173         * config/m32c/m32c.c: Likewise.
19174         * config/m32r/m32r.c: Likewise.
19175         * config/m68k/m68k.c: Likewise.
19176         * config/mcore/mcore.c: Likewise.
19177         * config/mep/mep-pragma.c: Likewise.
19178         * config/mep/mep.c: Likewise.
19179         * config/microblaze/microblaze-c.c: Likewise.
19180         * config/microblaze/microblaze.c: Likewise.
19181         * config/mips/mips.c: Likewise.
19182         * config/mmix/mmix.c: Likewise.
19183         * config/mn10300/mn10300.c: Likewise.
19184         * config/moxie/moxie.c: Likewise.
19185         * config/msp430/msp430-c.c: Likewise.
19186         * config/msp430/msp430.c: Likewise.
19187         * config/nds32/nds32-cost.c: Likewise.
19188         * config/nds32/nds32-fp-as-gp.c: Likewise.
19189         * config/nds32/nds32-intrinsic.c: Likewise.
19190         * config/nds32/nds32-isr.c: Likewise.
19191         * config/nds32/nds32-md-auxiliary.c: Likewise.
19192         * config/nds32/nds32-memory-manipulation.c: Likewise.
19193         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19194         * config/nds32/nds32-predicates.c: Likewise.
19195         * config/nds32/nds32.c: Likewise.
19196         * config/nios2/nios2.c: Likewise.
19197         * config/nvptx/nvptx.c: Likewise.
19198         * config/pa/pa.c: Likewise.
19199         * config/pdp11/pdp11.c: Likewise.
19200         * config/rl78/rl78-c.c: Likewise.
19201         * config/rl78/rl78.c: Likewise.
19202         * config/rs6000/rs6000-c.c: Likewise.
19203         * config/rs6000/rs6000.c: Likewise.
19204         * config/rx/rx.c: Likewise.
19205         * config/s390/s390-c.c: Likewise.
19206         * config/s390/s390.c: Likewise.
19207         * config/sh/sh-c.c: Likewise.
19208         * config/sh/sh-mem.cc: Likewise.
19209         * config/sh/sh.c: Likewise.
19210         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19211         * config/sh/sh_treg_combine.cc: Likewise.
19212         * config/sol2-c.c: Likewise.
19213         * config/sol2-cxx.c: Likewise.
19214         * config/sol2-stubs.c: Likewise.
19215         * config/sol2.c: Likewise.
19216         * config/sparc/sparc-c.c: Likewise.
19217         * config/sparc/sparc.c: Likewise.
19218         * config/spu/spu-c.c: Likewise.
19219         * config/spu/spu.c: Likewise.
19220         * config/stormy16/stormy16.c: Likewise.
19221         * config/tilegx/mul-tables.c: Likewise.
19222         * config/tilegx/tilegx-c.c: Likewise.
19223         * config/tilegx/tilegx.c: Likewise.
19224         * config/tilepro/mul-tables.c: Likewise.
19225         * config/tilepro/tilepro-c.c: Likewise.
19226         * config/tilepro/tilepro.c: Likewise.
19227         * config/v850/v850-c.c: Likewise.
19228         * config/v850/v850.c: Likewise.
19229         * config/vax/vax.c: Likewise.
19230         * config/visium/visium.c: Likewise.
19231         * config/vms/vms-c.c: Likewise.
19232         * config/vms/vms.c: Likewise.
19233         * config/vxworks.c: Likewise.
19234         * config/winnt-c.c: Likewise.
19235         * config/xtensa/xtensa.c: Likewise.
19236         * common/config/bfin/bfin-common.c: Likewise.
19237
19238 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
19239
19240         * tree.h (tree_code_for_canonical_type_merging): New function.
19241         * tree.c (gimple_canonical_types_compatible_p): Use
19242         tree_code_for_canonical_type_merging..
19243
19244 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19245
19246         PR c++/66192
19247         PR target/66200
19248         * doc/tm.texi: Regenerate.
19249         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
19250         * target.def (TARGET_RELAXED_ORDERING): Likewise.
19251         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
19252         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
19253         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
19254         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
19255         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
19256         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
19257         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
19258
19259 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19260
19261         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
19262         register fma steering pass.
19263         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
19264         AARCH64_TUNE_FMA_STEERING.
19265
19266 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
19267
19268         * tree.c (verify_type_variant): Verify that type and variant is
19269         compatible.
19270         (gimple_canonical_types_compatible_p): Look for main variants.
19271
19272 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
19273
19274         * config.gcc (powerpc*-*-*): Add support for a new configure
19275         option --with-advance-toolchain=<xxx> which overrides using the
19276         default header files, libraries and dynamic linker.
19277
19278         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
19279         specs to support the configure --with-advance-toolchain=<xxx>
19280         option.
19281         (INCLUDE_EXTRA_SPEC): Likewise.
19282         (LINK_OS_EXTRA_SPEC32): Likewise.
19283         (LINK_OK_EXTRA_SPEC64): Likewise.
19284         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
19285         (DYNAMIC_LINKER_PREFIX): Likewise.
19286         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
19287         toolchain support.
19288         (GLIBC_DYNAMIC_LINKER32): Likewise.
19289         (GLIBC_DYNAMIC_LINKER64): Likewise.
19290         (LINK_OS_LINUX_SPEC32): Likewise.
19291         (LINK_OS_LINUX_SPEC64): Likewise.
19292
19293         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
19294         configuration option.
19295
19296 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
19297
19298         PR target/66275
19299         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
19300         to determine current function ABI.
19301         (ix86_function_value_regno_p): Ditto.
19302
19303 2015-06-03  Martin Liska  <mliska@suse.cz>
19304
19305         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
19306         * bitmap.h (struct bitmap_usage): Likewise.
19307         * ggc-common.c (struct ggc_usage): Likewise.
19308         * mem-stats.h (struct mem_location): Likewise.
19309         (struct mem_usage): Likewise.
19310         * vec.c (struct vec_usage): Likewise.
19311
19312 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
19313
19314         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
19315         -Bsymbolic.
19316
19317 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
19318
19319         * doc/plugins.texi (enum plugin_event): New event.
19320         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
19321         and PLUGIN_FINISH_FUNCTION.
19322         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
19323         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
19324
19325 2015-06-03  Richard Biener  <rguenther@suse.de>
19326
19327         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19328         compute GROUP_GAP for the first element.
19329         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
19330         on in-group gaps.
19331
19332 2015-06-03  Nick Clifton  <nickc@redhat.com>
19333
19334         * config/rl78/rl78-real.md: Add peepholes to avoid a register
19335         copy when calling a function.
19336         * config/rl78/rl78.c (need_to_save): Do not push the frame
19337         pointer in an interrupt handler prologue if it is never used.
19338
19339 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19340
19341         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
19342
19343 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19344
19345         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
19346         reference when cloning alias node.
19347
19348 2015-06-03  Martin Liska  <mliska@suse.cz>
19349
19350         * alloc-pool.h (struct pool_usage): Correct space padding.
19351         * ggc-page.c (ggc_print_statistics): Align columns in a report.
19352         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
19353         * tree.c (dump_tree_statistics): Align columns in a report.
19354
19355 2015-06-03  Martin Liska  <mliska@suse.cz>
19356
19357         * alloc-pool.c (allocate_pool_descriptor): Remove.
19358         (struct pool_output_info): Likewise.
19359         (print_alloc_pool_statistics): Likewise.
19360         (dump_alloc_pool_statistics): Likewise.
19361         * alloc-pool.h (struct pool_usage): New struct.
19362         (pool_allocator::initialize): Change usage of memory statistics
19363         to a new interface.
19364         (pool_allocator::release): Likewise.
19365         (pool_allocator::allocate): Likewise.
19366         (pool_allocator::remove): Likewise.
19367         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
19368         for a pool allocator.
19369         * mem-stats.h (struct mem_location): Add new ctor.
19370         (struct mem_usage): Add counter for number of
19371         instances.
19372         (mem_alloc_description::register_descriptor): New overload of
19373         * mem-stats.h (mem_location::to_string): New function.
19374         * bitmap.h (struct bitmap_usage): Use this new function.
19375         * ggc-common.c (struct ggc_usage): Likewise.
19376         the function.
19377
19378 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19379
19380         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
19381         of GCC_INSN_FLAGS_H block.
19382
19383 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
19384
19385         * explow.c (plus_constant): Update check after force_const_mem call
19386         to see if the value returned is not a NULL_RTX.
19387
19388 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19389
19390         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
19391         remove instumentation thunks calling reachable functions.
19392         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
19393         * lto/lto-partition.c (privatize_symbol_name_1): New.
19394         (privatize_symbol_name): Privatize both decl and orig_decl
19395         names for instrumented functions.
19396         * cgraph.c (cgraph_node::verify_node): Add transparent
19397         alias chain check for instrumented node.
19398
19399 2015-06-03  Marek Polacek  <polacek@redhat.com>
19400
19401         PR c/64223
19402         PR c/29358
19403         * tree.c (attribute_value_equal): Handle attribute format.
19404         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
19405
19406 2015-06-03  Richard Biener  <rguenther@suse.de>
19407
19408         PR tree-optimization/63916
19409         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19410         Forward-propagate non-invariant addresses by splicing their
19411         reference ops if the result isn't going to be used by PRE.
19412         (vn_reference_lookup_3): Remove pointless assert.
19413
19414 2015-06-03  Richard Biener  <rguenther@suse.de>
19415
19416         PR tree-optimization/66375
19417         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
19418         add to the evolution before following SSA edges.
19419
19420 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
19421
19422         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
19423         (dump_use, dump_cand, find_induction_variables): Pass new argument
19424         to dump_iv.
19425         (record_use): Preserve the ssa name information in IV.
19426
19427 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19428
19429         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
19430         NO_MODE_TEST.
19431         (add_mode_tests): Don't add mode tests if the predicate only
19432         accepts scalar constant integers.  Otherwise, allow the mode
19433         of "op" to be VOIDmode if the predicate does accept such integers.
19434
19435 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
19436
19437         PR target/66258
19438         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
19439         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
19440         (aarch64_secondary_reload): Likewise
19441         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
19442         to !TARGET_FLOAT.
19443         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
19444         Likewise.
19445
19446 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
19447             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19448
19449         PR target/65768
19450         * cprop.c (try_replace_reg): Check cost of constants before propagating.
19451
19452 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
19453
19454         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
19455         provide access to the IBM extended double floating point mode if
19456         long double is IEEE 128-bit floating point.
19457         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
19458         point if long double is the IBM extended double type.
19459
19460         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
19461         enable adding IEEE 128-bit floating point support.
19462         (-mfloat128-software): Likewise.
19463         (-mfloat128-sw): Likewise.
19464
19465         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
19466         128-bit floating point types to occupy any register if
19467         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
19468         -mfloat128-software is enabled.
19469         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
19470         support.
19471         (rs6000_option_override_internal): Add -mfloat128-* support.
19472         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
19473
19474         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
19475         and float128 type nodes.
19476         (ieee128_float_type_node): Likewise.
19477         (ibm128_float_type_node): Likewise.
19478
19479 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19480
19481         PR target/66136
19482         * config/aarch64/geniterators.sh: Rewrite in awk.
19483
19484 2015-06-02  Martin Liska  <mliska@suse.cz>
19485
19486         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
19487         values to avoid -Wmaybe-uninitialized errors.
19488
19489 2015-06-02  Richard Biener  <rguenther@suse.de>
19490
19491         PR debug/65549
19492         * dwarf2out.c (lookup_context_die): New function.
19493         (resolve_addr): Avoid forcing a full DIE for the
19494         target of a DW_TAG_GNU_call_site during late compilation.
19495         Instead create a stub DIE without a type if we have a
19496         context DIE present.
19497
19498 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
19499
19500         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
19501
19502 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19503
19504         PR tree-optimization/48052
19505         * cfgloop.h (struct control_iv): New.
19506         (struct loop): New field control_ivs.
19507         * tree-ssa-loop-niter.c : Include "stor-layout.h".
19508         (number_of_iterations_lt): Set no_overflow information.
19509         (number_of_iterations_exit): Init control iv in niter struct.
19510         (record_control_iv): New.
19511         (estimate_numbers_of_iterations_loop): Call record_control_iv.
19512         (loop_exits_before_overflow): New.  Interface factored out of
19513         scev_probably_wraps_p.
19514         (scev_probably_wraps_p): Factor loop niter related code into
19515         loop_exits_before_overflow.
19516         (free_numbers_of_iterations_estimates_loop): Free control ivs.
19517         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
19518
19519 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
19520
19521         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
19522         the target doesn't belong to the current function.
19523
19524 2015-06-02  Marek Polacek  <polacek@redhat.com>
19525
19526         PR middle-end/66345
19527         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
19528         get_maxval_strlen does not produce an INTEGER_CST.
19529
19530 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
19531
19532         * config/arc/constraints.md: Use lower-case names in match_code.
19533         * config/mmix/constraints.md: Likewise.
19534
19535 2015-06-02  Richard Biener  <rguenther@suse.de>
19536
19537         PR tree-optimization/65961
19538         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
19539         check and clarify dump message.
19540         (vect_build_slp_tree): If all children are built up from scalars
19541         build up the parent from scalars instead.
19542         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
19543
19544 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
19545
19546         PR other/65366
19547         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
19548         instead of print ... .
19549
19550 2015-06-02  Alan Modra  <amodra@gmail.com>
19551
19552         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
19553         2014-08-11 change.
19554
19555 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19556
19557         PR tree-optimization/52563
19558         PR tree-optimization/62173
19559         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
19560         (alloc_iv, set_iv): New parameter.
19561         (determine_biv_step): Delete.
19562         (find_bivs): Inline original determine_biv_step.  Pass new
19563         argument to set_iv.
19564         (idx_find_step): Use no_overflow information for conversion.
19565         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
19566         resolve_mixers handle folded_casts.
19567         (instantiate_scev_name): Change bool parameter to bool pointer.
19568         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
19569         (instantiate_array_ref, instantiate_scev_not): Ditto.
19570         (instantiate_scev_3, instantiate_scev_2): Ditto.
19571         (instantiate_scev_1, instantiate_scev_r): Ditto.
19572         (instantiate_scev_convert, ): Change parameter.  Pass argument
19573         to chrec_convert_aggressive.
19574         (instantiate_scev): Change argument.
19575         (resolve_mixers): New parameter and set it.
19576         (scev_const_prop): New argument.
19577         * tree-scalar-evolution.h (resolve_mixers): New parameter.
19578         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
19579         of chrec_conert_1.
19580         (chrec_convert): New parameter.  Move definition below.
19581         (chrec_convert_aggressive): New parameter and set it.  Call
19582         convert_affine_scev.
19583         * tree-chrec.h (chrec_convert): New parameter.
19584         (chrec_convert_aggressive): Ditto.
19585
19586 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19587
19588         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
19589         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
19590         the LHS of a no-return call if its type has variable size.
19591         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
19592         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
19593
19594 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
19595
19596         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
19597         * config.in: Regenerate.
19598
19599 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
19600
19601         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19602         consecutive accesses within outer-loop with force_vectorize
19603         for references with zero step in inner-loop.
19604
19605 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19606
19607         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
19608         rather than from gcc/build directory.
19609
19610 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19611
19612         PR target/65697
19613         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
19614         for __sync memory models, emit initial loads and final barriers as
19615         appropriate.
19616
19617 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19618
19619         PR target/65697
19620         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
19621         (aarch64_split_atomic_op): Check for __sync memory models, emit
19622         appropriate initial loads and final barriers.
19623
19624 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19625
19626         * Makefile.in: Fix gcov dependencies that should
19627         not point to a build folder.
19628
19629 2015-06-01  Richard Biener  <rguenther@suse.de>
19630
19631         Revert
19632         2015-05-29  Richard Biener  <rguenther@suse.de>
19633
19634         PR tree-optimization/66314
19635         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19636         parameter that says which loop the new block belongs to.
19637         (ssa_create_duplicates): Blocks duplicated for the threaded
19638         path belong to the loop of the thread destination.
19639
19640 2015-06-01  Martin Liska  <mliska@suse.cz>
19641
19642         * sched-deps.c: Include pool-alloc.h before
19643         cselib.h header file is included.
19644
19645 2015-06-01  Richard Biener  <rguenther@suse.de>
19646
19647         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
19648         functions.
19649
19650 2015-06-01  Martin Liska  <mliska@suse.cz>
19651
19652         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
19653         a function local variable.
19654
19655 2015-06-01  Martin Liska  <mliska@suse.cz>
19656
19657         * alloc-pool.c (create_alloc_pool): Remove.
19658         (empty_alloc_pool): Likewise.
19659         (free_alloc_pool): Likewise.
19660         (free_alloc_pool_if_empty): Likewise.
19661         (pool_alloc): Likewise.
19662         (pool_free): Likewise.
19663         * alloc-pool.h: Remove old declarations.
19664
19665 2015-06-01  Martin Liska  <mliska@suse.cz>
19666
19667         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
19668         (ira_create_object): Likewise.
19669         (ira_create_allocno): Likewise.
19670         (ira_create_live_range): Likewise.
19671         (copy_live_range): Likewise.
19672         (ira_finish_live_range): Likewise.
19673         (ira_free_allocno_costs): Likewise.
19674         (finish_allocno): Likewise.
19675         (finish_allocnos): Likewise.
19676         (initiate_prefs): Likewise.
19677         (ira_create_pref): Likewise.
19678         (finish_pref): Likewise.
19679         (finish_prefs): Likewise.
19680         (initiate_copies): Likewise.
19681         (ira_create_copy): Likewise.
19682         (finish_copy): Likewise.
19683         (finish_copies): Likewise.
19684         (finish_prefs): Likewise.
19685
19686 2015-06-01  Martin Liska  <mliska@suse.cz>
19687
19688         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
19689         (allocate_and_init_ipcp_value): Likewise.
19690         (ipcp_lattice::add_value): Likewise.
19691         (merge_agg_lats_step): Likewise.
19692         (ipcp_driver): Likewise.
19693         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
19694         (ipa_free_all_structures_after_iinln): Likewise.
19695         * ipa-prop.h: Likewise.
19696
19697 2015-06-01  Martin Liska  <mliska@suse.cz>
19698
19699         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
19700         pool allocator.
19701         (set_hint_predicate): Likewise.
19702         (inline_summary_alloc): Likewise.
19703         (reset_inline_edge_summary): Likewise.
19704         (reset_inline_summary): Likewise.
19705         (set_cond_stmt_execution_predicate): Likewise.
19706         (set_switch_stmt_execution_predicate): Likewise.
19707         (compute_bb_predicates): Likewise.
19708         (estimate_function_body_sizes): Likewise.
19709         (inline_free_summary): Likewise.
19710
19711 2015-06-01  Martin Liska  <mliska@suse.cz>
19712
19713         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
19714         (ipa_edge_duplication_hook): Likewise.
19715         (ipa_free_all_structures_after_ipa_cp): Likewise.
19716         (ipa_free_all_structures_after_iinln): Likewise.
19717
19718 2015-06-01  Martin Liska  <mliska@suse.cz>
19719
19720         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
19721         (ipa_profile_generate_summary): Likewise.
19722         (ipa_profile_read_summary): Likewise.
19723         (ipa_profile): Likewise.
19724
19725 2015-06-01  Martin Liska  <mliska@suse.cz>
19726
19727         * tree-ssa-structalias.c (new_var_info): Use new type-based
19728         pool allocator.
19729         (new_constraint): Likewise.
19730         (init_alias_vars): Likewise.
19731         (delete_points_to_sets): Likewise.
19732
19733 2015-06-01  Martin Liska  <mliska@suse.cz>
19734
19735         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
19736         (free_strinfo): Likewise.
19737         (pass_strlen::execute): Likewise.
19738
19739 2015-06-01  Martin Liska  <mliska@suse.cz>
19740
19741         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
19742         pool allocator.
19743         (vn_reference_insert_pieces): Likewise.
19744         (vn_phi_insert): Likewise.
19745         (visit_reference_op_call): Likewise.
19746         (copy_phi): Likewise.
19747         (copy_reference): Likewise.
19748         (process_scc): Likewise.
19749         (allocate_vn_table): Likewise.
19750         (free_vn_table): Likewise.
19751
19752 2015-06-01  Martin Liska  <mliska@suse.cz>
19753
19754         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
19755         pool allocator.
19756         (add_repeat_to_ops_vec): Likewise.
19757         (get_ops): Likewise.
19758         (maybe_optimize_range_tests): Likewise.
19759         (init_reassoc): Likewise.
19760         (fini_reassoc): Likewise.
19761
19762 2015-06-01  Martin Liska  <mliska@suse.cz>
19763
19764         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
19765         pool allocator.
19766         (bitmap_set_new): Likewise.
19767         (get_or_alloc_expr_for_constant): Likewise.
19768         (get_or_alloc_expr_for): Likewise.
19769         (phi_translate_1): Likewise.
19770         (compute_avail): Likewise.
19771         (init_pre): Likewise.
19772         (fini_pre): Likewise.
19773
19774 2015-06-01  Martin Liska  <mliska@suse.cz>
19775
19776         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
19777         (delete_dep_node): Likewise.
19778         (create_deps_list): Likewise.
19779         (free_deps_list): Likewise.
19780         (sched_deps_init): Likewise.
19781         (sched_deps_finish): Likewise.
19782
19783 2015-06-01  Martin Liska  <mliska@suse.cz>
19784
19785         * regcprop.c (free_debug_insn_changes): Use new type-based
19786         pool allocator.
19787         (replace_oldest_value_reg): Likewise.
19788         (pass_cprop_hardreg::execute): Likewise.
19789
19790 2015-06-01  Martin Liska  <mliska@suse.cz>
19791
19792         * ira-build.c (initiate_cost_vectors): Use new type-based
19793         pool allocator.
19794         (ira_allocate_cost_vector): Likewise.
19795         (ira_free_cost_vector): Likewise.
19796         (finish_cost_vectors): Likewise.
19797
19798 2015-06-01  Martin Liska  <mliska@suse.cz>
19799
19800         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
19801         pool allocator.
19802         (free_sched_pools): Likewise.
19803         * sel-sched-ir.h (_list_alloc): Likewise.
19804         (_list_remove): Likewise.
19805
19806 2015-06-01  Martin Liska  <mliska@suse.cz>
19807
19808         * stmt.c (add_case_node): Use new type-based pool allocator.
19809         (expand_case): Likewise.
19810         (expand_sjlj_dispatch_table): Likewise.
19811
19812 2015-06-01  Martin Liska  <mliska@suse.cz>
19813
19814         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
19815         (free_bb): Likewise.
19816         (pass_cse_reciprocals::execute): Likewise.
19817
19818 2015-06-01  Martin Liska  <mliska@suse.cz>
19819
19820         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
19821         (sra_deinitialize) Likewise.
19822         (create_access_1) Likewise.
19823         (build_accesses_from_assign) Likewise.
19824         (create_artificial_child_access) Likewise.
19825
19826 2015-06-01  Martin Liska  <mliska@suse.cz>
19827
19828         * dse.c (get_group_info):Use new type-based pool allocator.
19829         (dse_step0) Likewise.
19830         (free_store_info) Likewise.
19831         (delete_dead_store_insn) Likewise.
19832         (free_read_records) Likewise.
19833         (record_store) Likewise.
19834         (replace_read) Likewise.
19835         (check_mem_read_rtx) Likewise.
19836         (scan_insn) Likewise.
19837         (dse_step1) Likewise.
19838         (dse_step7) Likewise.
19839
19840 2015-06-01  Martin Liska  <mliska@suse.cz>
19841
19842         * df-scan.c (struct df_scan_problem_data):Use new type-based
19843         pool allocator.
19844         (df_scan_free_internal) Likewise.
19845         (df_scan_alloc) Likewise.
19846         (df_grow_reg_info) Likewise.
19847         (df_free_ref) Likewise.
19848         (df_insn_create_insn_record) Likewise.
19849         (df_mw_hardreg_chain_delete) Likewise.
19850         (df_insn_info_delete) Likewise.
19851         (df_free_collection_rec) Likewise.
19852         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
19853         (df_sort_and_compress_mws) Likewise.
19854         (df_ref_create_structure) Likewise.
19855         (df_ref_record) Likewise.
19856
19857 2015-06-01  Martin Liska  <mliska@suse.cz>
19858
19859         * df-problems.c (df_chain_create):Use new type-based pool allocator.
19860         (df_chain_unlink_1) Likewise.
19861         (df_chain_unlink) Likewise.
19862         (df_chain_remove_problem) Likewise.
19863         (df_chain_alloc) Likewise.
19864         (df_chain_free) Likewise.
19865         * df.h (struct dataflow) Likewise.
19866
19867 2015-06-01  Martin Liska  <mliska@suse.cz>
19868
19869         * cselib.c (new_elt_list):Use new type-based pool allocator.
19870         (new_elt_loc_list) Likewise.
19871         (unchain_one_elt_list) Likewise.
19872         (unchain_one_elt_loc_list) Likewise.
19873         (unchain_one_value) Likewise.
19874         (new_cselib_val) Likewise.
19875         (cselib_init) Likewise.
19876         (cselib_finish) Likewise.
19877
19878 2015-06-01  Martin Liska  <mliska@suse.cz>
19879
19880         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
19881         (sh_reorg) Likewise.
19882
19883 2015-06-01  Martin Liska  <mliska@suse.cz>
19884
19885         * cfg.c (initialize_original_copy_tables):Use new type-based
19886         pool allocator.
19887         (free_original_copy_tables) Likewise.
19888         (copy_original_table_clear) Likewise.
19889         (copy_original_table_set) Likewise.
19890
19891 2015-06-01  Martin Liska  <mliska@suse.cz>
19892
19893         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
19894         pool allocator.
19895         (asan_mem_ref_new) Likewise.
19896         (free_mem_ref_resources) Likewise.
19897
19898 2015-06-01  Martin Liska  <mliska@suse.cz>
19899
19900         * var-tracking.c (variable_htab_free):Use new type-based
19901         pool allocator.
19902         (attrs_list_clear) Likewise.
19903         (attrs_list_insert) Likewise.
19904         (attrs_list_copy) Likewise.
19905         (shared_hash_unshare) Likewise.
19906         (shared_hash_destroy) Likewise.
19907         (unshare_variable) Likewise.
19908         (var_reg_delete_and_set) Likewise.
19909         (var_reg_delete) Likewise.
19910         (var_regno_delete) Likewise.
19911         (drop_overlapping_mem_locs) Likewise.
19912         (variable_union) Likewise.
19913         (insert_into_intersection) Likewise.
19914         (canonicalize_values_star) Likewise.
19915         (variable_merge_over_cur) Likewise.
19916         (dataflow_set_merge) Likewise.
19917         (remove_duplicate_values) Likewise.
19918         (variable_post_merge_new_vals) Likewise.
19919         (dataflow_set_preserve_mem_locs) Likewise.
19920         (dataflow_set_remove_mem_locs) Likewise.
19921         (variable_from_dropped) Likewise.
19922         (variable_was_changed) Likewise.
19923         (set_slot_part) Likewise.
19924         (clobber_slot_part) Likewise.
19925         (delete_slot_part) Likewise.
19926         (loc_exp_insert_dep) Likewise.
19927         (notify_dependents_of_changed_value) Likewise.
19928         (emit_notes_for_differences_1) Likewise.
19929         (vt_emit_notes) Likewise.
19930         (vt_initialize) Likewise.
19931         (vt_finalize) Likewise.
19932
19933 2015-06-01  Martin Liska  <mliska@suse.cz>
19934
19935         * ira-color.c (init_update_cost_records):Use new type-based
19936         pool allocator.
19937         (get_update_cost_record) Likewise.
19938         (free_update_cost_record_list) Likewise.
19939         (finish_update_cost_records) Likewise.
19940         (initiate_cost_update) Likewise.
19941
19942 2015-06-01  Martin Liska  <mliska@suse.cz>
19943
19944         * lra.c (init_insn_regs): Use new type-based pool allocator.
19945         (new_insn_reg) Likewise.
19946         (free_insn_reg) Likewise.
19947         (free_insn_regs) Likewise.
19948         (finish_insn_regs) Likewise.
19949         (init_insn_recog_data) Likewise.
19950         (init_reg_info) Likewise.
19951         (finish_reg_info) Likewise.
19952         (lra_free_copies) Likewise.
19953         (lra_create_copy) Likewise.
19954         (invalidate_insn_data_regno_info) Likewise.
19955
19956 2015-06-01  Martin Liska  <mliska@suse.cz>
19957
19958         * lra-lives.c (free_live_range): Use new type-based pool allocator.
19959         (free_live_range_list) Likewise.
19960         (create_live_range) Likewise.
19961         (copy_live_range) Likewise.
19962         (lra_merge_live_ranges) Likewise.
19963         (remove_some_program_points_and_update_live_ranges) Likewise.
19964         (lra_live_ranges_init) Likewise.
19965         (lra_live_ranges_finish) Likewise.
19966
19967 2015-06-01  Martin Liska  <mliska@suse.cz>
19968
19969         * et-forest.c (et_new_occ): Use new type-based pool allocator.
19970         (et_new_tree): Likewise.
19971         (et_free_tree): Likewise.
19972         (et_free_tree_force): Likewise.
19973         (et_free_pools): Likewise.
19974         (et_split): Likewise.
19975
19976 2015-06-01  Martin Liska  <mliska@suse.cz>
19977
19978         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
19979         to header file.
19980         * alloc-pool.h (pool_allocator::pool_allocator): New function.
19981         (pool_allocator::release): Likewise.
19982         (inline pool_allocator::release_if_empty): Likewise.
19983         (inline pool_allocator::~pool_allocator): Likewise.
19984         (pool_allocator::allocate): Likewise.
19985         (pool_allocator::remove): Likewise.
19986
19987 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19988
19989         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
19990         in comment.
19991
19992 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19993
19994         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
19995         to fusible_ops.
19996         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
19997         (arm_macro_fusion_p): Likewise.
19998         (arm_macro_fusion_pair_p): Likewise.
19999
20000 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
20001
20002         * config/aarch64/aarch64-protos.h (tune_params): Rename
20003         fuseable_ops to fusible_ops.
20004         * config/aarch64/aarch64.c (generic_tunings): Rename
20005         fuseable_ops to fusible_ops.
20006         (cortexa53_tunings): Likewise.
20007         (cortexa57_tunings): Likewise.
20008         (thunderx_tunings): Likewise.
20009         (xgene1_tunings): Likewise.
20010         (aarch64_macro_fusion_p): Likewise.
20011         (aarch64_macro_fusion_pair_p): Likewise.
20012
20013 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
20014
20015         * config/s390/driver-native.c: New file.
20016         * config/s390/x-native: New file.
20017         * config.host: Add new files for s390.
20018         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
20019         and -march=native
20020         * config.gcc: Likewise.
20021         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
20022         * config/s390/s390-opts.h (enum processor_type): Ditto.
20023         * config/s390/s390.c (s390_option_override): Catch unhandled
20024         PROCESSOR_NATIVE
20025
20026 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
20027
20028         PR target/65527
20029         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
20030         redirection for instrumented calls.
20031         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
20032         (append_compiler_options): Append -fcheck-pointer-bounds.
20033         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
20034         (chkp_redirect_edge): New.
20035         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
20036         (chkp_redirect_edge): New.
20037
20038 2015-06-01  Richard Biener  <rguenther@suse.de>
20039
20040         PR tree-optimization/66280
20041         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
20042         def-use walking.
20043
20044 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20045
20046         * config/aarch64/aarch64.md
20047         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
20048         logic_shift_imm.
20049
20050 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
20051
20052         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
20053         Remove obsolete kludge.
20054
20055 2015-06-01  Richard Biener  <rguenther@suse.de>
20056
20057         * tree-ssa-reassoc.c (get_rank): Simplify.
20058
20059 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
20060
20061         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
20062         * configure: Regenerated.
20063
20064 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
20065
20066         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
20067         issue (add space between string literal and macro).
20068         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
20069
20070 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
20071
20072         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
20073         implict or explicit -fPIE or -fpie.
20074
20075 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
20076
20077         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
20078
20079 2015-05-28  DJ Delorie  <dj@redhat.com>
20080
20081         * expmed.c (extract_bit_field_1): Avoid clobbering a
20082         yet-to-be-used base/index register.
20083
20084 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
20085
20086         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
20087         (alias_stats): Add num_universal.
20088         (alias_set_subset_of): Special case pointers; be ready for NULL
20089         children.
20090         (alias_sets_conflict_p): Special case pointers; be ready for NULL
20091         children.
20092         (init_alias_set_entry): Break out from ...
20093         (record_alias_subset): ... here; propagate new fields;
20094         allocate children only when really needed.
20095         (get_alias_set): Do less generous pointer globbing.
20096         (dump_alias_stats_in_alias_c): Update statistics.
20097
20098 2015-05-30  Alan Modra  <amodra@gmail.com>
20099
20100         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
20101         correct block for use of r12.
20102         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
20103
20104 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
20105
20106         PR target/66215
20107         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
20108         with -mhotpatch=.
20109
20110 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
20111
20112         PR tree-optimization/66142
20113         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
20114         virtual phis that feed themselves.
20115
20116 2015-05-29  Richard Biener  <rguenther@suse.de>
20117
20118         PR tree-optimization/66314
20119         * tree-ssa-threadupdate.c (create_block_for_threading): Add
20120         parameter that says which loop the new block belongs to.
20121         (ssa_create_duplicates): Blocks duplicated for the threaded
20122         path belong to the loop of the thread destination.
20123
20124 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
20125
20126         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
20127         to cleanup-saved-temps.
20128         * doc/sourcebuild.texi (Clean up generated test files): Expand
20129         introduction.
20130         (dg-keep-saved-temps): Document new proc.
20131         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
20132         cleanup-saved-temps): Remove.
20133
20134 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
20135
20136         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
20137         gcc_AC_CHECK_DECLS.
20138         * configure: Regenerate.
20139
20140 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
20141
20142         * config/nios2/linux.h (CPP_SPEC): Define.
20143
20144 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
20145
20146         * config/microblaze/linux.h (CPP_SPEC): Define.
20147
20148 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
20149
20150         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
20151         -pthread is specified.
20152
20153 2015-05-28  Richard Biener  <rguenther@suse.de>
20154
20155         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
20156         (vect_fixup_scalar_cycles_with_patterns): Likewise.
20157         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
20158         after pattern recog.
20159         (vect_create_epilog_for_reduction): Properly handle reductions
20160         with patterns.
20161         (vectorizable_reduction): Likewise.
20162         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
20163         reduction chains.
20164         (vect_get_constant_vectors): Create the correct number of
20165         initial values for reductions.
20166         (vect_schedule_slp_instance): Handle reduction chains that are
20167         type changing properly.
20168         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
20169
20170 2015-05-28  Richard Biener  <rguenther@suse.de>
20171
20172         PR tree-optimization/66142
20173         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
20174         values better in memcpy destination handling.  Handle non-aliasing
20175         we discover here.
20176
20177 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
20178
20179         PR target/63810
20180         * config/darwin-c.c (version_components): New global enum.
20181         (parse_version, version_as_legacy_macro)
20182         (version_as_modern_macro, macosx_version_as_macro): New functions.
20183         (version_as_macro): Remove.
20184         (darwin_cpp_builtins): Use new function.
20185
20186 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
20187
20188         * builtins.c (expand_builtin_acc_on_device): Mark parameters
20189         with ATTRIBUTE_UNUSED.
20190
20191 2015-05-28  Julian Brown  <julian@codesourcery.com>
20192
20193         PR libgomp/65742
20194
20195         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
20196         sequence for !ACCEL_COMPILER.
20197
20198 2015-05-28  Nick Clifton  <nickc@redhat.com>
20199
20200         * config/rx/rx.c (push_regs): New function.  Extracts code from...
20201         (rx_expand_prologue): ... here.  Use push_regs to push even small
20202         spans of registers.
20203         (pop_regs): New function.
20204         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
20205         registers.
20206
20207 2015-05-28  Richard Biener  <rguenther@suse.de>
20208
20209         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
20210         member.
20211         (SLP_INSTANCE_BODY_COST_VEC): Remove.
20212         (vect_update_slp_costs_according_to_vf): Likewise.
20213         (vect_slp_analyze_operations): Update prototype.
20214         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
20215         vect_update_slp_costs_according_to_vf, adjust.
20216         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
20217         (vect_analyze_slp_cost_1): Likewise.
20218         (vect_analyze_slp_cost): Likewise.  Properly deal with
20219         widening reduction ops.  Commit body costs.
20220         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
20221         cost for loops from here.
20222         (vect_slp_analyze_operations): But do it from here when
20223         the vectorization factor is known and stmts are analyzed.
20224         (vect_bb_vectorization_profitable_p): Simplify.
20225         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
20226         (vect_update_slp_costs_according_to_vf): Remove.
20227
20228 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
20229             H.J. Lu  <hongjiu.lu@intel.com>
20230
20231         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
20232         (BUILD_CFLAGS): Likewise.
20233         (BUILD_CXXFLAGS): Likewise.
20234         (LINKER): Add @NO_PIE_FLAG@.
20235         (BUILD_LDFLAGS): Likewise.
20236         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
20237         --enable-default-pie.
20238         * common.opt (fPIE): Initialize to -1.
20239         (fpie): Likewise.
20240         (no-pie): New option.
20241         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
20242         * configure.ac: Add --enable-default-pie.
20243         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
20244         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
20245         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
20246         * gcc.c (NO_PIE_SPEC): New.
20247         (PIE_SPEC): Likewise.
20248         (NO_FPIE1_SPEC): Likewise.
20249         (FPIE1_SPEC): Likewise.
20250         (NO_FPIE2_SPEC): Likewise.
20251         (FPIE2_SPEC): Likewise.
20252         (NO_FPIE2_SPEC): Likewise.
20253         (FPIE_SPEC): Likewise.
20254         (NO_FPIE_SPEC): Likewise.
20255         (NO_FPIC1_SPEC): Likewise.
20256         (FPIC1_SPEC): Likewise.
20257         (NO_FPIC2_SPEC): Likewise.
20258         (FPIC2_SPEC): Likewise.
20259         (NO_FPIC2_SPEC): Likewise.
20260         (FPIC_SPEC): Likewise.
20261         (NO_FPIC_SPEC): Likewise.
20262         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
20263         (FPIE1_OR_FPIC1_SPEC): Likewise.
20264         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
20265         (FPIE2_OR_FPIC2_SPEC): Likewise.
20266         (NO_FPIE_AND_FPIC_SPEC): Likewise.
20267         (FPIE_OR_FPIC_SPEC): Likewise.
20268         (LD_PIE_SPEC): Likewise.
20269         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
20270         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
20271         * config/darwin.h (PIE_SPEC): Renamed to ...
20272         (DARWIN_PIE_SPEC): This.
20273         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
20274         * config/darwin9.h (PIE_SPEC): Renamed to ...
20275         (DARWIN_PIE_SPEC): This.
20276         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
20277         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
20278         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
20279         FPIE2_OR_FPIC2_SPEC.
20280         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
20281         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
20282         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
20283         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20284         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20285         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20286         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
20287         * config/m32r/m32r.h (ASM_SPEC): Likewise.
20288         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
20289         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20290         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
20291         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
20292         * config/sparc/linux.h (ASM_SPEC): Likewise.
20293         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20294         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
20295         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
20296         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20297         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20298         * config/sparc/sparc.h (ASM_SPEC): Likewise.
20299         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
20300         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
20301         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
20302         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
20303         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
20304         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
20305         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
20306         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
20307         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
20308         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
20309         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
20310         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
20311         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20312         * config/vax/linux.h (ASM_SPEC): Likewise.
20313         * doc/install.texi: Document --enable-default-pie.
20314         * doc/invoke.texi: Document -no-pie.
20315         * config.in: Regenerated.
20316         * configure: Likewise.
20317
20318 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20319
20320         PR rtl-optimization/66168
20321         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
20322         can_move_invariant_reg.
20323
20324 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
20325
20326         PR target/66148
20327         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
20328         REG_EQUAL note when doing insert.
20329
20330         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
20331         instead of "%d" for 'o' operand.
20332
20333 2015-05-27  Nathan Sidwell  <nathan@acm.org>
20334
20335         PR c++/66270
20336         * tree.c (build_pointer_type_for_mode): Canonical type does not
20337         inherit can_alias_all.
20338         (build_reference_type_for_mode): Likewise.
20339
20340 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
20341
20342         * expr.h (array_at_struct_end_p): Move to...
20343         (array_ref_element_size): Likewise.
20344         (component_ref_field_offset): Likewise.
20345         * tree.h (array_ref_element_size): ...here.
20346         (array_at_struct_end_p): Likewise.
20347         (component_ref_field_offset): Likewise.
20348         * expr.c (array_ref_element_size): Move to...
20349         (array_ref_low_bound): Likewise.
20350         (array_at_struct_end_p): Likewise.
20351         (array_ref_up_bound): Likewise.
20352         (component_ref_field_offset): Likewise.
20353         * tree.c (array_ref_element_size): ...here.
20354         (array_ref_low_bound): Likewise.
20355         (array_ref_up_bound): Likewise.
20356         (array_at_struct_end_p): Likewise.
20357         (component_ref_field_offset): Likewise.
20358
20359 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20360             Szabolcs Nagy  <szabolcs.nagy@arm.com>
20361
20362         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
20363
20364 2015-05-27  Jason Merrill  <jason@redhat.com>
20365
20366         PR bootstrap/66304
20367         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
20368         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
20369         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
20370
20371 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
20372
20373         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
20374         is true.
20375
20376         * statistics.c (statistics_fini_pass): Print pass name.
20377
20378 2015-05-27  Richard Biener  <rguenther@suse.de>
20379
20380         PR tree-optimization/66272
20381         Revert parts of
20382         2014-08-15  Richard Biener  <rguenther@suse.de>
20383
20384         PR tree-optimization/62031
20385         * tree-data-ref.c (dr_analyze_indices): Do not set
20386         DR_UNCONSTRAINED_BASE.
20387         (dr_may_alias_p): All indirect accesses have to go the
20388         formerly DR_UNCONSTRAINED_BASE path.
20389         * tree-data-ref.h (struct indices): Remove
20390         unconstrained_base member.
20391         (DR_UNCONSTRAINED_BASE): Remove.
20392
20393 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
20394
20395         * dwarf2out.c: Remove block_map.
20396         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
20397         (gen_lexical_block_die): Same.
20398         (dwarf2out_function_decl): Remove block_map use.
20399         (dwarf2out_c_finalize): Same.
20400         * tree-core.h (struct tree_block): Add die field.
20401         * tree.h (BLOCK_DIE): New.
20402
20403 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20404
20405         PR target/65358
20406         * expr.c (memory_load_overlap): New function.
20407         (emit_push_insn): When pushing partial args to the stack would
20408         clobber the register part load the overlapping part into a pseudo
20409         and put it into the hard reg after pushing.  Change return type
20410         to bool.  Add bool argument.
20411         * expr.h (emit_push_insn): Change return type to bool.
20412         Add bool argument.
20413         * calls.c (expand_call): Cancel sibcall optimization when encountering
20414         partial argument on targets with ARGS_GROW_DOWNWARD and
20415         !STACK_GROWS_DOWNWARD.
20416         (emit_library_call_value_1): Update callsite of emit_push_insn.
20417         (store_one_arg): Likewise.
20418
20419 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20420
20421         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
20422
20423 2015-05-27  Martin Liska  <mliska@suse.cz>
20424
20425         * Makefile.in: Add additional dependencies related to memory report
20426         enhancement.
20427         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
20428         * bitmap.c (struct bitmap_descriptor_d): Remove.
20429         (struct loc): Likewise.
20430         (struct bitmap_desc_hasher): Likewise.
20431         (bitmap_desc_hasher::hash): Likewise.
20432         (bitmap_desc_hasher::equal): Likewise.
20433         (get_bitmap_descriptor): Likewise.
20434         (bitmap_register): User new memory descriptor API.
20435         (register_overhead): Likewise.
20436         (bitmap_find_bit): Register nsearches and search_iter statistics.
20437         (struct bitmap_output_info): Remove.
20438         (print_statistics): Likewise.
20439         (dump_bitmap_statistics): Use new memory descriptor.
20440         * bitmap.h (struct bitmap_usage): New class.
20441         * genmatch.c: Extend header file inclusion.
20442         * genpreds.c: Likewise.
20443         * ggc-common.c (struct ggc_usage): New class.
20444         (struct ggc_loc_desc_hasher): Remove.
20445         (ggc_loc_desc_hasher::hash): Likewise.
20446         (ggc_loc_desc_hasher::equal): Likewise.
20447         (struct ggc_ptr_hash_entry): Likewise.
20448         (struct ptr_hash_hasher): Likewise.
20449         (ptr_hash_hasher::hash): Likewise.
20450         (ptr_hash_hasher::equal): Likewise.
20451         (make_loc_descriptor): Likewise.
20452         (ggc_prune_ptr): Likewise.
20453         (dump_ggc_loc_statistics): Use new memory descriptor.
20454         (ggc_record_overhead): Likewise.
20455         (ggc_free_overhead): Likewise.
20456         (final_cmp_statistic): Remove.
20457         (cmp_statistic): Likewise.
20458         (ggc_add_statistics): Liekwise.
20459         (ggc_prune_overhead_list): Likewise.
20460         * hash-map-traits.h: New file.
20461         * hash-map.h (struct default_hashmap_traits): Move the traits to a
20462         separate header file.
20463         * hash-set.h: Pass memory statistics info to ctor.
20464         * hash-table.c (void dump_hash_table_loc_statistics): New function.
20465         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
20466         (hash_table::~hash_table): Register memory release operation.
20467         (hash_table::alloc_entries): Handle memory allocation operation.
20468         (hash_table::expand): Likewise.
20469         * inchash.c (iterative_hash_hashval_t): Move implementation to header
20470         file.
20471         (iterative_hash_host_wide_int): Likewise.
20472         * inchash.h (class hash): Likewise.
20473         * mem-stats-traits.h: New file.
20474         * mem-stats.h: New file.
20475         (mem_location): Add new class.
20476         (mem_usage): Likewise.
20477         (mem_alloc_description): Likewise.
20478         * sese.c: Add new header file inclusision.
20479         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
20480         and hash_set.
20481         * tree-sra.c: Add new header file inclusision.
20482         * vec.c (struct vec_descriptor): Remove.
20483         (hash_descriptor): Likewise.
20484         (struct vec_usage): Likewise.
20485         (struct ptr_hash_entry): Likewise.
20486         (hash_ptr): Likewise.
20487         (eq_ptr): Likewise.
20488         (vec_prefix::register_overhead): Use new memory descriptor API.
20489         (vec_prefix::release_overhead): Likewise.
20490         (add_statistics): Remove.
20491         (dump_vec_loc_statistics): Use new memory descriptor API.
20492         * vec.h (struct vec_prefix): Likewise.
20493         (va_heap::reserve): Likewise.
20494         (va_heap::release): Likewise.
20495         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
20496
20497 2015-05-27  Richard Biener  <rguenther@suse.de>
20498
20499         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
20500         earlier and remove ??? comment.
20501         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
20502         and got called from loop analysis bail out.  Always pass the SLP
20503         node to the vectorizable_* functions.
20504         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
20505         the premature SLP check here.
20506         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
20507         detected SLP stmts.
20508         (vect_detect_hybrid_slp_1): Likewise.
20509
20510 2015-05-26  Jeff Law  <law@redhat.com>
20511
20512         * combine.c (find_split_point): Verify that the shift count is a
20513         constant when choosing (plus (ashift ...)) as a split point.
20514
20515         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
20516         No functional changes.
20517
20518 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
20519
20520         * ipa-polymorphic-call.c
20521         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
20522         case when call target is already known.
20523
20524 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
20525
20526         PR target/65979
20527         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
20528         take into account the case that operands[1] and operands[2]
20529         are the same register.
20530
20531 2015-05-26  Michael Matz  <matz@suse.de>
20532
20533         PR middle-end/66251
20534
20535         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
20536         stores.
20537         (vect_create_vectorized_demotion_stmts): Always set
20538         STMT_VINFO_VEC_STMT, also with SLP.
20539         (vectorizable_store): Handle strided group stores.
20540
20541 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20542
20543         PR target/66049
20544         * config/aarch64/aarch64.md
20545         (*adds_shift_imm_<mode>):  New pattern.
20546         (*subs_shift_imm_<mode>):  Likewise.
20547         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
20548         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
20549         (*add_uxt<mode>_shift2): Likewise.
20550         (*add_uxtsi_shift2_uxtw): Likewise.
20551         (*sub_uxt<mode>_shift2): Likewise.
20552         (*sub_uxtsi_shift2_uxtw): Likewise.
20553
20554 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
20555
20556         * config/rs6000/constraints.md (Y, U): Use match_test.
20557
20558 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20559
20560         PR target/52144
20561         * config/arm/arm.c (arm_option_check_internal)
20562         (arm_option_params_internal): Check opts->target_flags to set macros.
20563         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20564         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
20565         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20566         (builtin_define): Replaced with def_or_undef_macro.
20567         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20568         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
20569         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20570         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
20571         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
20572         (TARGET_ARM_FEATURE_LDREX_P)
20573         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
20574         * config/arm/arm-c.c (def_or_undef_macro): New function.
20575         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
20576
20577 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20578
20579         * c-common.h (builtin_define_with_int_value)
20580         (builtin_define_type_sizeof): Declare.
20581         * c-cppbuiltin.c (builtin_define_with_int_value)
20582         (builtin_define_type_sizeof): Externalize.
20583         (builtin_define_std): Cleanup declaration.
20584         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
20585         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
20586         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
20587         (builtin_define, builtin_assert): New macros.
20588
20589 2015-05-26  Richard Biener  <rguenther@suse.de>
20590
20591         PR tree-optimization/66142
20592         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
20593         MEM_REFs for the same base address.
20594
20595 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20596
20597         PR ipa/66181
20598         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
20599
20600 2015-05-26  Jason Merrill  <jason@redhat.com>
20601
20602         * configure.ac: Set CXXFLAGS for ISL test.
20603         * configure: Regenerate.
20604
20605         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
20606         strstr and basename.
20607         * configure: Regenerate.
20608
20609 2015-05-26  Richard Biener  <rguenther@suse.de>
20610
20611         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
20612         X % C -> X & (C - 1) for C being a power-of two to ...
20613         * match.pd: ... patterns.
20614
20615 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
20616
20617         * match.pd (swapped_tcc_comparison): New operator list.
20618         (-A CMP -B): New simplification.
20619         * fold-const.c (fold_comparison): Remove corresponding code.
20620
20621 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20622
20623         * caller-save.c (init_caller_save): Base temporary register numbers
20624         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
20625         * cfgloopanal.c (init_set_costs): Likewise.
20626         * dojump.c (prefer_and_bit_test): Likewise.
20627         * expr.c (init_expr_target): Likewise.
20628         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20629         * lower-subreg.c (init_lower_subreg): Likewise.
20630         * postreload.c (reload_cse_regs_1): Likewise.
20631
20632 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20633
20634         * gensupport.h (compute_test_codes): Declare.
20635         * gensupport.c (compute_predicate_codes): Rename to...
20636         (compute_test_codes): ...this.  Generalize error message.
20637         (process_define_predicate): Update accordingly.
20638         * genpreds.c (compute_maybe_allows): Delete.
20639         (add_constraint): Use compute_test_codes to determine whether
20640         something can accept a SUBREG, REG or MEM.
20641
20642 2015-05-26  Torvald Riegel  <triegel@redhat.com>
20643
20644         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
20645         'memory model' to align with C++11; fix description of memory orders;
20646         fix a few typos.
20647
20648 2015-05-26  Richard Biener  <rguenther@suse.de>
20649
20650         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
20651         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
20652         detect whether we apply SLP.  Remove call to
20653         vect_update_slp_costs_according_to_vf.
20654         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
20655         vect_update_slp_costs_according_to_vf from here.  Dispatch
20656         to vect_slp_analyze_operations to analyze SLP stmts.
20657         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
20658         unused bb_vec_info parameter, adjust assert.
20659         (vect_slp_analyze_operations): Pass in the slp instance tree
20660         instead of bb_vec_info.
20661         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
20662         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
20663
20664 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20665
20666         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
20667         Q_REGS.  Expand comment.
20668         (REG_CLASS_NAMES): Ditto.
20669         (REG_CLASS_CONTENTS): Ditto.
20670
20671 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
20672
20673         PR target/66274
20674         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
20675         when LEGACY_INT_REGNO_P is processed.
20676
20677 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20678
20679         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
20680
20681 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
20682
20683         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
20684         register if not marked dead/unused, before return.
20685
20686 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20687
20688         PR lto/66180
20689         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
20690         is set; check for assembler name at LTO time.
20691         (type_in_anonymous_namespace): Remove hacks, check that all
20692         anonymous types are called "<anon>"
20693         (odr_type_p): Simplify; add check for "<anon>"
20694         (odr_subtypes_equivalent): Add odr_type_p check.
20695         * tree.c (need_assembler_name_p): Even anonymous namespace needs
20696         assembler name.
20697
20698 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20699
20700         * ipa-utils.h (method_class_type): Remove.
20701         * cgraphunit.c (walk_polymorphic_call_targets): Use
20702         TYPE_METHOD_BASETYPE.
20703         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
20704         on main variants only.
20705         (method_class_type): Remove.
20706         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
20707         (build_type_inheritance_graph): Likewise.
20708         * ipa-icf.c (sem_function::equals_wpa): Likewise.
20709         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
20710         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
20711
20712 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20713
20714         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
20715         is_typedef_decl, typedef_variant_p): Constify.
20716         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
20717         is_typedef_decl, typedef_variant_p): Constify.
20718
20719 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20720
20721         * defaults.h (gen_tablejump): New function.
20722         (HAVE_tablejump): Add default value.
20723         * expr.c: Adjust.
20724         * stmt.c: Likewise.
20725
20726 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20727
20728         * defaults.h (gen_store_multiple): New function.
20729         (HAVE_store_multiple): Add default value.
20730         * expr.c (move_block_from_reg): Adjust.
20731
20732 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20733
20734         * defaults.h (gen_load_multiple): New function.
20735         (HAVE_load_multiple): Add default value.
20736         * expr.c (move_block_to_reg): Adjust.
20737
20738 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20739
20740         * defaults.h (gen_mem_signal_fence): New function.
20741         (HAVE_mem_signal_fence): Add default value.
20742         * optabs.c: Adjust.
20743
20744 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20745
20746         * defaults.h (gen_memory_barrier): New function.
20747         (HAVE_memory_barrier): Add default value.
20748         * optabs.c: Adjust.
20749
20750 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20751
20752         * defaults.h (gen_mem_thread_fence): New function.
20753         (HAVE_mem_thread_fence): Add default definition.
20754         * optabs.c: Adjust.
20755
20756 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20757
20758         * combine.c (find_split_point): Check the value of HAVE_lo_sum
20759         instead of if it is defined.
20760         (combine_simplify_rtx): Likewise.
20761         * lra-constraints.c (process_address_1): Likewise.
20762         * config/darwin.c: Adjust.
20763         * genconfig.c (main): Always define HAVE_lo_sum.
20764
20765 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20766
20767         * genmatch.c (parser::parse_operation): Reject expanding
20768         operator-list inside 'for'.
20769
20770 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20771
20772         * genmatch.c (parser::parse_for): Reject iterator if used as
20773         operator-list.
20774
20775 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20776
20777         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
20778         after end of id-list.
20779
20780 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20781
20782         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
20783         we do not try to compute canonical type for type that does not need
20784         alias set.
20785         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
20786         FUNCITON_TYPE.
20787         * tree.h (type_with_alias_set_p): New.
20788
20789 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20790
20791         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
20792         function attributes.
20793         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
20794
20795 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
20796
20797         * Makefile.in (check_gcc_parallelize): Delete.
20798         (lang_checks_parallelized): Update comment.
20799
20800 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
20801
20802         PR rtl-optimization/66237
20803         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
20804         location of an "as_a" cast.
20805
20806 2015-05-22  Jeff Law  <law@redhat.com>
20807
20808         * config/pa/pa.md (non-canonical shift-add insns): Remove.
20809         (peepholes with non-canonical RTL sources): Remove.
20810         (peepholes for indexed stores of FP regs in integer modes): Match and
20811         generate canonical RTL.
20812
20813 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20814
20815         PR tree-optimization/63387
20816         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
20817         ((x ord x) & (y ord y) -> (x ord y),
20818         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20819         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
20820         vectors like scalars.
20821
20822 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20823
20824         * convert.c (convert_to_integer, convert_to_vector): Include the
20825         types in the error message.
20826
20827 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20828
20829         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
20830         simplifications.
20831
20832 2015-05-22  Jeff Law  <law@redhat.com>
20833
20834         * config/pa/pa.md (integer_indexed_store splitters): Use
20835         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
20836         insns -- adjusting the constant 2nd operand accordingly.
20837
20838         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
20839         (plus (ashift X log2) Y) if it is a split point.
20840
20841         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
20842         out of hppa_legitimize_address to handle both forms of a multiply
20843         by 2, 4 or 8.
20844         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
20845         Always generate the ASHIFT variant as the result is not directly
20846         used in a MEM.  Update comments and refactor slightly to improve
20847         readability.
20848
20849 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20850
20851         PR target/65491
20852         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
20853         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
20854         (aarch64_composite_type_p): Return false if given type and mode are
20855         for a short vector.
20856
20857 2015-05-22  Richard Biener  <rguenther@suse.de>
20858
20859         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
20860         member.
20861         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
20862         patterns when determining whether SLP is pure.
20863         (vect_is_slp_reduction): Remove check for pattern stmts.
20864         (vect_is_simple_reduction_1): Remove dead code.
20865         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
20866         (vect_get_and_check_slp_defs): Pass in the stmt number.
20867         Allow the first def in a reduction to be not a pattern stmt when
20868         the rest of the stmts def are patterns.
20869         (vect_build_slp_tree_1): Allow tcc_expression codes like
20870         SAD_EXPR and DOT_PROD_EXPR.
20871         (vect_build_slp_tree): Adjust.
20872         (vect_analyze_slp): Refactor and move BB vect error message ...
20873         (vect_slp_analyze_bb_1): ... here.
20874
20875 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
20876
20877         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
20878         for CSWTCH temporary.
20879
20880 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20881
20882         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
20883         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
20884         unknown unspecs.
20885
20886 2015-05-22  Richard Biener  <rguenther@suse.de>
20887
20888         PR tree-optimization/66251
20889         * tree-vect-stmts.c (vectorizable_conversion): Properly
20890         set STMT_VINFO_VEC_STMT even for the SLP case.
20891
20892 2015-05-22  Marek Polacek  <polacek@redhat.com>
20893
20894         * doc/extend.texi: Use @pxref instead of @xref.
20895
20896 2015-05-22  hiraditya  <hiraditya@msn.com>
20897
20898         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
20899         redundant if.
20900
20901 2015-05-22  Richard Biener  <rguenther@suse.de>
20902
20903         PR tree-optimization/65701
20904         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20905         Move peeling cost models into one place.  Peel for alignment
20906         for single loads only if an aligned load is cheaper than
20907         an unaligned load.
20908
20909 2015-05-22  Marek Polacek  <polacek@redhat.com>
20910
20911         PR c/47043
20912         * doc/extend.texi (Enumerator Attributes): New section.
20913         Document syntax of enumerator attributes.
20914
20915 2015-05-22  Richard Biener  <rguenther@suse.de>
20916
20917         * tree-vect-loop.c (get_reduction_op): New function.
20918         (vect_model_reduction_cost): Use it, add reduc_index parameter.
20919         Make ready for BB reductions.
20920         (vect_create_epilog_for_reduction): Use get_reduction_op.
20921         (vectorizable_reduction): Init reduc_index to a valid value.
20922         Adjust vect_model_reduction_cost call.
20923         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
20924         operand for reduction defaults.  Add SAD_EXPR support.
20925         Assert we have a neutral op for SLP reductions.
20926         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
20927         walking pattern stmt ops only recurse to SSA names.
20928
20929 2015-05-22  Richard Biener  <rguenther@suse.de>
20930
20931         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
20932         assert with guard, remove check on detected reduction.
20933         (vect_recog_sad_pattern): Likewise.
20934         (vect_recog_widen_sum_pattern): Likewise.
20935
20936 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20937
20938         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
20939         __always_inline__ attribute.
20940         (vaesdq_u8): Likewise.
20941         (vaesmcq_u8): Likewise.
20942         (vaesimcq_u8): Likewise.
20943         (vsha1cq_u32): Likewise.
20944         (vsha1mq_u32): Likewise.
20945         (vsha1pq_u32): Likewise.
20946         (vsha1h_u32): Likewise.
20947         (vsha1su0q_u32): Likewise.
20948         (vsha1su1q_u32): Likewise.
20949         (vsha256hq_u32): Likewise.
20950         (vsha256h2q_u32): Likewise.
20951         (vsha256su0q_u32): Likewise.
20952         (vsha256su1q_u32): Likewise.
20953         (vmull_p64): Likewise.
20954         (vmull_high_p64): Likewise.
20955
20956 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20957
20958         * final.c (final_scan_insn): Don't check HAVE_peephole with the
20959         preprocessor.
20960         * output.h: Likewise.
20961         * genconfig.c (main): Alwways define HAVE_peephole.
20962         * genpeep.c: Don't emit checks of HAVE_peephole.
20963
20964 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20965
20966         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
20967         check HAVE_conditional_move with the preprocessor.
20968
20969 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20970
20971         * genconfig.c (main): Always define HAVE_conditional_move.
20972         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
20973         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
20974         is defined.
20975
20976 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20977
20978         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
20979         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
20980         and FRAME_POINTER_REGNUM with the preprocessor.
20981
20982 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20983
20984         * defaults.h: Add default for STACK_PUSH_CODE.
20985         * expr.c: Don't redefine STACK_PUSH_CODE.
20986         * recog.c: Likewise.
20987
20988 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20989
20990         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
20991         sched-deps.c: Use if instead of preprocessor checks with
20992         STACK_GROWS_DOWNWARD.
20993
20994 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20995
20996         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
20997         is defined.
20998         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
20999         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
21000         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
21001         * doc/tm.texi: Regenerate.
21002
21003 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
21004
21005         PR target/66232
21006         * config/i386/constraints.md (Bg): New constraint for GOT memory
21007         operand.
21008         * config/i386/i386.md (*call_got_x32): New pattern.
21009         (*call_value_got_x32): Likewise.
21010         * config/i386/predicates.md (GOT_memory_operand): New predicate.
21011
21012 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
21013
21014         PR tree-optimization/66233
21015         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
21016         Simplify.
21017
21018 2015-05-21  Jeff Law  <law@redhat.com>
21019
21020         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
21021         than MULT for shadd sequences.
21022
21023 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
21024
21025         * alias.c (alias_stats): New static var.
21026         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
21027         (dump_alias_stats_in_alias_c): New function.
21028         * alias.h (dump_alias_stats_in_alias_c): Declare.
21029         * tree-ssa-alias.c (dump_alias_stats): Call it.
21030
21031 2015-05-08  Michael Matz  <matz@suse.de>
21032
21033         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
21034         to strided_p.
21035         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
21036         (STMT_VINFO_STRIDED_P): ... this.
21037         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
21038         (vect_verify_datarefs_alignment): Likewise.
21039         (vect_enhance_data_refs_alignment): Likewise.
21040         (vect_analyze_data_ref_access): Likewise.
21041         (vect_analyze_data_refs): Accept strided stores.
21042         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
21043         (vect_model_load_cost): Adjust for macro rename.
21044         (vectorizable_mask_load_store): Likewise.
21045         (vectorizable_load): Likewise.
21046         (vectorizable_store): Open code strided stores.
21047
21048 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21049
21050         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
21051         Document sqrt_insn.
21052
21053 2015-05-21  Richard Biener  <rguenther@suse.de>
21054
21055         PR c++/66211
21056         * match.pd: Guard pattern optimzing (int)(float)int
21057         conversions to apply only on GIMPLE.
21058
21059 2015-05-21  Jeff Law  <law@redhat.com>
21060
21061         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
21062         multiply-accumulate/shift-add insn generation.
21063
21064 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
21065
21066         PR target/54236
21067         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
21068         operands[1] are the same.
21069
21070 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
21071
21072         PR middle-end/66221
21073         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
21074         build_distinct_type_copy to copy bounds.
21075
21076 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
21077
21078         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
21079         Change to unsigned int.
21080
21081 2015-05-20  Jeff Law  <law@redhat.com>
21082
21083         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
21084         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
21085         (pa_shadd_constant_p): Allow constants for shadd insns rather
21086         than valid scaling constants for memory addresses.
21087         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
21088         * config/pa/predicates.md (mem_shadd_operand): New predicate.
21089         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
21090         (shift-add insns using ASHIFT): New patterns.
21091
21092 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
21093
21094         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
21095         feasible.
21096         (fix_up_fall_thru_edges): Likewise.
21097         (fix_crossing_conditional_branches): Likewise. Promote jump targets
21098         from to rtx_insn to rtx_code_label where feasible.
21099         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
21100         gen_move_insn (returned type changed to rtx_insn).
21101         * builtins.c (expand_errno_check): Fix arguments of
21102         do_compare_rtx_and_jump (now expects rtx_code_label).
21103         (expand_builtin_acc_on_device): Likewise.
21104         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
21105         invert_jump (now exprects rtx_jump_insn).
21106         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
21107         (construct_init_block): Use rtx_code_label.
21108         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
21109         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
21110         calling redirect_jump.
21111         (patch_jump_insn): Likewise.
21112         (redirect_branch_edge): Likewise.
21113         (force_nonfallthru_and_redirect): Likewise.
21114         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
21115         when suitable.
21116         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
21117         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
21118         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
21119         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
21120         to store the value retured by gen_label_rtx.
21121         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
21122         rtx_jump_insn.
21123         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
21124         (split_branches): Fix calls of redirect_jump.
21125         * dojump.c (jumpifnot): Promote argument type from rtx to
21126         rtx_code_label.
21127         (jumpifnot_1): Likewise.
21128         (jumpif): Likewise.
21129         (jumpif_1): Likewise.
21130         (do_jump_1): Likewise.
21131         (do_jump): Likewise. Use rtx_code_label when feasible.
21132         (do_jump_by_parts_greater_rtx): Likewise.
21133         (do_jump_by_parts_zero_rtx): Likewise.
21134         (do_jump_by_parts_equality_rtx): Likewise.
21135         (do_compare_rtx_and_jump): Likewise.
21136         * dojump.h: Update function prototypes.
21137         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
21138         returns rtx_insn).
21139         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
21140         rtx_jump_insn.
21141         (emit_label_before): Likewise.
21142         (emit_jump_insn_after_noloc): Likewise.
21143         (emit_jump_insn_after_setloc): Likewise.
21144         (emit_jump_insn_after): Likewise
21145         (emit_jump_insn_before_setloc): Likewise.
21146         (emit_jump_insn_before): Likewise.
21147         (emit_label_before): Promote return type to rtx_code_label.
21148         (emit_label): Likewise.
21149         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
21150         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
21151         gen_move_insn.
21152         (emit_stack_restore): Likewise.
21153         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
21154         (do_cmp_and_jump): Likewise.
21155         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
21156         from rtx to rtx_code_label.
21157         (gen_move_insn_uncast): New function.
21158         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
21159         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
21160         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
21161         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
21162         invert_jump_1 and redirect_jump_1.
21163         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
21164         do_compare_rtx_and_jump.
21165         (expand_addsub_overflow): Likewise.
21166         (expand_neg_overflow): Likewise.
21167         (expand_mul_overflow): Likewise.
21168         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
21169         return value of gen_move_insn.
21170         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
21171         * loop-doloop.c (add_test): Use rtx_code_label.
21172         (doloop_modify): Likewise.
21173         (doloop_optimize): Likewise.
21174         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
21175         * lra-constraints.c (emit_spill_move): Remove cast of value returned
21176         by gen_move_insn.
21177         (inherit_reload_reg): Add cast when calling dump_insn_slim.
21178         (split_reg): Likewise.
21179         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
21180         gen_move_insn.
21181         * optabs.c (expand_binop_directly): Remove casts of values returned by
21182         maybe_gen_insn.
21183         (expand_unop_direct): Likewise.
21184         (expand_abs): Likewise.
21185         (maybe_emit_unop_insn): Likewise.
21186         (maybe_gen_insn): Promote return type to rtx_insn.
21187         * optabs.h: Update prototype of maybe_gen_insn.
21188         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
21189         redundant cast.
21190         * recog.c (struct peep2_insn_data): Promote type of insn field to
21191         rtx_insn.
21192         (peep2_reinit_state): Use NULL instead of NULL_RTX.
21193         (peep2_attempt): Remove casts of insn in peep2_insn_data.
21194         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
21195         * recog.h (struct insn_gen_fn): Promote return types of function
21196         pointers and operator ().from rtx to rtx_insn.
21197         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
21198         (fill_eager_delay_slots): Likewise.
21199         (relax_delay_slots): Likewise.
21200         (make_return_insns): Likewise.
21201         (dbr_schedule): Likewise.
21202         (optimize_skips): Likewise.
21203         (reorg_redirect_jump): Likewise.
21204         (fill_slots_from_thread): Likewise.
21205         * reorg.h: Update prototypes.
21206         * resource.c (find_dead_or_set_registers): Use dyn_cast to
21207         rtx_jump_insn instead of check.  Use it's jump_target method.
21208         * rtl.h (rtx_jump_insn::jump_label): Define new method.
21209         (rtx_jump_insn::jump_target): Define new method.
21210         (rtx_jump_insn::set_jump_target): Define new method.
21211         * rtlanal.c (tablejump_p): Promote type of one local variable.
21212         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
21213         (sched_analyze_insn): Likewise.
21214         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
21215         (print_insn): Likewise.
21216         * stmt.c (label_rtx): Promote return type to rtx_insn.
21217         (force_label_rtx): Likewise.
21218         (jump_target_rtx): Define new function.
21219         (expand_label): Use it, get rid of one cast.
21220         (expand_naked_return): Promote rtx to rtx_code_label.
21221         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
21222         (expand_case): Use rtx_code_label instread of rtx where feasible.
21223         (expand_sjlj_dispatch_table): Likewise.
21224         (emit_case_nodes): Likewise.
21225         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
21226         * store-motion.c (insert_store): Make use of new return type of
21227         gen_move_insn and remove a cast.
21228         (replace_store_insn): Likewise.
21229
21230 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
21231
21232         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
21233         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
21234
21235 2015-05-20  Jeff Law  <law@redhat.com>
21236
21237         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
21238         dispose of the jump thread path when the jump threading
21239         opportunity is cancelled.
21240
21241 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21242
21243         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
21244         when printing the caret character.
21245
21246 2015-05-20  Marek Polacek  <polacek@redhat.com>
21247
21248         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
21249
21250 2015-05-20  Marek Polacek  <polacek@redhat.com>
21251
21252         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
21253         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
21254         * gimple-fold.c (canonicalize_bool): Likewise.
21255         (same_bool_result_p): Likewise.
21256         * tree-if-conv.c (parse_predicate): Likewise.
21257
21258 2015-05-20  Marek Polacek  <polacek@redhat.com>
21259
21260         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
21261         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
21262
21263 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21264
21265         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
21266         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
21267         values.
21268
21269 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
21270
21271         * config/mips/mips.h (micromips_globals): Declare.
21272
21273 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
21274
21275         * timevar.def (TV_INITIALIZE_RTL): New.
21276         * toplev.c (initialize_rtl): Use an auto_timevar to account this
21277         function's time to TV_INITIALIZE_RTL.
21278
21279 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
21280
21281         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
21282         gimple_build_nop calls.
21283         (chkp_find_bounds_for_elem): Likewise.
21284         (chkp_get_zero_bounds): Likewise.
21285         (chkp_get_none_bounds): Likewise.
21286         (chkp_get_bounds_by_definition): Likewise.
21287         (chkp_generate_extern_var_bounds): Likewise.
21288         (chkp_get_bounds_for_decl_addr): Likewise.
21289         (chkp_get_bounds_for_string_cst): Likewise.
21290
21291 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
21292
21293         PR tree-optimization/65447
21294         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
21295         (dump_use, dump_uses): Support to dump sub use.
21296         (record_use): New parameters to support sub use.  Remove call to
21297         dump_use.
21298         (record_sub_use, record_group_use): New functions.
21299         (compute_max_addr_offset, split_all_small_groups): New functions.
21300         (group_address_uses, rewrite_use_address): New functions.
21301         (strip_offset): New declaration.
21302         (find_interesting_uses_address): Call record_group_use.
21303         (add_candidate): New assertion.
21304         (infinite_cost_p): Move definition forward.
21305         (add_costs): Check INFTY cost and return immediately.
21306         (get_computation_cost_at): Clear setup cost and dependent bitmap
21307         for sub uses.
21308         (determine_use_iv_cost_address): Compute cost for sub uses.
21309         (rewrite_use_address_1): Rename from old rewrite_use_address.
21310         (free_loop_data): Free sub uses.
21311         (tree_ssa_iv_optimize_loop): Call group_address_uses.
21312
21313 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21314             Jim Wilson  <jim.wilson@linaro.org>
21315
21316         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
21317         new  fields loadv and storev.
21318         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
21319         Initialize loadv and storev.
21320         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
21321         (cortexa53_extra_costs): Likewise.
21322         (cortexa57_extra_costs): Likewise.
21323         (xgene1_extra_costs): Likewise.
21324         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
21325         rtx_costs.
21326
21327 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21328
21329         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
21330          storev.
21331         (cortexa8_extra_costs): Likewise.
21332         (cortexa5_extra_costs): Likewise.
21333         (cortexa7_extra_costs): Likewise.
21334         (cortexa12_extra_costs): Likewise.
21335         (cortexa15_extra_costs): Likewise.
21336         (v7m_extra_costs): Likewise.
21337
21338 2015-05-20  Jeff Law  <law@redhat.com>
21339
21340         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
21341         instead of open-coded version.  Also delete the jump thread created
21342         within this function.
21343
21344 2015-05-20  Alan Modra  <amodra@gmail.com>
21345
21346         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
21347         stack adjusting insn.  Formatting.
21348         (rs6000_emit_prologue): Track stack adjusting insn, and use of
21349         r12.  If possible, emit first -fsplit-stack arg pointer insn
21350         before stack adjust.  Don't use r12 to save cr if split-stack.
21351
21352 2015-05-20  Alan Modra  <amodra@gmail.com>
21353
21354         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
21355         Define.
21356         (rs6000_supports_split_stack): New function.
21357         * gcc/config/rs6000/rs6000.c (machine_function): Add
21358         split_stack_arg_pointer.
21359         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
21360         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
21361         rather than virtual_incoming_args_rtx.
21362         (rs6000_va_start): Likewise.
21363         (split_stack_arg_pointer_used_p): New function.
21364         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
21365         (morestack_ref): New var.
21366         (gen_add3_const, rs6000_expand_split_stack_prologue,
21367         rs6000_internal_arg_pointer, rs6000_live_on_entry,
21368         rs6000_split_stack_space_check): New functions.
21369         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
21370         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
21371         (UNSPECV_SPLIT_STACK_RETURN): Define.
21372         (split_stack_prologue, load_split_stack_limit,
21373         load_split_stack_limit_di, load_split_stack_limit_si,
21374         split_stack_return, split_stack_space_check): New expands and insns.
21375         * gcc/config/rs6000/rs6000-protos.h
21376         (rs6000_expand_split_stack_prologue): Declare.
21377         (rs6000_split_stack_space_check): Declare.
21378
21379 2015-05-20  Alan Modra  <amodra@gmail.com>
21380
21381         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
21382         (direct_return): Test vrsave_size rather than vrsave_mask.
21383         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
21384         (rs6000_emit_epilogue): Likewise.
21385
21386 2015-05-20  Alan Modra  <amodra@gmail.com>
21387
21388         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
21389         when not saving registers.
21390         (debug_stack_info): Adjust to omit printing unused offsets,
21391         as before.
21392         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
21393         expression.
21394
21395 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21396
21397         PR c++/65835
21398         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
21399         value_type to const char *.
21400
21401 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
21402
21403         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
21404         to build a biarch toolchain again.
21405
21406 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21407
21408         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
21409         or implicit declarations.
21410         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
21411         into it.
21412         (get_odr_type): Check type has linkage before adding bases.
21413         (register_odr_type): Check that type has linkage before adding it.
21414         (type_known_to_have_no_deriavations_p): Rename to ..
21415         (type_known_to_have_no_derivations_p): This one.
21416         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
21417         (type_known_to_have_no_derivations_p): This one.
21418         * ipa-polymorphic-call.c
21419         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
21420         type has linkage.
21421
21422 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21423
21424         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
21425         (layout_type): Use RECORD_OR_UNION_TYPE_P.
21426
21427 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21428
21429         * config/s390/s390.c (s390_vector_bool_type_p): New function.
21430         (s390_invalid_binary_op): New function.
21431         (TARGET_INVALID_BINARY_OP): Define macro.
21432
21433 2015-05-19  David Sherwood  <david.sherwood@arm.com>
21434
21435         * loop-invariant.c (create_new_invariant): Don't calculate address cost
21436         if mode is not a scalar integer.
21437         (get_inv_cost): Increase computational cost for unused invariants.
21438
21439 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21440
21441         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
21442         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
21443         * config/s390/s390-builtin-types.def: New file.
21444         * config/s390/s390-builtins.def: New file.
21445         * config/s390/s390-builtins.h: New file.
21446         * config/s390/s390-c.c: New file.
21447         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
21448         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
21449         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
21450         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
21451         prototypes.
21452         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
21453         Include.
21454         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
21455         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
21456         variable definitions.
21457         (s390_const_operand_ok): New function.
21458         (s390_expand_builtin): Rewrite.
21459         (s390_init_builtins): New function.
21460         (s390_handle_vectorbool_attribute): New function.
21461         (s390_attribute_table): Add s390_vector_bool attribute.
21462         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
21463         (s390_branch_condition_mask): Generate masks for new modes.
21464         (s390_expand_vec_compare_cc): New function.
21465         (s390_mangle_type): Add mangling for vector bool types.
21466         (enum s390_builtin): Remove.
21467         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
21468         efpc builtins.
21469         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
21470         s390_cpu_cpp_builtins.
21471         (REGISTER_TARGET_PRAGMAS): New macro.
21472         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
21473         (insn_cmp mode attribute): Add new CC modes.
21474         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
21475         (lcbb): New pattern definition.
21476         * config/s390/s390intrin.h: Include vecintrin.h.
21477         * config/s390/t-s390: New file.
21478         * config/s390/vecintrin.h: New file.
21479         * config/s390/vector.md: Include vx-builtins.md.
21480         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
21481         support.
21482
21483 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21484
21485         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
21486         CCVFHE.
21487         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
21488         (s390_select_ccmode): Likewise.
21489         (s390_canonicalize_comparison): Swap operands if necessary.
21490         (s390_expand_vec_compare_scalar): Expand DFmode compare using
21491         single element vector instructions.
21492         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
21493         (s390_branch_condition_mask): Generate CC masks for the new modes.
21494         * config/s390/s390.md (v0, vf, vd): New mode attributes.
21495         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
21496         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
21497         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
21498         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
21499         (*extend<DSF:mode><BFP:mode>2): New insn definition.
21500         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
21501         (extend<DSF:mode><BFP:mode>2): Turn into expander.
21502         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
21503         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
21504         (sqrt<mode>2): Add vector instruction.
21505
21506 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21507
21508         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
21509         constraints.
21510         * config/s390/predicates.md (const0_operand, constm1_operand)
21511         (constable_operand): Accept vector operands.
21512         * config/s390/s390-modes.def: Add supported vector modes.
21513         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
21514         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
21515         (s390_bytemask_vector_p, s390_expand_vec_strlen)
21516         (s390_expand_vec_compare, s390_expand_vcond)
21517         (s390_expand_vec_init): Add prototypes.
21518         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
21519         (s390_vector_mode_supported_p): New function.
21520         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
21521         (s390_contiguous_bitmask_vector_p): New function.
21522         (s390_bytemask_vector_p): New function.
21523         (s390_split_ok_p): Vector regs don't work either.
21524         (regclass_map): Add VEC_REGS.
21525         (s390_legitimate_constant_p): Handle vector constants.
21526         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
21527         (legitimate_reload_vector_constant_p): New function.
21528         (s390_preferred_reload_class): Handle CONST_VECTOR.
21529         (s390_reload_symref_address):  Likewise.
21530         (s390_secondary_reload): Vector memory instructions only support
21531         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
21532         (s390_emit_ccraw_jump): New function.
21533         (s390_expand_vec_strlen): New function.
21534         (s390_expand_vec_compare): New function.
21535         (s390_expand_vcond): New function.
21536         (s390_expand_vec_init): New function.
21537         (s390_dwarf_frame_reg_mode): New function.
21538         (print_operand): Handle addresses with 'O' and 'R' constraints.
21539         (NR_C_MODES, constant_modes): Add vector modes.
21540         (s390_output_pool_entry): Handle vector constants.
21541         (s390_hard_regno_mode_ok): Handle vector registers.
21542         (s390_class_max_nregs): Likewise.
21543         (s390_cannot_change_mode_class): New function.
21544         (s390_invalid_arg_for_unprototyped_fn): New function.
21545         (s390_function_arg_vector): New function.
21546         (s390_function_arg_float): Remove size variable.
21547         (s390_pass_by_reference): Handle vector arguments.
21548         (s390_function_arg_advance): Likewise.
21549         (s390_function_arg): Likewise.
21550         (s390_return_in_memory): Vector values are returned in a VR if
21551         possible.
21552         (s390_function_and_libcall_value): Handle vector arguments.
21553         (s390_gimplify_va_arg): Likewise.
21554         (s390_call_saved_register_used): Consider the arguments named.
21555         (s390_conditional_register_usage): Disable v16-v31 for non-vec
21556         targets.
21557         (s390_preferred_simd_mode): New function.
21558         (s390_support_vector_misalignment): New function.
21559         (s390_vector_alignment): New function.
21560         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
21561         (TARGET_VECTOR_MODE_SUPPORTED_P)
21562         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
21563         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
21564         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
21565         (TARGET_VECTOR_ALIGNMENT): Define target macro.
21566         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
21567         (FIRST_PSEUDO_REGISTER): Increase value.
21568         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
21569         (VECTOR_REG_P): Define macros.
21570         (FIXED_REGISTERS, CALL_USED_REGISTERS)
21571         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
21572         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
21573         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
21574         Add vector registers.
21575         (CANNOT_CHANGE_MODE_CLASS): Call C function.
21576         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
21577         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
21578         memory.
21579         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
21580         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
21581         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
21582         (VR*_REGNUM): New constants.
21583         (ALL): New mode iterator.
21584         (INTALL): Remove mode iterator.
21585         Include vector.md.
21586         (movti): Implement TImode moves for VRs.
21587         Disable TImode splitter for VR targets.
21588         Implement splitting TImode GPR<->VR moves.
21589         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
21590         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
21591         reload<mode>_la_in, reload<mode>_la_out.
21592         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
21593         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
21594         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
21595         (mov<mode> SF SD): Prefer lder, lde for loading.
21596         Add lrl and strl instructions.
21597         Add vector instructions.
21598         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
21599         Call s390_expand_vec_strlen on z13.
21600         (*cc_to_int): Change predicate to nonimmediate_operand.
21601         (addti3): Rename to *addti3.  New expander.
21602         (subti3): Rename to *subti3.  New expander.
21603         * config/s390/vector.md: New file.
21604
21605 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21606
21607         * common/config/s390/s390-common.c (processor_flags_table): Add
21608         z13.
21609         * config.gcc: Add z13.
21610         * config/s390/s390-opts.h (enum processor_type): Add
21611         PROCESSOR_2964_Z13.
21612         * config/s390/s390.c (s390_adjust_priority): Check for
21613         PROCESSOR_2964_Z13.
21614         (s390_reorg): Likewise.
21615         (s390_sched_reorder): Likewise.
21616         (s390_sched_variable_issue): Likewise.
21617         (s390_loop_unroll_adjust): Likewise.
21618         (s390_option_override): Likewise. Default to -mvx when available.
21619         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
21620         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
21621         (TARGET_VX_ABI): Define macros.
21622         macros.
21623         (TARGET_DEFAULT): Add MASK_OPT_VX.
21624         * config/s390/s390.md ("cpu" attribute): Add z13.
21625         ("cpu_facility" attribute): Add vec.
21626         * config/s390/s390.opt (processor_type): Add z13.
21627         (mvx): New options.
21628         * doc/invoke.texi: Add z13 option for -march.
21629
21630 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21631
21632         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
21633         mode check to make sure that only scalar integer values are
21634         accepted.
21635
21636 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21637
21638         * tree.c (verify_type_variant): Fix #undef.
21639         (gimple_canonical_types_compatible_p): Move here from lto.c
21640         (verify_type): Verify TYPE_CANONICAL compatibility.
21641         * tree.h (gimple_canonical_types_compatible_p): Declare.
21642
21643 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21644
21645         PR middle-end/66199
21646         * tree.h (OMP_TEAMS_COMBINED): Define.
21647         * gimplify.c (enum gimplify_omp_var_data): Add
21648         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
21649         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
21650         (omp_notice_variable): Accept both ORT_TEAMS
21651         and ORT_COMBINED_TEAMS.  Don't recurse if
21652         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
21653         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
21654         GOVD_FIRSTPRIVATE.
21655         (omp_no_lastprivate): New function.
21656         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
21657         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
21658         notice_outer and set appropriate bits, otherwise make
21659         sure default(none) combined constructs won't complain.
21660         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
21661         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
21662         omp_no_lastprivate either remove the clause or turn it
21663         into OMP_CLAUSE_PRIVATE.
21664         (gimplify_omp_for): Fix up handling of implicit
21665         lastprivate or linear iterators.
21666         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
21667         ORT_COMBINED_TEAMS.
21668         * omp-low.c (lower_omp_for_lastprivate): For combined
21669         for simd use fd.loop.n2 from the for rather than simd.
21670
21671 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21672
21673         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
21674         instead of gen_rtx_raw_REG.
21675         (cris_expand_epilogue): Likewise.
21676         * config/microblaze/microblaze.c (microblaze_classify_address):
21677         Likewise.
21678         * config/sparc/sparc.md: Likewise.
21679
21680 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
21681
21682         * config/alpha/alpha.c (alpha_legitimize_reload_address)
21683         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
21684         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
21685         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
21686         Use CASE_CONST_SCALAR_INT.
21687         (print_operand) <case 'M'>: Use mode_width_operand to check the
21688         value of the constant.
21689         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
21690         * config/alpha/predicates.md (input_operand): Use general_operand
21691         instead of match_code as operand check.
21692         (symbolic_operand): Use match_code with subexpression digits.
21693         * config/alpha/constraints.md (Q): Ditto.
21694
21695 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21696
21697         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
21698
21699 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21700
21701         * config/s390/s390.c (s390_secondary_reload): Fix check for
21702         load/store relative.
21703
21704 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21705
21706         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
21707         alternative_mask to uint64_t.
21708
21709 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21710
21711         PR tree-optimization/66187
21712         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
21713         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
21714         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
21715
21716 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
21717
21718         * diagnostic.c (diagnostic_report_current_module): Strengthen
21719         local "new_map" from const line_map * to
21720         const line_map_ordinary *.
21721         * genmatch.c (error_cb): Likewise for local "map".
21722         (output_line_directive): Likewise for local "map".
21723         * input.c (expand_location_1): Likewise for local "map".
21724         Pass NULL rather than &map to
21725         linemap_unwind_to_first_non_reserved_loc, since the value is never
21726         read from there, and the value written back not read from here.
21727         (is_location_from_builtin_token): Strengthen local "map" from
21728         const line_map * to const line_map_ordinary *.
21729         (dump_location_info): Strengthen locals "map" from
21730         line_map *, one to const line_map_ordinary *, the other
21731         to const line_map_macro *.
21732         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
21733         const line_map * to const line_map_macro *.
21734         (maybe_unwind_expanded_macro_loc): Add a call to
21735         linemap_check_macro when writing to the "map" field of the
21736         loc_map_pair.
21737         Introduce local const line_map_ordinary * "ord_map", using it in
21738         place of "map" in the part of the function where we know we have
21739         an ordinary map.  Strengthen local "m" from const line_map * to
21740         const line_map_ordinary *.
21741
21742 2015-05-19  Nick Clifton  <nickc@redhat.com>
21743
21744         PR target/66156
21745         * config/msp430/msp430.md (zero_extendhisi2): Add support for
21746         separate source and destination registers.
21747
21748 2015-05-19  Richard Biener  <rguenther@suse.de>
21749
21750         PR tree-optimization/66165
21751         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
21752         for no load permutation.
21753
21754         PR tree-optimization/66185
21755         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
21756         when building the SLP node from scalars.
21757
21758 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21759             Tristan Gingold  <gingold@adacore.com>
21760
21761         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
21762         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
21763         (expand_stack_restore): Call record_new_stack_level.
21764         (expand_stack_save): Do not call do_pending_stack_adjust.
21765         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
21766         * calls.c (expand_call): Call record_new_stack_level for alloca.
21767         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
21768         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
21769         (update_sjlj_context): New global function.
21770         * except.h (update_sjlj_context): Declare.
21771         * explow.c (record_new_stack_level): New global function.
21772         (allocate_dynamic_stack_space): Call record_new_stack_level.
21773         * explow.h (record_new_stack_level): Declare.
21774         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
21775         * cfgrtl.c (duplicate_insn_chain): Likewise.
21776
21777 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21778
21779         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
21780         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
21781         STACK_GROWS_DOWNWARD as normal if.
21782         (expand_call): Likewise.
21783
21784 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
21785
21786         PR target/54236
21787         * config/sh/sh.md (*round_int_even): New insn_and_split and
21788         accompanying new unnamed split.
21789
21790 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21791
21792         * bitmap.c (bitmap_set_range): Handle count==1 specially.
21793         (bitmap_clear_range): Likewise.
21794         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
21795         bitmap_set_range unconditionally.
21796         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21797         * df-scan.c (df_mark_reg): Likewise.
21798         * haifa-sched.c (setup_ref_regs): Likewise.
21799         * sched-rgn.c (update_live_1): Likewise.
21800
21801 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21802
21803         * regs.h (END_HARD_REGNO): Delete.
21804         (END_REGNO): Move to...
21805         * rtl.h: ...here.
21806         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
21807         * caller-save.c (mark_set_regs): Likewise.
21808         * combine.c (move_deaths, distribute_notes): Likewise.
21809         * cse.c (invalidate, invalidate_for_call): Likewise.
21810         * df-scan.c (df_ref_record): Likewise.
21811         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
21812         (record_last_reg_set_info): Likewise.
21813         * reg-stack.c (convert_regs_exit): Likewise.
21814         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
21815         * resource.c (update_live_status): Likewise.
21816         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
21817
21818 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21819
21820         * rtl.h (reg_info): Add an nregs field.
21821         (REG_NREGS): Use it.
21822         (SET_REGNO_RAW): Delete.
21823         (set_regno_raw): New function.
21824         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
21825         (END_REGNO): Redefine in terms of REG_NREGS.
21826         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
21827         SET_REGNO_RAW.
21828         * emit-rtl.c (set_mode_and_regno): Likewise.
21829         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
21830         instead of SET_REGNO_RAW.
21831
21832 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21833
21834         * rtl.h (PUT_MODE_RAW): New macro.
21835         (PUT_REG_NOTE_KIND): Use it.
21836         (set_mode_and_regno): Declare.
21837         (gen_raw_REG): Change regno to "unsigned int".
21838         (gen_rtx_REG): Change "unsigned" to "unsigned int".
21839         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
21840         use set_mode_and_regno to change the mode of registers.
21841         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
21842         * emit-rtl.c (set_mode_and_regno): New function.
21843         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
21844         * caller-save.c (reg_save_code): Use set_mode_and_regno.
21845         * expr.c (init_expr_target): Likewise.
21846         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21847         * postreload.c (reload_cse_simplify_operands): Likewise.
21848
21849 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21850
21851         * caller-save.c (init_caller_save): Use word_mode and
21852         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
21853         * expr.c (init_expr_target): Likewise.
21854         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21855         * postreload.c (reload_cse_regs_1): Likewise.
21856
21857 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21858
21859         * rtl.def (REG): Change format to "r".
21860         * rtl.h (rtunion): Remove rt_reg.
21861         (reg_info): New structure.
21862         (rtx_def): Add reg field to main union.
21863         (X0REGATTR): Delete.
21864         (REG_CHECK): New macro.
21865         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
21866         * rtl.c (rtx_format): Document "r".
21867         (rtx_code_size): Handle REG specially.
21868         * gengenrtl.c (special_format): Return true for formats
21869         that include 'r'.
21870         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
21871         Deal with REG_ATTRS after the field loop.
21872         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
21873         * expmed.c (init_expmed): Call gen_raw_REG instead of
21874         gen_rtx_raw_REG.
21875         * expr.c (init_expr_target): Likewise.
21876         * regcprop.c (maybe_mode_change): Likewise.
21877         * varasm.c (make_decl_rtl): Likewise.
21878         * final.c (leaf_renumber_regs_insn): Return early after
21879         handling REGs.
21880         * genemit.c (gen_exp): Handle 'r' fields.
21881         * genpeep.c (match_rtx): Likewise.
21882         * gensupport.c (subst_pattern_match): Likewise.
21883         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
21884         (alter_constraints, subst_dup): Likewise.
21885         * read-rtl.c (read_rtx_code): Likewise.
21886         * print-rtl.c (print_rtx): Likewise.
21887         * genrecog.c (find_operand, find_matching_operand): Likewise.
21888         (validate_pattern, match_pattern_2): Likewise.
21889         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
21890         (rtx_test::regno_field): New function.
21891         (operator ==, safe_to_hoist_p, transition_parameter_type)
21892         (parameter_type_string, print_parameter_value)
21893         (print_nonbool_test, print_test): Handle new enum values.
21894         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
21895         * lra-constraints.c (operands_match_p): Likewise.
21896
21897 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21898
21899         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
21900         Change type of new_regno to unsigned int.
21901         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
21902         new_regno to unsigned int.
21903         (df_ref_change_reg_with_loc): Remove old_regno parameter.
21904         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
21905         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
21906         (SET_REGNO_RAW): Add space after ",".
21907
21908 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21909
21910         * rtl.h (REG_NREGS): New macro
21911         * alias.c (record_set): Use it.
21912         * cfgcleanup.c (mark_effect): Likewise.
21913         * combine.c (likely_spilled_retval_1): Likewise.
21914         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
21915         (move_deaths, distribute_notes): Likewise.
21916         * cselib.c (cselib_record_set): Likewise.
21917         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21918         * df-scan.c (df_mark_reg): Likewise.
21919         * dse.c (look_for_hardregs): Likewise.
21920         * dwarf2out.c (reg_loc_descriptor): Likewise.
21921         (multiple_reg_loc_descriptor): Likewise.
21922         * expr.c (write_complex_part, read_complex_part): Likewise.
21923         (emit_move_complex): Likewise.
21924         * haifa-sched.c (setup_ref_regs): Likewise.
21925         * ira-lives.c (mark_hard_reg_live): Likewise.
21926         * lra.c (lra_set_insn_recog_data): Likewise.
21927         * mode-switching.c (create_pre_exit): Likewise.
21928         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
21929         (reload_combine_recognize_pattern): Likewise.
21930         (reload_combine_note_use, move2add_record_mode): Likewise.
21931         (reload_cse_move2add): Likewise.
21932         * reg-stack.c (subst_stack_regs_pat): Likewise.
21933         * regcprop.c (kill_value, copy_value): Likewise.
21934         (copyprop_hardreg_forward_1): Likewise.
21935         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
21936         (build_def_use): Likewise.
21937         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
21938         (deps_analyze_insn): Likewise.
21939         * sched-rgn.c (check_live_1, update_live_1): Likewise.
21940         * sel-sched.c (count_occurrences_equiv): Likewise.
21941         * valtrack.c (dead_debug_insert_temp): Likewise.
21942
21943 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21944
21945         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
21946         * dse.c (note_add_store): Likewise.
21947         * ira-lives.c (mark_hard_reg_dead): Likewise.
21948         * loop-invariant.c (mark_reg_store): Likewise.
21949         (mark_reg_death): Likewise.
21950         * postreload.c (reload_combine): Likewise.
21951         (reload_combine_note_store): Likewise.
21952         (reload_combine_note_use): Likewise.
21953         * recog.c (peep2_reg_dead_p): Likewise.
21954
21955 2015-05-19  Alan Modra  <amodra@gmail.com>
21956
21957         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
21958         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
21959         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
21960         unused predicates.
21961         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
21962         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
21963         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
21964         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
21965
21966 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
21967
21968         * config/mips/mips.md (JOIN_MODE): New mode iterator.
21969         (join2_load_Store<JOIN_MODE:mode>): New pattern.
21970         (join2_loadhi): Likewise.
21971         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
21972         load-load and store-stores.
21973         * config/mips/mips.opt (mload-store-pairs): New option.
21974         (TARGET_LOAD_STORE_PAIRS): New macro.
21975         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
21976         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
21977         * config/mips/mips.c (mips_load_store_bonding_p): New function.
21978
21979 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
21980
21981         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
21982         explicit swaps.
21983         * dojump.c (do_compare_rtx_and_jump): Likewise.
21984         * expmed.c (emit_store_flag_1): Likewise.
21985         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
21986         * final.c (sprint_ul): Use std::reverse for reversing a string.
21987         * fold-const.c (extract_muldiv_1): Use std::swap.
21988         * genmodes.c (emit_mode_int_n): Likewise.
21989         * ifcvt.c (dead_or_predicable): Likewise.
21990         * ira-build.c (ira_merge_live_ranges): Likewise.
21991         (swap_allocno_copy_ends_if_necessary): Likewise.
21992         * ira.c (ira_setup_alts): Likewise.
21993         * loop-iv.c (iv_analyze_expr): Likewise.
21994         (implies_p): Likewise.
21995         (canon_condition): Likewise.
21996         * lra-constraints.c (swap_operands): Likewise.
21997         * lra-lives.c (lra_merge_live_ranges): Likewise.
21998         * omega.c (swap): Remove.
21999         (bswap): Remove.
22000         (omega_unprotect_1): Use std::swap.
22001         (omega_solve_geq): Likewise.
22002         * optabs.c (expand_binop_directly): Likewise.
22003         (expand_binop): Likewise.
22004         (emit_conditional_move): Likewise.
22005         (emit_conditional_add): Likewise.
22006         * postreload.c (reload_cse_simplify_operands): Likewise.
22007         * reg-stack.c (emit_swap_insn): Likewise.
22008         (swap_to_top): Likewise.
22009         (compare_for_stack_reg): Likewise.
22010         (subst_asm_stack_regs): Likewise.
22011         * reload.c (find_reloads): Likewise.
22012         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
22013         * sel-sched.c (invoke_reorder_hooks): Likewise.
22014         (create_block_for_bookkeeping): Likewise.
22015         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
22016         (lambda_matrix_right_hermite): Use std::swap.
22017         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
22018         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
22019         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
22020         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
22021         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
22022         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
22023         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
22024         * tree-vrp.c (compare_ranges): Likewise.
22025         * var-tracking.c (add_with_sets): Likewise.
22026         (vt_find_locations): Likewise.
22027
22028 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
22029
22030         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
22031         pie executables.
22032         (FBSD_ENDFILE_SPEC): Likewise.
22033         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
22034         config/freebsd-spec.h.
22035         (ENDFILE_SPEC): Likewise.
22036
22037 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
22038             Richard Henderson  <rth@redhat.com>
22039
22040         PR target/57032
22041         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
22042         Check for a memory location that is not a reference (using an AND)
22043         to an unaligned location here.
22044         * config/alpha/predicates.md (normal_memory_operand): Remove.
22045
22046 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
22047
22048         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
22049         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
22050
22051 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
22052
22053         * config/mips/mips.c (micromips_globals): New variable.
22054         (mips_set_compression_mode): Save and reinitialize target-dependent
22055         state for microMIPS.
22056
22057 2015-05-18  Martin Liska  <mliska@suse.cz>
22058
22059         * dbgcnt.def: Add new counter.
22060         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
22061
22062 2015-05-18  Martin Liska  <mliska@suse.cz>
22063
22064         * dbgcnt.def: Sort counters.
22065         * opts.c (common_handle_option): Do not compile if
22066         -fdbg-cnt-list is enabled.
22067
22068 2015-05-18  Tom de Vries  <tom@codesourcery.com>
22069
22070         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
22071         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
22072         address operator to va_list operand.
22073         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
22074         unconditionally.
22075         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
22076         operand.
22077         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
22078         * config/s390/s390.c (s390_gimplify_va_arg): Same.
22079         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
22080
22081 2015-05-18  Tom de Vries  <tom@codesourcery.com>
22082
22083         * tree-ssa-tail-merge.c: Fix whitespace.
22084
22085 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
22086
22087         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
22088         cortex-a17, and cortex-a17.cortex-a7.
22089
22090 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
22091
22092         PR target/54236
22093         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
22094
22095 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
22096
22097         PR target/66174
22098         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
22099         QImode inner modes for TARGET_AVX512BW.  Force mask operand
22100         to a register for AVX512F modes.
22101
22102 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
22103
22104         * toplev.c (emit_debug_global_declarations): Do not output debug info
22105         when doing slim LTO objects.
22106
22107 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
22108
22109         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
22110         odr_types_equivalent_p): Declare.
22111         (odr_type_p): Use gcc_checking_assert.
22112         (type_in_anonymous_namespace_p) Declare.
22113         (type_with_linkage_p): Declare.
22114         * common.opt (Wlto-type-mismatch): New warning.
22115         * ipa-devirt.c (compound_type_base): New function.
22116         (odr_or_derived_type_p): New function.
22117         (odr_types_equivalent_p): New function.
22118         (add_type_duplicate): Simplify.
22119         (type_with_linkage_p): Add hack to prevent false positives on C types
22120         (type_in_anonymous_namespace_p): Likewise.
22121         * tree.c (need_assembler_name_p): Use type_with_linkage.
22122         * tree.h (type_in_anonymous_namespace_p): Remove.
22123         * doc/invoke.texi (-Wlto-type-mismatch): Document
22124
22125 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
22126
22127         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
22128         (verify_type): Verify STRING_FLAG.
22129
22130 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
22131
22132         PR fortran/44054
22133         * tree-pretty-print.c (percent_K_format): Replace locus pointer
22134         with accessor function.
22135         * tree-diagnostic.c (diagnostic_report_current_function): Use
22136         diagnostic_location function.
22137         (maybe_unwind_expanded_macro_loc): Likewise.
22138         (virt_loc_aware_diagnostic_finalizer): Likewise.
22139         (default_tree_printer): Replace locus pointer with accessor function.
22140         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
22141         (diagnostic_set_info_translated): Initialize second location.
22142         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
22143         (diagnostic_show_locus): Handle two locations. Call
22144         diagnostic_print_caret_line.
22145         (diagnostic_print_caret_line): New.
22146         (default_diagnostic_starter): Use diagnostic_location function.
22147         (diagnostic_report_diagnostic): Use diagnostic_location function.
22148         (verbatim): Do not set text.locus.
22149         * diagnostic.h (struct diagnostic_info): Remove location field.
22150         (struct diagnostic_context): Make caret_chars an array of two.
22151         (diagnostic_location): New inline.
22152         (diagnostic_expand_location): Handle two locations.
22153         (diagnostic_same_line): New inline.
22154         (diagnostic_print_caret_line): Declare.
22155         (CARET_LINE_MARGIN): New constant.
22156         * pretty-print.c (pp_printf): Do not set text.locus.
22157         (pp_verbatim): Do not set text.locus.
22158         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
22159         (struct text_info): Replace locus pointer with locations
22160         array. Add accessor functions.
22161
22162 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
22163             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
22164
22165         PR target/65768
22166         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
22167         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
22168          large constants in register instead of splitting them.
22169
22170 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
22171
22172         PR target/66140
22173         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
22174         replacements in memory addresses.
22175         (get_unaligned_address): Ditto.
22176
22177 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
22178
22179         * config/ft32/*: New files for FT32 port.
22180         * doc/install.texi: Add FT32 information.
22181         * doc/invoke.texi: Add FT32 information.
22182         * doc/md.texi: Add FT32 information.
22183         * doc/contrib.texi: Self added.
22184
22185 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
22186
22187         PR tree-optimization/64454
22188         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
22189         (-1 - A -> ~A): Remove unnecessary condition.
22190
22191 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
22192
22193         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
22194         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
22195         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
22196
22197 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
22198
22199         * ipa-chkp.h (chkp_wrap_function): New.
22200         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
22201         (chkp_wrap_function_name): New.
22202         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
22203         to get wrapper name.
22204         * lto-cgraph.c: Include ipa-chkp.h.
22205         (input_cgraph_1): Avoid alias chain for wrappers.
22206
22207 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
22208
22209         PR middle-end/66134
22210         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
22211         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
22212
22213 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22214
22215         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
22216         (AARCH64_FL_SLOWMUL): Delete.
22217         (AARCH64_FL_CRC): Redefine to 1<<3.
22218         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
22219
22220 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22221
22222         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
22223         casting.
22224
22225 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
22226
22227         * config/alpha/alpha.md (extendqidi2): Use general_operand
22228         instead of some_operand for operand[1] predicate.
22229         (extendhidi2): Ditto.
22230         (cbranchdi4): Use general_operand instead of some_operand
22231         for operand[1] and operands[2] predicates.
22232         (cstoredi4): Ditto.
22233         * config/alpha/predicates.md (some_operand): Remove unused predicate.
22234         (some_ni_operand): Ditto.
22235
22236 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
22237
22238         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
22239         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
22240         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
22241         low part of the constant using alpha_emit_set_const_1.
22242         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
22243
22244 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
22245
22246         * varasm.c (output_constant_pool_1): Pass down alignment from
22247         constant pool entry's descriptor to output_constant_pool_2.
22248         (output_object_block): Add comment prior to call to
22249         output_constant_pool_1.
22250
22251 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
22252
22253         PR rtl-optimization/65862
22254         * target.def (ira_change_pseudo_allocno_class): New hook.
22255         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
22256         value of the hook.
22257         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
22258         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
22259         hook.
22260         * ira-costs.c (find_costs_and_classes): Call the hook and change
22261         classes when it is necessary.
22262         * doc/tm.texi: Update.
22263
22264 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
22265
22266         * config/i386/i386.md (sibcall_memory): Check that register with
22267         callee address is not also used as one of the arguments, instead
22268         of checking that it is not live after the sibcall.
22269         (sibcall_pop_memory): Ditto.
22270         (sibcall_value_memory): Ditto.
22271         (sibcall_value_pop_memory): Ditto.
22272
22273 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
22274
22275         * generic-match-head.c (types_match): Handle non-types.
22276         * gimple-match-head.c (types_match): Likewise.
22277         * match.pd: Remove unnecessary TREE_TYPE for types_match.
22278
22279 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
22280
22281         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
22282         (csneg3<mode>_insn): Enable expansion of pattern.
22283
22284 2015-05-14  Nick Clifton  <nickc@redhat.com>
22285
22286         * config/rl78/rl78.c (rl78_select_section): Select the correct
22287         default section based upon the category of the decl.
22288
22289 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22290
22291         PR rtl-optimization/30967
22292         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
22293         destination mode for the cost of scc patterns.
22294
22295 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22296
22297         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
22298         using SWIM248 mode iterator.
22299         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
22300         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
22301         for operand[2] constraint.
22302         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
22303
22304 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22305
22306         PR middle-end/66133
22307         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
22308         make sure it is never noreturn, even when the task body does not
22309         return.
22310         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
22311         right before GIMPLE_OMP_RETURN.
22312         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
22313         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
22314         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
22315
22316 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22317
22318         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
22319         * tree-ssa-math-opts.c: Include params.h
22320         (pow_synth_sqrt_info): New struct.
22321         (representable_as_half_series_p): New function.
22322         (get_fn_chain): Likewise.
22323         (print_nested_fn): Likewise.
22324         (dump_fractional_sqrt_sequence): Likewise.
22325         (dump_integer_part): Likewise.
22326         (expand_pow_as_sqrts): Likewise.
22327         (gimple_expand_builtin_pow): Use above to attempt to expand
22328         pow as series of square roots.  Removed now unused variables.
22329
22330 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22331
22332         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
22333         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
22334         Remove *p0 and *p1 arguments.  Rewrite function.
22335         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
22336         (alpha_split_const_mov): Update calls to alpha_extract_integer and
22337         alpha_emit_set_long_const.
22338         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
22339         (alpha_output_mi_thunk_osf): Ditto.
22340         * config/alpha/alpha.md (movti): Do not check operands[1]
22341         for CONST_DOUBLE.
22342
22343 2015-05-13  Richard Biener  <rguenther@suse.de>
22344
22345         PR tree-optimization/66129
22346         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
22347         commutative.
22348         (vect_schedule_slp_instance): Fix typo.
22349
22350 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
22351
22352         * common.opt (fdump-internal-locations): New option.
22353         * input.c: Include diagnostic-core.h.
22354         (get_end_location): New function.
22355         (write_digit): New function.
22356         (write_digit_row): New function.
22357         (dump_location_range): New function.
22358         (dump_labelled_location_range): New function.
22359         (dump_location_info): New function.
22360         * input.h (dump_location_info): New prototype.
22361         * toplev.c (compile_file): Handle flag_dump_locations.
22362
22363 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
22364
22365         * gimple-expr.h (is_gimple_constant): Reorder.
22366         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
22367
22368 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22369
22370         * combine.c (simplify_set): When generating a CC set, if the
22371         source already is in the correct mode, do not wrap it in a
22372         compare.  Simplify the rest of that code.
22373
22374 2015-05-13  Richard Biener  <rguenther@suse.de>
22375
22376         PR tree-optimization/66123
22377         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
22378         a taken edge.
22379
22380 2015-05-13  Richard Biener  <rguenther@suse.de>
22381
22382         PR middle-end/66110
22383         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
22384         specially.
22385         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
22386
22387 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
22388
22389         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
22390         * aclocal.m4: Regenerated with automake-1.11.6.
22391
22392 2015-05-13  Tom de Vries  <tom@codesourcery.com>
22393
22394         PR tree-optimization/66010
22395         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
22396         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
22397         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
22398         and rval based on do_deref.
22399
22400 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22401
22402         PR target/65103
22403         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
22404         link time constants into adress expressions and therefore set
22405         their cost to 0.
22406
22407 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22408
22409         PR target/66112
22410         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
22411         Use SWI248 iterator instead of SWI.
22412         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
22413         Use eq_attr "alternative" "0" instead of match_test in
22414         length_immediate attribute computation.
22415         (*mulvhi4, *mulvhi4_1): New define_insns.
22416
22417         PR target/66112
22418         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
22419         SIGNED to get precision of non-negative value.
22420
22421 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22422
22423         PR target/66048
22424         * function.c (diddle_return_value_1): Process bounds first.
22425         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
22426         register.
22427
22428 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22429
22430         PR rtl-optimization/64616
22431         * loop-invariant.c (can_move_invariant_reg): New.
22432         (move_invariant_reg): Call above new function to decide whether
22433         instruction can just be moved, skipping creation of temporary
22434         register.
22435
22436 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22437
22438         PR target/pr66047.c
22439         * i386.c (ix86_function_sseregparm): Only return -1 if local function
22440         with implied regparm is called from -mno-sse function.
22441         (init_cumulative_args): Output error if ix86_function_sseregparm
22442         return -1 and SSE register would be needed.
22443         (function_arg_advance_32): Likewise.
22444         (function_arg_32): Likewise.
22445         * i386.h (ix86_args): Add decl field.
22446
22447 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22448
22449         PR ipa/65873
22450         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
22451         inlines across optimization boundary.
22452
22453 2015-05-12  Jason Merrill  <jason@redhat.com>
22454
22455         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
22456         string literal and macro name.
22457
22458 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
22459
22460         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
22461         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
22462         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
22463
22464 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22465
22466         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
22467         (-Wmisleading-indentation): New option.
22468         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
22469
22470 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
22471
22472         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
22473         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
22474         (alpha_extract_integer): Ditto.
22475         (alpha_legitimate_constant_p): Ditto.
22476         (alpha_split_tmode_pair): Ditto.
22477         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
22478         (alpha_expand_mov): Ditto.
22479         (print_operand): Remove handling of 'H' modifier.
22480         <case 'm'>: Remove CONST_DOUBLE handling.
22481         (summarize_insn): Handle CONST_WIDE_INT.
22482         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
22483         (anddi3): Ditto.
22484         (movti): Handle CONST_WIDE_INT.
22485         * config/alpha/constraints.md ('H'): Remove constraint definition.
22486         ('G'): Do not match MODE_FLOAT class.
22487         * config/alpha/predicates.md (const0_operand): Also match
22488         const_wide_int.
22489         (non_add_const_operand): Ditto.
22490         (non_zero_const_operand): Ditto.
22491         (some_operand): Ditto.
22492         (input_operand): Ditto.  Handle CONST_WIDE_INT.
22493         (and_operand): Do not match const_double.
22494         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
22495
22496 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
22497
22498         PR target/65697
22499         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
22500         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
22501         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
22502         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
22503         is_mm_seq_cst, is_mm_sync): New accessor functions.
22504         * builtins.c (expand_builtin_sync_operation,
22505         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
22506         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
22507         (get_memmodel,  expand_builtin_atomic_compare_exchange,
22508         expand_builtin_atomic_load, expand_builtin_atomic_store,
22509         expand_builtin_atomic_clear): Use new accessor routines.
22510         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
22511         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
22512         (maybe_emit_sync_lock_test_and_set): Use new accessors and
22513         MEMMODEL_SYNC_ACQUIRE.
22514         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
22515         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
22516         expand_atomic_store): Use new accessors.
22517         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
22518         * tsan.c (instrument_builtin_call): Update check for memory model beyond
22519         final enum to use MEMMODEL_LAST.
22520         * c-family/c-common.c: Use new accessor for memmodel_base.
22521         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
22522         accessors.
22523         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
22524         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
22525         mem_thread_fence, *dmb): Likewise.
22526         * config/alpha/alpha.c (alpha_split_compare_and_swap,
22527         alpha_split_compare_and_swap_12): Likewise.
22528         * config/arm/arm.c (arm_expand_compare_and_swap,
22529         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
22530         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
22531         atomic_loaddi): Likewise.
22532         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
22533         Likewise.
22534         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
22535         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
22536         use new accessors.
22537         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
22538         atomic_store<mode>, atomic_compare_and_swap<mode>,
22539         atomic_exchange<mode>): Use new accessors.
22540         * config/mips/mips.c (mips_process_sync_loop): Likewise.
22541         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
22542         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
22543         rs6000_post_atomic_barrier): Add new cases.
22544         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
22545         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
22546         (atomic_load<mode>): Add new cases and use new accessors.
22547         (store_quadpti): Add new cases.
22548         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
22549         accessors.
22550         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
22551         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
22552         model, not 8.
22553
22554 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22555
22556         * ipa-devirt.c (type_with_linkage_p): New function.
22557         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
22558         type has linkage.
22559         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
22560         (can_be_name_hashed_p): Simplify.
22561         (hash_odr_name): Check that type has linkage before checking if it is
22562         anonymous.
22563         (types_same_for_odr): Likewise.
22564         (odr_name_hasher::equal): Likewise.
22565         (odr_subtypes_equivalent_p): Likewise.
22566         (warn_types_mismatch): Likewise.
22567         (get_odr_type): Likewise.
22568         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
22569         * ipa-utils.h (odr_type_p): Move offline.
22570         * tree.c (need_assembler_name_p): Fix handling of types
22571         without linkages.
22572         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
22573
22574 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22575
22576         * timevar.c (timevar_enable): Delete in favor of...
22577         (g_timer): New global.
22578         (struct timevar_def): Move to timevar.h inside class timer.
22579         (struct timevar_stack_def): Likewise.
22580         (timevars): Delete global in favor of field "m_timevars" within
22581         class timer in timevar.h
22582         (stack): Likewise, in favor of field "m_stack".
22583         (unused_stack_instances): Likewise, in favor of field
22584         "m_unused_stack_instances".
22585         (start_time): Likewise, in favor of field "m_start_time".
22586         (get_time): Eliminate check for timevar_enable.
22587         (timer::timer): New function, built from part of timevar_init.
22588         (timevar_init): Rewrite idempotency test from using
22589         "timevar_enable" bool to using dynamic allocation of "g_timer".
22590         Move rest of implementation into timer's constructor.
22591         (timevar_push_1): Rename to...
22592         (timer::push): ...this, adding "m_" prefixes to variables that
22593         are now fields of timer.
22594         (timevar_pop_1): Likewise, rename to...
22595         (timer::pop): ...this, and add "m_" prefixes.
22596         (timevar_start): Replace test for "timevar_enable" with one for
22597         "g_timer", and move bulk of implementation to...
22598         (timer::start): ...here, adding "m_" prefixes.
22599         (timevar_stop): Likewise, from here...
22600         (timer::stop): ...to here.
22601         (timevar_cond_start): Likewise, from here...
22602         (timer::cond_start): ...to here.
22603         (timevar_cond_stop): Likewise, from here...
22604         (timer::cond_stop): ...to here.
22605         (validate_phases): Rename to...
22606         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
22607         locals "total" and "tv" const.
22608         (timevar_print): Rename to...
22609         (timer::print): ...this, and add "m_" prefixes.  Make locals
22610         "total" and "tv" const.  Eliminate test for timevar_enable.
22611         * timevar.h (timevar_enable): Eliminate.
22612         (g_timer): New declaration.
22613         (timevar_push_1): Eliminate.
22614         (timevar_pop_1): Eliminate.
22615         (timevar_print): Eliminate.
22616         (class timer): New class.
22617         (timevar_push): Rewrite to use g_timer.
22618         (timevar_pop): Likewise.
22619         * toplev.c (toplev::~toplev): Likewise.
22620
22621 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
22622
22623         * arm-protos.h (arm_sched_autopref): Delete.
22624         (tune_params): Re-organize, use enums for flag values.
22625         (FUSE_OPS): New macro.
22626         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
22627         (ARM_PREFETCH_BENEFICIAL): Likewise.
22628         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
22629         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22630         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
22631         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
22632         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
22633         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
22634         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
22635         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
22636         format.
22637         (arm_option_override, thumb2_reorg, arm_print_tune_info)
22638         (aarch_macro_fusion_pair_p): Update uses of current_tune.
22639         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
22640
22641 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
22642
22643         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
22644         "break".
22645
22646 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
22647             Sandra Loosemore <sandra@codesourcery.com>
22648
22649         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
22650         value.
22651         (REG_CLASS_NAMES): Add "IJMP_REGS".
22652         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
22653         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
22654         use new "c" register constraint.
22655         * config/nios2/constraint.md (c): New register constraint
22656         corresponding to IJMP_REGS.
22657
22658 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22659
22660         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
22661         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
22662         define_splits): Delete, revamp, transmogrify into ...
22663         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22664         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22665         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22666         New.
22667
22668 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22669
22670         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
22671         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
22672
22673 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22674
22675         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
22676         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
22677         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
22678         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
22679         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
22680         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
22681         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
22682         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
22683         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
22684         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
22685         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
22686         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
22687         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
22688         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
22689         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
22690         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
22691         and 30 corresponding splitters): Delete.
22692
22693 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22694
22695         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
22696         zero_extract.
22697
22698 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22699
22700         * combine.c (recog_for_combine_1): New function, factored out
22701         from recog_for_combine.
22702         (change_zero_ext): New function.
22703         (recog_for_combine): If recog fails, try again with the pattern
22704         modified by change_zero_ext; if that still fails, restore the
22705         pattern.
22706
22707 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22708
22709         * combine.c (get_undo_marker): New function.
22710         (undo_to_marker): New function, largely factored out from ...
22711         (undo_all): ... this.  Adjust.
22712
22713 2015-05-12  Richard Biener  <rguenther@suse.de>
22714
22715         PR tree-optimization/66101
22716         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
22717         fixup if we turn a loop exit edge to a fallthru edge.
22718
22719 2015-05-12  Richard Biener  <rguenther@suse.de>
22720
22721         PR tree-optimization/37021
22722         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
22723         (SLP_TREE_TWO_OPERATORS): New define.
22724         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
22725         SLP_TREE_TWO_OPERATORS.
22726         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
22727         SLP node.
22728         (vect_build_slp_tree): Adjust.
22729         (vect_analyze_slp_cost_1): Likewise.
22730         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
22731         emitting two vector stmts and mixing the results.
22732
22733 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22734
22735         * call.c (print_z_candidates): Remove dead code.
22736
22737 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22738
22739         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
22740         and zEC12_simple_fp.
22741         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
22742         to 1.
22743
22744 2015-05-12  Tom de Vries  <tom@codesourcery.com>
22745
22746         PR tree-optimization/66010
22747         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
22748         ifn_va_arg.
22749         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
22750         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
22751         va_lists are passed, and remove corresponding handling.
22752         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
22753         do_deref argument to ifn_va_arg.
22754         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
22755         ifn_va_arg.
22756
22757 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22758
22759         PR target/65955
22760         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
22761         REG before taking its REGNO.
22762
22763 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22764
22765         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
22766         rsp->sign_bit_copies and rsp->nonzero_bits into ...
22767         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
22768         present to get more accurate information about the number of sign bit
22769         copies and non zero bits.
22770
22771 2015-05-12  Richard Biener  <rguenther@suse.de>
22772
22773         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
22774         do not allow unrolling.
22775
22776 2015-05-11  Richard Henderson  <rth@redhat.com>
22777
22778         * config/i386/i386-modes.def (CCP): New.
22779         * config/i386/i386.c (put_condition_code): Handle it.
22780         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
22781
22782 2015-05-11  Richard Henderson  <rth@redhat.com>
22783
22784         * target.def (md_asm_clobbers): Replace with...
22785         (md_asm_adjust): this.
22786         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
22787         (TARGET_MD_ASM_ADJUST): New.
22788         * tm.texi: Rebuild.
22789         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
22790         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
22791         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
22792
22793         * cfgexpand.c (check_operand_nalternatives): Accept vector of
22794         constraints instead of lists of outputs and inputs.
22795         (expand_asm_stmt): Save and restore input_location around the
22796         body of the function.  Move asm data into vectors instead of
22797         building tree lists.  Generate cleanup sequences as needed,
22798         rather than waiting til the end.  Use new md_asm_adjust hook.
22799
22800         * config/vxworks.c: Include vec.h before target.h.
22801         * gimple.c: Likewise.
22802         * incpath.c: Likewise.
22803         * mode-switching.c: Likewise.
22804
22805         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
22806         (cris_md_asm_adjust): this.
22807         (TARGET_MD_ASM_CLOBBERS): Remove.
22808         (TARGET_MD_ASM_ADJUST): New.
22809         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
22810         (ix86_md_asm_adjust): this.
22811         (TARGET_MD_ASM_CLOBBERS): Remove.
22812         (TARGET_MD_ASM_ADJUST): New.
22813         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
22814         (mn10300_md_asm_adjust): this.
22815         (TARGET_MD_ASM_CLOBBERS): Remove.
22816         (TARGET_MD_ASM_ADJUST): New.
22817         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
22818         (rs6000_md_asm_adjust): this.
22819         (TARGET_MD_ASM_CLOBBERS): Remove.
22820         (TARGET_MD_ASM_ADJUST): New.
22821         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
22822         (visium_md_asm_adjust): this.
22823         (TARGET_MD_ASM_CLOBBERS): Remove.
22824         (TARGET_MD_ASM_ADJUST): New.
22825
22826 2015-05-11  Richard Henderson  <rth@redhat.com>
22827
22828         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
22829         if noutputs is zero.
22830         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
22831
22832         * cfgexpand.c (expand_asm_operands): Merge into...
22833         (expand_asm_stmt): ... here.
22834
22835         * cfgexpand.c (expand_asm_operands): Don't call
22836         resolve_asm_operand_names.
22837         * stmt.c (resolve_asm_operand_names): Clarify block comment.
22838
22839 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
22840
22841         * dwarf2out.c (gen_member_die): Sanity check that we access
22842         TYPE_MAIN_VARIANT for TYPE_METHODS.
22843         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
22844         checking TYPE_METHODS.
22845         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
22846         if non-null.
22847         (build_distinct_type_copy): Clear TYPE_METHODS.
22848         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
22849         (verify_type): Allow TYPE_METHODS to be error_mark_node.
22850         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
22851
22852 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
22853
22854         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
22855         (emit_pattern_before_setloc): Likewise.
22856
22857 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22858
22859         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
22860         for define_peephole2s.
22861         (get_peephole2_pattern): New function.
22862         (main): Use it.  Call validate_pattern.
22863
22864 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22865
22866         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
22867         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
22868         (Last callee saved reg is different for AVR_TINY architecture)
22869
22870 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22871
22872         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
22873         when looking for memory references.
22874
22875 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22876
22877         PR target/65753
22878         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
22879         via function pointers.
22880
22881 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22882
22883         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
22884         indirect call by forcing address into a pseudo with -fno-plt.
22885         * common.opt (flag_plt): New option.
22886         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
22887         ([-fno-plt]): Document.
22888
22889 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
22890
22891         PR bootstrap/66105
22892         * config/rs6000/option-defaults.h: Add space between string literal
22893         and macro name.
22894
22895 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22896
22897         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
22898         accross ARM targets.
22899
22900 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22901
22902         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
22903         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
22904
22905 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22906
22907         PR rtl-optimization/66076
22908         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
22909         Don't grow the heap array if it is already big enough from a
22910         previous iteration.
22911
22912 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22913
22914         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
22915         (is_called_in_ARM_mode): Remove.
22916         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
22917         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
22918         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
22919          arm_declare_function_name.
22920
22921 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22922
22923         * config/arm/arm.c (arm_option_override): Reoganized and split into :
22924         (arm_option_params_internal); New function.
22925         (arm_option_check_internal): New function.
22926         (arm_option_override_internal): New function.
22927         (thumb_code, thumb1_code): Remove.
22928         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
22929         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
22930         (thumb_code, thumb1_code): Remove.
22931         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
22932
22933 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22934
22935         * config/alpha/alpha.c (alpha_emit_set_const_1)
22936         (alpha_emit_set_long_const, alpha_extract_integer)
22937         (alpha_legitimate_constant_p, alpha_split_const_mov)
22938         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
22939         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22940         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
22941         HOST_WIDE_INT_1U.
22942         * config/alpha/predicates.md (mode_mask_operand): Do not match
22943         const_double RTX.
22944         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22945         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
22946         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
22947         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22948         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
22949
22950 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
22951
22952         PR target/65780
22953         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
22954         default_binds_local_p_2.
22955         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
22956         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
22957
22958 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22959
22960         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
22961
22962 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22963
22964         Patch by Richard Biener
22965         * coverage.c (coverage_obj_init): Delay building of type variant
22966         until the type is finished.
22967
22968 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22969
22970         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
22971         mismatch between C and C++ type; compoare correctly ARG_TYPES
22972         for non-prototypes and output correctly parameter index for METHOD_TYPE.
22973         (odr_types_equivalent_p): Fix wording of warning about attributes;
22974         it is OK to match prototype and non-prototype.
22975
22976 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22977
22978         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
22979         TYPE_ARG_TYPES list.
22980         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
22981         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
22982
22983 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22984
22985         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
22986         * tree.h (is_lang_specific): Constify.
22987
22988 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
22989
22990         PR tree-optimization/64454
22991         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
22992         Rewrite.
22993
22994 2015-05-08  Jason Merrill  <jason@redhat.com>
22995
22996         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
22997         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
22998         config/darwin.h, config/darwin9.h, config/elfos.h,
22999         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
23000         config/microblaze/microblaze.h, config/mips/mips.h,
23001         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
23002         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
23003         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
23004         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
23005         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
23006         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
23007         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
23008         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
23009         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
23010         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
23011         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
23012         between string literal and macro name.
23013
23014 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23015
23016         * jump.c: Change argument types to rtx_insn *.
23017         * rtl.h: Adjust.
23018
23019 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23020
23021         * lra-constraints.c: Change argument type to rtx_insn *.
23022
23023 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23024
23025         * df-problems.c: Change argument type to rtx_insn *.
23026
23027 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23028
23029         * combine.c: Change argument type to rtx_insn *.
23030
23031 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23032
23033         * rtl.h: Adjust.
23034         * rtlanal.c: Change argument type to rtx_insn *.
23035
23036 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23037
23038         * sched-deps.c: Change argument types to rtx_insn *.
23039         * sched-int.h: Adjust.
23040
23041 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23042
23043         * dwarf2cfi.c: Change argument type to rtx_insn *.
23044
23045 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23046
23047         * ira.c (decrease_live_ranges_number): Changetype of local
23048         variable to rtx_insn *.
23049         * recog.c: Change argument types to rtx_insn *.
23050         * recog.h: Adjust.
23051
23052 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23053
23054         * reorg.c: Change argument types to rtx_insn *.
23055
23056 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23057
23058         * ira-color.c: Change argument types to rtx_insn *.
23059         * lra-eliminations.c: Likewise.
23060         * ira.h: Adjust.
23061
23062 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23063
23064         * gcse.c: Change argument types to rtx_insn *.
23065
23066 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23067
23068         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
23069
23070 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23071
23072         * emit-rtl.c (emit_debug_insn_before): Change argument type to
23073         rtx_insn *.
23074         * rtl.h: Adjust.
23075
23076 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23077
23078         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
23079         * rtl.h: Adjust.
23080
23081 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23082
23083         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
23084         * rtl.h: Adjust.
23085
23086 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23087
23088         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
23089         * rtl.h: Adjust.
23090
23091 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23092
23093         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
23094         * rtl.h: Adjust.
23095
23096 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23097
23098         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
23099         to rtx_insn *.
23100         * rtl.h: Adjust.
23101
23102 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23103
23104         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
23105         to rtx_insn *.
23106         * rtl.h: Likewise.
23107
23108 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23109
23110         * except.c (can_nonlocal_goto): Change type of argument to
23111         rtx_insn *.
23112         * rtl.h: Adjust.
23113
23114 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23115
23116         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
23117         * rtl.h: Adjust.
23118
23119 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23120
23121         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
23122         * cfgrtl.c (can_delete_label_p): Adjust.
23123         * rtl.h: likewise.
23124
23125 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23126
23127         * reorg.c (stop_search_p): Change argument to rtx_insn *.
23128
23129 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23130
23131         * except.c (make_reg_eh_region_note): Change argument to
23132         rtx_insn *.
23133         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
23134         * except.h: Adjust.
23135
23136 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23137
23138         * mode-switching.c (commit_mode_sets): Change type of local
23139         variable from rtx to rtx_insn *.
23140
23141 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
23142
23143         * doc/install.texi (--enable-languages): Add missing jit and lto info.
23144         Add ^ to grep command.
23145         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
23146         arg to last gimple_simplify declaration.  Add missing gimple_build
23147         declaration for built-in function case with four tree args.
23148
23149 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
23150             Szabolcs Nagy  <szabolcs.nagy@arm.com>
23151
23152         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
23153         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
23154         (GNU_USER_DYNAMIC_LINKERN32): Update.
23155
23156 2015-05-08  Richard Biener  <rguenther@suse.de>
23157
23158         PR tree-optimization/66036
23159         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
23160         Handle strided group loads.
23161         (vect_verify_datarefs_alignment): Likewise.
23162         (vect_enhance_data_refs_alignment): Likewise.
23163         (vect_analyze_group_access): Likewise.
23164         (vect_analyze_data_ref_access): Likewise.
23165         (vect_analyze_data_ref_accesses): Likewise.
23166         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
23167         (vectorizable_load): Likewise.
23168
23169 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
23170
23171         * config/rs6000/rs6000.md: Require operand inequality in one
23172         of the peepholes.
23173
23174 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
23175             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
23176
23177         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
23178         from (set ...).
23179         * config/rx/rx.md (movdi, movdf): Likewise.
23180         Likewise for define_peephole2s.
23181
23182 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23183
23184         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
23185         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
23186         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
23187         vtst_u64): Rewrite using gcc vector extensions.
23188
23189 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23190
23191         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
23192         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
23193
23194 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23195
23196         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
23197
23198 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23199
23200         * config/glibc-stdint.h (OPTION_MUSL): Define.
23201         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
23202         Change the definition based on OPTION_MUSL for 64 bit targets.
23203         * config/linux.h (OPTION_MUSL): Redefine.
23204         * config/alpha/linux.h (OPTION_MUSL): Redefine.
23205         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
23206         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
23207
23208 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
23209             Szabolcs Nagy  <szabolcs.nagy@arm.com>
23210
23211         * config.gcc (LIBC_MUSL): New tm_defines macro.
23212         * config/linux.h (OPTION_MUSL): Define.
23213         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
23214         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
23215         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
23216         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
23217         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
23218         * config/linux.opt (mmusl): New option.
23219         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
23220         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
23221         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
23222         * configure: Regenerate.
23223
23224 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
23225             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23226
23227         PR target/48904
23228         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
23229         * config/i386/knetbsd-gnu64.h: New file.
23230
23231 2015-05-08  Marek Polacek  <polacek@redhat.com>
23232
23233         PR c/64918
23234         * doc/invoke.texi: Document -Woverride-init-side-effects.
23235
23236 2015-05-07  Marek Polacek  <polacek@redhat.com>
23237
23238         PR c/65179
23239         * doc/invoke.texi: Document -Wshift-negative-value.
23240
23241 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
23242
23243         * gcov-tool.c (do_merge): Refactore to remove int ret.
23244         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
23245         !type == FUNC to type != FUNC.
23246         * reload.h (struct target_reload): Changee to type of
23247         x_spill_indirect_levels from bool to unsigned char.
23248
23249 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
23250
23251         * rtl.h (always_void_p): New function.
23252         * gengenrtl.c (always_void_p): Likewise.
23253         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
23254         with code foo are always VOIDmode.
23255         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
23256         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
23257         compare-elim.c, config/aarch64/aarch64.c,
23258         config/aarch64/aarch64.md, config/alpha/alpha.c,
23259         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
23260         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
23261         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
23262         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23263         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
23264         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
23265         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
23266         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
23267         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
23268         config/ia64/vect.md, config/iq2000/iq2000.c,
23269         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
23270         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
23271         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
23272         config/mep/mep.c, config/microblaze/microblaze.c,
23273         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
23274         config/mn10300/mn10300.c, config/msp430/msp430.c,
23275         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
23276         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
23277         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
23278         config/rs6000/altivec.md, config/rs6000/rs6000.c,
23279         config/rs6000/rs6000.md, config/rs6000/vector.md,
23280         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
23281         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
23282         config/sh/sh.md, config/sh/sh_treg_combine.cc,
23283         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
23284         config/spu/spu.md, config/stormy16/stormy16.c,
23285         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
23286         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
23287         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
23288         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
23289         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
23290         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
23291         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
23292         var-tracking.c: Update calls accordingly.
23293
23294 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
23295
23296         PR middle-end/192
23297         PR middle-end/54303
23298         * varasm.c (function_mergeable_rodata_prefix): New function.
23299         (mergeable_string_section): Use it.
23300         (mergeable_constant_section): Use it.
23301
23302 2015-05-07  Jeff Law  <law@redhat.com>
23303
23304         PR target/39726
23305         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23306         simplifier to narrow arithmetic.
23307         * generic-match-head.c: (types_match, single_use): New functions.
23308         * gimple-match-head.c: (types_match, single_use): New functions.
23309
23310 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
23311
23312         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
23313         rtx type.
23314
23315 2015-05-07  Richard Biener  <rguenther@suse.de>
23316
23317         PR tree-optimization/66002
23318         * passes.def: Schedule another pass_merge_phi after ifcombine, right
23319         before phiopt.
23320
23321 2015-05-07  Marek Polacek  <polacek@redhat.com>
23322             Martin Uecker  <uecker@eecs.berkeley.edu>
23323
23324         * doc/invoke.texi: Document -fsanitize=bounds-strict.
23325         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
23326         into SANITIZE_NONDEFAULT.
23327         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
23328
23329 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
23330
23331         PR target/66015
23332         * config/alpha/alpha.c (alpha_override_options_after_change): New.
23333         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
23334         (alpha_override_options): Move align_loops, align_jumps and
23335         align_functions handling into alpha_override_options_after_change.
23336
23337 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
23338             Chris Jones  <chrisj@nvidia.com>
23339             Joshua Conner  <jconner@nvidia.com>
23340
23341         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
23342         linking of crtfastmath.o.
23343         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
23344
23345 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23346
23347         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
23348         (cstore<mode>4_unsigned_imm): New expander.
23349         (cstore<mode>4): Remove empty constraint strings.  Use the new
23350         expanders.
23351
23352 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
23353
23354         PR target/64208
23355         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
23356         alternatives.
23357
23358 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23359
23360         * config/aarch64/geniterators.sh: Use standard BRE in sed.
23361
23362 2015-05-06  Alan Modra  <amodra@gmail.com>
23363
23364         PR target/66033
23365         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
23366         (UNSPEC_NOP): Define.
23367         (reload_vsx_from_gpr<mode>): Add missing DONE.
23368         (reload_gpr_from_vsx<mode>): Likewise.
23369         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
23370         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
23371
23372 2015-05-06  Christian Bruel  <christian.bruel@st.com>
23373
23374         PR target/66015
23375         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
23376         align_jumps, align_functions into aarch64_override_options_after_change.
23377
23378 2015-05-06  Richard Biener  <rguenther@suse.de>
23379
23380         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
23381         vect_transform_slp_perm_load to check if we support a permutation
23382         for basic-block vectorization.
23383
23384 2015-05-06  Nick Clifton  <nickc@redhat.com>
23385
23386         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
23387         used, even if it is not being used as a frame pointer.
23388
23389 2015-05-05  Jason Merrill  <jason@redhat.com>
23390
23391         * dwarf2out.c (gen_member_die): Don't emit anything for an
23392         anonymous class constructor.
23393
23394 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
23395
23396         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
23397         that it reflects the block structure.
23398         (afdo_propagate_edge): Likewise.
23399         (afdo_calculate_branch_prob): Likewise.
23400         (afdo_annotate_cfg): Likewise.
23401         * cfgcleanup.c (equal_different_set_p): Likewise.
23402         (try_crossjump_to_edge): Likewise.
23403         * cgraph.c (cgraph_node::verify_node): Likewise.
23404         * cgraphunit.c (expand_all_functions): Likewise.
23405         * config/i386/i386.c (ix86_expand_copysign): Likewise.
23406         (exact_dependency_1): Likewise.
23407         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
23408         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
23409         * gensupport.c (process_define_subst): Likewise.
23410         * lto-wrapper.c (merge_and_complain): Likewise.
23411         * tree-if-conv.c (if_convertible_bb_p): Likewise.
23412         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
23413         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
23414         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
23415         * tree-vect-loop.c (vectorizable_reduction): Likewise.
23416         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
23417         * tree-vect-stmts.c (vectorizable_shift): Likewise.
23418         * tree-vrp.c (vrp_finalize): Likewise.
23419         * tree.c (variably_modified_type_p): Likewise.
23420
23421 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
23422
23423         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
23424         on darwin12 and later.
23425         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
23426         file to pass -rdynamic on darwin12 and later.
23427         * config/darwin.opt (rdynamic): Add.
23428
23429 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23430
23431         * doc/extend.texi (C Extensions): Update menu for moved Variable
23432         Attributes and Type Attributes sections.
23433
23434 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23435
23436         PR target/65990
23437         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
23438         if rep_8byte stringop strategy was specified for 32-bit target.
23439
23440 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
23441
23442         PR target/65915
23443         * config/i386/i386.md (vector convert to float spltiter): Check for
23444         xmm16+, when splitting scalar float conversion.
23445         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
23446
23447 2015-05-05  Nick Clifton  <nickc@redhat.com>
23448
23449         * config/msp430/msp430-opts.h (enum msp430_regions): New.
23450         * config/msp430/msp430.c (msp430_override_options): Complain if
23451         -mcode-region or -mdata-region is used on a non MSP430X.
23452         (msp430_section_attr): New function.  Checks lower, upper and
23453         either attributes.
23454         (msp430_attribute_table): Add lower, upper and either.
23455         (gen_prefix): New function.  Generates a prefix for a section
23456         name.
23457         (msp430_select_section): New function - handles the choice of
23458         section for an object.  Takes into account memory region
23459         attributes and options.
23460         (msp430_function_section): Use gen_prefix.
23461         (TARGET_SECTION_TYPE_FLAGS): Define.
23462         (msp430_section_type_flags): New function.
23463         (TARGET_ASM_UNIQUE_SECTION): Define.
23464         (msp430_unique_section): New function.
23465         (msp430_output_aligned_decl_common): New function.
23466         (msp430_do_not_relax_short_jumps): New function.
23467         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
23468         Define.
23469         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
23470         * config/msp430/msp430-protos.h
23471         (msp430_do_not_relax_short_jumps): New prototype.
23472         (msp430_output_aligned_decl_common): New prototype.
23473         * config/msp430/msp430.md (length): New attribute.
23474         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
23475         then use a long code sequence for short jumps.
23476         * config/msp430/msp430.opt (mcode-region): New.
23477         (mdata-region): New.
23478         * doc/invoke.texi: Document new options.
23479         * doc/extend.texi: Document new attributes.
23480
23481 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23482
23483         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
23484         (tune_params): Add field branch_costs.
23485         (aarch64_branch_cost): Declare.
23486         * gcc/config/aarch64.c (generic_branch_cost): New.
23487         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
23488         (cortexa53_tunings): Likewise.
23489         (cortexa57_tunings): Likewise.
23490         (thunderx_tunings): Likewise.
23491         (xgene1_tunings): Likewise.
23492         (aarch64_branch_cost): Define.
23493         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
23494
23495 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23496
23497         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
23498         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
23499         * config/i386/i386.md: Ditto.
23500         * config/i386/winnt.c: Ditto.
23501
23502 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23503
23504         * doc/extend.texi (__atomic Builtins): Move implementation details
23505         to the end of the description, rewrite opening paragraphs, state
23506         difference with __sync builtins, state C11/C++11 assumptions,
23507         weaken itemized descriptions, add explanation of memory model
23508         behaviour, expand description of compare-exchange, simplify text.
23509
23510 2015-05-05  Renlin Li  <renlin.li@arm.com>
23511
23512         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
23513
23514 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
23515
23516         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
23517         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23518         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
23519         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23520         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
23521         * configure: Regenerate.
23522         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
23523         * doc/install.texi (aarch64*-*-*): Document new
23524         --enable-fix-cortex-a53-843419 option.
23525         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
23526         and -mno-fix-cortex-a53-843419 options.
23527
23528 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23529
23530         PR target/65871
23531         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
23532
23533 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
23534
23535         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
23536         fix overactive TYPE_MIN_VALUE check and add FIXME for type
23537         compatibility problems.
23538
23539 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23540
23541         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
23542         constraints.
23543         (cbranchsi4_reg): New.
23544         * config/microblaze/microblaze.c
23545         (microblaze_expand_conditional_branch_reg): New.
23546         * config/microblaze/microblaze-protos.h
23547         (microblaze_expand_conditional_branch_reg): New prototype.
23548
23549 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23550
23551         * config/microblaze/microblaze.md (peephole2): New.
23552
23553 2015-05-04  Jeff Law  <law@redhat.com>
23554
23555         Revert:
23556         2015-05-04  Jeff Law  <law@redhat.com>
23557
23558         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23559         simplifier to narrow arithmetic.
23560         * generic-match-head.c: (types_match, single_use): New functions.
23561         * gimple-match-head.c: (types_match, single_use): New functions.
23562
23563 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
23564
23565         PR target/65987
23566         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
23567         (split_branches): Likewise.
23568
23569 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
23570
23571         * common.opt (fdelete-null-pointer-checks): Init to -1.
23572         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
23573         override flag_delete_null_pointer_checks default.
23574         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
23575         behavior re address zero.  Better document target-specific behavior.
23576         (-fisolate-errneous-paths-dereference): Mention relationship to
23577         -fdelete-null-pointer-checks.
23578
23579 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23580
23581         PR tree-optimization/65984
23582         * ubsan.c: Include tree-cfg.h.
23583         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
23584         stmt_could_throw_p test, rename can_throw variable to ends_bb.
23585
23586 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23587
23588         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
23589         to CONST_DOUBLE_P predicate.
23590         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
23591         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
23592         allow only operands that satisfy standard_sse_constant_p predicate.
23593         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
23594         to CONST_DOUBLE_P predicate.
23595
23596 2015-05-04  Jeff Law  <law@redhat.com>
23597
23598         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23599         simplifier to narrow arithmetic.
23600         * generic-match-head.c: (types_match, single_use): New functions.
23601         * gimple-match-head.c: (types_match, single_use): New functions.
23602
23603 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
23604
23605         * config/arm/arm.c: Restore bootstrap.
23606
23607 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23608
23609         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
23610         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
23611         as CONST_WIDE_INT, not CONST_DOUBLE.
23612         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
23613         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
23614         (ix86_find_base_term): Do not check for CONST_DOUBLE.
23615         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
23616         (ix86_build_signbit_mask): Rewrite using wide ints.
23617         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
23618         (ix86_rtx_costs): Handle CONST_WIDE_INT.
23619         (find_constant): Ditto.
23620         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
23621         using gen_int_mode.
23622         * config/i386/predicates.md (x86_64_immediate_operand)
23623         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23624         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
23625         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23626         (const0_operand): Also match const_wide_int.
23627         (constm1_operand): Ditto.
23628         (const1_operand): Ditto.
23629
23630 2015-05-04  Richard Biener  <rguenther@suse.de>
23631
23632         PR tree-optimization/65965
23633         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
23634         store groups at gaps.
23635
23636 2015-05-04  Richard Biener  <rguenther@suse.de>
23637
23638         PR tree-optimization/65935
23639         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
23640         then make sure to apply that swapping to the IL.
23641
23642 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23643
23644         * Makefile.in (PATCHLEVEL_c): New variable.
23645         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
23646         expand the same way as if DEVPHASE_c was non-empty.
23647
23648 2015-05-04  Kai Tietz  <ktietz@redhat.com>
23649
23650         PR target/65559
23651         * lto-wrapper.c (run_gcc): Open filename
23652         in binary-mode.
23653
23654 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
23655
23656         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
23657         sections up in file, to immediately after the Function Attributes
23658         section.
23659
23660 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
23661
23662         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
23663
23664 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23665
23666         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
23667         (insert_partition_copy_on_edge): Adjust.
23668         (insert_rtx_to_part_on_edge): Likewise.
23669         (insert_part_to_rtx_on_edge): Likewise.
23670
23671 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23672
23673         * function.c (set_return_jump_label): Change type of argument to
23674         rtx_insn *.
23675         * function.h (set_return_jump_label): Adjust.
23676
23677 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23678
23679         * reload.h (struct reg_equivs_t): Change type of init to
23680         rtx_insn *.
23681         * ira.c (fix_reg_equiv_init): Adjust.
23682         * reload1.c (eliminate_regs_1): Likewise.
23683         (init_eliminable_invariants): Likewise.
23684
23685 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23686
23687         * cselib.c (fp_setter_insn): Take a rtx_insn *.
23688         * cselib.h (fp_setter_insn): Adjust.
23689
23690 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23691
23692         * recog.c (struct validate_replace_src_data): Change type of
23693         insn field to rtx_insn *.
23694         (validate_replace_src_group): Change type of argument to rtx_insn *.
23695         * recog.h (validate_replace_src_group): Adjust.
23696
23697 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23698
23699         * haifa-sched.c: Change the type of some variables to rtx_insn *.
23700         * sched-deps.c: Likewise.
23701         * sched-int.h: Likewise.
23702         * sched-rgn.c: Likewise.
23703         * sel-sched.c: Likewise.
23704
23705 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23706
23707         to rtx_insn *.
23708         * config/i386/i386.c: Change the type of some arguments to
23709         rtx_insn *.
23710         * config/arm/arm.c: Likewise.
23711
23712 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23713
23714         * lra-constraints.c: Change type of some arguments to rtx_insn *.
23715
23716 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23717
23718         * regcprop.c (kill_autoinc_value): Change type of argument to
23719         rtx_insn *.
23720
23721 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23722
23723         * genrecog.c (print_subroutine): Adjust.
23724         * recog.c (get_bool_attr_mask_uncached): Likewise.
23725         * recog.h (struct recog_data_d): Change the type of insn to
23726         rtx_insn *.
23727
23728 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23729
23730         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
23731
23732 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23733
23734         * df-problems.c (df_set_note): Change type of argument to
23735         rtx_insn *.
23736
23737 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23738
23739         * builtins.c (expand_builtin_trap): Change type of local
23740         variable to rtx_insn *.
23741         (add_sched_insns_for_speculation): Likewise.
23742         (ix86_emit_save_regs): Likewise.
23743         (get_scratch_register_on_entry): Likewise.
23744         (ix86_emit_restore_reg_using_pop): Likewise.
23745         (ix86_emit_leave): Likewise.
23746         (ix86_emit_restore_regs_using_mov): Likewise.
23747         (ix86_expand_epilogue): Likewise.
23748         Likewise.
23749         (rl78_alloc_physical_registers_umul): Likewise.
23750         * cselib.c (discard_useless_locs): Likewise.
23751         (cselib_invalidate_regno): Likewise.
23752         (cselib_invalidate_mem): Likewise.
23753         * function.c (expand_function_start): Likewise.
23754         (emit_use_return_register_into_block): Likewise.
23755         * gcse.c: Likewise.
23756         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
23757         * ifcvt.c (noce_get_alt_condition): Likewise.
23758         * loop-doloop.c (doloop_condition_get): Likewise.
23759         * lra-constraints.c (inherit_in_ebb): Likewise.
23760         * modulo-sched.c (sms_schedule_by_order): Likewise.
23761         * recog.c (next_insn_tests_no_inequality): Likewise.
23762         * reorg.c (emit_delay_sequence): Likewise.
23763         (update_reg_dead_notes): Likewise.
23764         (fix_reg_dead_note): Likewise.
23765         (fill_slots_from_thread): Likewise.
23766         (delete_computation): Likewise.
23767
23768 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
23769
23770         * doc/extend.texi (Variable Attributes): Add menu and proper
23771         @nodes to subsections.  Move Microsoft Windows attributes to
23772         their own subsection.
23773         (Type Attributes): Reorganize introduction to remove duplicate
23774         list of attributes.  Add menu and proper @nodes to subsections.
23775         Alphabetize the main table of common attributes.
23776
23777 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
23778
23779         * match.pd: New simplification patterns.
23780         (x + (x & 1))  -> ((x + 1) & ~1)
23781         (x & ~(x & y)) -> ((x & ~y))
23782         (x | ~(x | y)) -> ((x | ~y))
23783
23784 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23785
23786         * target.def (attribute_table): Mention that struct attribute_spec
23787         is defined in tree-core.h rather than tree.h
23788         * doc/tm.texi: Regenerate.
23789
23790 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
23791
23792         * genrecog.c (test): Rename to rtx_test.  Update rest of file
23793         accordingly.
23794
23795 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
23796
23797         PR translation/65959
23798         * params.h (DEFPARAM): Rename msgid to nocmsgid.
23799
23800 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23801
23802         * gcc/config/aarch64/aarch64-protos.h (tune_params):
23803         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
23804         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
23805         Return value depending on target.
23806         (generic_tunings): Initialize new target settings.
23807         (cortexa53_tunings): Likewise.
23808         (cortexa57_tunings): Likewise.
23809         (thunderx_tunings): Likewise.
23810         (xgene1_tunings): Likewise.
23811
23812 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23813
23814         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
23815         Make Cortex-A53 shift costs more accurate.
23816
23817 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23818
23819         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
23820         UNSIGNED_FLOAT.
23821
23822 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23823
23824         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
23825         Calculate cost of op0 and op1 in PLUS and MINUS cases.
23826
23827 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23828
23829         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23830         Add cost of op0 in the compare-with-fpzero case.
23831
23832 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
23833
23834         * builtins.c (fold_builtin_1): Remove spurious second
23835         semicolon.
23836         * cgraph.h (symtab_node::get_availability): Likewise.
23837         * opts.c (common_handle_option): Remove spurious second semicolon.
23838         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23839         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
23840
23841 2015-04-30  Caroline Tice  <cmtice@google.com>
23842
23843         PR gcov-profile/65929
23844         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
23845         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
23846         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
23847         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
23848         * doc/tm.texi: Regenerate.
23849         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
23850         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
23851         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
23852         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
23853
23854 2015-04-30  Marek Polacek  <polacek@redhat.com>
23855
23856         * varasm.c (handle_cache_entry): Fix logic.
23857
23858 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23859
23860         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
23861         (*extrsi5_insn_uxtw_alt): Likewise.
23862         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
23863         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
23864         operations.
23865
23866 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23867
23868         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
23869         fabd in ABS case.
23870
23871 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23872
23873         * config/aarch64/aarch64.md
23874         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
23875         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
23876         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
23877         appropriately.  Handle alternative EON form.
23878
23879 2015-04-30  Renlin Li  <renlin.li@arm.com>
23880
23881         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
23882         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
23883
23884 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23885
23886         PR ipa/65873
23887         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
23888         -fstrict-aliasing boundaries.
23889
23890 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23891
23892         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
23893         and [SU]MNEGL patterns.
23894
23895 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23896
23897         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
23898         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
23899         combined arithmetic-shift ops.  Properly handle all shift and extend
23900         operations that can occur in combination with PLUS/MINUS.
23901         Rename maybe_fma to compound_p.
23902         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
23903         arithmetic and shift operations.
23904
23905 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23906
23907         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
23908         rather than arith_shift cost when costing ADD/MINUS of an
23909         extended value.
23910
23911 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23912
23913         PR lto/65948
23914         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
23915         to itself.
23916
23917 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
23918
23919         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
23920         are for the same position.
23921
23922 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
23923
23924         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
23925         vectorize_loops.
23926         (vectorize_loops): Use it.
23927
23928 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23929
23930         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
23931         for aggregate types.
23932         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
23933         type to be non_ODR.
23934         * tree.c (need_assembler_name_p): Compute mangled name for
23935         non-fundamental types and integer types.
23936
23937 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
23938
23939         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
23940         manual swaps.
23941         * expr.c (expand_expr_real_2): Likewise.
23942
23943 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23944
23945         * tree.c (build_common_builtin_nodes): Do not build
23946         __builtin_alloca_with_align as equivalent of library alloca.
23947
23948 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23949
23950         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
23951         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
23952         bugus variants.
23953         * tree.c: Include print-tree.h and ipa-utils.h
23954         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
23955         (free_lang_data_in_cgraph): Call verify_type.
23956         (verify_type_variant): New function.
23957         (verify_type): New function.
23958         * tree.h (verify_type): Declare.
23959
23960 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
23961
23962         * config/mips/mips-cpus.def: (mips4): Change default processor
23963         from PROCESSOR_R8000 to PROCESSOR_R10000.
23964
23965 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
23966
23967         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
23968         la/jalr instead of jal.
23969
23970 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
23971
23972         PR target/65871
23973         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
23974         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
23975         (setcc+movzbl peephole2): Check also clobbered reg.
23976         (setcc+andl peephole2): Ditto.
23977
23978 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23979
23980         PR libgomp/65099
23981         * config/nvptx/mkoffload.c (target_ilp32): New variable.
23982         (main): Set it depending on "-foffload-abi=[...]".
23983         (compile_native, main): Use it to pass "-m32" or "-m64" to the
23984         compiler.
23985
23986 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23987
23988         PR target/65770
23989         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
23990         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
23991         Flip lane index back at assembly time for bigendian.
23992
23993 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23994
23995         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
23996         * gimplify.c (gimplify_omp_workshare): Use it.
23997
23998 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23999
24000         * Makefile.in (build/genrecog.o): Depend on inchash.h.
24001         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
24002         build/inchash.o
24003         * genrecog.c: Rewrite most of the code except for the third page.
24004
24005 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
24006
24007         * inchash.h, inchash.c: Include bconfig.h for build objects.
24008         * Makefile.in (build/inchash.o): New rule.
24009
24010 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
24011
24012         PR target/65924
24013         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
24014         number in type attribute expression.
24015
24016 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
24017
24018         * loop-iv.c (canon_condition): Generalize to all types of integer
24019         constant.
24020
24021 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
24022
24023         * gimple-walk.c: Prune duplicate or unneeded includes.
24024         (walk_gimple_asm): Only call parse_input_constraint or
24025         parse_output_constraint if their findings are used.
24026         Honour parse_input_constraint and parse_output_constraint
24027         result.
24028
24029 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
24030
24031         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
24032
24033 2015-04-29  Tom de Vries  <tom@codesourcery.com>
24034
24035         PR tree-optimization/65893
24036         * passes.def (pass_all_optimizations): Move pass_stdarg to after
24037         pass_dce.
24038
24039 2015-04-29  Richard Biener  <rguenther@suse.de>
24040
24041         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
24042         compute GROUP_SIZE for basic-block SLP.
24043         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
24044         take into account gaps.
24045         (vect_get_mask_element): Properly reject references to previous
24046         vectors.
24047         (vect_transform_slp_perm_load): Likewise.
24048
24049 2015-04-29  Christian Bruel  <christian.bruel@st.com>
24050
24051         PR target/64835
24052         * config/i386/i386.c (ix86_default_align): New function.
24053         (ix86_override_options_after_change): Call ix86_default_align.
24054         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
24055         (ix86_override_options_after_change): New function.
24056
24057 2015-04-28  Jeff Law  <law@redhat.com>
24058
24059         * tree-ssa-dom.c (record_equality); Fix comment typos.
24060
24061 2015-04-28  Tom de Vries  <tom@codesourcery.com>
24062
24063         PR tree-optimization/65887
24064         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
24065
24066 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
24067
24068         * doc/extend.texi (Declaring Attributes of Functions): Split into
24069         subsections by target.  Alphabetize the table of common attributes.
24070         Rewrite some of the introductory text to reflect the new structure.
24071         Update some cross-references to point to the new subsections.
24072         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
24073         duplicate copies in the discussion of function, label, and type
24074         attributes.
24075
24076 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
24077
24078         PR bootstrap/65910
24079         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
24080
24081 2015-04-28  Jason Merrill  <jason@redhat.com>
24082
24083         PR c++/65734
24084         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
24085         (finalize_type_size): Respect TYPE_USER_ALIGN.
24086         (layout_type) [ARRAY_TYPE]: Likewise.
24087
24088 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
24089
24090         * config/arm/arm.md (*arm_movt): Fix type attribute.
24091         (*cmpsi_shiftsi): Likewise.
24092         (*cmpsi_shiftsi_swp): Likewise.
24093         (*movsicc_insn): Likewise.
24094         (*cond_move): Likewise.
24095         (*if_plus_move): Likewise.
24096         (*if_move_plus): Likewise.
24097         (*if_arith_move): Likewise.
24098         (*if_move_arith): Likewise.
24099         (*if_shift_move): Likewise.
24100         (*if_move_shift): Likewise.
24101         (*arm_movtas_ze): Likewise.
24102         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
24103         redundancy and type attribute.
24104         (*thumb2_movsi_insn): Fix type attribute.
24105         (*thumb2_addsi_short): Likewise.
24106         (thumb2_addsi3_compare0): Likewise.
24107         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
24108         attributes accordingly.
24109
24110 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
24111
24112         PR other/65911
24113         * function.c (pad_to_arg_alignment): Add parentheses.
24114
24115 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
24116
24117         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
24118         libgcc/config/frv/elf-lib.h.
24119
24120 2015-04-28  Tom de Vries  <tom@codesourcery.com>
24121
24122         * tree-call-cdce.c: Fix example in header comment.
24123
24124 2015-04-28  Richard Biener  <rguenther@suse.de>
24125
24126         PR tree-optimization/62283
24127         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
24128         fails fatally and we are vectorizing a basic-block simply
24129         cause the child to be constructed piecewise.
24130         (vect_analyze_slp_cost_1): Adjust.
24131         (vect_detect_hybrid_slp_stmts): Likewise.
24132         (vect_bb_slp_scalar_cost): Likewise.
24133         (vect_get_constant_vectors): For piecewise constructed
24134         constants place them after the last def.
24135         (vect_get_slp_defs): Adjust.
24136         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
24137         externals for basic-block vectorization.
24138
24139 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24140
24141         PR target/63503
24142         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
24143         aarch64-*-*.
24144         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
24145         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
24146         (AARCH64_TUNE_FMA_STEERING): Likewise.
24147         * config/aarch64/aarch64-cores.def: Set
24148         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
24149         FMUL/FMADD instructions.
24150         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
24151         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
24152         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
24153         * config/aarch64/cortex-a57-fma-steering.h: New file.
24154         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
24155
24156 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
24157
24158         * gensupport.c (std_preds): Add missing codes to address_operand entry.
24159
24160 2015-04-28  Richard Biener  <rguenther@suse.de>
24161
24162         PR tree-optimization/65851
24163         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
24164         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
24165         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
24166         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
24167         (ccp_visit_phi_node): Adjust.
24168         (evaluate_stmt): For simplifications to SSA names return its
24169         lattice value if that isn't VARYING.  Return immediately when
24170         simplified to a constant.
24171         (visit_assignment): Adjust.
24172         (ccp_visit_stmt): Likewise.
24173
24174 2015-04-28  Tom de Vries  <tom@codesourcery.com>
24175
24176         PR tree-optimization/65818
24177         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
24178         evaluated.
24179
24180 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24181
24182         * calls.c (save_fixed_argument_area): Don't check
24183         ARGS_GROW_DOWNWARD with the preprocessor.
24184         (restore_fixed_argument_area): Likewise.
24185         (mem_overlaps_already_clobbered_arg_p): Likewise.
24186         (check_sibcall_argument_overlap): Likewise.
24187         (expand_call): Likewise.
24188         (emit_library_call_value_1): Likewise.
24189         (store_one_arg): Likewise.
24190         * function.c (assign_parms): Likewise.
24191         (locate_and_pad_parm): Likewise.
24192         (pad_to_arg_alignment): Likewise.
24193         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
24194
24195 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24196
24197         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
24198         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
24199         * calls.c (save_fixed_argument_area): Don't chekc if
24200         ARGS_GROW_DOWNWARD is defined.
24201         (restore_fixed_argument_area): Likewise.
24202         (mem_overlaps_already_clobbered_arg_p): Likewise.
24203         (check_sibcall_argument_overlap): Likewise.
24204         (expand_call): Likewise.
24205         (emit_library_call_value_1): Likewise.
24206         (store_one_arg): Likewise.
24207         * function.c (assign_parms): Likewise.
24208         (locate_and_pad_parm): Likewise.
24209         (pad_to_arg_alignment): Likewise.
24210         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
24211
24212 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24213
24214         * defaults.h (gen_epilogue): New function.
24215         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
24216         defined.
24217         * cfgrtl.c (cfg_layout_finalize): Likewise.
24218         * df-scan.c: Likewise.
24219         * function.c (thread_prologue_and_epilogue_insns): Likewise.
24220         (reposition_prologue_and_epilogue_notes): Likewise.
24221         * reorg.c (find_end_label): Likewise.
24222         * toplev.c: Likewise.
24223
24224 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24225
24226         * bb-reorder.c (HAVE_return): Don't check if its undefined.
24227         * defaults.h (gen_simple_return): New function.
24228         (gen_simple_return): Likewise.
24229         (HAVE_return): Add default definition to false.
24230         (HAVE_simple_return): Likewise.
24231         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
24232         HAVE_return and HAVE_simple_return are defined.
24233         * function.c (gen_return_pattern): Likewise.
24234         (convert_jumps_to_returns): Likewise.
24235         (thread_prologue_and_epilogue_insns): Likewise.
24236         * reorg.c (find_end_label): Likewise.
24237         (dbr_schedule): Likewise.
24238         * shrink-wrap.c: Likewise.
24239         * shrink-wrap.h: Likewise.
24240
24241 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24242
24243         * defaults.h (EPILOGUE_USES): Add default definition of false.
24244         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
24245         * resource.c (init_resource_info): Likewise.
24246
24247 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24248
24249         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
24250         to false.
24251         * dwarf2out.c (field_byte_offset): REmove check if
24252         PCC_BITFIELD_TYPE_MATTERS is defined.
24253         * stor-layout.c (layout_decl): Likewise.
24254         (update_alignment_for_field): Likewise.
24255         (place_field): Likewise.
24256
24257 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24258
24259         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
24260         true.
24261         * regrename.c (check_new_reg_p): Remove check if
24262         HARD_REGNO_RENAME_OK is defined.
24263         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
24264
24265 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24266
24267         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
24268         * cse.c (fold_rtx): Likewise.
24269         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
24270         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
24271         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
24272         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
24273         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
24274         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
24275         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
24276         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
24277         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
24278         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
24279         * Likewise.
24280         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
24281         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
24282         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
24283         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
24284         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
24285         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
24286         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
24287         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
24288         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
24289         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
24290         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
24291         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
24292         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
24293         * doc/tm.texi: Regenerate.
24294         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
24295         either true or false.
24296
24297 2015-04-27  Jeff Law  <law@redhat.com>
24298
24299         PR tree-optimization/65217
24300         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
24301         of them has a single use, make sure it is the LHS of the implied
24302         copy.
24303
24304 2015-04-28  Alan Modra  <amodra@gmail.com>
24305
24306         PR target/65810
24307         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
24308         (offsettable_ok_by_alignment): Use minimum of decl and toc
24309         pointer alignment.  Replace dead code with assertion.
24310         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
24311         case if size exceeds toc pointer alignment.
24312         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
24313         (rs6000_emit_move): Likewise.
24314         * configure.ac: Add linker toc pointer alignment check.
24315         * configure: Regenerate.
24316         * config.in: Regenerate.
24317
24318 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
24319
24320         * config.gcc: Add h8300-*-linux.
24321         * config/h8300/linux.h: New.
24322         * config/h8300/t-linux: New.
24323         * config/h8300/h8300.c (h8300_option_override): Normal mode
24324         is not supported for h8300-*-linux.
24325         (h8300_file_start): Target priority change.
24326         (get_shift_alg): Likewise.
24327         (h8300_shift_need_scratch_p): Likewise.
24328         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
24329         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
24330
24331 2015-04-27  Caroline Tice  <cmtice@google.com>
24332
24333         * final.c (final_scan_insn):  Output cold_function_name as function
24334         type.
24335         * varasm.c (cold_function_name):  Make global.
24336         (assemble_start_function):  Re-set cold_function_name.
24337         (assemble_end_function): Output cold partition size.
24338         * varasm.h (cold_function_name):  Declare global.
24339
24340 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
24341
24342         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
24343         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
24344         constraint.
24345         (*movxi_internal_avx512f): Ditto.
24346         (define_split): Check for xmm16+, when splitting scalar float_extend.
24347         (*extendsfdf2_mixed): Use "v" constraint.
24348         (define_split): Check for xmm16+, when splitting scalar float_truncate.
24349         (*truncdfsf_fast_sse): Use "v" constraint.
24350         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
24351         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
24352         (define_peephole2): Check for xmm16+, when converting scalar
24353         float_truncate.
24354         (define_peephole2): Check for xmm16+, when converting scalar
24355         float_extend.
24356         (*fop_<mode>_comm_mixed): Use "v" constraint.
24357         (*fop_<mode>_comm_sse): Ditto.
24358         (*fop_<mode>_1_mixed): Ditto.
24359         (*sqrt<mode>2_sse): Ditto.
24360         (*ieee_s<ieee_maxmin><mode>3): Ditto.
24361
24362 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24363
24364         * combine.c (simplify_if_then_else): Use std::swap instead
24365         of manually swapping.
24366         (known_cond): Likewise.
24367         (simplify_comparison): Likewise.
24368
24369 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
24370
24371         PR target/64579
24372         * config/rs6000/htm.md: Remove all define_expands.
24373         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
24374         UNSPECV_HTM_TABORTWCI): Remove.
24375         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
24376         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
24377         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
24378         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
24379         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
24380         tabortwci_internal): Remove define_insns.
24381         (tabort<wd>c, tabort<wd>ci): New define_insns.
24382         (tabort): Use gpc_reg_operand.
24383         (tcheck): Remove operand.
24384         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
24385         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
24386         expected value.
24387         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
24388         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
24389         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
24390         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
24391         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
24392         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
24393         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
24394         (tcheck): Remove builtin argument.
24395         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
24396         not TARGET_64BIT.
24397         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
24398         tabortdc and tabortdci builtins when not in 64-bit mode.
24399         Modify code to handle the loss of the HTM define_expands.
24400         Emit code to copy the CR register to TARGET.
24401         (htm_init_builtins): Modify code to handle the loss of the HTM
24402         define_expands.
24403         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
24404         (RS6000_BTC_64BIT): Likewise.
24405         (RS6000_BTC_CR): New macro.
24406         * doc/extend.texi: Update documentation for htm builtins.
24407
24408 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24409
24410         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
24411         of manually swapping.
24412         (simplify_associative_operation): Likewise.
24413         (simplify_binary_operation): Likewise.
24414         (simplify_plus_minus): Likewise.
24415         (simplify_relational_operation): Likewise.
24416         (simplify_ternary_operation): Likewise.
24417
24418 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24419
24420         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
24421         (xs_hi_nonmemory_operand): Remove error.
24422         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
24423         general_operand rather than xs_hi_general_operand.
24424
24425 2015-04-27  Richard Biener  <rguenther@suse.de>
24426
24427         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
24428         (record_equivalences_from_stmt): Valueize rhs.
24429         (record_equality): Canonicalize x and y order via
24430         tree_swap_operands_p.  Do not swap operands for same loop depth.
24431
24432 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
24433
24434         PR target/65296
24435         PR target/65895
24436         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
24437         Add hint how to use own spec file.
24438
24439 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
24440
24441         PR tree-optimization/65875
24442         * tree-vrp.c (update_value_range): If in is_new case setting
24443         old_vr to VR_VARYING, also set new_vr to it.  Remove
24444         old_vr->type == VR_VARYING test.
24445         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
24446         SSA_PROP_INTERESTING if update_value_range returned true,
24447         but new range is VR_VARYING.
24448
24449 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24450
24451         * combine.c (sign_extend_short_imm): New.
24452         (set_nonzero_bits_and_sign_copies): Use above new function for sign
24453         extension of src short immediate.
24454         (reg_nonzero_bits_for_combine): Likewise for tem.
24455
24456 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24457
24458         * stor-layout.c (self_referential_component_ref_p): New predicate.
24459         (copy_self_referential_tree_r): Use it.
24460         (self_referential_size): Punt for simple operations directly involving
24461         self-referential component references.
24462         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
24463
24464 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24465
24466         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
24467
24468 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24469
24470         * vec.h (vec): Make splice arguments const.  Update definitions
24471         accordingly.
24472
24473 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
24474
24475         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
24476         alternatives.
24477
24478 2015-04-26  Tom de Vries  <tom@codesourcery.com>
24479
24480         PR tree-optimization/65826
24481         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
24482
24483 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
24484
24485         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
24486         (*madd3<mode>): Ditto.
24487         (*msub4<mode>): Ditto.
24488         (*msub3<mode>): Ditto.
24489         (*nmadd4<mode>): Ditto.
24490         (*nmadd3<mode>): Ditto.
24491         (*nmadd4<mode>_fastmath): Ditto.
24492         (*nmadd3<mode>_fastmath): Ditto.
24493         (*nmsub4<mode>): Ditto.
24494         (*nmsub3<mode>): Ditto.
24495         (*nmsub4<mode>_fastmath): Ditto.
24496         (*nmsub3<mode>_fastmath): Ditto.
24497
24498 2015-04-24  Jason Merrill  <jason@redhat.com>
24499
24500         PR c++/50800
24501         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
24502         down when building TYPE_CANONICAL.
24503         (build_pointer_type_for_mode): Likewise.
24504
24505 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
24506
24507         * genrecog.c (validate_pattern): Check matching constraint refers
24508         to a lower numbered operand.
24509
24510 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24511
24512         PR target/65849
24513         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
24514         save to independent variables use the Save attribute.  This will
24515         allow these options to be modified with the #pragma/attribute
24516         target support.
24517         (-mallow-movmisalign): Likewise.
24518         (-mallow-df-permute): Likewise.
24519         (-msched-groups): Likewise.
24520         (-malways-hint): Likewise.
24521         (-malign-branch-targets): Likewise.
24522         (-mvectorize-builtins): Likewise.
24523         (-msave-toc-indirect): Likewise.
24524
24525         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
24526         can be set via the #pragma/attribute target support.
24527         (rs6000_opt_vars): Likewise.
24528         (rs6000_inner_target_options): If VSX was set, also set
24529         -mno-avoid-indexed-addresses.
24530
24531 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24532
24533         * config/arm/iterators.md (shiftable_ops): Rename to...
24534         (SHIFTABLE_OPS): ... This.  Update use in comments.
24535         (ior_xor): Rename to...
24536         (IOR_XOR): ... This.
24537         (vqh_ops): Rename to...
24538         (VQH_OPS): ... This.
24539         (vqhs_ops): Rename to...
24540         (VQHS_OPS): ... This.
24541         (rshifts): Rename to...
24542         (RSHIFTS): ... This.
24543         (returns): Rename to...
24544         (RETURNS): ... This.
24545         * config/arm/arm.md: Update uses of the above.
24546         * config/arm/neon.md: Likewise.
24547
24548 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24549
24550         * config.host (case ${host}): Add aarch64*-*-linux case.
24551         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
24552         fields to all the cores.
24553         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
24554         Add MCPU_MTUNE_NATIVE_SPECS.
24555         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
24556         field to all extensions.
24557         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
24558         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
24559         Adjust definition of AARCH64_OPT_EXTENSION.
24560         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
24561         (MCPU_MTUNE_NATIVE_SPECS): Define.
24562         * config/aarch64/driver-aarch64.c: New file.
24563         * config/aarch64/x-arch64: New file.
24564         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
24565         -mtune and -march.
24566
24567 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24568             Wei Mi  <wmi@google.com>
24569
24570         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
24571         * config/i386/i386.c (extract_base_offset_in_addr): New function.
24572         (ix86_operands_ok_for_move_multiple): Ditto.
24573         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
24574         (movlpd/movhpd to movupd peephole2): Ditto.
24575
24576 2015-04-24  Marek Polacek  <polacek@redhat.com>
24577
24578         PR c/61534
24579         * input.h (from_macro_expansion_at): Define.
24580
24581         PR c/63357
24582         * doc/invoke.texi: Update description of -Wlogical-op.
24583
24584 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24585
24586         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
24587         ternary operator in fprintf and harmonize spacing.
24588
24589 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24590
24591         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
24592         Mark operand1 commutative.
24593
24594 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24595
24596         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
24597         input operands in memory.
24598         (*vec_concatv2si_sse4_1): Ditto.
24599         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
24600         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
24601         register_operand.
24602         (vec_extract_hi_v32hi): Ditto.
24603         (vec_extract_hi_v64hi): Ditto.
24604         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
24605
24606 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24607             Steven Bosscher <steven@gcc.gnu.org>
24608
24609         PR rtl-optimization/34503
24610         * cprop.c (cprop_reg_p): New.
24611         (hash_scan_set): Use above function to check if register can be
24612         propagated.
24613         (find_avail_set): Return up to two sets, one whose source is a
24614         register and one whose source is a constant.  Sets are returned in an
24615         array passed as parameter rather than as a return value.
24616         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
24617         sets returned by find_avail_set, starting with the one whose source is
24618         a constant. Use cprop_reg_p to check if register can be propagated.
24619         (do_local_cprop): Use cprop_reg_p to check if register can be
24620         propagated.
24621         (implicit_set_cond_p): Likewise.
24622
24623 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24624
24625         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
24626         (sem_function::equals): IGNORED_NODES parameter is now unused;
24627         update call of equals_private.
24628         (sem_function::equals_private): Do not call equals_wpa; skip
24629         gimple body matching if there is no body.
24630         (sem_function::init): Add logic to hash tthunk info.
24631         (sem_function::parse): Also parse thunks.
24632         * ipa-icf.h (equals_private): Update declaration.
24633
24634 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24635
24636         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
24637         asterisk from name so this can be generated directly.
24638         (*altivec_stvx_<mode>_internal): Likewise.
24639         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
24640         that this is never called during or after reload/lra.
24641         (rs6000_frame_related): Remove split_reg
24642         argument and logic that references it.
24643         (emit_frame_save): Remove last parameter from call to
24644         rs6000_frame_related.
24645         (rs6000_emit_prologue): Remove last parameter from eight calls to
24646         rs6000_frame_related.  Force generation of stvx instruction for
24647         Altivec register saves.  Remove split_reg handling, which is no
24648         longer needed.
24649         (rs6000_emit_epilogue):  Force generation of lvx instruction for
24650         Altivec register restores.
24651
24652 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24653
24654         * config/rs6000/rs6000.opt (mcrypto): Change option description to
24655         match category changes in ISA 2.07B.
24656
24657 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24658
24659         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
24660         iterators.
24661         (cmp_op, cmp_type): New code attributes.
24662         (NEON_VCMP, NEON_VACMP): New int iterators.
24663         (cmp_op_unsp): New int attribute.
24664         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
24665         (neon_vceq<mode>): Delete.
24666         (neon_vc<cmp_op><mode>_insn): New pattern.
24667         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
24668         (neon_vcgeu<mode>): Delete.
24669         (neon_vcle<mode>): Likewise.
24670         (neon_vclt<mode>: Likewise.
24671         (neon_vcage<mode>): Likewise.
24672         (neon_vcagt<mode>): Likewise.
24673         (neon_vca<cmp_op><mode>): New define_expand.
24674         (neon_vca<cmp_op><mode>_insn): New pattern.
24675         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
24676
24677 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24678
24679         * tree.h (attribute_value_equal): Declare.
24680         * tree.c (attribute_value_equal): Export.
24681
24682 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24683
24684         * ipa-icf.c (sem_item::compare_attributes): New function.
24685         (sem_item::compare_referenced_symbol_properties): Compare variable
24686         attributes.
24687         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
24688         (sem_function::param_used_p): New function.
24689         (sem_function::equals_wpa): Fix attribute comparsion; match
24690         parameter type codes; do not compare paremter flags when
24691         they are not used; compare edge flags; compare indirect calls.
24692         (sem_item::update_hash_by_addr_refs): Hash reference type.
24693         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
24694         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
24695         reference use type.
24696         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
24697         * ipa-icf.h (compare_attributes, param_used_p): Declare.
24698
24699 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24700
24701         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
24702         cleanup.
24703         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
24704         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
24705         (sem_item::compare_referenced_symbol_properties): New.
24706         (sem_item::hash_referenced_symbol_properties): New.
24707         (sem_item::compare_cgraph_references): Rename to ...
24708         (sem_item::compare_symbol_references): ... this one; use
24709         compare_referenced_symbol_properties.
24710         (sem_function::equals_wpa): Do not compare
24711         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
24712         DECL_IS_OPERATOR_NEW; compare pointer sizes.
24713         (sem_item::update_hash_by_addr_refs): Call
24714         hash_referenced_symbol_properties.
24715         (sem_item::update_hash_by_local_refs): Cleanup.
24716         (sem_function::merge): Do not mix up symbol properties.
24717         (sem_variable::equals_wpa): Use compare_symbol_references.
24718         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
24719         (sem_item::hash_referenced_symbol_properties): New.
24720         (sem_item::compare_symbol_references): New.
24721         (sem_item::compare_cgraph_references): Remove.
24722
24723 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
24724
24725         PR target/26702
24726         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
24727         Emit size of local.
24728
24729 2015-04-23  Nick Clifton  <nickc@redhat.com>
24730
24731         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
24732         ATTRIBUTE_UNUSED to x parameter.
24733         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
24734
24735 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24736
24737         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
24738         TARGET_CRYPTO to TARGET_P8_VECTOR>
24739         (crypto_vpermxor_<mode>): Likewise.
24740         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
24741         (BU_CRYPTO_3A): Likewise.
24742         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
24743         (BU_CRYPTO_OVERLOAD_3A): New #define.
24744         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
24745         (VPMSUMH): Likewise.
24746         (VPMSUMW): Likewise.
24747         (VPMSUMD): Likewise.
24748         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
24749         (VPERMXOR_V4SI): Likewise.
24750         (VPERMXOR_V8HI): Likewise.
24751         (VPERMXOR_V16QI): Likewise.
24752         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
24753         BU_CRYPTO_OVERLOAD_2A.
24754         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
24755         BU_CRYPTO_OVERLOAD_3A.
24756         * config/rs6000/rs6000.opt (mcrypto): Change description of
24757         option.
24758
24759 2015-04-23  Richard Biener  <rguenther@suse.de>
24760
24761         * passes.def: Remove copy propagation passes run directly after CCP.
24762         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
24763         SSA names.
24764         (ccp_visit_phi_node): Rework to handle first executable edge
24765         specially.
24766
24767 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
24768
24769         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24770         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24771         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24772         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
24773         (thumb_legimitimize_reload_address): Remove.
24774         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
24775         Remove.
24776         (thumb_legimitimize_reload_address): Remove.
24777
24778 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24779
24780         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
24781
24782 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24783
24784         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
24785         MAX_LDM_STM_OPS.
24786         (store_multiple): Likewise.
24787
24788 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24789
24790         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
24791         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
24792         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
24793         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
24794         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
24795         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
24796         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
24797         Specify issue_rate value.
24798         (arm_issue_rate): Look up issue rate from tuning structs. Remove
24799         large switch statement.
24800         (arm_marvell_pj4_tune): New struct.
24801         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
24802         struct.
24803
24804 2015-04-23  Richard Biener  <rguenther@suse.de>
24805
24806         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
24807         (vect_find_last_store_in_slp_instance): Rename to ...
24808         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
24809         (vect_analyze_slp_cost_1): Use vector_load for constant defs
24810         and vec_construct for external defs when estimating prologue cost.
24811         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
24812         Compute costs here only when vectorizing loops.
24813         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
24814         have been determined.
24815         (vect_schedule_slp_instance): Simplify vectorized code placement
24816         and prepare for in-BB external defs.
24817         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
24818         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
24819         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
24820         guard.
24821         (vect_model_load_cost): Likewise.
24822         (vectorizable_store): Instead add it here.
24823         (vectorizable_load): Likewise.
24824         (vect_is_simple_use): Dump def type textually.
24825
24826 2015-04-23  Richard Biener  <rguenther@suse.de>
24827
24828         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
24829         * cfgloop.c (verify_loop_structure): Verify the root loop node.
24830         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
24831         instead of get_eh_region_from_lp_number.
24832         * loop-init.c (fix_loop_structure): If we removed a loop, reset
24833         the SCEV cache.
24834
24835 2015-04-23  Anton Blanchard  <anton@samba.org>
24836
24837         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
24838         need for -mprofile-kernel to save LR to stack.
24839
24840 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24841
24842         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
24843         adjustments.
24844         (insn_is_swappable_p): Return 1 for a convert from double to
24845         single precision when all of its uses are splats of BE element
24846         zero.
24847
24848 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24849
24850         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
24851
24852 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24853
24854         PR target/65456
24855         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
24856         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
24857         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
24858         option.
24859         (rs6000_builtin_mask_for_load): Return 0 for targets with
24860         efficient unaligned VSX accesses so that the vectorizer will use
24861         direct unaligned loads.
24862         (rs6000_builtin_support_vector_misalignment): Always return true
24863         for targets with efficient unaligned VSX accesses.
24864         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
24865         stores on targets with efficient unaligned VSX accesses is almost
24866         always the same as the cost of an aligned load or store, so model
24867         it that way.
24868         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
24869         unaligned vectors if we have efficient unaligned VSX accesses.
24870         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
24871         undocumented option.
24872
24873 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24874
24875         Revert:
24876         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24877
24878         * config.gcc (LIBC_MUSL): New tm_defines macro.
24879         * config/linux.h (OPTION_MUSL): Define.
24880         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24881         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24882         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24883
24884         * config/linux.opt (mmusl): New option.
24885         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24886         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24887
24888         * configure: Regenerate.
24889
24890 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24891
24892         * config.gcc (LIBC_MUSL): New tm_defines macro.
24893         * config/linux.h (OPTION_MUSL): Define.
24894         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24895         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24896         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24897
24898         * config/linux.opt (mmusl): New option.
24899         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24900         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24901
24902         * configure: Regenerate.
24903
24904 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
24905
24906         * doc/invoke.texi (-fsanitize-sections): Update description.
24907         * asan.c (set_sanitized_sections): Parse incoming arg.
24908         (section_sanitized_p): Support wildcards.
24909
24910 2015-04-22  Tom de Vries  <tom@codesourcery.com>
24911
24912         PR tree-optimization/65823
24913         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
24914         equality between ap_copy and ap.
24915
24916 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24917
24918         PR target/47098
24919         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
24920
24921 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24922
24923         PR target/47122
24924         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
24925
24926 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24927
24928         PR target/55144
24929         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
24930         remove already contained t-files.
24931
24932 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24933
24934         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
24935         Remove unneeded forward declarations.
24936         (suitable_for_tail_call_opt_p): Commentary typo fix.
24937
24938 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24939
24940         * varasm.c (emit_bss): Remove redundant guard.
24941
24942 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24943
24944         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
24945
24946 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24947
24948         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
24949
24950 2015-04-22  Hale Wang  <hale.wang@arm.com>
24951             Terry Guo  <terry.guo@arm.com>
24952
24953         PR rtl-optimization/64818
24954         * combine.c (can_combine_p): Don't combine user-specified
24955         register if it is in an asm input.
24956
24957 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
24958
24959         PR ipa/65076
24960         * passes.def (early_optimizations): Add pass_dse.
24961
24962 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24963
24964         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
24965         * reorg.c (redundant_insn): Remove ifdef
24966         INSN_REFERENCES_ARE_DELAYED.
24967         * resource.c (mark_referenced_resources): Likewise.
24968
24969 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24970
24971         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
24972         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
24973         * resource.c (mark_set_resources): Likewise.
24974
24975 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24976
24977         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
24978         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24979         (flow_find_head_matching_sequence): Likewise.
24980         (try_head_merge_bb): Likewise.
24981         * combine.c (can_combine_p): Likewise.
24982         (try_combine): Likewise.
24983         (distribute_notes): Likewise.
24984         * df-problems.c (can_move_insns_across): Likewise.
24985         * final.c (final): Likewise.
24986         * gcse.c (insert_insn_end_basic_block): Likewise.
24987         * ira.c (find_moveable_pseudos): Likewise.
24988         * reorg.c (try_merge_delay_insns): Likewise.
24989         (fill_simple_delay_slots): Likewise.
24990         (fill_slots_from_thread): Likewise.
24991         * sched-deps.c (sched_analyze_2): Likewise.
24992
24993 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24994
24995         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
24996         PIC_OFFSET_TABLE_REGNUM.
24997
24998 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24999
25000         * alias.c (init_alias_target): Remove ifdef
25001         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
25002         * df-scan.c (df_insn_refs_collect): Likewise.
25003         (df_get_regular_block_artificial_uses): Likewise.
25004         (df_get_eh_block_artificial_uses): Likewise.
25005         (df_get_entry_block_def_set): Likewise.
25006         (df_get_exit_block_use_set): Likewise.
25007         * emit-rtl.c (gen_rtx_REG): Likewise.
25008         * ira.c (ira_setup_eliminable_regset): Likewise.
25009         * reginfo.c (init_reg_sets_1): Likewise.
25010         * regrename.c (rename_chains): Likewise.
25011         * reload1.c (reload): Likewise.
25012         (eliminate_regs_in_insn): Likewise.
25013         * resource.c (mark_referenced_resources): Likewise.
25014         (init_resource_info): Likewise.
25015
25016 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25017
25018         * defaults.h (MASK_RETURN_ADDR): New definition.
25019         * except.c (expand_builtin_extract_return_addr): Remove ifdef
25020         MASK_RETURN_ADDR.
25021
25022 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25023
25024         * defaults.h (RETURN_ADDR_OFFSET): New definition.
25025         * except.c (expand_builtin_extract_return_addr): Remove ifdef
25026         RETURN_ADDR_OFFSET.
25027         (expand_builtin_frob_return_addr): Likewise.
25028
25029 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25030
25031         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
25032         (try_redirect_by_replacing_jump): Likewise.
25033         (rtl_tidy_fallthru_edge): Likewise.
25034         * combine.c (insn_a_feeds_b): Likewise.
25035         (find_split_point): Likewise.
25036         (simplify_set): Likewise.
25037         * cprop.c (cprop_jump): Likewise.
25038         * cse.c (cse_extended_basic_block): Likewise.
25039         * df-problems.c (can_move_insns_across): Likewise.
25040         * function.c (emit_use_return_register_into_block): Likewise.
25041         * haifa-sched.c (sched_init): Likewise.
25042         * ira.c (find_moveable_pseudos): Likewise.
25043         * loop-invariant.c (find_invariant_insn): Likewise.
25044         * lra-constraints.c (curr_insn_transform): Likewise.
25045         * postreload.c (reload_combine_recognize_const_pattern):
25046         * Likewise.
25047         * reload.c (find_reloads): Likewise.
25048         * reorg.c (delete_scheduled_jump): Likewise.
25049         (steal_delay_list_from_target): Likewise.
25050         (steal_delay_list_from_fallthrough): Likewise.
25051         (redundant_insn): Likewise.
25052         (fill_simple_delay_slots): Likewise.
25053         (fill_slots_from_thread): Likewise.
25054         (delete_computation): Likewise.
25055         * sched-rgn.c (add_branch_dependences): Likewise.
25056
25057 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25058
25059         * genconfig.c (main): Always define HAVE_cc0.
25060         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
25061         HAVE_cc0.
25062         * cfgcleanup.c (flow_find_cross_jump): Likewise.
25063         (flow_find_head_matching_sequence): Likewise.
25064         (try_head_merge_bb): Likewise.
25065         * cfgrtl.c (rtl_merge_blocks): Likewise.
25066         (try_redirect_by_replacing_jump): Likewise.
25067         (rtl_tidy_fallthru_edge): Likewise.
25068         * combine.c (do_SUBST_MODE): Likewise.
25069         (insn_a_feeds_b): Likewise.
25070         (combine_instructions): Likewise.
25071         (can_combine_p): Likewise.
25072         (try_combine): Likewise.
25073         (find_split_point): Likewise.
25074         (subst): Likewise.
25075         (simplify_set): Likewise.
25076         (distribute_notes): Likewise.
25077         * cprop.c (cprop_jump): Likewise.
25078         * cse.c (cse_extended_basic_block): Likewise.
25079         * df-problems.c (can_move_insns_across): Likewise.
25080         * final.c (final): Likewise.
25081         (final_scan_insn): Likewise.
25082         * function.c (emit_use_return_register_into_block): Likewise.
25083         * gcse.c (insert_insn_end_basic_block): Likewise.
25084         * haifa-sched.c (sched_init): Likewise.
25085         * ira.c (find_moveable_pseudos): Likewise.
25086         * loop-invariant.c (find_invariant_insn): Likewise.
25087         * lra-constraints.c (curr_insn_transform): Likewise.
25088         * optabs.c (prepare_cmp_insn): Likewise.
25089         * postreload.c (reload_combine_recognize_const_pattern):
25090         * Likewise.
25091         * reload.c (find_reloads): Likewise.
25092         (find_reloads_address_1): Likewise.
25093         * reorg.c (delete_scheduled_jump): Likewise.
25094         (steal_delay_list_from_target): Likewise.
25095         (steal_delay_list_from_fallthrough): Likewise.
25096         (try_merge_delay_insns): Likewise.
25097         (redundant_insn): Likewise.
25098         (fill_simple_delay_slots): Likewise.
25099         (fill_slots_from_thread): Likewise.
25100         (delete_computation): Likewise.
25101         (relax_delay_slots): Likewise.
25102         * sched-deps.c (sched_analyze_2): Likewise.
25103         * sched-rgn.c (add_branch_dependences): Likewise.
25104
25105 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25106
25107         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
25108         that is trivially ded on non cc0 targets.
25109         (simplify_set): Likewise.
25110         (mark_used_regs_combine): Likewise.
25111         * cse.c (new_basic_block): Likewise.
25112         (fold_rtx): Likewise.
25113         (cse_insn): Likewise.
25114         (cse_extended_basic_block): Likewise.
25115         (set_live_p): Likewise.
25116         * rtlanal.c (canonicalize_condition): Likewise.
25117         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
25118
25119 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25120
25121         * conditions.h: Define macros even if HAVE_cc0 is undefined.
25122         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
25123         * final.c: Likewise.
25124         * jump.c: Likewise.
25125         * recog.c: Likewise.
25126         * recog.h: Declare functions even when HAVE_cc0 is undefined.
25127         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
25128
25129 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25130
25131         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
25132         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
25133         * builtins.c (expand_builtin): Remove check if
25134         EH_RETURN_DATA_REGNO is defined.
25135         * df-scan.c (df_bb_refs_collect): Likewise.
25136         (df_get_exit_block_use_set): Likewise.
25137         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
25138         * ira-lives.c (process_bb_node_lives): Likewise.
25139         * lra-lives.c (process_bb_lives): Likewise.
25140
25141 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
25142
25143         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
25144         FIRST_PSEUDO_REG): New.
25145         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
25146         (ARG_POINTER_REGNUM): Define to ARGP_REG.
25147         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
25148         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
25149         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
25150         (FIRST_INT_REG): New.
25151         (LAST_INT_REG): New.
25152         (FIRST_*_REG): Define using *_REG.
25153         (LAST_*_REG): Ditto.
25154         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
25155         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
25156         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
25157
25158 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25159
25160         * expmed.c: (synth_mult): Only assume overlapping
25161         shift with previous steps in alg_sub_t_m2 case.
25162
25163 2015-04-21  Richard Biener  <rguenther@suse.de>
25164
25165         PR tree-optimization/65650
25166         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
25167         transitions involving copies.
25168         (set_lattice_value): Adjust for copy lattice state.
25169         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
25170         if that doesn't dominate the merge point.
25171         (bit_value_unop): Adjust what we treat as varying mask.
25172         (bit_value_binop): Likewise.
25173         (bit_value_assume_aligned): Likewise.
25174         (evaluate_stmt): When we simplified to a SSA name record a copy
25175         instead of dropping to varying.
25176         (visit_assignment): Simplify.
25177
25178         * gimple-match.h (gimple_simplify): Add another callback.
25179         * gimple-fold.c (fold_stmt_1): Adjust caller.
25180         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
25181         for the 2nd callback.
25182         * gimple-match-head.c (gimple_simplify): Add a callback that is
25183         used to valueize the stmt operands and use it that way.
25184
25185 2015-04-21  Richard Biener  <rguenther@suse.de>
25186
25187         PR tree-optimization/65788
25188         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
25189
25190 2015-04-21  Richard Biener  <rguenther@suse.de>
25191
25192         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
25193         vec_construct cost by vec_stmt_cost.
25194
25195 2015-04-21  Richard Biener  <rguenther@suse.de>
25196
25197         * cfghooks.h (create_basic_block): Replace with two overloads
25198         for RTL and GIMPLE.
25199         (split_block): Likewise.
25200         * cfghooks.c (split_block): Rename to ...
25201         (split_block_1): ... this.
25202         (split_block): Add two type-safe overloads for RTL and GIMPLE.
25203         (split_block_after_labels): Call split_block_1.
25204         (create_basic_block): Rename to ...
25205         (create_basic_block_1): ... this.
25206         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
25207         (create_empty_bb): Call create_basic_block_1.
25208         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
25209         split_block_after_labels.
25210         * omp-low.c (expand_parallel_call): Likewise.
25211         (expand_omp_target): Likewise.
25212         (simd_clone_adjust): Likewise.
25213         * tree-chkp.c (chkp_get_entry_block): Likewise.
25214         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
25215         create_basic_block overload.
25216         (cgraph_node::expand_thunk): Likewise.
25217         * tree-cfg.c (make_blocks): Likewise.
25218         (handle_abnormal_edges): Likewise.
25219         * tree-inline.c (copy_bb): Likewise.
25220
25221 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25222
25223         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
25224         New pattern.
25225         (*xor_one_cmplsidi3_ze): Likewise.
25226
25227 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25228
25229         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
25230         use df_remove_problem rather than manually removing problems, leaving
25231         holes in df->problems_in_order[].
25232
25233 2015-04-21  Tom de Vries  <tom@codesourcery.com>
25234
25235         PR tree-optimization/65802
25236         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
25237
25238 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25239
25240         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
25241         Increase to 128.
25242         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
25243         at '.'.  Assert that there's enough space for everything.
25244
25245 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
25246
25247         PR tree-optimization/64950
25248         Revert:
25249         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
25250
25251         PR target/41089
25252         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
25253         as volatile.
25254
25255 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
25256
25257         PR rtl-optimization/64916
25258         * cfgcleanup.c (values_equal_p): New function.
25259         (can_replace_by): Use it.
25260
25261 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
25262
25263         PR c++/65801
25264         * doc/invoke.texi ([-Wnarrowing]): Update.
25265
25266 2015-04-20  Jeff Law  <law@redhat.com>
25267
25268         PR tree-optimization/65658
25269         * tree-ssa-threadupdate.c (redirection_block_p): Remove
25270         redundant test for GIMPLE_ASSIGN in last change.
25271
25272 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
25273
25274         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
25275         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
25276         (legitimize_tls_address): Ditto.
25277         (ix86_expand_move): Ditto.
25278         (ix86_expand_binary_operator): Remove reload_in_progress checks.
25279         (ix86_expand_unary_operator): Ditto.
25280         * config/i386/predicates.md (index_register_operand): Ditto.
25281
25282 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
25283
25284         * reorg.c (try_merge_delay_insns): Improve correctness checking
25285         for targets with multiple delay slots.
25286
25287 2015-04-20  Jeff Law  <law@redhat.com>
25288
25289         PR tree-optimization/65658
25290         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
25291         statements too.
25292
25293 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25294
25295         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
25296         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
25297         Delete.
25298
25299 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
25300
25301         PR debug/65807
25302         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
25303
25304 2015-04-20  Richard Biener  <rguenther@suse.de>
25305
25306         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
25307         * gimple-fold.c (gimple_build_valueize): New function.
25308         (gimple_build): Always use gimple_build_valueize as valueize hook.
25309
25310 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25311
25312         PR target/64134
25313         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
25314         and overwrite variable parts if <= 1/2 the elements are variable.
25315
25316 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
25317
25318         PR rtl-optimization/65805
25319         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
25320         Don't use difference of offset and previous offset if
25321         update_sp_offset is non-zero.
25322         (eliminate_regs_in_insn): Ditto.
25323         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
25324         lra_eliminate_regs_1 call.
25325         * lra-constraints.c (get_equiv_with_elimination): Ditto.
25326
25327 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
25328
25329         * hash-table.h: Remove version of hash_table that stored value_type *.
25330         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
25331         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
25332         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
25333         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
25334         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
25335         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
25336         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
25337         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
25338         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
25339         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
25340         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
25341         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
25342         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
25343         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
25344         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
25345         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
25346
25347 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25348             Jakub Jelinek  <jakub@redhat.com>
25349
25350         PR target/65787
25351         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
25352         subsequent SH_NONE operand does not overwrite an existing *special
25353         value.
25354         (adjust_extract): Handle case where a vec_extract operation is
25355         wrapped in a PARALLEL.
25356
25357 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25358
25359         PR target/65780
25360         * config/i386/i386.c (ix86_binds_local_p): Define only if
25361         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
25362
25363 2015-04-17  Jeff Law  <law@redhat.com>
25364
25365         PR tree-optimization/47679
25366         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
25367         * tree-ssa-scopedtables.c: New file.
25368         * tree-ssa-scopedtables.h: New file.
25369         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
25370         (const_and_copies): Change name/type.
25371         (record_const_or_copy): Move into tree-ssa-scopedtables.c
25372         (record_const_or_copy_1): Similarly.
25373         (restore_vars_to_original_value): Similarly.
25374         (pass_dominator::execute): Create and destroy const_and_copies table.
25375         (thread_across_edge): Update passing of const_and_copies.
25376         (record_temporary_equivalence): Use method calls rather than
25377         manipulating const_and_copies directly.
25378         (record_equality, cprop_into_successor_phis): Similarly.
25379         (dom_opt_dom_walker::before_dom_children): Similarly.
25380         (dom_opt_dom_walker::after_dom_children): Similarly.
25381         (eliminate_redundant_computations): Similarly.
25382         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
25383         (record_temporary_equivalence): Likewise.
25384         (invalidate_equivalences): Likewise.
25385         (record_temporary_equivalences_from_phis): Update due to type
25386         change of const_and_copies.  Use method calls rather than
25387         manipulating the stack directly.
25388         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
25389         (thread_through_normal_block, thread_across_edge): Likewise.
25390         (thread_across_edge): Likewise.
25391         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
25392         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
25393         of equiv_stack.
25394         (identify_jump_threads): Update due to type change of equiv_stack.
25395         (finalize_jump_threads): Delete the equiv_stack when complete.
25396
25397 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
25398
25399         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
25400         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
25401         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
25402
25403 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
25404
25405         PR target/65535
25406         * config.gcc: Exit with a comment when we do not have a major version
25407         number for the FreeBSD target.
25408
25409 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25410
25411         PR target/65689
25412         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
25413         maybe_allows_mem bitfields.
25414         (maybe_allows_none_start, maybe_allows_none_end,
25415         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
25416         maybe_allows_mem_end): New variables.
25417         (compute_maybe_allows): New function.
25418         (add_constraint): Use it to initialize maybe_allows_reg and
25419         maybe_allows_mem fields.
25420         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
25421         is_address constraints such that those that allow neither mem nor
25422         reg come first, then those that only allow reg but not mem, then
25423         those that only allow mem but not reg, then the rest.
25424         (write_allows_reg_mem_function): New function.
25425         (write_tm_preds_h): Call it.
25426         * stmt.c (parse_output_constraint, parse_input_constraint): Use
25427         the generated insn_extra_constraint_allows_reg_mem function
25428         instead of always setting *allows_reg = true; *allows_mem = true;
25429         for unknown extra constraints.
25430
25431 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25432
25433         PR target/65780
25434         * output.h (default_binds_local_p_3): New.
25435         * varasm.c (default_binds_local_p_3): Make it public.  Take an
25436         argument to indicate if common symbol may be local.  If common
25437         symbol may be local, treat non-external variable as defined
25438         locally.
25439         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
25440         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
25441         * config/i386/i386.c (ix86_binds_local_p): New.
25442         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
25443         ix86_binds_local_p.
25444
25445 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25446
25447         PR debug/65771
25448         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
25449         trying mem_loc_descriptor on XEXP (rtl, 0).
25450
25451 2015-04-17  Martin Liska  <mliska@suse.cz>
25452
25453         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
25454         Release symbol_compare_collection.
25455         * ipa-reference.c: Add TODO that a vector should be released.
25456
25457 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
25458
25459         PR target/65296
25460         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
25461         to new AVR-LibC file layout (bug #44574).
25462         (*avrlibc_devicelib): Same.
25463         * config/avr/avr-mcus.def: Adjust comments.
25464         * config/avr/avr.opt (nodevicelib): Adjust help.
25465
25466 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
25467
25468         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
25469
25470 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
25471
25472         PR c++/64527
25473         * gimplify.c (gimplify_init_constructor): Always emit a
25474         side-effecting constructor.
25475
25476 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25477
25478         PR tree-optimization/64950
25479         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
25480         in cfun->curr_properties.
25481         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
25482         if we generate an IFN_VA_ARG.
25483         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
25484         function if PROP_gimple_lva is not set in src function.
25485
25486 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25487             Michael Matz  <matz@suse.de>
25488
25489         PR tree-optimization/64950
25490         * gimple-iterator.c (update_modified_stmts): Remove static.
25491         * gimple-iterator.h (update_modified_stmts): Declare.
25492         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
25493         (gimplify_va_arg_internal): New function.
25494         (gimplify_va_arg_expr): Use IFN_VA_ARG.
25495         * gimplify.h (gimplify_va_arg_internal): Declare.
25496         * internal-fn.c (expand_VA_ARG): New unreachable function.
25497         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
25498         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
25499         (expand_ifn_va_arg): New function.
25500         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
25501         (pass_stdarg::execute): Call expand_ifn_va_arg.
25502         (pass_data_lower_vaarg): New pass_data.
25503         (pass_lower_vaarg): New gimple_opt_pass.
25504         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
25505         (make_pass_lower_vaarg): New function.
25506         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
25507         properties_required field.
25508         * passes.def (all_passes): Add pass_lower_vaarg.
25509         * tree-pass.h (PROP_gimple_lva): Add define.
25510         (make_pass_lower_vaarg): Declare.
25511
25512 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25513
25514         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
25515         * calls.c (call_expr_flags): Same.
25516
25517 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25518
25519         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
25520         (pass_stdarg::execute): ... here.
25521
25522 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25523             Michael Matz  <matz@suse.de>
25524
25525         * tree-cfg.c (make_blocks_1): Factor out of ...
25526         (make_blocks): ... here.
25527         (make_edges_bb): Factor out of ...
25528         (make_edges): ... here.
25529         (gimple_find_sub_bbs): New function.
25530         * tree-cfg.h (gimple_find_sub_bbs): Declare.
25531
25532 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25533
25534         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
25535
25536 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
25537
25538         * asan.c (set_sanitized_sections): New function.
25539         (section_sanitized_p): Ditto.
25540         (asan_protect_global): Optionally sanitize user-defined
25541         sections.
25542         * asan.h (set_sanitized_sections): Declare new function.
25543         * common.opt (fsanitize-sections): New option.
25544         * doc/invoke.texi (-fsanitize-sections): Document new option.
25545         * opts-global.c (handle_common_deferred_options): Handle new
25546         option.
25547
25548 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25549
25550         PR debug/65771
25551         * dwarf2out.c (loc_list_from_tree): Return NULL
25552         for DEBUG_EXPR_DECL.
25553
25554 2015-04-17  Christian Bruel  <christian.bruel@st.com>
25555
25556         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
25557         same attributes.
25558
25559 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
25560
25561         * ira-color.c (setup_left_conflict_sizes_p): Do not process
25562         node itself when computing left conflict subnode size.
25563
25564 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25565
25566         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
25567         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
25568         *fop_<mode>_1_sse using enabled attribute.  Use
25569         register_mixssei387nonimm_operand operand 1 predicate. Change
25570         alternative 3 constraints from "x" to "v".
25571
25572 2015-04-16  Richard Biener  <rguenther@suse.de>
25573
25574         PR tree-optimization/65774
25575         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
25576         bit-value tracking on.
25577
25578 2015-04-16  Richard Biener  <rguenther@suse.de>
25579
25580         PR tree-optimization/64277
25581         * tree-vrp.c (check_array_ref): Fix anti-range handling,
25582         simplify upper bound handling.
25583         (search_for_addr_array): Simplify.
25584         (check_array_bounds): Handle ADDR_EXPRs here.
25585         (check_all_array_refs): Simplify.
25586
25587 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25588
25589         * config/i386/i386.c (print_reg): Rewrite function.
25590
25591 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25592
25593         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
25594         Invert the condition.
25595
25596 2015-04-16  Renlin Li  <renlin.li@arm.com>
25597
25598         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
25599         simplifications for UNSIGNED_FLOAT.
25600
25601 2015-04-16  Nick Clifton  <nickc@redhat.com>
25602
25603         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
25604         MUL_UNINIT.
25605         (enum rl78_cpu_type): New.
25606         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
25607         (umulhi3_shift_virt): Remove m constraint from operand 1.
25608         (umulqihi3_virt): Likewise.
25609         * config/rl78/rl78.c (rl78_option_override): Add code to process
25610         -mcpu and -mmul options.
25611         (rl78_alloc_physical_registers): Add code to handle divhi and
25612         divsi valloc attributes.
25613         (set_origin): Likewise.
25614         * config/rl78/rl78.h (RL78_MUL_G14): Define.
25615         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
25616         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
25617         __RL78_Gxx__.
25618         (ASM_SPEC): Pass -mcpu on to assembler.
25619         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
25620         (mulqi3_rl78): Likewise.
25621         (mulhi3_g13): Likewise.
25622         (mulhi3): Generate the G13 or G14 versions of the insn directly.
25623         (mulsi3): Likewise.
25624         (mulhi3_g14): Add clobbers of AX and BC.
25625         (mulsi3_g14): Likewise.
25626         (mulsi3_g13): Likewise.
25627         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
25628         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
25629         * config/rl78/rl78.opt (mmul): Initialise value to
25630         RL78_MUL_UNINIT.
25631         (mcpu): New option.
25632         (m13, m14, mrl78): New option aliases.
25633         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
25634         (MULTILIB_DIRNAMES): Add g13 and g14.
25635         * doc/invoke.texi: Document -mcpu and -mmul options.
25636
25637 2015-04-16  Richard Biener  <rguenther@suse.de>
25638
25639         * tree-ssa-ccp.c (likely_value): See if we have operands that
25640         are marked as never simulate again and return CONSTANT in this
25641         case.
25642         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
25643         not have any operands that will be simulated again as
25644         not being simulated again.
25645
25646 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
25647
25648         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
25649         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
25650         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
25651         attribute.
25652         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
25653         enabled attribute.
25654         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
25655         *float<SWI48:mode><MODEF:mode>2_sse.
25656         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
25657         enabled attribute.
25658         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
25659         enabled attribute.
25660
25661 2015-04-15  Tom de Vries  <tom@codesourcery.com>
25662
25663         PR other/65487
25664         * function.c (push_dummy_function): New function.
25665         (init_dummy_function_start): Use push_dummy_function.
25666         (pop_dummy_function): New function.  Factored out of ...
25667         (expand_dummy_function_end): ... here.
25668         * function.h (push_dummy_function, pop_dummy_function): Declare.
25669         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
25670         pop_dummy_function.
25671         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
25672
25673 2015-04-15  Jeff Law  <law@redhat.com>
25674
25675         PR tree-optimization/47679
25676         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
25677         need for forward declaration in upcoming changes.
25678         (record_conditions, record_edge_info): Likewise.
25679
25680         PR rtl-optimization/42522
25681         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
25682         SIGN_EXTRACT as a whole object rather than simplifying
25683         its operand.
25684
25685 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
25686
25687         PR ipa/65765
25688         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
25689         and GIMPLE_PREDICT use break instead of return true. For
25690         GIMPLE_EH_DISPATCH, compare dispatch region.
25691
25692 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
25693
25694         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
25695         details about the implementation.  Make clear preference for
25696         __atomic builtins.  Reduce possibility of future change.
25697
25698 2015-04-15  Nick Clifton  <nickc@redhat.com>
25699
25700         * config/rx/rx.opt (mallow-string-insns): New option.
25701         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
25702         builtin if string instructions are denied.
25703         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
25704         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
25705         appropriate.
25706         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
25707         * config/rx/rx.md (movstr): Enable pattern only if string
25708         instructions are allowed.
25709         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
25710         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
25711         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
25712         (MULTILIB_DIRNAMES): Add no-strings.
25713         * doc/invoke.texi: Document -mno-allow-string-insns.
25714
25715 2015-04-15  Alan Modra  <amodra@gmail.com>
25716
25717         PR target/65408
25718         PR target/58744
25719         PR middle-end/36043
25720         * calls.c (load_register_parameters): Don't load past end of
25721         mem unless suitably aligned.
25722
25723 2015-04-15  Nick Clifton  <nickc@redhat.com>
25724
25725         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
25726         decrement instruction as being frame related.
25727         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
25728         based addresses.
25729         If zero extending a function address enclose the operation in
25730         %code(...).
25731         (rl78_preferred_reload_class): New function.
25732         (TARGET_PREFERRED_RELOAD_CLASS): Define.
25733         * config/rl78/rl78.md: Remove useless constraints in expanders.
25734         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
25735         (mulhi3_rl78): Likewise.
25736         (mulhi3_g13): Likewise.
25737         (mulsi3_rl78): Likewise.
25738         (es_addr): Move to before the multiply patterns.
25739
25740 2015-04-15  Alan Modra  <amodra@gmail.com>
25741
25742         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
25743         and sequence_stack.  Add seq.
25744         (seq_stack): Delete.
25745         * function.c (prepare_function_start): Don't access x_last_insn.
25746         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
25747         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
25748         * emit_rtl.c (start_sequence, push_topmost_sequence,
25749         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
25750         sequence accessors.
25751         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
25752         remove_insn): Likewise.  Simplify.
25753         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
25754         and pop_topmost_sequence.
25755         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
25756         debug insns.
25757         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
25758
25759 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
25760
25761         PR target/65729
25762         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
25763         the assertiion.
25764
25765 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25766
25767         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
25768         (LEGACY_INT_REGNO_P): Ditto.
25769         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
25770         (ANY_MASK_REG_P): Remove.
25771         (BND_REG_P): Rename from ANY_BND_REG_P.
25772         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
25773         legacy integer registers.  Do not handle MMX_REG_P in a special way.
25774         Merge 64byte and 32byte SSE handling.
25775
25776 2015-04-14  Nick Clifton  <nickc@redhat.com>
25777
25778         * expr.c (expand_assignment): Force an address offset computation
25779         into a register before changing its mode.
25780         (expand_expr_real_1): Likewise.
25781
25782 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
25783
25784         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
25785         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
25786         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
25787         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
25788         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
25789         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
25790         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
25791         and __aarch64_vget_lane_any.
25792
25793 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
25794
25795         PR rtl-optimization/65761
25796         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
25797         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
25798
25799 2015-04-14  Richard Biener  <rguenther@suse.de>
25800
25801         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
25802         (graphite_can_represent_scev): Use POINTER_TYPE_P.
25803
25804 2015-04-14  Richard Biener  <rguenther@suse.de>
25805
25806         PR tree-optimization/65758
25807         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
25808         against -1.
25809         (ccp_lattice_meet): Likewise.
25810         (bit_value_unop): Likewise.
25811         (bit_value_binop): Likewise.
25812         (bit_value_assume_aligned): Likewise.
25813
25814 2015-04-14  Christian Bruel  <christian.bruel@st.com>
25815
25816         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
25817         function.
25818
25819 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
25820
25821         PR tree-optimization/63387
25822         * match.pd ((x unord x) | (y unord y) -> (x unord y),
25823         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
25824
25825 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25826
25827         * config/i386/predicates.md (any_QIreg_operand): Rename from
25828         q_regs_operand.  Do not process subregs.
25829         (QIreg_operand): Use QI_REGNO_P predicate.
25830         (ext_QIreg_operand): Ditto.
25831         (ext_register_operand): Ditto.
25832         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
25833         (AND splitters): Ditto.
25834         (AND with -65536 splitter): Add SWI48 mode for operand 0.
25835         (AND with -256 splitter): Use any_QIreg_operand predicate and
25836         SWI248 mode for operand 0.
25837         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
25838         mode for operand 0.
25839         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
25840
25841 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
25842
25843         * doc/plugins.texi: Rewrite first introductory paragraph.
25844
25845 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25846
25847         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
25848         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
25849
25850 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25851
25852         * ipa-profie.c (ipa_profile): Check number of parameters
25853         and possible polymorphic call targets before
25854         devirtualizing.
25855
25856 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
25857
25858         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
25859         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
25860
25861 2015-04-13  Richard Biener  <rguenther@suse.de>
25862
25863         PR tree-optimization/65204
25864         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
25865         takens for bit-CCP.
25866
25867 2015-04-13  Richard Biener  <rguenther@suse.de>
25868
25869         PR target/65660
25870         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
25871         and cond_not_taken_branch_cost to 4 and 2.
25872         (bdver2_cost): Likewise.
25873         (bdver3_cost): Likewise.
25874         (bdver4_cost): Likewise.
25875
25876 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25877
25878         * hash-table.h (hash_table constructor): Add mem stats.
25879         (alloc_entries): Likewise.
25880
25881 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25882
25883         * ipa-cp.c (ipcp_driver): Relase prev_edge.
25884         * passes.c (execute_one_pass): Only add transform if pass has one.
25885
25886 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
25887
25888         * config/i386/i386.c (ix86_option_override_internal): Don't set
25889         -fprefetch-loop-arrays if optimizing for size.
25890
25891 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25892             Gerald Pfeifer  <gerald@pfeifer.com>
25893
25894         * doc/contrib.texi (Contributors): Add Martin Jambor and
25895         Michael Matz.
25896
25897 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
25898
25899         * BASE-VER: Set to 6.0.0.
25900
25901         PR tree-optimization/65747
25902         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
25903         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
25904
25905 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25906
25907         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
25908         sentence.  Improve grammar.
25909
25910 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25911
25912         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
25913
25914 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25915
25916         PR ipa/65743
25917         * ipa-inline-transform.c (speculation_removed): Remove static var.
25918         (check_speculations): New function.
25919         (clone_inlined_nodes): Do not check spculations.
25920         (inline_call): Call check_speculations.
25921         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
25922         consider non-invariants.
25923
25924 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25925             Martin Liska  <mliska@suse.cz>
25926
25927         PR ipa/65722
25928         * ipa-icf.c (sem_item::compare_cgraph_references): function and
25929         variable can not match.
25930         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
25931         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
25932
25933 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
25934
25935         PR tree-optimization/65735
25936         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
25937         Remove visited_phis argument, add visited_bbs, avoid recursing into the
25938         same bb rather than just into the same phi node.
25939         (thread_through_normal_block): Adjust caller.
25940
25941 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25942
25943         * doc/contrib.texi (Contributors): Add Ira Rosen.
25944
25945 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
25946
25947         * gcov.c (find_source): Fix miswording in error message.
25948         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
25949         (ix86_expand_sse_comi_round): Fix typo in error message.
25950
25951 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25952
25953         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
25954
25955 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
25956
25957         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
25958
25959 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25960
25961         PR target/65710
25962         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
25963         Print bad_spills_num and insn_pseudos_num.
25964
25965 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25966
25967         PR target/65694
25968         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
25969         when creating +1 values for SImode.
25970
25971 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25972
25973         PR target/65729
25974         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
25975         assert.
25976
25977 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
25978             Iain Sandoe  <iain@codesourcery.com>
25979
25980         PR target/65351
25981         * configure: Regenerate.
25982
25983 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25984
25985         PR target/65671
25986         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
25987
25988 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
25989
25990         * doc/contrib.texi (Contributors): Add John Marino.
25991
25992 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25993
25994         PR tree-optimization/65709
25995         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
25996         TREE_TYPE (TREE_TYPE (t)).
25997
25998 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
25999
26000         PR target/65710
26001         * lra-int.h (lra_bad_spill_regno_start): New.
26002         * lra.c (lra_bad_spill_regno_start): New.
26003         (lra): Set up lra_bad_spill_regno_start.  Set up
26004         lra_constraint_new_regno_start unconditionally.
26005         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
26006         spill preferences.
26007
26008 2015-04-09  Marek Polacek  <polacek@redhat.com>
26009             Jakub Jelinek  <jakub@redhat.com>
26010
26011         PR middle-end/65554
26012         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
26013         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
26014         of STRIP_NOPS.
26015
26016 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
26017
26018         PR rtl-optimization/65693
26019         * combine.c (is_parallel_of_n_reg_sets): Move outside of
26020         #ifndef HAVE_cc0.
26021
26022 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
26023
26024         PR target/65296
26025         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
26026         device specs file if "device-specs%s" didn't resolve to a path.
26027
26028 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
26029
26030         PR target/65676
26031         * config/i386/i386.c (fixup_modeless_constant): New.
26032         (ix86_expand_args_builtin): Fixup modeless constant operand.
26033         (ix86_expand_round_builtin): Ditto.
26034         (ix86_expand_special_args_builtin): Ditto.
26035         (ix86_expand_builtin): Ditto.
26036
26037 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
26038
26039         PR target/65693
26040         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
26041         any pow2 integer in between 2 and 0x80000000U inclusive.
26042
26043 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
26044
26045         PR rtl-optimization/65693
26046         * combine.c (is_parallel_of_n_reg_sets): Change first argument
26047         from an rtx_insn * to an rtx.
26048         (try_combine): Adjust both callers.  Use it once more.
26049
26050 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
26051
26052         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
26053         (chkp_make_static_const_bounds): Search existing
26054         symbol by assembler name.  Use make_decl_one_only.
26055         (chkp_get_zero_bounds_var): Remove node search which
26056         is now performed in chkp_make_static_const_bounds.
26057         (chkp_get_none_bounds_var): Likewise.
26058
26059 2015-04-08  Michael Witten  <mfwitten@gmail.com>
26060
26061         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
26062         to an example.
26063
26064 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26065
26066         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
26067
26068 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
26069
26070         * doc/extend.texi (__sync Builtins): Fix grammar.
26071
26072 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26073
26074         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
26075
26076 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
26077
26078         * varasm.c (emit_local): Move definition of align.
26079
26080 2015-04-08  Julian Brown  <julian@codesourcery.com>
26081
26082         * config/nvptx/mkoffload.c (process): Support variable mapping.
26083
26084 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
26085
26086         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
26087         alpha_links **.
26088         (alpha_write_one_linkage): Correct typo.
26089
26090 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
26091
26092         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
26093
26094 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
26095
26096         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
26097
26098 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
26099
26100         * tree-chkp.h (chkp_insert_retbnd_call): New.
26101         * tree-chkp.c (chkp_insert_retbnd_call): New.
26102         * ipa-split.c (insert_bndret_call_after): Remove.
26103         (split_function): Use chkp_insert_retbnd_call.
26104         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
26105         bounds for instrumented functions.
26106
26107 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
26108
26109         PR ipa/65540
26110         * calls.c (initialize_argument_information): When producing tail
26111         call also turn SSA_NAMES passed by references to original PARM_DECLs
26112
26113 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
26114
26115         PR target/65648
26116         * lra-remat.c (do_remat): Process input and non-input insn
26117         registers separately.
26118
26119 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
26120
26121         PR debug/65678
26122         * valtrack.c (debug_lowpart_subreg): New function.
26123         (dead_debug_insert_temp): Use it.
26124
26125         PR middle-end/65680
26126         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
26127         into signed HOST_WIDE_INT the same as negative bit_offset.
26128
26129 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
26130
26131         * ipa-comdats.c (ipa_comdats): Visit all thunks
26132         to set proper comdat group.
26133
26134 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26135
26136         PR target/65489
26137         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
26138         on constants for NEON VSTRUCT modes.
26139
26140 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
26141             Iain Sandoe  <iain@codesourcery.com>
26142
26143         PR target/65351
26144         * configure: Regenerate.
26145
26146 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
26147
26148         PR target/65614
26149         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
26150         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
26151         that LFD is used to load double constants instead of LFS.  Add
26152         defaults for all costs structures.  Add comments for missing
26153         initialization fields.
26154         (size32_cost): Likewise.
26155         (size64_cost): Likewise.
26156         (rs64a_cost): Likewise.
26157         (mpccore_cost): Likewise.
26158         (ppc403_cost): Likewise.
26159         (ppc405_cost): Likewise.
26160         (ppc440_cost): Likewise.
26161         (ppc476_cost): Likewise.
26162         (ppc601_cost): Likewise.
26163         (ppc603_cost): Likewise.
26164         (ppc604_cost): Likewise.
26165         (ppc604e_cost): Likewise.
26166         (ppc620_cost): Likewise.
26167         (ppc630_cost): Likewise.
26168         (ppccell_cost): Likewise.
26169         (ppc750_cost): Likewise.
26170         (ppc7450_cost): Likewise.
26171         (ppc8540_cost): Likewise.
26172         (ppce300c2c3_cost): Likewise.
26173         (ppce500mc_cost): Likewise.
26174         (ppce500mc64_cost): Likewise.
26175         (ppce5500_cost): Likewise.
26176         (ppce6500_cost): Likewise.
26177         (titan_cost): Likewise.
26178         (power4_cost): Likewise.
26179         (power6_cost): Likewise.
26180         (power7_cost): Likewise.
26181         (power8_cost): Likewise.
26182         (ppca2_cost): Likewise.
26183         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
26184
26185         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
26186         instead of XXLOR to copy SFmode to clear out dirty bits created
26187         when SFmode denormals are generated.
26188         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
26189         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
26190
26191 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
26192
26193         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
26194         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
26195         * config/aarch64/aarch64-tune.md: Regenerate.
26196
26197 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
26198
26199         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
26200         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
26201         * config/arm/arm-cores.def (exynos-m1): New core.
26202         * config/arm/arm-tune.md: Regenerate.
26203         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
26204         * config/arm/bpabi.h: Likewise.
26205
26206 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
26207
26208         * ipa-cp (set_single_call_flag): Remove too
26209         restrictive assert.
26210
26211 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
26212
26213         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
26214         GOMP_offload_unregister from the destructor.
26215
26216 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
26217
26218         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
26219         flags for instrumentation thunk.
26220         (chkp_produce_thunks): Likewise.
26221
26222 2015-04-05  Martin Liska  <mliska@suse.cz>
26223
26224         PR ipa/65665
26225         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
26226         has computed data structure.
26227         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26228
26229 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
26230
26231         * invoke.texi (inline-unit-growth): Increase growth to 20%
26232         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
26233
26234 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
26235
26236         PR target/65647
26237         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
26238         value checking.
26239         (lra_rematerialization_iter): New.
26240         * lra.c (lra): Initialize lra_rematerialization_iter.
26241         Stop updating lra_constraint_new_regno_start after switching of
26242         inheritance and rematerialization.
26243         * lra-remat.c (lra_rematerialization_iter): New.
26244         (lra_remat): Add printing pass iteration.  Do rematerialization
26245         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
26246
26247 2015-04-04  Richard Biener  <rguenther@suse.de>
26248
26249         PR tree-optimization/64909
26250         PR tree-optimization/65660
26251         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
26252         to take a cost vector for scalar iteration cost.
26253         (vect_get_single_scalar_iteration_cost): Likewise.
26254         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
26255         Compute the scalar iteration cost into a cost vector.
26256         (vect_get_known_peeling_cost): Use the scalar cost vector to
26257         account for the cost of the peeled iterations.
26258         (vect_estimate_min_profitable_iters): Likewise.
26259         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
26260         Likewise.
26261
26262 2015-04-04  Alan Modra  <amodra@gmail.com>
26263
26264         PR target/65576
26265         PR target/65240
26266         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
26267         0.0 constant unless TARGET_VSX.
26268         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
26269         alternative.
26270
26271 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26272
26273         PR ipa/65654
26274         * ipa-inline-transform.c (inline_call): Skip sanity check to work
26275         around the ICE
26276
26277 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26278
26279         PR ipa/65655
26280         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
26281         speculative indirect edges to avoid ordering issue.
26282
26283 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26284
26285         PR ipa/65076
26286         * ipa-inline.c (edge_badness): Add combined size to the denominator.
26287
26288 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
26289
26290         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
26291         TYPE_ARTIFICIAL on the .omp_data* types.
26292
26293 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26294
26295         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
26296         instrumentation thunks.
26297
26298 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26299
26300         * config/i386/i386.c (ix86_expand_call): Avoid nested
26301         PARALLEL in returned call value.
26302
26303 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26304
26305         * lto-cgraph.c (input_cgraph_1): Always link instrumented
26306         assembler name with original one.
26307
26308 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26309
26310         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
26311
26312 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26313
26314         Revert parts of r216820.
26315         * config/i386/i386.md (movqi_internal): Correct type calculation
26316         for alternatives 3 and 5.
26317
26318 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
26319
26320         PR preprocessor/61977
26321         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
26322         predefine __vector/__bool/__pixel macros nor context sensitive
26323         macros for CLK_ASM.
26324         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
26325
26326 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
26327
26328         * config/pa/pa.c (pa_output_move_double): Directly handle register
26329         indexed memory operand.  Simplify handling of scaled register indexed
26330         memory operands.
26331
26332 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26333
26334         PR driver/65444
26335         * config/i386/linux-common.h (MPX_SPEC): New.
26336         (CHKP_SPEC): Add MPX_SPEC.
26337         * doc/invoke.texi (-fcheck-pointer-boudns): Document
26338         possible issues with '-z bndplt' support in linker.
26339
26340 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26341
26342         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
26343         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
26344         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
26345         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
26346         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
26347
26348 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
26349
26350         * config/i386/sync.md (UNSPEC_MOVA): Remove.
26351         (atomic_load<mode>): Change operand 0 predicate to
26352         nonimmediate_operand and fix up the destination when needed.
26353         Use UNSPEC_LDA.
26354         (atomic_loaddi_fpu): Use UNSPEC_LDA.
26355         (atomic_store<mode>): Change operand 1 predicate to
26356         nonimmendate_operand and move the source to register when needed.
26357         Use UNSPEC_STA.
26358         (atomic_store<mode>_1): Use UNSPEC_STA.
26359         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
26360         Fix moves from memory operand.  Use UNSPEC_STA.
26361
26362 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26363
26364         * expmed.c (strict_volatile_bitfield_p): Check that the access will
26365         not cross a MODESIZE boundary.
26366         (store_bit_field, extract_bit_field): Added assertions in the
26367         strict volatile bitfields code path.
26368
26369 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
26370
26371         PR target/65624
26372         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
26373         Increase args array size by one to avoid buffer overflow.
26374
26375 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26376
26377         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26378         split_part.
26379         * ipa-inline.c (edge_badness): Add wrapper penalty.
26380         (sum_callers): Move up.
26381         (inline_small_functions): Set single_caller.
26382         * ipa-inline.h (inline_summary): Add single_caller.
26383         * ipa-split.c (split_function): Set split_part.
26384         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
26385         * cgraph.h (cgraph_node): Add split_part.
26386
26387 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
26388
26389         PR target/58945
26390         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
26391         Do not split operands 0 and operands 2 to halfmode.
26392         (atomic_compare_and_swap<mode>): Update for
26393         atomic_compare_and_swap<dwi>_doubleword changes.
26394
26395 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26396
26397         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
26398         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
26399         no caching is done.
26400
26401 2015-03-31  Martin Liska  <mliska@suse.cz>
26402
26403         PR ipa/65557
26404         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
26405         has already filled up function summary.
26406         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26407
26408 2015-03-31  Richard Biener  <rguenther@suse.de>
26409
26410         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
26411         of types.
26412
26413 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26414
26415         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
26416         nested functions.
26417         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
26418         (s390_asm_output_function_label): Adapt to new signature of
26419         s390_function_num_hotpatch_hw
26420         Optimise the code generating assembler output.
26421         Add comments to assembler file.
26422
26423 2015-03-31  Richard Biener  <rguenther@suse.de>
26424
26425         PR middle-end/65626
26426         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
26427         of the noreturn call so it is last and cleanup_control_flow_bb
26428         can do the CFG part.
26429
26430 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
26431
26432         PR target/65531
26433         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
26434         same_comdat_group for external symbols.
26435         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
26436         infinite same_comdat_group traversal loop.
26437
26438 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
26439
26440         PR plugins/61176
26441         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
26442         automatically to $headers.
26443
26444 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
26445
26446         PR ipa/65610
26447         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
26448         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
26449         function.
26450         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
26451         Use it.
26452         * ipa-prop.c (param_type_may_change_p): Likewise.
26453         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
26454         (remove_unused_scope_block_p): Add in_ctor_dtor_block
26455         argument.  Before inlining, preserve
26456         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
26457         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
26458         recursive calls.
26459         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
26460
26461 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26462
26463         PR ipa/65076
26464         * ipa-inline.c (edge_badness): Base denominator on callee's
26465         grwoth squared.
26466
26467 2015-03-27  Martin Jambor  <mjambor@suse.cz>
26468
26469         PR ipa/65478
26470         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
26471         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
26472         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
26473         node_calling_single_call.
26474         * ipa-cp.c (count_callers): New function.
26475         (set_single_call_flag): Likewise.
26476         (initialize_node_lattices): Count callers and set single_flag_call if
26477         necessary.
26478         (incorporate_penalties): New function.
26479         (good_cloning_opportunity_p): Use it, dump new flags.
26480         (propagate_constants_topo): Set node_within_scc flag if appropriate.
26481         * doc/invoke.texi (ipa-cp-recursion-penalty,
26482         ipa-cp-single-call-pentalty): Document.
26483
26484 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26485
26486         PR ipa/65588
26487         * symtab.c (symtab_node::get_partitioning_class): Register vars
26488         are duplicated.
26489         * varpool.c (symbol_table::output_variables) Do not assemble unefined
26490         decls for non-symbols.
26491
26492 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
26493
26494         PR target/65248
26495         * output.h (default_binds_local_p_2): New.
26496         * varasm.c (default_binds_local_p_2): Renamed to ...
26497         (default_binds_local_p_3): This.  Don't return true on protected
26498         data symbol if protected data may be external.
26499         (default_binds_local_p): Use default_binds_local_p_3.
26500         (default_binds_local_p_1): Likewise.
26501         (default_binds_local_p_2): New.
26502         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
26503         default_binds_local_p_2 if TARGET_MACHO is undefined.
26504
26505 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
26506
26507         PR target/65593
26508         * config/i386/i386.c (legitimize_pic_address): If base
26509         is SYMBOL_REF or LABEL_REF using %rip addressing, force
26510         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
26511
26512 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26513
26514         PR target/65531
26515         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
26516         comdat groups.
26517
26518 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26519
26520         PR ipa/65600
26521         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
26522         of optimized out indirect call.
26523         (redirect_to_unreachable): Always build symbol table node for
26524         BUILT_IN_UNREACHABLE
26525
26526 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
26527
26528         PR target/65407
26529         * ira-costs.c (record_reg_classes): Process all constraint string
26530         containing 0-9.
26531
26532 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
26533
26534         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
26535         memory_operand.
26536
26537         PR target/65052
26538         * config/c6x/constraints.md (S3): New constraint.
26539         * config/c6x/c6x.md (real_jump): Use it.
26540
26541 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26542
26543         PR middle-end/65595
26544         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
26545         do redirection if the call is not optimized out.
26546
26547 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
26548
26549         PR target/65495
26550         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
26551         (fchkp-check-incomplete-type): Add LTO.
26552         (fchkp-zero-input-bounds-for-main): Likewise.
26553         (fchkp-first-field-has-own-bounds): Likewise.
26554         (fchkp-narrow-bounds): Likewise.
26555         (fchkp-narrow-to-innermost-array): Likewise.
26556         (fchkp-use-static-bounds): Likewise.
26557         (fchkp-use-static-const-bounds): Likewise.
26558         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26559
26560 2015-03-27  Marek Polacek  <polacek@redhat.com>
26561
26562         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
26563
26564 2015-03-27  Marek Polacek  <polacek@redhat.com>
26565
26566         PR sanitizer/65583
26567         * ubsan.c (ubsan_create_edge): New function.
26568         (instrument_bool_enum_load): Call it.
26569         (instrument_nonnull_arg): Likewise.
26570         (instrument_nonnull_return): Likewise.
26571         (instrument_object_size): Likewise.
26572
26573 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26574
26575         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
26576         auto_vec.
26577
26578 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26579
26580         PR lto/65536
26581         * lto-streamer.h (class lto_location_cache): New.
26582         (struct data_in): Add location_cache.
26583         (lto_input_location): Update prototype.
26584         (stream_input_location_now): New.
26585         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
26586         pointer to location.
26587         (stream_input_location): Update.
26588         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
26589         (warn_odr): Apply location cache before warning.
26590         (lto_input_location): Update prototype.
26591         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
26592         Use stream_input_location_now.
26593         * lto-streamer-in.c (lto_location_cache::current_cache): New static
26594         variable.
26595         (lto_location_cache::cmp_loc): New function.
26596         (lto_location_cache::apply_location_cache): New function.
26597         (lto_location_cache::accept_location_cache): New function.
26598         (lto_location_cache::revert_location_cache): New function.
26599         (lto_location_cache::input_location): New function.
26600         (lto_input_location): Do location caching.
26601         (stream_input_location_now): New function.
26602         (input_eh_region, input_struct_function_base): Use
26603         stream_input_location_now.
26604         (lto_data_in_create): use new.
26605         (lto_data_in_delete): Use delete.
26606         * tree-streamer-in.c (unpack_ts_block_value_fields,
26607         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
26608         lto_input_ts_exp_tree_pointers): Update for cached location api.
26609
26610 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26611
26612         PR ipa/65076
26613         * passes.def: Add pass_nothrow.
26614         * ipa-pure-const.c: (pass_data_nothrow): New.
26615         (pass_nothrow): New.
26616         (pass_nothrow::execute): New.
26617         (make_pass_nothrow): New.
26618         * tree-pass.h (make_pass_nothrow): Declare.
26619
26620 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26621
26622         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
26623         edge to change by speculation resolution or redirection.
26624         (edge_set_predicate): Likewise.
26625         (inline_summary_t::duplicate): Likewise.
26626         (remap_edge_summaries): Likewise.
26627
26628 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26629
26630         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
26631         New macros.
26632         (can_inline_edge_p): Relax option matching for always inline functions.
26633
26634 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
26635
26636         PR target/65561
26637         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
26638         Check operand 4 and operand 0 for equality.
26639         (avx512f_vextract<shuffletype>32x4_1_maskm):
26640         Check operand 6 and operand 0 for equality.
26641         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
26642         for equality.
26643         (vec_extract_hi_<mode>_maskm): Ditto.
26644
26645 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26646
26647         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
26648         dead calls back to live.
26649         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
26650         cross check to ...
26651         (cgraph_node::verify_node): ... here; verify only callee edges,
26652         not caller.
26653         * cif-code.def (CILK_SPAWN): New code.
26654
26655 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26656
26657         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
26658         (edge_set_predicate): Use it to mark unreachable edges.
26659         (inline_summary_t::duplicate): Remove unnecesary code.
26660         (remap_edge_summaries): Likewise.
26661         (dump_inline_summary): Report contains_cilk_spawn.
26662         (compute_inline_parameters): Compute contains_cilk_spawn.
26663         (inline_read_section, inline_write_summary): Stream
26664         contains_cilk_spawn.
26665         * ipa-inline.c (can_inline_edge_p): Do not touch
26666         DECL_STRUCT_FUNCTION that may not be available;
26667         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
26668         remove check for callee_fun->can_throw_non_call_exceptions and
26669         replace it by optimization attribute check; check for flag_exceptions.
26670         * ipa-inline-transform.c (inline_call): Maintain
26671         DECL_FUNCTION_PERSONALITY
26672         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
26673
26674 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26675
26676         PR tree-optimization/65551
26677         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
26678         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
26679
26680 2015-03-26  Richard Biener  <rguenther@suse.de>
26681
26682         PR middle-end/65555
26683         * tree-cfg.c (verify_gimple_call): Do not require a call to
26684         have no LHS if it wasn't recognized as control altering yet.
26685
26686 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26687
26688         PR tree-optimization/64715
26689         * passes.def: Add another instance of pass_object_sizes before ccp1.
26690         * tree-object-size.c (pass_object_sizes::execute): In
26691         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
26692         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
26693         __bos result and the computed constant.  Remove redundant
26694         checks, obsoleted by gimple_call_builtin_p test.
26695
26696         * var-tracking.c (variable_tracking_main_1): Don't track
26697         variables for targetm.no_register_allocation targets.
26698
26699 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
26700
26701         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
26702         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
26703
26704 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26705
26706         PR target/65569
26707         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
26708         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
26709         0.0 is correctly setup.
26710         (extenddftf2_internal): Likewise.
26711
26712 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
26713
26714         PR tree-optimization/65177
26715         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
26716         (bb_in_bbs): New.
26717         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
26718         edges not adjacent on the path to the original code.
26719
26720 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
26721
26722         PR bootstrap/65537
26723         * doc/install.texi (Building a native compiler): Document new
26724         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
26725         configuration assumes that the host supports the linker plugin.
26726
26727 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
26728
26729         PR target/65508
26730         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
26731         chain for generated call.
26732
26733 2015-03-25  Richard Biener  <rguenther@suse.de>
26734
26735         * passes.c (pass_manager::execute_early_local_passes): Guard
26736         execution of pass_chkp_instrumentation_passes with
26737         flag_check_pointer_bounds.
26738         (pass_chkp_instrumentation_passes::gate): Likewise.
26739
26740 2015-03-25  Martin Liska  <mliska@suse.cz>
26741
26742         PR tree-optimization/65538
26743         * symbol-summary.h (function_summary::~function_summary):
26744         Relese memory for allocated summaries.
26745         (function_summary::release): New function.
26746
26747 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
26748
26749         PR lto/65515
26750         * lto-streamer-out.c (DFS::worklist): New struct.
26751         (DFS::worklist_vec): New data member.
26752         (DFS::next_dfs_num): Remove.
26753         (DFS::DFS): Rewritten using worklist instead of recursion,
26754         using most of code from DFS::DFS_write_tree.
26755         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
26756         pass it to DFS_write_tree calls.
26757         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
26758         quick initial checks push it into worklist_vec and return.
26759
26760 2015-03-25  Richard Biener  <rguenther@suse.de>
26761
26762         PR middle-end/65519
26763         * genmatch.c (expr::gen_transform): Re-write to avoid
26764         using gimple_build.
26765
26766 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26767
26768         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
26769
26770 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26771
26772         * config/arm/arm.opt (print_tune_info): New option.
26773         * config/arm/arm.c (arm_print_tune_info): New function.
26774         (arm_file_start): Call arm_print_tune_info.
26775         * config/arm/arm-protos.h (struct tune_params): Add comment.
26776         * doc/invoke.texi (@item -mprint-tune-info): New item.
26777         (-mtune): mention it in ARM Option Summary.
26778
26779 2015-03-25  DJ Delorie  <dj@redhat.com>
26780
26781         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
26782         correct clause.
26783
26784 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
26785             Martin Liska  <mliska@suse.cz>
26786
26787         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
26788         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
26789         (sem_item::add_type): New function.
26790         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
26791         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
26792         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
26793         (sem_function::equals_wpa): Fix typo.
26794         * ipa-icf.h (sem_item::add_type): New function.
26795         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
26796         order.
26797
26798 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
26799
26800         PR tree-optimization/65533
26801         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
26802         with swapped operands, call vect_free_slp_tree on
26803         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
26804         vector.
26805
26806 2015-03-24  Richard Biener  <rguenther@suse.de>
26807
26808         PR middle-end/65517
26809         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
26810         for fixup if necessary.
26811
26812 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
26813
26814         * doc/extend.texi (Function Attributes): Add @cindex entries
26815         for all attributes and regularize their format.  Delete text
26816         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
26817         information about "eightbit_data", "tiny_data", and "model"
26818         variable attributes to the Variable Attributes section.  Fix
26819         some obvious typos and copy-editing issues.
26820         (Variable Attributes, Type Attributes): Likewise add/fix
26821         @cindex entries for all attributes.
26822
26823 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26824
26825         PR target/65523
26826         * tree-chkp.c (chkp_build_returned_bound): Ignore
26827         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
26828
26829 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
26830
26831         PR target/65505
26832         * config/sh/predicates.md (simple_mem_operand,
26833         displacement_mem_operand): Add test for reg.
26834         (short_displacement_mem_operand): Test for displacement_mem_operand
26835         before invoking sh_disp_addr_displacement.
26836         * config/sh/constraints.md (Sdd, Sra): Simplify.
26837         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
26838         Remove redundant displacement_mem_operand tests.
26839
26840 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
26841
26842         PR target/65296
26843         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
26844         the same -mmcu=MCU more than once.
26845
26846 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26847
26848         PR bootstrap/65522
26849         * ipa-devirt.c: Remove duplicate demangle.h include.
26850
26851         PR target/65504
26852         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
26853         on the pseudo.
26854         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
26855         REG_POINTER on *destptr after adjusting it for prologue size.
26856
26857         PR ipa/65521
26858         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
26859         ultimate_alias_target ()->order ints instead of
26860         ultimate_alias_target () pointers.
26861
26862 2015-03-23  Richard Biener  <rguenther@suse.de>
26863
26864         PR tree-optimization/65518
26865         * tree-vect-stmts.c (vectorizable_load): Reject single-element
26866         interleaving cases we generate absymal code for.
26867
26868 2015-03-23  Richard Biener  <rguenther@suse.de>
26869
26870         PR tree-optimization/65494
26871         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
26872         matches here.
26873         (vect_analyze_slp_instance): But do that here, always and once.
26874
26875 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26876
26877         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
26878         adding T or multiplying by T+1 and subracting T.
26879
26880 2015-03-22  Jeff Law  <law@redhat.com>
26881
26882         PR rtl-optimization/64317
26883         * Makefile.in (OBJS): Add gcse-common.c
26884         * gcse.c: Include gcse-common.h
26885         (struct modify_pair_s): Move structure definition to gcse-common.h
26886         (compute_transp): Move function to gcse-common.c.
26887         (canon_list_insert): Similarly.
26888         (record_last_mem_set_info): Break out some code and put it into
26889         gcse-common.c.  Call into the new common code.
26890         (compute_local_properties): Pass additional arguments to compute_transp.
26891         * postreload-gcse.c: Include gcse-common.h and df.h
26892         (modify_mem_list_set, blocks_with_calls): New variables.
26893         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
26894         (get_bb_avail_insn): Pass in the expression index too.
26895         (alloc_mem): Allocate memory for the new bitmaps and lists.
26896         (free_mem): Free memory for the new bitmaps and lists.
26897         (insert_expr_in_table): Record a bitmap index for each entry we
26898         add to the table.
26899         (record_last_mem_set_info): Call into common code in gcse-common.c.
26900         (get_bb_avail_insn): If no available insn was found in the requested
26901         BB.  If BB has a single predecessor, see if the expression is
26902         transparent in BB and available in that single predecessor.
26903         (compute_expr_transp): New wrapper for compute_transp.
26904         (eliminate_partially_redundant_load): Pass expression's bitmap_index
26905         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
26906         (gcse_after_reload_main): If there are elements in the hash table,
26907         then compute transparency for all the elements in the hash table.
26908         * gcse-common.h: New file.
26909         * gcse-common.c: New file.
26910
26911 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
26912
26913         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
26914         as an adjective.
26915         (System Headers): Likewise.
26916         (Ifdef): Likewise.
26917         (Traditional macros): Likewise.
26918         (Invocation): Likewise.
26919         (Option Index): Likewise.
26920         * doc/cppopts.texi (-M): Likewise.
26921         (-finput-charset): Likewise.
26922         (--help): Likewise.
26923         * doc.invoke.texi (AVR Options): Likewise.
26924         (V850 Options): Likewise.
26925
26926 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
26927
26928         PR ipa/65475
26929         * ipa-devirt.c: Include demangle.h
26930         (odr_type_d): Add field rtti_broken.
26931         (odr_subtypes_equivalent_p): Do not require name to match.
26932         (compare_virtual_tables): Fix typo; if type already has ODR violation,
26933         bypass the tests; be ready for function referneces in vtables that are
26934         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
26935         (warn_odr): Give up for nameless types.
26936         (warn_types_mismatch): Report mismatch in mangled names;
26937         report mismatch in anonymous namespaces; look into component types to
26938         give useful error; report when mismatch is dragged in from other ODR
26939         type.
26940         (odr_types_equivalent_p): Match types for being polymorphic; avoid
26941         duplicated diagnostics.
26942         (add_type_duplicate): Reorder checks so more informative ones come
26943         first; fix typo; do not output "the extra base is defined here" when
26944         we did not warn.
26945         (BINFO_N_BASE_BINFOS): Relax sanity check.
26946
26947 2015-03-22  Martin Liska  <mliska@suse.cz>
26948             Jakub Jelinek  <jakub@redhat.com>
26949
26950         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
26951         masks that can potentially include a builtin.
26952         (ix86_add_new_builtins): Introduce fast filter for isa values
26953         that cannot trigger builtin inclusion.
26954
26955 2015-03-22  Martin Liska  <mliska@suse.cz>
26956
26957         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
26958         (sem_item::update_hash_by_local_refs): Likewise.
26959         (sem_variable::get_hash): Empty line is fixed.
26960         (sem_item_optimizer::execute): Include adding of hash references.
26961         (sem_item_optimizer::update_hash_by_addr_refs): New function.
26962         (sem_item_optimizer::build_hash_based_classes): Use local hash.
26963         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
26964         (sem_item::update_hash_by_local_refs): Likewise.
26965
26966 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26967
26968         PR ipa/65502
26969         * ipa-comdats.c (enqueue_references): Walk through thunks.
26970         (ipa_comdats): Likewise.
26971         (set_comdat_group_1): New function.
26972
26973 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26974
26975         PR ipa/65475
26976         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
26977         non-polymorphic
26978
26979 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26980             Gerald Pfeifer  <gerald@pfeifer.com>
26981
26982         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
26983
26984 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26985             Sandra Loosemore  <sandra@codesourcery.com>
26986
26987         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
26988         function parameter declaration.
26989         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
26990         Update arguments to nios2_adjust_call_address().
26991         (sibcall_internal): Rename from *sibcall.
26992         (sibcall_value_internal): Rename from *sibcall_value.
26993         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
26994         (nios2_large_got_address): Add target temp reg parameter.
26995         (nios2_got_address): Adjust call to nios2_large_got_address, add
26996         force_reg around it.
26997         (nios2_load_pic_address): Add target temp reg parameter, replace call
26998         to nios2_got_address with corresponding code.
26999         (nios2_legitimize_constant_address): Update call to
27000         nios2_load_pic_address.
27001         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
27002         to use temp reg for PIC loading purposes.
27003         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
27004         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
27005         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
27006
27007 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
27008
27009         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
27010         usage of "the @option{...}".
27011         (-Wopenmp-simd): Likewise.
27012         (-fsanitize-recover): Likewise.
27013         (-fsanitize-undefined-trap-on-error): Likewise.
27014         (-flto): Likewise.
27015         (tracer-dynamic-coverage-feedback): Likewise.
27016         (reorder-block-duplicate-feedback): Likewise.
27017         (loop-unroll-jam-size): Likewise.
27018         (-B): Likewise.
27019         (-I-): Likewise.
27020         (-mabs=legacy): Likewise.
27021         (-mupper-regs-df): Likewise.
27022         (-mupper-regs-sf): Likewise.
27023         (-mpointers-to-nested-functions): Likewise.
27024
27025 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
27026
27027         * doc/extend.texi (Cilk Plus Builtins): Add markup.
27028
27029 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
27030
27031         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
27032         additional index entries and cross-references.
27033         (-fchkp-check-incomplete-type): Likewise.
27034         (-fchkp-first-field-has-own-bounds): Likewise.
27035         (-fchkp-narrow-to-innermost-array): Likewise.
27036         (-fchkp-use-fast-string-functions): Likewise.
27037         (-fchkp-use-nochk-string-functions): Likewise.
27038         (-fchkp-use-static-const-bounds): Likewise.
27039         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
27040         (-fchkp-instrument-marked-only): Likewise.
27041         (-fchkp-use-wrappers): Likewise.
27042         (-static-libmpx): Likewise.
27043         (-static-libmpxwrappers): Likewise.
27044         * doc/extend.texi (bnd_legacy): Likewise.
27045         (bnd_instrument): Likewise.
27046         (bnd_variable_size): Likewise.
27047         (Pointer Bounds Checker builtins): Likewise.
27048
27049 2015-03-21  Tom de Vries  <tom@codesourcery.com>
27050
27051         PR tree-optimization/65458
27052         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
27053         * cgraph.h (cgraph_node): Add parallelized_function field.
27054         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
27055         (input_overwrite_node): Read parallelized_function field.
27056         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
27057         parallelized_function on cgraph_node for child_fn.
27058         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
27059         Remove include of gt-tree-parloops.h.
27060         (parallelized_functions): Remove static variable.
27061         (parallelized_function_p): Rewrite using parallelized_function field of
27062         cgraph_node.
27063         (create_loop_fn): Remove adding to parallelized_functions.
27064         * Makefile.in (GTFILES): Remove tree-parloops.c
27065
27066 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
27067
27068         PR rtl-optimization/64366
27069         * lra.c (lra_update_insn_regno_info): Consider regs in
27070         CALL_INSN_FUNCTION_USAGE memory.
27071
27072 2015-03-20  Richard Biener  <rguenther@suse.de>
27073
27074         PR middle-end/64715
27075         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
27076         for type comparison and gcc_checking_assert.
27077         (chrec_fold_plus_poly_poly): Likewise.
27078         (chrec_fold_multiply_poly_poly): Likewise.
27079         (chrec_convert_1): Likewise.
27080         * gimplify.c (gimplify_expr): Remove premature folding of
27081         &X + CST to &MEM[&X, CST].
27082
27083 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
27084
27085         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
27086         already is final.
27087         (ipa_inline): Recompute inline_failed codes.
27088         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
27089         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
27090         CIF_FINAL_ERROR.
27091
27092 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
27093
27094         PR rtl-optimization/60851
27095         * recog.c (constrain_operands): Accept a pseudo register before reload
27096         for LRA enabled targets.
27097
27098 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
27099
27100         PR target/65240
27101         * config/rs6000/predicates.md (easy_fp_constant): Remove special
27102         -ffast-math handling that kept non-0 constants live in the RTL
27103         until reload.  Remove logic testing the number of instructions it
27104         took to create a constant in a GPR that was never used, due to a
27105         test for soft-float earlier.
27106         (memory_fp_constant): Delete, no longer used.
27107
27108         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
27109         alternatives for loading non-0 constants into GPRs for hard
27110         floating point that is no longer needed due to changes in
27111         easy_fp_constant.  Add support for loading 0.0 into GPRs.
27112         (mov<mode>_hardfloat32): Likewise.
27113         (mov<mode>_hardfloat64): Likewise.
27114         (mov<mode>_64bit_dm): Likewise.
27115         (movtd_64bit_nodm): Likewise.
27116         (pre-reload move FP constant define_split): Delete define_split,
27117         since it is no longer used.
27118         (extenddftf2_internal): Remove GHF constraints that are not valid
27119         for extenddftf2.
27120
27121 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
27122
27123         PR rtl-optimization/63491
27124         * lra-constraints.c (check_and_process_move): Use src instead of
27125         sreg.  Remove some dead code.
27126
27127 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
27128
27129         PR ipa/65380
27130         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
27131         (sem_variable::merge): Likewise.
27132
27133 2015-03-19  Martin Liska  <mliska@suse.cz>
27134
27135         PR ipa/65465
27136         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
27137         all fields of cgraph_thunk_info.
27138
27139 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
27140
27141         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
27142         clone instrumented thunks.
27143
27144 2015-03-19  Richard Biener  <rguenther@suse.de>
27145
27146         Revert
27147         2015-03-10  Richard Biener  <rguenther@suse.de>
27148
27149         PR middle-end/63155
27150         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27151         * tree-ssa-coalesce.c: Include timevar.h.
27152         (attempt_coalesce): Handle graph being NULL.
27153         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27154         Split out abnormal coalescing to ...
27155         (perform_abnormal_coalescing): ... this function.
27156         (coalesce_ssa_name): Perform abnormal coalescing without computing
27157         live/conflict.
27158         (verify_ssa_coalescing_worker): New function.
27159         (verify_ssa_coalescing): Likewise.
27160
27161 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27162             Jakub Jelinek  <jakub@redhat.com>
27163
27164         PR sanitizer/65400
27165         * tsan.c (instrument_gimple): Clear tail call flag on
27166         calls.
27167
27168 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
27169
27170         PR sanitizer/65400
27171         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
27172         call in the return bb.
27173         (find_split_points): Add RETURN_BB argument, don't call
27174         find_return_bb.
27175         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
27176         if true append TSAN_FUNC_EXIT internal call after the call to
27177         the split off function.
27178         (execute_split_functions): Call find_return_bb here.
27179         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
27180         Adjust find_split_points and split_function calls.
27181
27182 2015-03-18  DJ Delorie  <dj@redhat.com>
27183
27184         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
27185         (iorqi3_virt): Likewise.
27186
27187 2015-03-18  Tom de Vries  <tom@codesourcery.com>
27188
27189         * tree-parloops.c (parallelize_loops): Make static.
27190         * tree-parloops.h (parallelize_loops): Remove extern declaration.
27191
27192 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
27193
27194         PR middle-end/64491
27195         Revert:
27196         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
27197
27198         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
27199         condition would be removed due to undefined behaviour.
27200
27201 2015-03-18  Martin Liska  <mliska@suse.cz>
27202
27203         PR ipa/65432
27204         * cgraph.c (cgraph_node::get_create): Remove unnecessary
27205         xstrdup_for_dump wrapper.
27206         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
27207         sem_item::name.
27208         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
27209         with xstrdup_for_dump.
27210         (sem_variable::equals): Likewise.
27211         (sem_item_optimizer::read_section): Use symtab_node::name instead of
27212         sem_item::name.
27213         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
27214         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
27215         symtab_node::asm_name with xstrdup_for_dump.
27216         (congruence_class::dump): Use symtab_node::name instead of
27217         sem_item::name.
27218         * ipa-icf.h (symtab_node::name): Remove.
27219         (symtab_node::asm_name): Likewise.
27220
27221 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
27222
27223         PR tree-optimization/65450
27224         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
27225         function.
27226         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
27227         it instead of duplicate_ssa_name_ptr_info.
27228
27229         PR target/65222
27230         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
27231
27232 2015-03-18  Richard Biener  <rguenther@suse.de>
27233
27234         * tree-data-ref.h (struct access_matrix): Remove.
27235         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
27236         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
27237         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
27238         (am_vector_index_for_loop): Likewise.
27239         (struct data_reference): Remove access_matrix member.
27240         (DR_ACCESS_MATRIX): Remove.
27241         (lambda_vector_new): Add comment.
27242         (lambda_matrix_new): Use XOBNEWVEC.
27243
27244 2015-03-18  Richard Biener  <rguenther@suse.de>
27245
27246         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
27247         (pass_ch::execute): Cleanup the CFG only if we did sth.
27248         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
27249
27250 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27251
27252         * expmed.c (synth_mult): Use std::swap instead of manually
27253         swapping algorithms.
27254
27255 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
27256
27257         PR target/65078
27258         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
27259
27260 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
27261
27262         PR target/65296
27263         * config/avr/avr.opt (-nodevicelib): New option.
27264         * doc/invoke.texi (AVR Options): Document it.
27265         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
27266         libgcc.a, libc.a, libm.a.
27267         * config/avr/specs.h: Same.
27268         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
27269         which don't (directly) depend on the device.  Print more help.
27270         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
27271         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
27272         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
27273         case of an error.
27274         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
27275         for specs file name.
27276         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
27277         * config/avr/avr-mcus.def: Adjust initializers and comments.
27278
27279 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
27280
27281         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
27282         DECL_ONE_ONLY to check if decl is one only.
27283         * ipa-split.c (consider_split): Limit splitt of one only functions.
27284
27285 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27286
27287         PR tree-optimization/65427
27288         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
27289         functions.
27290         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
27291
27292 2015-03-16  Marek Polacek  <polacek@redhat.com>
27293
27294         * cgraph.h (add_new_static_var): Remove declaration.
27295         * varpool.c (add_new_static_var): Remove function.
27296
27297 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27298
27299         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
27300         instead of vec<tree> * with vec_alloc and release for args.
27301         Adjust all users.
27302
27303         PR middle-end/65431
27304         * omp-low.c (delete_omp_context): Only splay_tree_delete
27305         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
27306         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
27307
27308 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
27309
27310         PR sanitizer/64820
27311         * cfgexpand.c (align_base): New function.
27312         (alloc_stack_frame_space): Call it.
27313         (expand_stack_vars): Align prev_frame to be sure
27314         data->asan_vec elements aligned properly.
27315
27316 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
27317
27318         PR middle-end/65409
27319         * expr.c (store_field): Do not do a direct block copy if the source is
27320         a PARALLEL with BLKmode.
27321
27322 2015-03-16  Tom de Vries  <tom@codesourcery.com>
27323
27324         PR middle-end/65414
27325         Revert:
27326         2015-03-12  Tom de Vries  <tom@codesourcery.com>
27327
27328         PR rtl-optimization/64895
27329         * lra-lives.c (check_pseudos_live_through_calls): Use
27330         actual_call_used_reg_set instead of call_used_reg_set, if available.
27331
27332 2015-03-16  Alan Modra  <amodra@gmail.com>
27333
27334         PR target/63150
27335         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
27336         Modify Z->r bswapdi splitter to use dest in place of scratch.
27337         In r->Z and Z->r bswapdi splitter rename word_high, word_low
27338         to word1, word2 and rearrange logic to suit.
27339         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
27340         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
27341         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
27342         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
27343         early clobber.
27344
27345 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
27346
27347         PR tree-optimization/65369
27348         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
27349         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
27350         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
27351
27352         PR tree-optimization/65418
27353         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
27354         are casts in the first PLUS_EXPR operand, ensure tbias and
27355         *totallowp are in the inner type.
27356
27357         PR rtl-optimization/65401
27358         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
27359         argument.  If true, adjust_address_nv of x with big-endian
27360         correction for the mode widening to GET_MODE (y).
27361         (make_field_assignment): Don't do MEM mode widening here.
27362         Use MEM_P instead of GET_CODE == MEM.
27363
27364 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
27365
27366         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
27367         the external decls.
27368
27369 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27370
27371         PR target/64600
27372         * config/arm/arm.c (arm_gen_constant, AND case): Use
27373         ARM_SIGN_EXTEND when constructing AND mask.
27374
27375 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27376
27377         * graph.c (print_graph_cfg): Make function names visible and append
27378         parenthesis to it.  Also make groups of basic blocks belonging to the
27379         same function visible.
27380
27381 2015-03-12  Richard Biener  <rguenther@suse.de>
27382
27383         PR middle-end/44563
27384         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
27385         to avoid quadratic behavior with inline expansion splitting blocks.
27386         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
27387         with the successor if the predecessor will be merged with it.
27388         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
27389         entry block with its successor.
27390
27391 2015-03-13  Richard Biener  <rguenther@suse.de>
27392
27393         PR middle-end/44563
27394         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
27395         (cleanup_tree_cfg_1): Do not call it.
27396         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
27397         (fixup_noreturn_call): Mark the stmt as control altering.
27398         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
27399         here.
27400         (pass_data_fixup_cfg): Produce a dump file.
27401         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
27402         (need_noreturn_fixup): New global.
27403         (pass_dominator::execute): Fixup queued noreturn calls.
27404         (optimize_stmt): Queue calls that became noreturn for fixup.
27405         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
27406         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
27407         (el_to_fixup): New global.
27408         (eliminate_dom_walker::before_dom_childre): Queue calls that
27409         became noreturn for fixup.
27410         (eliminate): Fixup queued noreturn calls.
27411         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
27412         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
27413         (substitute_and_fold_dom_walker::before_dom_children): Queue
27414         alls that became noreturn for fixup.
27415         (substitute_and_fold): Fixup queued noreturn calls.
27416
27417 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
27418
27419         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
27420         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
27421         are building; for methods check ODR type of class they belong to if
27422         they may lead to a polymorphic call.
27423         (sem_function::compare_polymorphic_p): Be bit smarter about testing
27424         when function may lead to a polymorphic call.
27425         (sem_function::compare_type_list): Remove.
27426         (sem_variable::equals): Update use of compatible_types_p.
27427         (sem_variable::parse_tree_refs): Remove.
27428         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
27429         cdtor.
27430         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
27431         matching here.
27432         (func_checker::compatible_polymorphic_types_p): Break out from ...
27433         (unc_checker::compatible_types_p): ... here.
27434         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
27435         Declare.
27436         (unc_checker::compatible_types_p): Update.
27437         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
27438         Remove.
27439
27440 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27441
27442         PR rtl-optimization/65235
27443         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
27444         When first element of vec_concat is const_int, calculate its size
27445         using second element.
27446
27447 2015-03-12  Richard Biener  <rguenther@suse.de>
27448
27449         PR middle-end/65270
27450         * fold-const.c (operand_equal_p): Fix ordering of resetting
27451         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
27452
27453 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27454
27455         * config/s390/s390.c (s390_reorg): Move code to output nops after label
27456         to s390_reorg ().
27457         (s390_asm_output_function_label): Likewise.
27458         * config/s390/s390.c (s390_asm_output_function_label):
27459         Fix function label alignment with -mhtopatch.
27460         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
27461         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
27462         ("nop_2_byte"): New define_insn.
27463         ("nop_4_byte"): Likewise.
27464         ("nop_6_byte"): Likewise.
27465         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
27466         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
27467
27468 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27469
27470         PR target/65103
27471         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
27472         register.
27473
27474 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27475
27476         PR target/65044
27477         * toplev.c (process_options): Restrict Pointer Bounds Checker
27478         usage with Address Sanitizer.
27479
27480 2015-03-12  Richard Biener  <rguenther@suse.de>
27481
27482         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
27483         to split on.
27484         * omp-low.c (expand_omp_taskreg): Split block before removing
27485         the stmt.
27486         (expand_omp_target): Likewise.
27487         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
27488         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
27489         stmt to split_block.
27490
27491 2015-03-12  Tom de Vries  <tom@codesourcery.com>
27492
27493         PR rtl-optimization/64895
27494         * lra-lives.c (check_pseudos_live_through_calls): Use
27495         actual_call_used_reg_set instead of call_used_reg_set, if available.
27496
27497 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27498
27499         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
27500         (cgraph_node::remove): Likewise.
27501         (cgraph_node::get_untransformed_body): Likewise.
27502         * varpool.c (varpool_node::remove): Likewise.
27503         (varpool_node::get_constructor): Add sanity check.
27504
27505 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
27506
27507         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
27508         old GCC versions.
27509         (-fabi-compat-version): Likewise.
27510         (-ffriend-injection): Likewise.
27511         (-Wdeclaration-after-statement): Likewise.
27512         (-fomit-frame-pointer): Likewise.
27513         (-ftree-coalesce-inlined-vars): Likewise.
27514         (-fvisibility=): Likewise.
27515         * doc/extend.texi (Typeof): Likewise.
27516         (Zero Length): Likewise.
27517         (Escaped Newlines): Likewise.
27518         (Compound Literals): Likewise.
27519         (Function Attributes): Likewise.
27520         (Label Attributes): Likewise.
27521         (Type Attributes): Likewise.
27522         (Function Names): Likewise.
27523         (Other Builtins): Likewise.
27524         (Function Specific Option Pragmas): Likewise.
27525         (C++ Interface): Likewise.
27526
27527 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
27528
27529         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
27530
27531 2015-03-11  Marek Polacek  <polacek@redhat.com>
27532
27533         PR tree-optimization/65388
27534         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
27535
27536 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27537
27538         PR target/65296
27539         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
27540         * configure: Regenerate.
27541         * config.in: Regenerate.
27542         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
27543         [-mn-flash]: Document it.
27544         [__AVR_ARCH__]: Document avrtiny.
27545
27546         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
27547         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
27548         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
27549
27550 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27551
27552         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
27553
27554 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
27555
27556         PR target/65242
27557         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
27558         allow reloads of PLUS in floating point/VSX registers.
27559
27560 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
27561
27562         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
27563         crypto_sha256_fast.
27564         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
27565
27566 2015-03-11  Richard Biener  <rguenther@suse.de>
27567
27568         PR tree-optimization/65310
27569         * tree-sra.c (build_ref_for_offset): Also preserve larger
27570         alignment.
27571
27572 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
27573
27574         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
27575
27576 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27577
27578         PR target/65368
27579         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
27580         new define_expand.
27581         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
27582
27583 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27584
27585         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
27586         (sem_function::equals_wpa): ... here.
27587
27588 2015-03-10  Marek Polacek  <polacek@redhat.com>
27589             Jakub Jelinek  <jakub@redhat.com>
27590
27591         PR sanitizer/65367
27592         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
27593         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
27594         separately.
27595
27596 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27597
27598         PR target/65286
27599         * config/rs6000/t-linux: For powerpc64* target set
27600         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
27601
27602 2015-03-10  Richard Biener  <rguenther@suse.de>
27603
27604         PR middle-end/44563
27605         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
27606         for redirect_all_calls.
27607
27608 2015-03-10  Marek Polacek  <polacek@redhat.com>
27609
27610         * gdbinit.in (pcfun): Define and document.
27611
27612 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
27613
27614         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
27615         of libgomp-plugin.h.
27616         (find_target_compiler): Support a case when the path to gcc is
27617         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
27618         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
27619         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
27620         libgomp-plugin.h.
27621         (main): Use GCC_INSTALL_NAME as target_driver_name.
27622         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
27623         define.
27624         (mkoffload.o): Remove obsolete include path and defines.
27625         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
27626
27627 2015-03-10  Richard Biener  <rguenther@suse.de>
27628
27629         PR middle-end/63155
27630         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27631         * tree-ssa-coalesce.c: Include timevar.h.
27632         (attempt_coalesce): Handle graph being NULL.
27633         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27634         Split out abnormal coalescing to ...
27635         (perform_abnormal_coalescing): ... this function.
27636         (coalesce_ssa_name): Perform abnormal coalescing without computing
27637         live/conflict.
27638         (verify_ssa_coalescing_worker): New function.
27639         (verify_ssa_coalescing): Likewise.
27640
27641 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27642
27643         PR target/65296
27644         * config.gcc (extra_options) [avr]: Remove.
27645         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
27646         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
27647         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
27648
27649         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
27650         (-mmcu=): Add Var and MissingArgError properties.
27651         (-march=): Remove.
27652         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
27653         * config/avr/t-multilib: Regenerate.
27654         * config/avr/specs.h: New file.
27655         * config/avr/driver-avr.c: New file.
27656         * config/avr/genopt.sh: Remove file.
27657         * config/avr/avr-tables.opt: Remove file.
27658         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
27659         * config/avr/avr-c.c: Same.
27660         * avr-arch.h: Same.
27661         (avr_current_device): Remove proto.
27662         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
27663         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
27664         (EXTRA_SPEC_FUNCTIONS): Define.
27665         (avr_devicespecs_file): New specs function proto.
27666         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
27667         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
27668         (avr_current_device): Remove definition and usage.
27669         (avr_set_core_architecture): New static function.
27670         (avr_option_override): Use it.
27671         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
27672         (mcu_name): New static array.
27673         (comparator, avr_archs_str, avr_mcus_str): New static functions.
27674         (avr_inform_devices, avr_inform_core_architectures): New functions.
27675         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
27676         (avrlibc.h) [WITH_AVRLIBC]: Include.
27677         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
27678         (print_mcu): Rewrite from scratch.
27679         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
27680         Forward to avr-specific specs defined in device-specs file.
27681         * config/avr/t-avr (driver-avr.o): New rule.
27682         (avr-devices.o): Depend on avr-arch.h.
27683         (avr-mcus): No more depend on avr-tables.opt.
27684         (avr-tables.opt): Remove rule.
27685         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
27686
27687 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27688
27689         * c-family/c.opt (fchkp-use-wrappers): New.
27690         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
27691         (chkp_wrap_function): New.
27692         (chkp_build_instrumented_fndecl): Support wrapped
27693         functions.
27694         * doc/invoke.texi (-fcheck-pointer-bounds): New.
27695         (-fchkp-check-incomplete-type): New.
27696         (-fchkp-first-field-has-own-bounds): New.
27697         (-fchkp-narrow-bounds): New.
27698         (-fchkp-narrow-to-innermost-array): New.
27699         (-fchkp-optimize): New.
27700         (-fchkp-use-fast-string-functions): New.
27701         (-fchkp-use-nochk-string-functions): New.
27702         (-fchkp-use-static-bounds): New.
27703         (-fchkp-use-static-const-bounds): New.
27704         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
27705         (-fchkp-check-read): New.
27706         (-fchkp-check-write): New.
27707         (-fchkp-store-bounds): New.
27708         (-fchkp-instrument-calls): New.
27709         (-fchkp-instrument-marked-only): New.
27710         (-fchkp-use-wrappers): New.
27711         (-static-libmpx): New.
27712         (-static-libmpxwrappers): New.
27713
27714 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27715
27716         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
27717         (CHKP_SPEC): Add wrappers library.
27718         * c-family/c.opt (static-libmpxwrappers): New.
27719
27720 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27721
27722         * config/i386/linux-common.h (LIBMPX_LIBS): New.
27723         (LIBMPX_SPEC): New.
27724         (CHKP_SPEC): New.
27725         * gcc.c (CHKP_SPEC): New.
27726         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
27727         * c-family/c.opt (static-libmpx): New.
27728
27729 2015-03-10  Richard Biener  <rguenther@suse.de>
27730
27731         PR middle-end/44563
27732         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
27733         for compare_type.
27734         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
27735         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
27736         (cgraph_add_edge_to_call_site_hash): Likewise.
27737         (cgraph_node::get_edge): Likewise.
27738         (cgraph_edge::set_call_stmt): Likewise.
27739         (cgraph_edge::remove_caller): Likewise.
27740
27741 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
27742
27743         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
27744         (callee_saved_gpr_regs_size): ... this.
27745         (callee_saved_regs_first_regno): Rename to ...
27746         (callee_saved_first_gpr_regno): ... this.
27747         (callee_saved_regs_last_regno) Rename to ...
27748         (callee_saved_last_gpr_regno): ... this.
27749         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
27750         variables.
27751         (nds32_initial_elimination_offset): Likewise.
27752         (nds32_expand_prologue): Likewise.
27753         (nds32_expand_epilogue): Likewise.
27754         (nds32_expand_prologue_v3push): Likewise.
27755         (nds32_expand_epilogue_v3pop): Likewise.
27756         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
27757         Adjust renamed variables.
27758         (nds32_output_stack_pop): Likewise.
27759
27760 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27761
27762         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
27763         code in comment.
27764
27765 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27766
27767         PR rtl-optimization/65321
27768         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
27769         than shift mode.
27770         * var-tracking.c (use_narrower_mode): Likewise.
27771
27772 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27773
27774         PR tree-optimization/65355
27775         * varasm.c (notice_global_symbol): Do not produce RTL.
27776         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
27777         anchor.
27778         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
27779         check for section anchors.
27780
27781 2015-03-10  Alan Modra  <amodra@gmail.com>
27782
27783         PR target/65286
27784         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
27785         to be single-arch by default.  Set cpu_is_64bit for powerpc64
27786         given --with-cpu=native.
27787         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
27788         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
27789         and powerpc64le.
27790         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
27791         rs6000_isa_flags rather than TARGET_64BIT.
27792
27793 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
27794             Kaz Kojima  <kkojima@gcc.gnu.org>
27795
27796         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
27797
27798 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
27799
27800         PR lto/65361
27801         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
27802         on a TREE_BINFO, instead use BINFO_TYPE.
27803
27804 2015-03-09  Richard Biener  <rguenther@suse.de>
27805
27806         PR middle-end/65270
27807         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
27808         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
27809         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
27810         of that.  When comparing dereferences compare alignment.
27811         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
27812
27813 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27814
27815         * ipa-inline-analysis.c (check_callers): Check
27816         node->can_remove_if_no_direct_calls_and_refs_p.
27817         (growth_likely_positive): Reorganize to call
27818         can_remove_if_no_direct_calls_p later.
27819         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
27820         will_be_removed_from_program_if_no_direct_calls_p): Add
27821         will_inline parameter.
27822         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
27823         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27824         Handle inliner case correctly.
27825
27826 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27827
27828         PR tree-optimization/63743
27829         * cfgexpand.c (reorder_operands): Also reorder if only second operand
27830         had its definition forwarded by TER.
27831
27832 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27833
27834         PR lto/65316
27835         * ipa-utils.h (types_odr_comparable): Add strict argument.
27836         * ipa-devirt.c: Fix whitespace;
27837         (odr_hasher): Remove.
27838         (odr_name_hasher, odr_vtable_hasher): New hashers.
27839         (can_be_name_hashed_p): New predicate.
27840         (hash_type_name): remove.
27841         (hash_odr_name): New.
27842         (odr_name_hasher::hash): new.
27843         (can_be_vtable_hashed_p): New.
27844         (hash_odr_vtable): New.
27845         (odr_vtable_hasher::hash): New.
27846         (types_same_for_odr): Add strict parameter.
27847         (types_odr_comparable): Likewise.
27848         (odr_name_hasher::equal): New.
27849         (odr_vtable_hasher::equal): New.
27850         (odr_name_hasher::remove): New.
27851         (odr_hash_type): Change to hash_table<odr_name_hasher>.
27852         (odr_vtable_hash_type): New.
27853         (odr_vtable_hash): New.
27854         (odr_subtypes_equivalent_p): Do strict comparsion.
27855         (add_type_duplicate): Merge type names; cleanup; avoid type
27856         duplicates.
27857         (register_odr_type): Initialize vtable hash.
27858         (build_type_inheritance_graph): Likewise
27859         (get_odr_type): Reorg to use two hashes.
27860         (dump_possible_polymorphic_call_targets): Move sanity check after debug
27861         output.
27862         (ipa_devirt): Dump type_inheritance_graph.
27863         (types_same_for_odr): Add strict mode.
27864
27865 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27866
27867         PR ipa/65334
27868         * cgraph.h (symtab_node): Add definition_alignment,
27869         can_increase_alignment_p and increase_alignment.
27870         * symtab.c (symtab_node::can_increase_alignment_p,
27871         increase_alignment_1, symtab_node::increase_alignment,
27872         symtab_node::definition_alignment): New.
27873         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
27874         can_increase_alignment_p.
27875         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
27876         * tree-vect-stmts.c (ensure_base_align): Likewise.
27877         * varasm.c (function_section_1): Use definition_alignment.
27878         (assemble_start_function): Likewise.
27879         (emit_local): likewise.
27880         (build_constant_desc): Likewsie.
27881         (output_constant_def_contents): Likewise.
27882         (place_block_symbol): Likewise.
27883         (output_object_block): Likewise.
27884
27885 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27886
27887         PR ipa/65316
27888         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
27889         when outputting debug.
27890
27891 2015-03-07  Marek Polacek  <polacek@redhat.com>
27892             Martin Uecker  <uecker@eecs.berkeley.edu>
27893
27894         PR sanitizer/65280
27895         * doc/invoke.texi: Update description of -fsanitize=bounds.
27896
27897 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
27898
27899         * tree-ssa-phiopt.c (neg_replacement): Remove.
27900         (tree_ssa_phiopt_worker): Remove negate optimization.
27901
27902 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27903
27904         PR ipa/65302
27905         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
27906
27907 2015-03-06  Richard Biener  <rguenther@suse.de>
27908
27909         PR middle-end/64928
27910         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
27911         and liveout_obstack members.
27912         (calculate_live_on_exit): Remove.
27913         (calculate_live_ranges): Change declaration.
27914         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
27915         (new_tree_live_info): Adjust.
27916         (calculate_live_ranges): Delete livein when not wanted.
27917         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
27918         Deal with partly deleted live info.
27919         (loe_visit_block): Remove temporary bitmap by using
27920         bitmap_ior_and_compl_into.
27921         (live_worklist): Adjust accordingly.
27922         (calculate_live_on_exit): Make static.
27923         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
27924         we do not need livein.
27925
27926 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
27927
27928         * real.c (real_from_string): Fix typo in assertion.
27929
27930 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
27931
27932         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
27933         the patch.
27934
27935 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27936
27937         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
27938
27939 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
27940
27941         PR target/64342
27942         * lra-assigns.c (find_hard_regno_for): Rename to
27943         find_hard_regno_for_1.  Add a new parameter.
27944         (find_hard_regno_for): New function using find_hard_regno_for_1.
27945
27946 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27947
27948         PR rtl-optimization/65067
27949         * expmed.c (store_bit_field, extract_bit_field): Reworked the
27950         strict volatile bitfield handling.
27951
27952 2015-03-05  Martin Liska  <mliska@suse.cz>
27953
27954         PR ipa/65318
27955         * ipa-icf.c (sem_variable::equals): Compare variables types.
27956
27957 2015-03-05  Richard Henderson  <rth@redhat.com>
27958
27959         PR target/65121
27960         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
27961         correctly check weak symbol binding.
27962
27963 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
27964
27965         PR middle-end/65315
27966         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
27967         needed alignment.
27968
27969 2015-03-05  Martin Liska  <mliska@suse.cz>
27970
27971         * ipa-inline.c (inline_small_functions): Set default value to
27972         prevent warning during bootstrap.
27973         * tree.h: Add pragma guard that ignores false positives during
27974         bootstrap.
27975
27976 2015-03-05  Richard Biener  <rguenther@suse.de>
27977
27978         PR tree-optimization/65310
27979         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
27980         Properly preserve alignment of the base of the access.
27981
27982 2015-03-05  Richard Biener  <rguenther@suse.de>
27983
27984         PR ipa/65270
27985         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
27986         Compare dependence info.
27987
27988 2015-03-05  Richard Biener  <rguenther@suse.de>
27989
27990         PR middle-end/65233
27991         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
27992         tree-into-ssa.h.
27993         (walk_ssa_copies): Revert last chage.  Instead do not walk
27994         SSA names registered for SSA update.
27995
27996 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27997
27998         PR ipa/65270
27999         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
28000         vtable references for their containing type.
28001         (sem_function::equals_wpa): Compare TYPE_RESTRICT
28002         and type attributes.
28003
28004 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
28005
28006         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
28007         before negating it.
28008         * stor-layout.c (finalize_record_size): Revert latest change.
28009
28010 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
28011
28012         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
28013
28014 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
28015
28016         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
28017         for correct comdat handling.
28018         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
28019         Likewise.
28020         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
28021         (used_from_object_file_p_worker): Remove.
28022         (cgraph_node::only_called_directly_or_alised): Add
28023         used_from_object_file_p.
28024         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
28025         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
28026         can_remove_if_no_direct_calls_and_refs_p.
28027
28028 2015-03-04  Nick Clifton  <nickc@redhat.com>
28029
28030         * config/rl78/rl78.h (enum reg_class): Remove real registers from
28031         General register class.
28032         * config/rl78/rl78-real.md: Replace general register constraints
28033         with real+virtual register constraints.
28034
28035 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
28036
28037         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
28038         from checking for -mhtm option.
28039
28040 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
28041
28042         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
28043         (struct ipa_sra_check_caller_data): Add has_thunk field.
28044         (ipa_sra_check_caller): Check for thunk.
28045         (ipa_sra_preliminary_function_checks): Give up on function with
28046         thunks.
28047         (ipa_early_sra): Use call_for_symbol_and_aliases.
28048
28049 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
28050
28051         PR target/65249
28052         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
28053         called for __stack_chk_guard symbol.
28054
28055 2015-03-03  DJ Delorie  <dj@redhat.com>
28056
28057         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
28058         inc/dec.
28059         (*addhi3_real): Likewise.
28060         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
28061         pattern to match incrementing memory.
28062         * config/rl78/predicates.md (rl78_1_2_operand): New.
28063         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
28064         it's the same and only mem.
28065         (rl78_alloc_physical_registers_op2): If there's effectively only
28066         one MEM, transcode it into HL.
28067         (rl78_far_p): Reject addresses that aren't legitimate.
28068
28069 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
28070
28071         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
28072         negating it.
28073
28074         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
28075
28076 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
28077
28078         Implement call0 ABI for xtensa
28079         * config/xtensa/constraints.md ("a" constraint): Include stack
28080         pointer in case of call0 ABI.
28081         ("q" constraint): Make empty in case of call0 ABI.
28082         ("D" constraint): Include stack pointer in case of call0 ABI.
28083         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
28084         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
28085         prototypes.
28086         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
28087         variable.
28088         (xtensa_regno_to_class): Make it a local variable in the
28089         function xtensa_regno_to_class.
28090         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
28091         macro, function prototype and implementation.
28092         (reg_nonleaf_alloc_order): Make it a local variable in the
28093         function order_regs_for_local_alloc.
28094         (xtensa_conditional_register_usage): New function.
28095         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
28096         (xtensa_valid_move): Allow direct moves to stack pointer
28097         register in call0 ABI.
28098         (xtensa_setup_frame_addresses): Only spill register windows in
28099         windowed ABI.
28100         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
28101         call0 ABI respectively.
28102         (xtensa_function_arg_1): Only mark a7 register for copying in
28103         windowed ABI.
28104         (xtensa_call_save_reg): New function.
28105         (compute_frame_size): Add space for callee saved register
28106         storage to the frame size in call0 ABI.
28107         (xtensa_expand_prologue): Generate code to set up stack frame
28108         and save callee-saved registers in call0 ABI.
28109         (xtensa_expand_epilogue): New function.
28110         (xtensa_set_return_address): New function.
28111         (xtensa_return_addr): Calculate return address in call0 ABI.
28112         (xtensa_builtin_saveregs): Only mark a7 register for copying and
28113         emit copying code in windowed ABI.
28114         (order_regs_for_local_alloc): Add preferred register allocation
28115         order for non-leaf function in call0 ABI.
28116         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
28117         (xtensa_asm_trampoline_template): Add trampoline generation for
28118         call0 ABI.
28119         (xtensa_trampoline_init): Add trampoline initialization for
28120         call0 ABI.
28121         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
28122         functions.
28123         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
28124         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
28125         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
28126         ABI call-used registers.
28127         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
28128         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
28129         call0 ABI.
28130         (REG_CLASS_CONTENTS): Include all registers into the preferred
28131         reload registers set, adjust the set in the
28132         xtensa_conditional_register_usage.
28133         (xtensa_regno_to_class): Drop variable declaration.
28134         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
28135         function.
28136         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
28137         respectively.
28138         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
28139         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
28140         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
28141         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
28142         location in call0 ABI.
28143         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
28144         stack adjustment size when handling exception.
28145         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
28146         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
28147         definitions.
28148         ("return" pattern): Generate ret.n/ret in call0 ABI.
28149         ("epilogue" pattern): Expand epilogue.
28150         ("nonlocal_goto" pattern): Use default in call0 ABI.
28151         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
28152         emit eh_set_a0_* depending on ABI.
28153         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
28154         ("eh_set_a0_call0", "blockage"): New patterns.
28155
28156 2015-03-03  Martin Liska  <mliska@suse.cz>
28157
28158         PR ipa/65287
28159         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
28160
28161 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
28162
28163         PR 65138/target
28164         * config/rs6000/rs6000-tables.opt: Regenerate table.
28165
28166 2015-03-03  Renlin Li  <renlin.li@arm.com>
28167
28168         * doc/md.texi (@item ^): Change ? into ^.
28169
28170 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
28171
28172         * doc/tm.texi: Regenerated.
28173
28174 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
28175
28176         * builtins.c (expand_builtin_return_addr): Add
28177         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
28178         surrounding #ifdef.
28179         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
28180         definition to 1.
28181         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
28182         Likewise.
28183         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
28184         undefined.
28185         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
28186         paragraph.
28187
28188 2015-03-03  Martin Jambor  <mjambor@suse.cz>
28189             Eric Botcazou  <ebotcazou@adacore.com>
28190
28191         * tree-sra.c (ipa_sra_check_caller_data): New type.
28192         (has_caller_p): Removed.
28193         (ipa_sra_check_caller): New function.
28194         (ipa_sra_preliminary_function_checks): Use it.
28195
28196 2015-03-03  Martin Liska  <mliska@suse.cz>
28197
28198         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
28199         instead of if branch.
28200
28201 2015-03-03  Martin Liska  <mliska@suse.cz>
28202
28203         PR ipa/65282
28204         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
28205
28206 2015-03-23  Jeff Law  <law@redhat.com>
28207
28208         PR tree-optimization/65241
28209         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
28210         hash table if INSERT is true.
28211
28212 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28213
28214         PR target/65296
28215         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
28216
28217 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28218
28219         PR target/64331
28220         * config/avr/avr.c (context.h, tree-pass.h): Include them.
28221         (avr_pass_data_recompute_notes): New static variable.
28222         (avr_pass_recompute_notes): New class.
28223         (avr_register_passes): New static function.
28224         (avr_option_override): Call it.
28225
28226 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28227
28228         Fix various problems with specs file generation.
28229
28230         PR target/65296
28231         * config.gcc (extra_gcc_objs) [avr]: Remove.
28232         * config/avr/driver-avr.c: Remove file.
28233         * config/avr/t-avr (driver-avr.o): Remove rule.
28234         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
28235         INCLUDES to build.  Depend on TM_H.
28236         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
28237         build warnings.  Fix non-matching types and non-existing %-codes.
28238         (tm.h): Include.
28239         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
28240         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
28241         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
28242         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
28243         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
28244         (LIBGCC_SPEC): Remove definitions.
28245
28246 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
28247
28248         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
28249         to create a register in testing mode.
28250
28251 2015-03-03  Martin Liska  <mliska@suse.cz>
28252             Jan Hubicka  <hubicka@ucw.cz>
28253
28254         PR ipa/65263
28255         * cgraph.c (cgraph_node::has_thunk_p): New function.
28256         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
28257         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
28258         (sem_function::merge): Assert is changed.
28259
28260 2015-03-03  Martin Liska  <mliska@suse.cz>
28261             Martin Jambor  <mjambor@suse.cz>
28262
28263         PR ipa/65087
28264         * ipa-icf.c (sem_item_optimizer::execute): Change function
28265         return value to boolean.
28266         (sem_item_optimizer::merge_classes): Likewise.
28267         (ipa_icf_driver): Return TODO_remove_functions in case there's
28268         a merge operation processed.
28269         * ipa-icf.h: Change function return value to boolean.
28270
28271 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28272
28273         PR 65138/target
28274         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
28275         processor type for 64-bit little endian PowerPC.
28276
28277         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
28278         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
28279         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
28280         printing built-in mask so it does not pass NULL pointers.
28281
28282         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
28283         -mcpu=powerpc64le.
28284
28285 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
28286
28287         PR target/58158
28288         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
28289         !ISA_HAS_FP_CONDMOVE.
28290
28291 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
28292
28293         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
28294         reload_completed.
28295
28296 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
28297
28298         * doc/invoke.texi (Options for Code Generation Conventions):
28299         Fix URL of DSO paper.
28300
28301 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28302
28303         PR ipa/65130
28304         * ipa-inline.c (check_callers): Looks for recursion.
28305         (inline_to_all_callers): Give up on uninlinable or recursive edges.
28306         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
28307         summary of inline clones.
28308         (do_estimate_growth_1): Fix recursion check.
28309
28310 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28311
28312         PR ipa/64988
28313         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
28314         comdat groups.
28315
28316 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28317             Aldy Hernandez  <aldyh@redhat.com>
28318
28319         PR lto/65276
28320         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
28321         when checking TYPE_BINFO.
28322
28323 2015-03-02  Richard Biener  <rguenther@suse.de>
28324
28325         PR ipa/65270
28326         * ipa-icf-gimple.c: Include builtins.h.
28327         (func_checker::compare_memory_operand): Compare base alignment.
28328
28329 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28330
28331         PR target/65184
28332         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
28333         are never passed by reference.
28334
28335 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28336
28337         PR target/65183
28338         * tree-chkp.c (chkp_check_lower): Don't check against
28339         zero bounds for already instrumented functions.
28340         (chkp_check_upper): Likewise.
28341         (chkp_fini): Clean pass local data to avoid wrong reusage.
28342
28343 2015-02-28  Martin Liska  <mliska@suse.cz>
28344             Jan Hubicka  <hubicka@ucw.cz>
28345
28346         * ipa-icf.c (sem_variable::equals): Improve debug output;
28347         get variable constructor.
28348         (sem_variable::parse): Do not filter out too early; give up on
28349         volatile and register vars.
28350         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
28351         variables.
28352         * ipa-icf.h (sem_variable::init): Do not set ctor.
28353         (sem_variable::ctor): Remove.
28354
28355 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
28356
28357         PR middle-end/65233
28358         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
28359
28360 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28361
28362         * ipa-icf.c: Include stor-layout.h
28363         (sem_function::compare_cgraph_references): Rename to ...
28364         (sem_item::compare_cgraph_references): ... this one.
28365         (sem_variable::equals_wpa): New function
28366         (sem_variable::equals): Do not check stuff already verified by
28367         equals_wpa.
28368         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
28369         * ipa-icf.h (sem_item): Add compare_cgraph_references.
28370         (sem_function): Remove compare_cgraph_references.
28371         (sem_variable): Turns equals_wpa into non-inline.
28372
28373 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28374
28375         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
28376         (sem_item::add_expr): New function.
28377         (sem_function::hash_stmt): Handle operands of most statements.
28378         (sem_variable::get_hash): Hash the actual constructor.
28379         * ipa-icf.h (sem_item): Add add_expr.
28380         (sem_function): Update prototype of hash_stmt
28381
28382 2015-02-28  Martin Liska  <mliska@suse.cz>
28383             Jan Hubicka  <hubicka@ucw.cz>
28384
28385         PR ipa/65245
28386         * ipa-icf-gimple.c (func_checker::compare_function_decl):
28387         Remove.
28388         (func_checker::compare_variable_decl): Skip symtab vars.
28389         (func_checker::compare_cst_or_decl): Update.
28390         * ipa-icf.c (sem_function::parse): Do not consider aliases.
28391         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
28392         use correct symtab predicates.
28393         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
28394         (sem_variable::parse):  Update comment.
28395         (sem_item_optimizer::build_graph): Consider ultimate aliases
28396         for references.
28397
28398 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28399
28400         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
28401         of OBJ_TYPE_REF.
28402
28403 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28404
28405         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
28406         (sem_variable::merge) Likewise.
28407
28408 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28409
28410         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
28411         target; also match flag_ipa_devirt.
28412
28413 2015-03-01  Martin Liska  <mliska@suse.cz>
28414             Jan Hubicka  <hubicka@ucw.cz>
28415
28416         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
28417         Validate variable alignment.
28418         * ipa-icf.c (sem_function::equals_private): Be more precise
28419         about non-common function attributes.
28420         (sem_variable::equals): Likewise.
28421
28422 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28423
28424         PR ipa/65237
28425         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
28426         across COMDAT group boundary.
28427
28428 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28429
28430         PR ipa/65232
28431         * ipa-icf.c (clear_decl_rtl): New function.
28432         (sem_function::merge): Clear RTL before forming alias.
28433         (sem_variable::merge): Clear RTL before forming alias.
28434
28435 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28436
28437         PR ipa/65236
28438         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
28439
28440 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
28441
28442         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
28443         to neon_to_gp<q>.
28444
28445 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28446
28447         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
28448         a typo in the description.
28449
28450 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28451
28452         PR target/64317
28453         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28454         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28455         * lra-constraints.c: Include "params.h".
28456         (EBB_PROBABILITY_CUTOFF): Use
28457         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
28458         (lra_inheritance): Use '<' instead of '<=' for
28459         EBB_PROBABILITY_CUTOFF.
28460         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
28461         Document change.
28462
28463 2015-02-27  Martin Liska  <mliska@suse.cz>
28464
28465         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
28466         vector length condition.
28467
28468 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
28469
28470         * doc/extend.texi (x86 transactional memory intrinsics):
28471         Reorganize discussion of _xbegin.  Clarify that the return
28472         value is a bit mask.  Expand example and move to end of section.
28473
28474 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28475             Aldy Hernandez  <aldyh@redhat.com>
28476
28477         PR rtl-optimization/65220
28478         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
28479
28480 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28481
28482         PR target/65032
28483         * lra-remat.c (update_scratch_ops): New.
28484         (do_remat): Call it.
28485         * lra.c (lra_register_new_scratch_op): New. Take code from ...
28486         (remove_scratches): ... here.
28487         * lra-int.h (lra_register_new_scratch_op): New prototype.
28488
28489 2015-02-27  Marek Polacek  <polacek@redhat.com>
28490
28491         PR c/65040
28492         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
28493         -Wformat-signedness anymore.
28494
28495 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28496
28497         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
28498         function.
28499         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
28500
28501 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28502
28503         * config/s390/s390.c (enum s390_builtin):
28504         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
28505         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
28506         (s390_init_builtins): Generate new builtin functions.
28507         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
28508         (s390_sfpc, s390_efpc): New pattern definitions.
28509
28510 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28511
28512         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
28513         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
28514         (s390_builtin_decls): New array.
28515         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
28516         (s390_builtin_decl): New function.
28517         (TARGET_BUILTIN_DECL): Define macro.
28518
28519 2015-02-27  Richard Biener  <rguenther@suse.de>
28520
28521         PR middle-end/63175
28522         * builtins.c (get_object_alignment_2): Make sure to re-apply
28523         the ANDed mask after recursing to its operand gets us a new
28524         misalignment bit position.
28525
28526 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
28527             Martin Liska  <mliska@suse.cz>
28528
28529         PR bootstrap/65150
28530         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
28531         Use address_matters_p.
28532         (redirect_all_callers, set_addressable): New functions.
28533         (sem_function::merge): Reorganize and fix merging issues.
28534         (sem_variable::merge): Likewise.
28535         (sem_variable::compare_sections): Remove.
28536         * common.opt (fmerge-all-constants, fmerge-constants): Remove
28537         Optimization flag.
28538         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
28539         redirect them.
28540         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
28541         decl is used.
28542         (address_matters_1): New function.
28543         (symtab_node::address_matters_p): New function.
28544         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
28545         check for merged flag.
28546         * cgraph.h (address_matters_p): Declare.
28547         (symtab_node::address_taken_from_non_vtable_p): Remove.
28548         (symtab_node::address_can_be_compared_p): New method.
28549         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
28550         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
28551         Remove.
28552         (comdat_can_be_unshared_p_1) Use address_matters_p.
28553         (update_vtable_references): Fix formating.
28554         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
28555         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
28556         * cgraphclones.c: Preserve merged and icf_merged flags.
28557
28558 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
28559
28560         * doc/extend.texi (Function Attributes): Fix spelling and typos.
28561         (Label Attributes): Likewise.
28562         (Cilk Plus Builtins): Likewise.
28563         (ARC SIMD Built-in Functions): Likewise.
28564         (ARM C Language Extensions (ACLE)): Likewise.
28565         (PowerPC Built-in Functions): Likewise.
28566         (PowerPC Hardware Transactional Memory Built-in Functions):
28567         Likewise.
28568
28569 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28570
28571         PR tree-optimization/65216
28572         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
28573         new stmt and new SSA_NAME for lhs whenever the arguments have
28574         changed and weren't just swapped.  Fix comment typo.
28575
28576         PR tree-optimization/65215
28577         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
28578         for PDP endian targets.
28579         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
28580         Fix up formatting issues.
28581         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
28582         size is smaller than the original, adjust MEM_REF offset by the
28583         difference of sizes.  Use is_gimple_mem_ref_addr instead of
28584         is_gimple_min_invariant test to avoid adding address temporaries.
28585
28586 2015-02-26  Martin Liska  <mliska@suse.cz>
28587             Jan Hubicka  <hubicka@ucw.cz>
28588
28589         PR ipa/64693
28590         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
28591         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
28592         (sem_item_optimizer::process_cong_reduction): Include division by
28593         sensitive references.
28594         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
28595         * ipa-ref.c (ipa_ref::address_matters_p): New function.
28596         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
28597
28598 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
28599
28600         PR target/65192
28601         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
28602         Remove.
28603         * config/avr/avr.c: Same.
28604         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
28605         Refuse any constant address not in 0..0xbf.
28606         * config/avr/avr.md (*mov<mode>, *movsf): Remove
28607         tiny_valid_direct_memory_access_range from insn conditions.
28608         (mov<mode>): Don't special-case expansion of avrtiny addresses.
28609
28610 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
28611
28612         PR target/61142
28613         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
28614         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
28615         * config/sh/predicates.md (const_logical_operand): New predicate.
28616         * config/sh/sh.md: Add new peephole2 patterns.
28617
28618 2015-02-26  Marek Polacek  <polacek@redhat.com>
28619
28620         PR ipa/65008
28621         * ipa-inline.c (early_inliner): Recompute inline parameters.
28622
28623 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28624
28625         PR target/65171
28626         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
28627         instructions with TImode operands are included in the analysis.
28628
28629 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28630
28631         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
28632         of an EDGE_FSM_THREAD.
28633
28634 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
28635
28636         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
28637
28638 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
28639
28640         PR debug/46102
28641         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
28642
28643 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28644
28645         PR tree-optimization/65048
28646         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
28647         (thread_through_all_blocks): Call valid_jump_thread_path.
28648         Remove invalid FSM jump-thread paths.
28649
28650 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28651
28652         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
28653         (ipa_write_optimization_summaries): Likewise.
28654         * tree-streamer.h: Include data-streamer.h.
28655         (streamer_mode_table): Declare extern variable.
28656         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
28657         * lto-streamer-out.c (lto_output_init_mode_table,
28658         lto_write_mode_table): New functions.
28659         (produce_asm_for_decls): Call lto_write_mode_table when streaming
28660         offloading LTO.
28661         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
28662         (lto_create_simple_input_block): Add mode_table argument to the
28663         lto_input_block constructors.
28664         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
28665         Likewise.
28666         * data-streamer-in.c (string_for_index): Likewise.
28667         * ipa-inline-analysis.c (inline_read_section): Likewise.
28668         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
28669         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28670         * lto-streamer-in.c (lto_read_body_or_constructor,
28671         lto_input_toplevel_asms): Likewise.
28672         (lto_input_mode_table): New function.
28673         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
28674         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
28675         Use bp_pack_machine_mode.
28676         * real.h (struct real_format): Add name field.
28677         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
28678         (class lto_input_block): Add mode_table member.
28679         (lto_input_block::lto_input_block): Add mode_table_ argument,
28680         initialize mode_table.
28681         (struct lto_file_decl_data): Add mode_table field.
28682         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
28683         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
28684         unpack_ts_decl_common_value_fields,
28685         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
28686         * tree-streamer.c (streamer_mode_table): New variable.
28687         * real.c (ieee_single_format, mips_single_format,
28688         motorola_single_format, spu_single_format, ieee_double_format,
28689         mips_double_format, motorola_double_format,
28690         ieee_extended_motorola_format, ieee_extended_intel_96_format,
28691         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
28692         ibm_extended_format, mips_extended_format, ieee_quad_format,
28693         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
28694         decimal_single_format, decimal_double_format, decimal_quad_format,
28695         ieee_half_format, arm_half_format, real_internal_format): Add name
28696         field.
28697         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
28698
28699 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
28700
28701         PR target/65161
28702         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
28703         reordering for selective scheduling.
28704
28705 2015-02-26  Terry Guo  <terry.guo@arm.com>
28706
28707         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
28708         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
28709         (arm_arch_no_volatile_ce): Declare new global variable.
28710         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
28711         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
28712         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
28713         (TARGET_NO_VOLATILE_CE): New macro.
28714         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
28715         volatile memory access in IT block
28716
28717 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28718
28719         PR tree-optimization/61917
28720         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
28721         that reduc_def_stmt is null.
28722
28723 2015-02-25  Martin Liska  <mliska@suse.cz>
28724
28725         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
28726         hard register variables.
28727
28728 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28729
28730         PR target/64212
28731         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
28732         (symtab::noninterposable_alias): Likewise.
28733
28734 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
28735
28736         PR target/65167
28737         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
28738         bounds registers.
28739         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
28740
28741 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
28742
28743         PR target/64997
28744         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
28745         as split condition; force split via '#' in output pattern.
28746
28747 2015-02-25  Richard Biener  <rguenther@suse.de>
28748             Kai Tietz  <ktietz@redhat.com>
28749
28750         PR tree-optimization/61917
28751         * tree-vect-loop.c (vectorizable_reduction): Allow
28752         vect_internal_def without reduction to exit graceful.
28753
28754 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28755
28756         PR target/65196
28757         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
28758         only with NONDEBUG_INSN_P.
28759
28760 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28761
28762         Use variadic macros with avr-log.c.
28763
28764         * config/avr/avr-protos.h (avr_vdump): New prototype.
28765         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
28766         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
28767         * config/avr/avr-log.c: Adjust comments.
28768         (avr_vdump): New function.
28769         (avr_vadump): Pass caller as 2nd argument instead of format string.
28770         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
28771         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
28772
28773 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
28774
28775         PR lto/64374
28776         * target.def (target_option_stream_in): New target hook.
28777         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
28778         targetm.target_option.post_stream_in if non-NULL.
28779         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
28780         * doc/tm.texi: Updated.
28781         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
28782         function.
28783         (TARGET_OPTION_POST_STREAM_IN): Redefine.
28784
28785 2015-02-24  Jeff Law  <law@redhat.com>
28786
28787         PR target/65117
28788         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
28789         of operand 0 and operand 2.
28790         (zero_cost_loop_end, loop_end): Similarly.
28791
28792 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
28793
28794         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
28795         CXX_MEM_STAT_INFO.
28796
28797 2015-02-24  DJ Delorie  <dj@redhat.com>
28798
28799         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
28800         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
28801         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
28802         instead of hardcoding SImode.
28803
28804 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
28805
28806         * omp-low.c (create_omp_child_function): Tag entrypoint
28807         functions with a special attribute.
28808
28809 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
28810
28811         PR target/65058
28812         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
28813
28814 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
28815
28816         PR rtl-optimization/65123
28817         * lra-remat.c (operand_to_remat): Check hard regs in insn
28818         definition too.
28819
28820 2015-02-24  Nick Clifton  <nickc@redhat.com>
28821
28822         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
28823         to the assembler.
28824
28825 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
28826
28827         PR libgomp/64625
28828         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
28829         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
28830         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
28831         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
28832         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
28833         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
28834         (BUILT_IN_GOACC_PARALLEL): Specify as
28835         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
28836         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
28837         * builtin-types.def
28838         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28839         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28840         Remove function types.
28841         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
28842         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28843         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28844         New function types.
28845
28846 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
28847
28848         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
28849
28850 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
28851
28852         PR tree-optimization/65170
28853         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
28854         if val[1] < 0, clear also val[2] and return 3.
28855
28856 2015-02-24  Alan Modra  <amodra@gmail.com>
28857
28858         PR target/65172
28859         * config/rs6000/rs6000.c (get_memref_parts): Only return true
28860         when *base is a reg.  Handle nested plus addresses.  Simplify
28861         pre_modify test.
28862
28863 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
28864
28865         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
28866         use natural alignment when optimizing for size.
28867
28868 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
28869
28870         PR target/65153
28871         * config/sh/sh.md (movsicc_true+3): Remove peephole.
28872         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
28873         * config/sh/sh.c (replace_n_hard_rtx): Remove.
28874
28875 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
28876
28877         PR fortran/63427
28878         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
28879         too big for a wide_int.  Implement missing wrapping operation.
28880
28881 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
28882
28883         PR target/65163
28884         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
28885         instead of const_int 4294901760.
28886
28887 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
28888
28889         * config/avr/t-avr: Fix typo in comment.
28890
28891 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
28892
28893         * doc/rtl.texi (fma): Clarify documentation.
28894
28895 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
28896
28897         PR debug/58123
28898         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
28899         over input_location.
28900
28901 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28902
28903         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
28904         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
28905         restrict alignments to absolute_biggest_alignment.
28906         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
28907         Define.
28908         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
28909         * doc/tm.texi: Regenerate.
28910         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
28911
28912 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
28913
28914         PR target/64172
28915         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
28916
28917 2015-02-20  Richard Biener  <rguenther@suse.de>
28918
28919         PR tree-optimization/65136
28920         * tree-ssa-propagate.c: Include cfgloop.h.
28921         (replace_phi_args_in): Avoid replacing loop latch edge PHI
28922         arguments with constants.
28923
28924 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
28925             Martin Liska  <mliska@suse.cz>
28926
28927         PR target/63892
28928         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
28929         don't try to create_thunk if stdarg_p.  If
28930         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
28931         redirect_callers if possible.
28932         (sem_item_optimizer::execute): Call unregister_hooks here...
28933         (ipa_icf_driver): ... instead of here.
28934
28935 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28936
28937         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
28938         Mark operand 0 as earlyclobber in 2nd alternative.
28939         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
28940         Write negated shift amount into QI lowpart operand 0 and use it
28941         in the shift step.
28942         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
28943
28944 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28945
28946         * cgraph.h (clone_function_name_1): Declare.
28947         * cgraphclones.c (clone_function_name_1): New function.
28948         (clone_function_name): Use it.
28949         * lto-partition.c: Include "stringpool.h".
28950         (must_not_rename, maybe_rewrite_identifier)
28951         (validize_symbol_for_target): New static functions.
28952         (privatize_symbol_name): Use must_not_rename.
28953         (promote_symbol): Call validize_symbol_for_target.
28954         (lto_promote_cross_file_statics): Likewise.
28955         (lto_promote_statics_nonwpa): Likewise.
28956
28957 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
28958
28959         PR target/64452
28960         * config/avr/avr.md (pushhi_insn): New insn.
28961         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
28962
28963 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28964             Jakub Jelinek  <jakub@redhat.com>
28965
28966         * tree-streamer.c (preload_common_nodes): Don't preload
28967         TI_VA_LIST* for offloading.
28968         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
28969         in_lto_p.
28970
28971 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
28972
28973         * config/pa/pa.c (pa_emit_move_sequence): Always force
28974         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
28975         note on insn.
28976
28977         * config/pa/pa.c (pa_reloc_rw_mask): New function.
28978         (TARGET_ASM_RELOC_RW_MASK): Define.
28979         (pa_cannot_force_const_mem): Revert previous change.
28980
28981 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
28982             Jan Hubicka  <hubicka@ucw.cz>
28983
28984         PR ipa/65028
28985         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
28986         across jump functions.
28987
28988 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
28989
28990         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
28991
28992 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
28993
28994         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
28995
28996 2015-02-19  Richard Henderson  <rth@redhat.com>
28997
28998         PR middle-end/65074
28999         * varasm.c (default_binds_local_p_2): Don't test node->definition;
29000         test DECL_EXTERNAL independent of symtab_node.
29001
29002 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
29003
29004         PR lto/65012
29005         * varpool.c (varpool_node::get_constructor): Return early
29006         if this->lto_file_data is NULL.
29007
29008 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
29009
29010         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
29011         (rank_for_schedule_debug): Update.
29012         (ready_sort): Make static.  Move sorting logic to ...
29013         (ready_sort_debug, ready_sort_real): New static functions.
29014         (schedule_block): Sort both debug insns and real insns in preparation
29015         for ready list trimming.  Improve debug output.
29016         * sched-int.h (ready_sort): Remove global declaration.
29017
29018 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
29019
29020         * ipa-icf.c (sem_function::equals_private): Adjust.
29021         (sem_function::bb_dict_test): Take a vec<int> * instead of
29022         auto_vec<int>.
29023         * ipa-icf.h (bb_dict_test): Likewise.
29024
29025 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
29026
29027         PR gcov-profile/64634
29028         * tree-eh.c (frob_into_branch_around): Fix up typos
29029         in function comment.
29030         (lower_catch): Put eh_seq resulting from EH lowering of
29031         the cleanup sequence after the cleanup rather than before it.
29032
29033 2015-02-18  Tom de Vries  <tom@codesourcery.com>
29034
29035         * common.opt (fstdarg-opt): New option.
29036         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
29037         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
29038         (@item -fstdarg-opt): New item.
29039
29040 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
29041
29042         PR target/65064
29043         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
29044         for common symbols.
29045
29046 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
29047
29048         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
29049         insn-modes.h.
29050         (ALL_HOST_OBJS): Add mkoffload.o.
29051         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
29052
29053 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
29054
29055         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
29056         (compare_virtual_tables): Be smarter about skipping typeinfos;
29057         do sane output on virtual table table mismatch.
29058         (warn_odr): Be ready for forward declarations of enums;
29059         output sane info on base mismatch and virtual table mismatch.
29060         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
29061         when only one type is polymorphic.
29062         (get_odr_type): Fix hashtable corruption.
29063         (dump_odr_type): Dump mangled names.
29064
29065 2015-02-18  Richard Biener  <rguenther@suse.de>
29066
29067         PR tree-optimization/65063
29068         * tree-predcom.c (determine_unroll_factor): Return 1 if we
29069         have replaced looparound PHIs.
29070
29071 2015-02-18  Martin Liska  <mliska@suse.cz>
29072
29073         * lto-streamer.c (lto_streamer_init): Encapsulate
29074         streamer_check_handled_ts_structures with checking macro.
29075
29076 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
29077
29078         PR ipa/65087
29079         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
29080         section if !implicit_section.
29081         (cgraph_node::create_version_clone_with_body): Likewise.
29082         * trans-mem.c (ipa_tm_create_version): Likewise.
29083
29084 2015-02-18  Richard Biener  <rguenther@suse.de>
29085
29086         PR tree-optimization/62217
29087         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
29088         into BIVs.
29089
29090 2015-02-18  Marek Polacek  <polacek@redhat.com>
29091
29092         PR sanitizer/65081
29093         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
29094         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
29095         is in range [-16K, -1].  Don't issue run-time error if
29096         (ptr > ptr + offset).
29097
29098 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
29099
29100         * doc/install.texi (nvptx-*-none): New section.
29101         * doc/invoke.texi (Nvidia PTX Options): Likewise.
29102         * config/nvptx/nvptx.opt: Update.
29103
29104         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
29105         (access_check): New functions, copied from
29106         config/i386/intelmic-mkoffload.c.
29107         (main): For non-installed testing, look in all COMPILER_PATHs for
29108         GCC_INSTALL_NAME.
29109
29110         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
29111
29112 2015-02-18  Andrew Pinski  <apinski@cavium.com>
29113             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
29114
29115         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
29116         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
29117
29118 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
29119
29120         * ipa-visibility.c (function_and_variable_visibility): Only
29121         check locality if node is not already local.
29122         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
29123         call_for_symbol_and_aliases instead of
29124         call_for_symbol_thunks_and_aliases.
29125         (ipa_inline): Likewise.
29126         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
29127         first walk aliases.
29128         * ipa.c (symbol_table::remove_unreachable_nodes): Use
29129         call_for_symbol_and_aliases.
29130         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
29131         (ipa_propagate_frequency_1): Use it; use opt_for_fn
29132         (ipa_propagate_frequency): Update.
29133         (ipa_profile): Add opt_for_fn gueards.
29134
29135 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
29136
29137         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
29138         * doc/invoke.texi (SH options): Document it.
29139         * config/sh/sh.c (sh_insn_length_adjustment): Check
29140         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
29141
29142 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
29143
29144         * common.opt (fipa-cp-alignment): New.
29145         * ipa-cp.c (ipcp_store_alignment_results): Check
29146         flag_ipa_cp_alignment.
29147         * opts.c (default_options_table): Enable -fipa-cp-alignment for
29148         -O2.
29149         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
29150         * doc/invoke.texi: Document -fipa-cp-alignment.
29151
29152 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
29153
29154         PR target/64793
29155         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
29156         to nil.  Adjust comments.
29157
29158 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
29159
29160         * ipa-visibility.c (function_and_variable_visibility): Only
29161         check locality if node is not already local.
29162         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
29163         call_for_symbol_and_aliases instead of
29164         call_for_symbol_thunks_and_aliases.
29165         (ipa_inline): Likewise.
29166         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
29167         first walk aliases.
29168         * ipa.c (symbol_table::remove_unreachable_nodes): Use
29169         call_for_symbol_and_aliases.
29170         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
29171         (ipa_propagate_frequency_1): Use it; use opt_for_fn
29172         (ipa_propagate_frequency): Update.
29173         (ipa_profile): Add opt_for_fn guards.
29174
29175 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
29176
29177         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
29178         skipping of "strange" tokens.
29179
29180 2015-02-17  Jeff Law  <law@redhat.com>
29181
29182         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
29183         obsolete comment.
29184
29185 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
29186
29187         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
29188         as forcing a HARD_DEP between instructions, thereby
29189         disallowing rewriting to break dependencies.
29190
29191 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
29192
29193         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
29194         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
29195         variables in boundary that have no inlitalizer encoded and are
29196         not aliases.
29197         * varasm.c (default_binds_local_p_2): External definitions do not
29198         count as definitions here.
29199
29200 2015-02-16  Jeff Law  <law@redhat.com>
29201
29202         PR tree-optimization/64823
29203         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
29204         statements.
29205         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29206         threading through blocks with PHIs, but no statements.
29207         (thread_through_normal_block): Distinguish between blocks where
29208         we did not process all the statements and blocks with no statements.
29209
29210 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
29211             James Greenhalgh  <james.greenhalgh@arm.com>
29212
29213         PR ipa/64963
29214         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
29215         section if not linkonce.  Fix up formatting.
29216         (cgraph_node::create_version_clone_with_body): Copy section.
29217         * trans-mem.c (ipa_tm_create_version): Likewise.
29218
29219 2015-02-16  Richard Biener  <rguenther@suse.de>
29220
29221         PR tree-optimization/65077
29222         * tree-ssa-structalias.c (get_constraint_for_1): Handle
29223         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
29224         (find_func_aliases): Allow float values to carry pointers again.
29225
29226 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
29227
29228         * doc/install.texi (Specific): Reorder targets list to put
29229         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
29230         from the top menu.
29231
29232 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29233             David Edelsohn  <dje.gcc@gmail.com>
29234
29235         PR target/65058
29236         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
29237         mapping class to external variable or function reference.
29238         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
29239         mapping class.
29240
29241 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
29242
29243         PR target/53348
29244         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
29245         ASM_WEAKEN_DECL if defined.
29246
29247 2015-02-16  Richard Biener  <rguenther@suse.de>
29248
29249         PR lto/65015
29250         * varasm.c (default_file_start): For LTO produced units
29251         emit <artificial> as file directive.
29252
29253 2015-02-16  Richard Biener  <rguenther@suse.de>
29254
29255         PR tree-optimization/63593
29256         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
29257         stmts and releasing SSA names until...
29258         (execute_pred_commoning): ... after processing all chains.
29259
29260 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
29261
29262         PR ipa/65059
29263         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
29264         external functions.
29265
29266 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
29267
29268         * doc/bugreport.texi: Adjust section titles throughout the file
29269         to use "Title Case".
29270         * doc/extend.texi: Likewise.
29271         * doc/gcov.texi: Likewise.
29272         * doc/implement-c.texi: Likewise.
29273         * doc/implement-cxx.texi: Likewise.
29274         * doc/invoke.texi: Likewise.
29275         * doc/objc.texi: Likewise.
29276         * doc/standards.texi: Likewise.
29277         * doc/trouble.texi: Likewise.
29278
29279 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
29280
29281         * cgraph.h (symtab_node::has_aliases_p): Simplify.
29282         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
29283         * tree.c (lookup_binfo_at_offset): Make static.
29284         (get_binfo_at_offset): Do not shadow offset; add explanatory
29285         comment.
29286
29287 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
29288
29289         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
29290         for all floading point loads and stores except those using a register
29291         index address.
29292         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
29293         to a register.
29294
29295 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29296
29297         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
29298         (do_estimate_growth_1): Record if any uninlinable edge was seen.
29299         (estimate_growth): Handle uninlinable edges correctly.
29300         (check_callers): New.
29301         (growth_likely_positive): Handle aliases correctly.
29302
29303 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29304
29305         * ipa-chkp.c: Use iterate_direct_aliases.
29306         * symtab.c (resolution_used_from_other_file_p): Move inline.
29307         (symtab_node::create_reference): Fix formating.
29308         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29309         (symtab_node::iterate_reference): Move inline.
29310         (symtab_node::iterate_referring): Move inline.
29311         (symtab_node::iterate_direct_aliases): Move inline.
29312         (symtab_node::used_from_object_file_p_worker): Inline into ...
29313         (symtab_node::used_from_object_file_p): ... this one; move inline.
29314         (symtab_node::call_for_symbol_and_aliases): Move inline;
29315         use iterate_direct_aliases.
29316         (symtab_node::call_for_symbol_and_aliases_1): New method.
29317         (cgraph_node::call_for_symbol_and_aliases): Move inline;
29318         use iterate_direct_aliases.
29319         (cgraph_node::call_for_symbol_and_aliases_1): New method.
29320         (varpool_node::call_for_node_and_aliases): Rename to ...
29321         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
29322         use iterate_direct_aliases.
29323         (varpool_node::call_for_symbol_and_aliases_1): New method.
29324         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
29325         (ipa_discover_readonly_nonaddressable_var): Update.
29326         * ipa-devirt.c: Fix formating.
29327         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
29328         Move inline.
29329         (cgraph_node::call_for_symbol_and_aliases): Move inline.
29330         (cgraph_node::call_for_symbol_and_aliases_1): New function..
29331         * cgraph.h (used_from_object_file_p_worker): Remove.
29332         (resolution_used_from_other_file_p): Move inline.
29333         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29334         (symtab_node::iterate_reference): Move inline.
29335         (symtab_node::iterate_referring): Move inline.
29336         (symtab_node::iterate_direct_aliases): Move inline.
29337         (symtab_node::used_from_object_file_p_worker): Inline into ...
29338         (symtab_node::used_from_object_file_p): Move inline.
29339         * tree-emutls.c (ipa_lower_emutls): Update.
29340         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
29341         (varpool_node::call_for_node_and_aliases): Remove.
29342
29343 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
29344
29345         PR tree-optimization/62209
29346         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
29347         op == range->exp, insert seq and gimplified code after labels
29348         instead of after the phi.
29349
29350 2015-02-13  Jeff Law  <law@redhat.com>
29351
29352         PR bootstrap/65060
29353         Revert my change for tree-optimization/64823.
29354
29355 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29356
29357         PR tree-optimization/65053
29358         * tree-ssa-phiopt.c (value_replacement): When moving assign before
29359         cond, either reset VR on lhs or set it to phi result VR.
29360
29361 2015-02-13  Jeff Law  <law@redhat.com>
29362
29363         PR tree-optimization/64823
29364         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
29365         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29366         threading through blocks with PHIs, but no statements.
29367         (thread_through_normal_block): Distinguish between blocks where
29368         we did not process all the statements and blocks with no statements.
29369
29370         PR rtl-optimization/47477
29371         * match.pd (convert (plus/minus (convert @0) (convert @1): New
29372         simplifier to narrow arithmetic.
29373
29374 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
29375
29376         PR ipa/65028
29377         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
29378         polymorphic call info when type is not known to be preserved.
29379
29380 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
29381
29382         PR ipa/65028
29383         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
29384         (inline_call): Use it.
29385
29386 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
29387
29388         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
29389         GOMP_DEVICE_NVIDIA_PTX.
29390
29391 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29392
29393         PR ipa/65034
29394         * stmt.c (emit_case_nodes): Use void_type_node instead of
29395         NULL_TREE as LABEL_DECL type.
29396
29397 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
29398
29399         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
29400         constraints.
29401         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
29402         symbolic references to data to be forced to constant memory on the
29403         SOM target.
29404
29405 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29406
29407         PR tree-optimization/65002
29408         * tree-cfg.c (pass_data_fixup_cfg): Don't update
29409         SSA on start.
29410         * tree-sra.c (some_callers_have_no_vuse_p): New.
29411         (ipa_early_sra): Reject functions whose callers
29412         assume function is read only.
29413
29414 2015-02-13  Richard Biener  <rguenther@suse.de>
29415
29416         PR lto/65015
29417         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
29418         for LTO produced CUs.
29419
29420 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
29421
29422         PR tree-optimization/64705
29423         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
29424         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
29425         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
29426         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
29427         expand_simple_operations.
29428
29429 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
29430             Richard Henderson  <rth@redhat.com>
29431
29432         PR rtl/32219
29433         * cgraphunit.c (cgraph_node::finalize_function): Set definition
29434         before notice_global_symbol.
29435         (varpool_node::finalize_decl): Likewise.
29436         * varasm.c (default_binds_local_p_2): Rename from
29437         default_binds_local_p_1, add weak_dominate argument.  Use direct
29438         returns instead of assigning to local variable.  Unify varpool and
29439         cgraph paths via symtab_node.  Reject undef weak variables before
29440         testing visibility.  Reorder tests for simplicity.
29441         (default_binds_local_p): Use default_binds_local_p_2.
29442         (default_binds_local_p_1): Likewise.
29443         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
29444         via symtab_node.
29445         (default_elf_asm_output_external): Emit visibility when specified.
29446
29447 2015-02-13  Alan Modra  <amodra@gmail.com>
29448
29449         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
29450         code setting up r11 for out-of-line fp restore.
29451
29452 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
29453
29454         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
29455         (muser-mode): Likewise.
29456
29457 2015-02-13  Alan Modra  <amodra@gmail.com>
29458
29459         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
29460         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
29461
29462 2015-02-12  David Howells  <dhowells@redhat.com>
29463
29464         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
29465         warning.
29466         * tree-ssa-uninit.c (dump_predicates): Likewise.
29467         * opts.c (print_filtered_help): Likewise.
29468
29469 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29470
29471         * dwarf2out.c (output_die): Use "%s", name instead of name to
29472         avoid -Wformat-security warning.
29473
29474         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
29475         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29476         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
29477         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29478
29479 2015-02-12  Jason Merrill  <jason@redhat.com>
29480
29481         * common.opt (-flifetime-dse): New.
29482
29483 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29484
29485         PR sanitizer/65019
29486         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
29487
29488         PR tree-optimization/65014
29489         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
29490         use original second operand of arg0 or arg1 instead of
29491         that adjusted by STRIP_NOPS.
29492
29493 2015-02-11  Jeff Law  <law@redhat.com>
29494
29495         PR target/63347
29496         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
29497         that needs to be queued, just queue it for a single cycle.
29498
29499 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
29500
29501         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
29502         bodies of thunks; comment on why.
29503         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
29504         symbols are extern.
29505
29506 2015-02-11  Richard Henderson  <rth@redhat.com>
29507
29508         PR sanitize/65000
29509         * tree-eh.c (mark_reachable_handlers): Mark source and destination
29510         regions of __builtin_eh_copy_values.
29511
29512 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29513
29514         PR middle-end/65003
29515         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
29516         ultimate alias is MEM with SYMBOL_REF satisfying
29517         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
29518         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
29519
29520 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
29521
29522         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
29523         "diagnostic-core.h".
29524         (main): Initialize progname, and call diagnostic_initialize.
29525
29526         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
29527         instead of __OPENMP_TARGET__.
29528
29529         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
29530         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
29531         hard-coding PTX_ID.
29532
29533 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
29534
29535         * doc/sourcebuild.texi (pie_enabled): Document.
29536
29537 2015-02-11  Martin Liska  <mliska@suse.cz>
29538
29539         PR ipa/64813
29540         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
29541         a return value for call to a function that is noreturn.
29542
29543 2015-02-11  Richard Biener  <rguenther@suse.de>
29544
29545         PR lto/65015
29546         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
29547         and -fresolution.
29548
29549 2015-02-11  Andrew Pinski  <apinski@cavium.com>
29550
29551         PR target/64893
29552         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
29553         Change the first argument type to size_type_node and add another
29554         size_type_node.
29555         (aarch64_simd_expand_builtin): Handle the new argument to
29556         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
29557         print an out when the first two arguments are not
29558         nonzero integer constants.
29559         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
29560         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
29561
29562 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29563
29564         PR target/61925
29565         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
29566         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
29567         (ix86_set_current_function): Rewritten.
29568         (ix86_add_new_builtins): Temporarily clear current_target_pragma
29569         when creating builtin fndecls.
29570
29571 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29572
29573         PR ipa/65005
29574         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
29575         function.
29576         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
29577         have no comdat group.
29578         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
29579         (lto_output_varpool_node): Always output alias info.
29580         (output_refs): Output refs of boundary aliases, too.
29581         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
29582         (output_symtab): Output call eges in thunks in boundary.
29583         (get_alias_symbol): Remove.
29584         (input_node, input_varpool_node): Do not special case weakrefs.
29585         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
29586         alias and thunks targets in the boundary; do not take removed symbols
29587         from their comdat groups.
29588         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
29589         (cgraph_node::global_info): Remove.
29590         (cgraph_node::rtl_info): Look through aliases and thunks.
29591         * cgrpah.h (global_info): Remove.
29592         (non_local_p): Remove.
29593
29594 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29595             Sandra Loosemore  <sandra@codesourcery.com>
29596
29597         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
29598         to inline asm.  List dialects in proper order.
29599
29600 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29601             Sandra Loosemore  <sandra@codesourcery.com>
29602
29603         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
29604
29605 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29606
29607         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
29608         modified) reference to Solaris.
29609
29610 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
29611
29612         * doc/extend.texi (Extended Asm): Fix typos.
29613
29614 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
29615
29616         PR sanitizer/65004
29617         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
29618
29619 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
29620
29621         PR target/64661
29622         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
29623         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
29624         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
29625         * config/sh/constraints.md (Ara, Add): New constraints.
29626         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
29627         predicates.
29628         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
29629         atomic_mem_operand_0.  Don't use force_reg on the memory address.
29630         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
29631         Sra constraint.  Convert to insn_and_split.  Add workaround for
29632         PR 64974.
29633         (atomic_compare_and_swap<mode>_hard): Copy to
29634         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
29635         Use atomic_mem_operand_0 predicate.
29636         (atomic_compare_and_swap<mode>_soft_gusa,
29637         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
29638         AraAdd constraints.
29639         (atomic_compare_and_swap<mode>_soft_tcb,
29640         atomic_compare_and_swap<mode>_soft_imask,
29641         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
29642         atomic_mem_operand_0 predicate and SraSdd constraints.
29643         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
29644         constraint.
29645         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
29646         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
29647         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
29648         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
29649         force_reg on the memory address.
29650         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
29651         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
29652         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
29653         atomic_mem_operand_1 predicate and Sra constraint.
29654         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
29655         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29656         Use atomic_mem_operand_1 predicate.
29657         (atomic_<fetchop_name><mode>_hard): Copy to
29658         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29659         Use atomic_mem_operand_1 predicate.
29660         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
29661         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29662         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
29663         insn_and_split.  Use atomic_mem_operand_1 predicate.
29664         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
29665         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
29666         Use atomic_mem_operand_1 predicate.
29667         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
29668         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29669         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
29670         in generated insn with original mem operand before emitting the insn.
29671         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
29672         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
29673         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
29674         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
29675         Use atomic_mem_operand_1 predicate and AraAdd constraints.
29676         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
29677         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
29678         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
29679         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
29680         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
29681         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
29682         atomic_not_fetch<mode>_soft_tcb,
29683         atomic_<fetchop_name>_fetch<mode>_soft_imask,
29684         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
29685         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
29686         Use atomic_mem_operand_1 predicate and SraSdd constraints.
29687
29688 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
29689
29690         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
29691         and 3 earlyclobber operands.
29692
29693 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29694
29695         * common.opt (fstack-reuse): Mark as optimization.
29696
29697 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29698
29699         PR ipa/64982
29700         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
29701
29702 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
29703
29704         PR tree-optimization/64326
29705         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
29706
29707 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
29708
29709         PR gcov-profile/61889
29710         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
29711
29712 2015-02-10  Richard Biener  <rguenther@suse.de>
29713
29714         PR tree-optimization/64995
29715         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
29716         value we use is final.
29717         (visit_reference_op_store): Always valueize op.
29718         (visit_use): Properly valueize vuses.
29719
29720 2015-02-10  Richard Biener  <rguenther@suse.de>
29721
29722         PR tree-optimization/64909
29723         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
29724         pass a scalar-stmt count estimate to the cost model.
29725         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
29726
29727 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
29728
29729         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
29730         enabled by default together with var-tracking.
29731
29732 2015-02-10  Nick Clifton  <nickc@redhat.com>
29733
29734         * config/rl78/rl78.c: Remove DIV attribute code accidentally
29735         included in previous rl78 commit.
29736
29737 2015-02-10  Richard Biener  <rguenther@suse.de>
29738
29739         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
29740         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
29741         return the bitpack.
29742
29743 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29744
29745         PR gcov-profile/61889
29746         * config.in: regenerate.
29747         * configure.in: Likewise.
29748         * configure.ac: Check for ftw.h.
29749         * gcov-tool.c: Check for ftw.h before using nftw.
29750
29751 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29752
29753         PR lto/64076
29754         * ipa-visibility.c (update_visibility_by_resolution_info): Only
29755         assert when not in lto mode.
29756
29757 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
29758
29759         * ira-color.c (setup_left_conflict_sizes_p): Simplify
29760         initialization/assignment of conflict_size.
29761
29762 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
29763
29764         PR ipa/64978
29765         * ipa-cp.c (gather_caller_stats): Skip thunks.
29766         (propagate_constants_topo): Skip aliases.
29767
29768 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
29769
29770         PR target/64761
29771         * config/sh/sh.c (sh_option_override): Don't change
29772         -freorder-blocks-and-partition to -freorder-blocks even when
29773         unwinding is enabled.
29774         (sh_can_follow_jump): Return false if the followee jump is
29775         a crossing jump when -freorder-blocks-and-partition is specified.
29776         * config/sh/sh.md (*jump_compact_crossing): New insn.
29777
29778 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
29779             Kaz Kojima  <kkojima@gcc.gnu.org>
29780
29781         PR target/64761
29782         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
29783         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
29784         (sh_can_redirect_branch): Rename to ...
29785         (sh_can_follow_jump): ... this.  Constify argument types.
29786         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
29787         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
29788         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
29789         * doc/tm.texi: Regenerate.
29790
29791 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29792
29793         PR sanitizer/64981
29794         * builtins.c (expand_builtin): Call targetm.expand_builtin
29795         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
29796
29797 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29798
29799         PR ipa/61548
29800         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
29801
29802 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29803
29804         PR ipa/63566
29805         * ipa-icf.c (set_local): New function.
29806         (sem_function::merge): Use it.
29807
29808 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29809
29810         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
29811         (add_type_duplicate): Fix comparison of BINFOs.
29812
29813 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29814
29815         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
29816         on getting VOID pointer.
29817
29818 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29819
29820         PR target/64979
29821         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
29822         va_list escapes.
29823
29824 2015-02-09  Richard Biener  <rguenther@suse.de>
29825
29826         * genmatch.c (replace_id): Copy expr_type.
29827
29828 2015-02-09  Richard Biener  <rguenther@suse.de>
29829
29830         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
29831         (streamer_write_tree_bitfields): Declare.
29832         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
29833         properly unpack padding.
29834         (unpack_value_fields): Inline ...
29835         (streamer_read_tree_bitfields): ... here.
29836         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
29837         and properly add padding bits.
29838         (streamer_pack_tree_bitfields): Fold into ...
29839         (streamer_write_tree_bitfields): ... this new function,
29840         exposing the bitpack object.
29841         * lto-streamer-out.c (lto_write_tree_1): Call
29842         streamer_write_tree_bitfields.
29843
29844 2015-02-09  Richard Biener  <rguenther@suse.de>
29845
29846         PR tree-optimization/54000
29847         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
29848         (struct ivopts_data): Add loop_loc member.
29849         (tree_ssa_iv_optimize_loop): Dump loop location.
29850         (create_new_ivs): Likewise, also dump number of IVs generated.
29851
29852 2015-02-09  Martin Liska  <mliska@suse.cz>
29853
29854         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
29855         just if not yet registered.
29856         (ipa_icf_generate_summary): Register callgraph hooks.
29857
29858 2015-02-08  Andrew Pinski  <apinski@cavium.com>
29859
29860         * config/aarch64/aarch64.c (gty_dummy): Delete.
29861
29862 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29863
29864         PR ipa/63566
29865         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
29866         (cgraph_node::local_p): Remove thunk related FIXME.
29867
29868 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29869
29870         PR ipa/63566
29871         * i386.c (ix86_function_regparm): Look through aliases to see if callee
29872         is local and optimized.
29873         (ix86_function_sseregparm): Likewise; also use target's SSE math
29874         settings; error out instead of silently generating wrong code
29875         on mismatches.
29876         (init_cumulative_args): Look through aliases.
29877
29878 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29879
29880         PR ipa/63566
29881         * ipa-split.c (execute_split_functions): Split if function has aliases.
29882
29883 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29884
29885         PR ipa/63566
29886         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
29887         aliases before trying to expand it.
29888         (cgraph_node::expand_thunk): Fix formating.
29889
29890 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
29891
29892         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
29893         (Using Assembly Language with C): Expand introduction.
29894         (Basic Asm): Copy-edit.  Add more information about uses of
29895         basic asm.
29896         (Extended Asm): Copy-edit.  Document new escape syntax and
29897         %l[label] syntax.
29898         (Global Reg Vars): Copy-edit.
29899         (Local Reg Vars): Likewise.
29900
29901 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
29902
29903         PR debug/2714
29904         PR bootstrap/64256
29905         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
29906         (DBX_CONTIN_CHAR): Define.
29907
29908 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
29909             Brian Rzycki  <b.rzycki@samsung.com>
29910
29911         PR tree-optimization/64878
29912         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
29913         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
29914         Stop recursion at loop phi nodes after having visited a loop phi node.
29915
29916 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29917
29918         * toplev.c (process_options): Change flag_ipa_ra before creating
29919         optimization_{default,current}_node.
29920
29921         PR ipa/64896
29922         * cgraphunit.c (cgraph_node::expand_thunk): If
29923         restype is not is_gimple_reg_type nor the thunk_fndecl
29924         returns aggregate_value_p, set restmp to a temporary variable
29925         instead of resdecl.
29926
29927 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29928
29929         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
29930
29931 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29932
29933         PR target/64205
29934         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
29935         add a general secondary reload handler for SDmode, unless we have
29936         both read/write support for SDmode.
29937
29938 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29939
29940         PR middle-end/64937
29941         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
29942         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
29943         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
29944         1 before, push it to abstract_vec.
29945         (dwarf2out_abstract_function): Adjust caller.  Don't call
29946         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
29947         DECL_ABSTRACT_P flags for all abstract_vec elts.
29948
29949 2015-02-06  Renlin Li  <renlin.li@arm.com>
29950
29951         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
29952         complex gimple.
29953         * tree-ssa.c (execute_update_addresses_taken): Likewise.
29954
29955 2015-02-06  Jeff Law  <law@redhat.com>
29956
29957         PR target/64889
29958         * config/h8300/h8300.c (push): New argument "in_prologue".
29959         Pass "in_prologue" along to "F".
29960         (h8300_push_pop): Corresponding changes.
29961         (h8300_expand_prologue): Likewise.
29962         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
29963
29964 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29965
29966         PR rtl-optimization/64957
29967         PR debug/64817
29968         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
29969         IOR rather than for AND.
29970
29971 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29972
29973         PR target/62631
29974         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
29975         of shift-add and (add + shift) operations.  Rename local variable.
29976
29977 2015-02-05  Jeff Law  <law@redhat.com>
29978
29979         PR target/17306
29980         * config/h8300/constraints.md (U): Correctly dectect
29981         "eightbit_data" memory addresses.
29982         * config/h8300/h8300.c (eightbit_constant_address_p): Also
29983         handle (const (plus (symbol_ref (x)))) where x is declared
29984         as an 8-bit data memory address.
29985         * config/h8300/h8300.md (call, call_value): Correctly detect
29986         "funcvec" functions.
29987
29988         PR target/43264
29989         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
29990         24 to 28 bits for the H8/300.
29991
29992 2015-02-06  Alan Modra  <amodra@gmail.com>
29993
29994         PR target/64876
29995         * config/rs6000/rs6000.c (chain_already_loaded): New function.
29996         (rs6000_call_aix): Use it.
29997
29998 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
29999
30000         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
30001         check.
30002
30003 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
30004
30005         * config/h8300/constraints.md ("U" constraint): Use strict
30006         variant of REG_OK_FOR_BASE_P after reload has started.
30007
30008 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
30009
30010         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
30011         define to zero if !TARGET_NEON.
30012         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
30013
30014 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30015             Trevor Saunders  <tsaunders@mozilla.com>
30016
30017         PR ipa/61548
30018         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
30019
30020 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30021
30022         PR ipa/61548
30023         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
30024         when removing varpool nodes.
30025
30026 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30027
30028         PR ipa/61548
30029         * varpool.c (varpool_node::remove): Fix order of variables.
30030
30031 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30032
30033         PR ipa/64686
30034         * ipa-inline.c (inline_small_functions): Fix ordering issue between
30035         speculation resolution and key updates.
30036
30037 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30038
30039         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
30040         about not letting any speculative edges unupdated.
30041
30042 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30043
30044         PR gcov/64123
30045         * gcov-io.c (gcov_var): Export.
30046
30047 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30048
30049         PR middle-end/64922
30050         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
30051         edges that become speculative.
30052
30053 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
30054
30055         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
30056         or DW_LANG_Fortran08.
30057         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
30058         DW_LANG_Fortran08.
30059         (gen_compile_unit_die): Handle "GNU Fortran2003" and
30060         "GNU Fortran2008" language strings.
30061         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
30062         * langhooks.h (lang_GNU_Fortran): New prototype.
30063         * langhooks.c (lang_GNU_Fortran): New function.
30064         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
30065         lang_GNU_Fortran.
30066
30067 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
30068
30069         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
30070         (RTX_OK_FOR_OLO10_P): Likewise.
30071
30072 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
30073
30074         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
30075
30076 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
30077
30078         PR middle-end/64922
30079         * gimple.c: Include gimple-ssa.h.
30080         (maybe_remove_unused_call_args): New function.
30081         * gimple.h (maybe_remove_unused_call_args): Declare.
30082         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
30083         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
30084         * gimple-fold.c (gimple_fold_call): Likewise.
30085
30086 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
30087
30088         PR rtl-optimization/64905
30089         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
30090         pointer alignment if it isn't needed.
30091
30092 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
30093
30094         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
30095         cortex-a72.cortex-a53.
30096         * config/aarch64/aarch64-tune.md: Regenerate.
30097         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
30098
30099 2015-02-04  Nick Clifton  <nickc@redhat.com>
30100
30101         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
30102         inside a MEM.
30103
30104 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
30105
30106         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
30107         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
30108         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
30109         of DEF_BUILTIN.
30110         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
30111         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
30112         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
30113         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
30114         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
30115         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
30116         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
30117         * tree-core.h (enum built_in_function): In between
30118         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
30119         for builtins that use DEF_BUILTIN_CHKP macro.
30120
30121 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
30122
30123         PR debug/64817
30124         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
30125         operands for tcc_comparison exprs.  Fix typos.
30126
30127         PR debug/64817
30128         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
30129         of two XORs that have an intervening AND or IOR.
30130
30131         PR debug/64817
30132         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
30133         simplification of XOR of AND to not allocate new rtx before
30134         committing to a simplification.
30135
30136 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30137
30138         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
30139         manual swaps in all peepholes.
30140
30141 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30142
30143         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
30144         of manual swapping implementation.
30145         (aarch64_expand_vec_perm_const_1): Likewise.
30146
30147 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
30148
30149         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
30150         (generic_addrcost_table): Remove NAMED_PARAM.
30151         (cortexa57_addrcost_table): Likewise.
30152         (xgene1_addrcost_table): Likewise.
30153         (generic_regmove_table): Likewise.
30154         (cortexa53_regmove_table): Likewise.
30155         (xgene1_regmove_table): Likewise.
30156         (generic_vector_table): Likewise.
30157         (cortexa57_vector_table): Likewise.
30158         (xgene1_vector_table): Likewise.
30159         (generic_tunings): Likewise.
30160         (cortexa53_tunings): Likewise.
30161         (cortexa57_tunings): Likewise.
30162         (xgene1_tunings): Likewise.
30163
30164 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
30165
30166         * config/arm/arm-cores.def: Add cortex-a72 and
30167         cortex-a72.cortex-a53.
30168         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
30169         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
30170         * config/arm/arm-tune.md: Regenerate.
30171         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
30172         "cortex-a72.cortex-a53".
30173         * doc/invoke.texi (ARM Options/-mtune): Likewise.
30174
30175 2015-02-04  Nick Clifton  <nickc@redhat.com>
30176
30177         PR target/64408
30178         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
30179         of accepted codes.
30180         (nonimmediate_di_operand): Likewise.
30181
30182         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
30183         prefixes of known F5 using MSP430 MCUs.
30184
30185 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30186
30187         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
30188         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
30189         instead of __builtin_sqrt.
30190
30191 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
30192
30193         * varasm.c (do_assemble_alias): Follow transparent alias
30194         chain for target.
30195         (default_assemble_visibility): Follow transparent alias
30196         chain for decl name.
30197
30198 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30199
30200         PR middle-end/62103
30201         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
30202         to compute size of referenced value in the constant case.
30203
30204 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30205
30206         PR rtl-optimization/64756
30207         * cse.c (invalidate_dest): New function.
30208         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
30209         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
30210         invalidate and do not record it.
30211
30212 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
30213
30214         PR target/64660
30215         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
30216         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
30217         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
30218         atomic_nand<mode>_soft_tcb): New insns.
30219         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
30220         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
30221         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
30222         Split into atomic_not_fetchsi_hard if operands[0] is unused.
30223         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
30224         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
30225         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
30226         atomic_not<mode>_hard if operands[0] is unused.
30227         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
30228         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
30229         if operands[0] is unused.
30230         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
30231         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
30232         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
30233         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
30234         unused.
30235         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
30236         into atomic_not<mode>_soft_tcb if operands[0] is unused.
30237         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
30238         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
30239         if operands[0] is unused.
30240         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
30241         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
30242         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
30243         atomic_nand_fetchsi_hard if operands[0] is unused.
30244         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
30245         atomic_nand<mode>_hard if operands[0] is unused.
30246         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
30247         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
30248         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
30249         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
30250         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
30251         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
30252         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
30253         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
30254         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
30255         atomic_not<mode>_hard if operands[0] is unused.
30256         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
30257         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
30258         unused.
30259         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
30260         into atomic_not<mode>_soft_tcb if operands[0] is unused.
30261         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
30262         atomic_nand<mode>_hard if operands[0] is unused.
30263         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
30264         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
30265
30266 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
30267
30268         PR jit/64810
30269         * Makefile.in (GCC_OBJS): Add gcc-main.o.
30270         * gcc-main.c: New file, containing "main" taken from gcc.c.
30271         * gcc.c (do_self_spec): Free decoded_options.
30272         (class driver): Move declaration to gcc.h.
30273         (main): Move declaration and implementation to new file
30274         gcc-main.c.
30275         (driver_get_configure_time_options): New function.
30276         * gcc.h (class driver): Move this declaration here, from
30277         gcc.c.
30278         (driver_get_configure_time_options): New declaration.
30279
30280 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
30281
30282         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
30283         cross-module inlining.
30284         * cgraph.h (cgraph_node): Add flag merged.
30285         * ipa-icf.c (sem_function::merge): Maintain it.
30286
30287 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
30288
30289         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
30290         instead of OBJECT_P.
30291
30292 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
30293
30294         PR target/62631
30295         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
30296         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
30297         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
30298         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
30299
30300 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30301
30302         PR other/63504
30303         * combine.c (reg_n_sets_max): New variable.
30304         (can_change_dest_mode, reg_nonzero_bits_for_combine,
30305         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
30306         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
30307         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
30308         (rest_of_handle_combine): Initialize reg_n_sets_max.
30309
30310 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
30311
30312         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
30313         if some always_inline was inlined, apply changes before inlining
30314         heuristically.
30315
30316 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
30317
30318         PR jit/64810
30319         * config/arm/arm.c (arm_option_override): Set
30320         arm_selected_arch/cpu/tune to NULL on entry.
30321
30322 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
30323             Andrew Pinski  <pinskia@gcc.gnu.org>
30324             Jakub Jelinek  <jakub@gcc.gnu.org>
30325
30326         PR target/64231
30327         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
30328         integer typing for small model. Use IN_RANGE.
30329
30330 2015-02-02  Richard Biener  <rguenther@suse.de>
30331
30332         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
30333         * tree-vrp.c (vrp_valueize_1): Likewise.
30334
30335 2015-02-02  Alan Modra  <amodra@gmail.com>
30336
30337         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
30338         than mem for toc_restore.
30339         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
30340         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
30341         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
30342
30343 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
30344
30345         PR target/64047
30346         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
30347         explicit default options.
30348
30349 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
30350
30351         PR ipa/64872
30352         * ipa-utils.c (ipa_merge_profiles): Add release argument.
30353         * ipa-icf.c (sem_function::merge): Do not release body when merging.
30354         * ipa-utils.h (ipa_merge_profiles): Update prototype.
30355
30356 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
30357
30358         PR debug/64817
30359         * cfgexpand.c (deep_ter_debug_map): New variable.
30360         (avoid_deep_ter_for_debug): New function.
30361         (expand_debug_expr): If TERed SSA_NAME is in
30362         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
30363         instead of trying to expand SSA_NAME's def stmt.
30364         (expand_debug_locations): When expanding debug bind
30365         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
30366         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
30367         value.
30368         (pass_expand::execute): Call avoid_deep_ter_for_debug on
30369         all debug bind stmts.  Delete deep_ter_debug_map after
30370         expand_debug_location if non-NULL and clear it.
30371
30372 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
30373
30374         PR target/64851
30375         * config/sh/sync.md (atomic_fetch_notsi_hard,
30376         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
30377         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
30378         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
30379         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
30380         atomic_not_fetch<mode>_soft_imask): New insns.
30381
30382 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
30383
30384         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
30385         (rank_for_schedule_debug): Split from ...
30386         (rank_for_schedule): ... this.
30387         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
30388         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
30389
30390 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30391
30392         * doc/md.texi (Machine Constraints): Alphabetize table by target.
30393         * doc/extend.texi (x86 Variable Attributes): Move section to
30394         correct alphabetization after renaming.
30395         (x86 Type Attributes): Likewise.
30396         (Target Builtins): Re-alphabetize menu.
30397         (x86 Built-in Functions): Move section to correct alphabetization
30398         after renaming.
30399         (x86 transactional memory intrinsics): Likewise.
30400         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
30401         and x86 Windows Options in table and menu.
30402         (x86 Options): Move section to correct alphabetization after
30403         renaming.
30404         (x86 Windows Options): Likewise.
30405
30406 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30407
30408         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
30409         preferred names of the architecture and its 32- and 64-bit
30410         variants.
30411         * doc/invoke.texi: Likewise.
30412         * doc/md.texi: Likewise.
30413
30414 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30415
30416         PR target/64882
30417         * config/i386/predicates.md (address_no_seg_operand): Reject
30418         non-CONST_INT_P operands in invalid mode.
30419
30420 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30421
30422         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
30423         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
30424         * config/i386/predicates.md (address_no_seg_operand): Call
30425         address_operand with VOIDmode.
30426         (vsib_address_operand): Ditto.
30427         (address_mpx_no_base_operand): Ditto.
30428         (address_mpx_no_index_operand): Ditto.
30429
30430 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30431
30432         PR target/64688
30433         * lra-constraints.c (original_subreg_reg_mode): New.
30434         (simplify_operand_subreg): Try to simplify subreg of const.  Use
30435         original_subreg_reg_mode for it.
30436         (swap_operands): Update original_subreg_reg_mode.
30437         (curr_insn_transform): Set up original_subreg_reg_mode.
30438
30439 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30440
30441         PR target/64617
30442         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
30443         function.
30444         (process_alt_operands): Use it.
30445         (curr_insn_transform): Check the optional reload pseudo class is
30446         ok for the mode.
30447
30448 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
30449
30450         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
30451         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
30452         prototype.
30453         * toplev.h (init_asm_output): Update comment on use of
30454         UNKNOWN_LOCATION with fatal_error.
30455         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
30456         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
30457         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
30458         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
30459         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
30460         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
30461         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
30462         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
30463         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
30464         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
30465         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
30466         fatal_error changed to pass input_location as first argument.
30467
30468 2015-01-30  Martin Liska  <mliska@suse.cz>
30469
30470         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
30471         in #pragma GCC diagnostic guards.
30472
30473 2015-01-30  Richard Biener  <rguenther@suse.de>
30474
30475         PR tree-optimization/64829
30476         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
30477         not add a widening conversion pattern but hand off extra
30478         widenings to callers.
30479         (vect_recog_widen_mult_pattern): Handle extra widening produced
30480         by vect_handle_widen_op_by_const.
30481         (vect_recog_widen_shift_pattern): Likewise.
30482         (vect_pattern_recog_1): Remove excess vertical space in dumping.
30483         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
30484         (vect_init_vector_1): Likewise.
30485         (vect_get_vec_def_for_operand): Likewise.
30486         (vect_finish_stmt_generation): Likewise.
30487         (vectorizable_load): Likewise.
30488         (vect_analyze_stmt): Likewise.
30489         (vect_is_simple_use): Likewise.
30490
30491 2015-01-29  Jeff Law  <law@redhat.com>
30492
30493         * combine.c (try_combine): Fix typo in comment.
30494
30495 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
30496
30497         PR target/64580
30498         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
30499         (rs6000_stack_info): Add assert.
30500         (rs6000_output_savres_externs): New function, split off from...
30501         (rs6000_output_function_prologue): ... here.  Do not call it for
30502         thunks.
30503
30504 2015-01-29  Jeff Law  <law@redhat.com>
30505
30506         PR target/15184
30507         * combine.c (try_combine): If I0 is a memory load and I3 a store
30508         to a related address, increase the "goodness" of doing a 4-insn
30509         combination with I0-I3.
30510         (make_field_assignment): Handle SUBREGs in the ior+and case.
30511
30512 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
30513
30514         PR tree-optimization/64746
30515         * tree-if-conv.c (mask_exists): New function.
30516         (predicate_mem_writes): Save created mask with given size for further
30517         use.
30518         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
30519         (ifcvt_repair_bool_pattern): Collect all statements that are root
30520         of bool pattern and use iterative algorithm to remove multiple uses
30521         of predicates, display number of required iterations.
30522
30523 2015-01-29  Richard Biener  <rguenther@suse.de>
30524
30525         PR tree-optimization/64853
30526         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
30527         stmt will get simulated again.
30528         * tree-ssa-ccp.c (valueize_op_1): Likewise.
30529
30530 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30531
30532         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
30533         return_in_pc.  Remove redundant assignments.
30534         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
30535         (arm_expand_epilogue): Don't compare boolean with true in if condition.
30536
30537 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
30538
30539         * config/i386/i386.c (ix86_mode_after): Make static.
30540
30541 2015-01-29  Richard Biener  <rguenther@suse.de>
30542
30543         PR tree-optimization/64844
30544         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
30545         dump cost model analysis.
30546         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30547         Do not register adjusted load/store costs here.
30548
30549 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30550             Uros Bizjak  <ubizjak@gmail.com>
30551
30552         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
30553         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
30554         using x86_use_pseudo_pic_reg.
30555         * config/i386/i386.c (ix86_conditional_register_usage): Remove
30556         support for fixed PIC register.
30557         (ix86_use_pseudo_pic_reg): Not static any more.
30558
30559 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30560
30561         PR middle-end/64805
30562         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
30563         to avoid error in cgraph node verification.
30564
30565 2015-01-29  Marek Polacek  <polacek@redhat.com>
30566
30567         * doc/standards.texi: Reflect that the default for C is gnu11.
30568
30569 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
30570
30571         PR target/64761
30572         * reorg.c (switch_text_sections_between_p): New function.
30573         (relax_delay_slots): Call it when testing if the jump insn
30574         is removable.  Use targetm.can_follow_jump when testing if
30575         the conditional branch can follow an unconditional jump.
30576
30577 2015-01-27  Caroline Tice  <cmtice@google.com>
30578
30579         Committing VTV Cywin/Ming patch for Patrick Wollgast
30580         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
30581         if -fvtable-verify=preinit/std is used.
30582         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
30583         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
30584         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
30585         if -fvtable-verify=preinit/std is used.
30586         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30587         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
30588         if -fvtable-verify=preinit/std is used.
30589         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
30590         * config/i386/mingw32.h (LIB_SPEC): Likewise.
30591         * varasm.c (assemble_variable): Add code to properly set the comdat
30592         section and name for the .vtable_map_vars section in case the
30593         target is PE or COFF.
30594
30595 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30596
30597         PR ipa/64801
30598         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
30599         make sane BB profile.
30600         (cgraph_node::expand_thunk): Make sane BB profile.
30601         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
30602         * cgraph.h (init_lowered_empty_function): Update prototype.
30603         * config/i386/i386.c (make_resolver_func): Update call.
30604         * predict.c (gate): Disable branch prediction pass if
30605         profile is already there.
30606
30607 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30608
30609         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
30610         * opth-gen.awk: Likewise.
30611         * common.opt: Mark flag_fp_contract_mode as Optimization.
30612
30613 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30614
30615         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
30616         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
30617
30618 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
30619
30620         PR target/64659
30621         * config/sh/predicates.md (atomic_arith_operand,
30622         atomic_logical_operand): Remove.
30623         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
30624         (atomic_arith_operand_0): New predicate.
30625         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
30626         Use atomic_arith_operand_0 for input values.
30627         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
30628         atomic_compare_and_swap<mode>_soft_gusa,
30629         atomic_compare_and_swap<mode>_soft_tcb,
30630         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
30631         arith_reg_operand instead of register_operand.
30632         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
30633         atomic_arith_operand_0 for newval input.
30634         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
30635         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
30636         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
30637         arith_reg_operand instead of register_operand.
30638         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
30639         fetchop_predicate_1, fetchop_constraint_1_llcs,
30640         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
30641         fetchop_constraint_1_imask): New code iterator attributes.
30642         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
30643         register_operand.  Use fetchop_predicate_1.
30644         (atomic_fetch_<fetchop_name>si_hard,
30645         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
30646         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
30647         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
30648         and arith_reg_operand instead of register_operand.  Use
30649         fetchop_predicate_1, fetchop_constraint_1_gusa.
30650         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
30651         and arith_reg_operand instead of register_operand.  Use
30652         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
30653         to allow R0 usage.
30654         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
30655         and arith_reg_operand instead of register_operand.  Use
30656         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
30657         to allow R0 usage.
30658         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
30659         register_operand.  Use atomic_logical_operand_1.
30660         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
30661         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
30662         arith_reg_operand instead of register_operand.
30663         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
30664         Use arith_reg_dest and arith_reg_operand instead of register_operand.
30665         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
30666         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
30667         register_operand.  Use fetchop_predicate_1.
30668         (atomic_<fetchop_name>_fetchsi_hard,
30669         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
30670         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30671         fetchop_constraint_1_llcs.
30672         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
30673         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30674         fetchop_constraint_1_gusa.
30675         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
30676         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30677         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
30678         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
30679         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30680         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
30681         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
30682         register_operand.  Use atomic_logical_operand_1.
30683         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
30684         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
30685         arith_reg_operand instead of register_operand.
30686         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
30687         arith_reg_operand instead of register_operand.  Use logical_operand
30688         and K08.  Adjust asm sequence to allow R0 usage.
30689         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
30690         arith_reg_operand instead of register_operand.  Use logical_operand
30691         and K08.
30692
30693 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30694
30695         PR other/63504
30696         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
30697         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
30698         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
30699         only get_full_len HOST_WIDE_INTs from get_val () array rather than
30700         all bits in *val_wide.
30701
30702 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
30703
30704         * varpool.c (tls_model_names): Fix names.
30705         (varpool_node::dump): Dump tls- prefix for tls models.
30706
30707 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
30708             Bernd Schmidt  <bernds@codesourcery.com>
30709             Nathan Sidwell  <nathan@codesourcery.com>
30710
30711         * config/nvptx/mkoffload.c: New file.
30712         * config/nvptx/t-nvptx: Add build rules for it.
30713         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
30714         (extra_programs): Add mkoffload.
30715         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
30716         function.
30717         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
30718
30719 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
30720
30721         PR middle-end/64809
30722         * cfgexpand.c (reorder_operands): Skip debug gimples.
30723
30724 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
30725
30726         PR tree-optimization/64277
30727         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
30728         range info when possible to refine estimation.
30729
30730 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30731
30732         PR tree-optimization/64718
30733         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
30734         be a 16bit unsigned integer when n->range is 16.
30735         (bswap_replace): Convert src to that type if necessary for all bswap
30736         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
30737         set in pass_optimize_bswap::execute ().
30738
30739 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
30740
30741         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
30742         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
30743         integer and floating point variants.
30744         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
30745
30746 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
30747
30748         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
30749         for all vector modes.
30750
30751 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30752
30753         PR bootstrap/64612
30754         * doc/sourcebuild.texi (comdat_group): Document.
30755
30756 2015-01-28  Terry Guo  <terry.guo@arm.com>
30757
30758         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
30759
30760 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
30761
30762         * toplev.c (print_version): Add param "show_global_state", and
30763         only print GGC and plugin information if it is true.
30764         (init_asm_output): Pass in "true" for the new param when calling
30765         print_version.
30766         (process_options): Likewise.
30767         (toplev::main): Likewise.
30768         * toplev.h (print_version): Add new param to decl.
30769
30770 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30771
30772         PR ipa/60871
30773         PR ipa/64139
30774         * tree.c (lookup_binfo_at_offset): New function.
30775         (get_binfo_at_offset): Use it.
30776
30777 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30778
30779         PR ipa/64282
30780         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
30781         on vtable being vtable.
30782
30783 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30784
30785         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
30786         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
30787         -mhotpatch= option.
30788         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
30789         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
30790         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
30791         Renamed.
30792         (s390_hotpatch_trampoline_halfwords_max): Renamed.
30793         (s390_hotpatch_hw_max): New name.
30794         (s390_hotpatch_trampoline_halfwords): Renamed.
30795         (s390_hotpatch_hw_before_label): New name.
30796         (get_hotpatch_attribute): Removed.
30797         (s390_hotpatch_hw_after_label): New name.
30798         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
30799         attribute.
30800         (s390_attribute_table): Ditto.
30801         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
30802         (s390_function_num_hotpatch_hw): New name.
30803         Remove special handling of inline functions and hotpatching.
30804         Return number of nops before and after the function label.
30805         (s390_can_inline_p): Removed.
30806         (s390_asm_output_function_label): Emit a configurable number of nops
30807         after the function label.
30808         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
30809         (TARGET_CAN_INLINE_P) Removed.
30810         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
30811
30812 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30813             Jiong Wang  <jiong.wang@arm.com>
30814
30815         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
30816         of scratch reg.
30817         (cb<optab><mode>1): Likewise.
30818         * config/aarch64/iterators.md (bcond): New define_code_attr.
30819
30820 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30821
30822         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
30823         memory accesses.
30824
30825 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30826
30827         * config/s390/s390.c (s390_register_move_cost): Increase costs for
30828         FPR->GPR moves.
30829
30830 2015-01-27  Richard Biener  <rguenther@suse.de>
30831
30832         * tree-vrp.c (update_value_range): Intersect the range with
30833         old recorded SSA name range information.
30834
30835 2015-01-27  Nick Clifton  <nickc@redhat.com>
30836
30837         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
30838         BC, DE and HL registers directly, not via AX.
30839         When decrementing the stack pointer by a large amount, transfer SP
30840         into AX and perform the subtraction there.
30841         (rl78_expand_epilogue): Perform the inverse of the above
30842         enhancements.
30843
30844 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30845
30846         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
30847
30848 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30849             Yury Gribov  <y.gribov@samsung.com>
30850
30851         PR ubsan/64741
30852         * ubsan.c (ubsan_source_location): Refactor code.
30853         (ubsan_type_descriptor): Update type size. Refactor code.
30854
30855 2015-01-27  Richard Biener  <rguenther@suse.de>
30856
30857         PR tree-optimization/56273
30858         PR tree-optimization/59124
30859         PR tree-optimization/64277
30860         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
30861         from the first VRP pass.
30862
30863 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30864
30865         PR ipa/64776
30866         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
30867         handle the first argument in the same loop as all the other arguments.
30868
30869         PR rtl-optimization/61058
30870         * jump.c (cleanup_barriers): Update basic block boundaries
30871         if BLOCK_FOR_INSN is non-NULL on PREV.
30872
30873 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
30874
30875         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
30876         bounds narrowing, already instrumented calls and calls to
30877         not instrumentable functions.
30878
30879 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30880
30881         PR tree-optimization/64807
30882         * wide-int.cc (wi::divmod_internal): Clear
30883         b_dividend[dividend_blocks_needed].
30884
30885 2015-01-26  DJ Delorie  <dj@redhat.com>
30886
30887         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
30888         volatile memory references.
30889
30890 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
30891
30892         PR target/49263
30893         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
30894         remove_insn.
30895         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
30896         shifts if it already fits into K08.
30897
30898 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30899
30900         PR ipa/64730
30901         * ipa-inline.c (inline_small_functions): Print "unknown" even
30902         if edge->call_stmt is non-NULL, but has builtins or unknown
30903         location.
30904
30905         PR middle-end/64421
30906         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
30907         with asterisk, skip the first character.
30908
30909 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30910
30911         PR target/64806
30912         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
30913         order change.
30914
30915 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
30916
30917         PR target/64795
30918         * config/i386/i386.md (*movdi_internal): Also check operand 0
30919         to determine TYPE_LEA operand.
30920         (*movsi_internal): Ditto.
30921
30922 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30923
30924         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
30925         OPTION_MASK_QUAD_MEMORY_ATOMIC.
30926
30927 2015-01-26  Renlin Li  <renlin.li@arm.com>
30928
30929         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
30930         the comment.
30931         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
30932         for higher part.
30933
30934 2015-01-26  Richard Biener  <rguenther@suse.de>
30935
30936         PR middle-end/64764
30937         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
30938         combining two BIT_AND_EXPR predicates.
30939
30940 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30941
30942         PR bootstrap/64754
30943         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
30944
30945 2015-01-26  Terry Guo  <terry.guo@arm.com>
30946
30947         * config/arm/arm.c (arm_file_start): Update the assignment of
30948         Tag_ABI_HardFP_use.
30949
30950 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
30951
30952         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
30953         pipeline model.
30954         config/arm/arm.md: Include the new Cortex-A57 model.
30955         (generic_sched): Don't use generic_sched when tuning for
30956         Cortex-A57.
30957
30958 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
30959             Uros Bizjak  <ubizjak@gmail.com>
30960
30961         * config/i386/i386.c (get_builtin_code_for_version): Add
30962         support for BMI and BMI2 multiversion functions.
30963
30964 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30965
30966         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
30967         (extract_bit_field): Likewise.
30968         (extract_low_bits): Likewise.
30969         (expand_mult): Likewise.
30970         (expand_mult_highpart_adjust): Likewise.
30971
30972 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30973
30974         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
30975         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
30976         * config/i386/i386.c (processor_model): Add
30977         M_INTEL_COREI7_BROADWELL.
30978         (arch_names_table): Add "broadwell".
30979
30980 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
30981
30982         PR target/49263
30983         PR target/53987
30984         PR target/64345
30985         PR target/59533
30986         PR target/52933
30987         PR target/54236
30988         PR target/51244
30989         * config/sh/sh-protos.h
30990         (sh_extending_set_of_reg::can_use_as_unextended_reg,
30991         sh_extending_set_of_reg::use_as_unextended_reg,
30992         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
30993         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
30994         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
30995         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
30996         (sh_treg_insns): New class.
30997         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
30998         (scope_counter): New class.
30999         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
31000         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
31001         sh_extending_set_of_reg::can_use_as_unextended_reg,
31002         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
31003         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
31004         sh_split_treg_set_expr): New functions.
31005         (addsubcosts): Handle treg_set_expr.
31006         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
31007         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
31008         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
31009         (sh_insn_operands_modified_between_p): Make non-static.
31010         * config/sh/predicates.md (zero_extend_movu_operand): Allow
31011         simple_mem_operand in addition to displacement_mem_operand.
31012         (zero_extend_operand): Don't allow zero_extend_movu_operand.
31013         (treg_set_expr, treg_set_expr_not_const01,
31014         arith_reg_or_treg_set_expr): New predicates.
31015         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
31016         arith_or_int_operand instead of logical_operand.  Convert to
31017         insn_and_split.  Try to optimize constant operand in splitter.
31018         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
31019         (*tstqi_t_zero): Delete.
31020         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
31021         (tstsi_t_and_not): Delete.
31022         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
31023         Convert to insn_and_split.
31024         (unnamed split, tstsi_t_zero_extract_xor,
31025         tstsi_t_zero_extract_subreg_xor_little,
31026         tstsi_t_zero_extract_subreg_xor_big): Delete.
31027         (*tstsi_t_shift_mask): New insn_and_split.
31028         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
31029         to recombine with surrounding insns when splitting.
31030         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
31031         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
31032         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
31033         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
31034         (*cbranch_div0s: Delete.
31035         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
31036         Try to recombine with surrounding insns when splitting.  Add operand
31037         order variants.
31038         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
31039         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
31040         *addc_r_r_msb, *addc_2r_msb): Delete.
31041         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
31042         order variant.
31043         (*addc_negreg_t): New insn_and_split.
31044         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
31045         Try to recombine with surrounding insns when splitting.
31046         Add operand order variants.
31047         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
31048         insn_and_split patterns.
31049         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
31050         surrounding insns when splitting.
31051         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
31052         (*rotcl): Likewise.  Add zero_extract variant.
31053         (*ashrsi2_31): New insn_and_split.
31054         (*negc): Convert to insn_and_split.  Use treg_set_expr.
31055         (*zero_extend<mode>si2_disp_mem): Update comment.
31056         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
31057         condition.
31058         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
31059         with surrounding insns when splitting.
31060         (any_treg_expr_to_reg): New insn_and_split.
31061         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
31062         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
31063         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
31064         *zero_extract_2): New single bit zero extract patterns.
31065         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
31066         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
31067         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
31068         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
31069         set destination.
31070         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
31071         register_operand for set source.
31072
31073 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
31074
31075         * i386.opt (prefetch_sse): New targetsave.
31076         * i386.c (ix86_function_specific_save): Save prefetch_sse.
31077         (ix86_function_specific_restore): Restore prefetch_sse and initialize
31078         ix86_cost/ix86_tune_cost.
31079
31080 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
31081
31082         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
31083         Support the JIT by using 0 as the language type.
31084
31085 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
31086
31087         PR target/64317
31088         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
31089         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
31090         (mark_regno_live, process_bb_lives): Pass new parameter value to
31091         make_hard_regno_born.
31092
31093 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31094
31095         PR rtl-optimization/63637
31096         PR rtl-optimization/60663
31097         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
31098         if elt->cost is MAX_COST for ASM_OPERANDS.
31099         (find_sets_in_insn): Fix up comment typo.
31100         (cse_insn): Don't set src_volatile for all non-volatile
31101         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
31102         or with "memory" clobber.  Set elt->cost to MAX_COST
31103         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
31104         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
31105
31106 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
31107
31108         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
31109         alternative 1.
31110
31111 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
31112
31113         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
31114         libgcc/config/i386/elf-lib.h.
31115
31116 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31117
31118         PR driver/64737
31119         * gcc.c (print_configuration): Don't print a blank line at the end
31120         here...
31121         (run_attempt): ... but here unstead.
31122
31123         PR middle-end/64734
31124         * omp-low.c (scan_sharing_clauses): Don't ignore
31125         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
31126         on target data/update constructs.
31127
31128 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31129
31130         PR target/50928
31131         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
31132         (DEBUG_RELOAD): Removed define.
31133         (m32c_limit_reload_class): Enable traces with if DEBUG0.
31134         (m32c_function_arg): Added a type cast.
31135         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
31136         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
31137         * config/m32c/bitops.md (andqi3_16): Likewise.
31138         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
31139         (push_a01_l): Likewise.
31140
31141 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
31142
31143         PR jit/64721
31144         * main.c (main): Construct toplev instances with init_signals=true.
31145         * toplev.c (general_init): Add param "init_signals", and use it to
31146         conditionalize the calls to signal and host_hooks.extra_signals.
31147         (toplev::toplev): Add param "init_signals".
31148         (toplev::main): When invoking general_init, pass m_init_signals
31149         to control whether signal-handlers are installed.
31150         * toplev.h (toplev::toplev): Add param "init_signals".
31151         (toplev::m_init_signals): New field.
31152
31153 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
31154
31155         PR jit/64722
31156         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
31157         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
31158         latter may be affected by the former (e.g. on i686).
31159
31160 2015-01-23  Martin Liska  <mliska@suse.cz>
31161
31162         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
31163         false positive during profiledbootstrap.
31164
31165 2015-01-23  Tom de Vries  <tom@codesourcery.com>
31166
31167         PR libgomp/64672
31168         * lto-opts.c (lto_write_options): Output non-explicit conservative
31169         -fno-openacc.
31170         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
31171         (append_compiler_options): Pass -fopenacc through.
31172
31173 2015-01-23  Tom de Vries  <tom@codesourcery.com>
31174
31175         PR libgomp/64707
31176         * lto-opts.c (lto_write_options): Output non-explicit conservative
31177         -fno-openmp.
31178         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
31179         (append_compiler_options): Pass -fopenmp through.
31180
31181 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31182
31183         PR debug/64511
31184         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
31185         GTY markup.
31186
31187         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
31188         * diagnostic.def (DK_ICE_NOBT): New kind.
31189         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
31190         like DK_ICE, but never print backtrace.
31191         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
31192         (internal_error_no_backtrace): New function.
31193         * gcc.c (execute): Use internal_error_no_backtrace instead of
31194         internal_error.
31195
31196 2015-01-22  Jeff Law  <law@redhat.com>
31197
31198         PR target/52076
31199         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
31200         improve code density for small immediate to memory case.
31201         (insv): Better handle bitfield assignments when the field is
31202         being set to all ones.
31203         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
31204         operand predicate.
31205
31206 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31207             Jakub Jelinek  <jakub@redhat.com>
31208
31209         PR middle-end/64729
31210         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
31211         for !TARGET_LIBC_PROVIDES_SSP version and
31212         -fstack-protector-{all,strong,explicit} otherwise.
31213         * config/freebsd.h (LINK_SSP_SPEC): Handle
31214         -fstack-protector-{strong,explicit}.
31215
31216 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
31217             H.J. Lu  <hongjiu.lu@intel.com>
31218
31219         PR ipa/64694
31220         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
31221         heap.
31222
31223 2015-01-22  Wei Mi  <wmi@google.com>
31224
31225         PR rtl-optimization/64557
31226         * dse.c (record_store): Call get_addr for mem_addr.
31227         (check_mem_read_rtx): Likewise.
31228
31229 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
31230
31231         * fold-const.c (const_binop): Add early return for non-tcc_binary.
31232
31233 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
31234
31235         * toplev.c (init_local_tick): Process the failure when read
31236         fails for random_seed.
31237
31238         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
31239         'pretty_name' to avoid memory overflow.
31240
31241 2015-01-22  Richard Biener  <rguenther@suse.de>
31242
31243         PR middle-end/64728
31244         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
31245         abnormal coalescing on undefined SSA names.
31246
31247 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
31248
31249         PR target/64688
31250         PR target/64477
31251         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
31252         for alternative 3.
31253         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
31254
31255 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
31256
31257         PR middle-end/63325
31258         * fold-const.c (fold_checksum_tree): Don't include value of
31259         expr->decl_with_vis.symtab_node in the checksum.
31260
31261 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31262
31263         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
31264
31265 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31266
31267         PR driver/64690
31268         * gcc.c (insert_comments): New function.
31269         (try_generate_repro): Call it.
31270         (append_text): Removed.
31271
31272 2015-01-22  Richard Biener  <rguenther@suse.de>
31273
31274         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
31275         with IL incompatible options.  Properly honor user optimize
31276         attributes.
31277
31278 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
31279
31280         PR rtl-optimization/64682
31281         * combine.c (distribute_notes): When moving a death note for
31282         a register that is set in the new I2, make sure to put it
31283         before that new I2.
31284
31285 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
31286
31287         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
31288         not TARGET_DEFAULT.
31289
31290 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
31291
31292         PR debug/64511
31293         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
31294         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
31295         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
31296
31297         PR sanitizer/64706
31298         * doc/invoke.texi (-fsanitize=vptr): Document.
31299
31300         PR rtl-optimization/62078
31301         * dse.c: Include cfgcleanup.h.
31302         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
31303         anything call purge_all_dead_edges and cleanup_cfg at the end
31304         of the pass.
31305
31306 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
31307
31308         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
31309         edges.
31310
31311 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31312
31313         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
31314         decl attribute.
31315
31316 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31317             Tejas Belagod <Tejas.Belagod@arm.com>
31318
31319         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
31320         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
31321         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
31322         Removed.
31323
31324 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31325             Tejas Belagod <Tejas.Belagod@arm.com>
31326
31327         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
31328         (aarch64_reverse_mask): New decls.
31329         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
31330         (insn_count): New mode_attr.
31331         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
31332         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
31333         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
31334         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
31335         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
31336         (aarch64_simd_st4): New patterns.
31337         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
31338         (aarch64_reverse_mask): New functions.
31339
31340 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31341
31342         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
31343         Declare.
31344         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
31345         addressing modes for BE.
31346         (aarch64_print_operand): Add 'R' specifier.
31347         (aarch64_simd_disambiguate_copy): Delete.
31348         (aarch64_simd_emit_reg_reg_move): New function.
31349         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
31350         in define_splits for structural moves.
31351         (mov<mode>): Use less restrictive predicates.
31352         (*aarch64_mov<mode>): Simplify and only allow for LE.
31353         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
31354
31355 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31356
31357         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
31358
31359 2015-01-21  Richard Henderson  <rth@redhat.com>
31360
31361         PR target/64669
31362         * ccmp.c (used_in_cond_stmt_p): Remove.
31363         (expand_ccmp_expr): Don't use it.
31364
31365 2015-01-21  Nick Clifton  <nickc@redhat.com>
31366
31367         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
31368         PARALLELs.
31369
31370 2015-01-21  Richard Biener  <rguenther@suse.de>
31371
31372         PR middle-end/64313
31373         * tree-core.h (builtin_info, builtin_info_type): Turn from
31374         an object with two arrays into an array of an object with
31375         decl and two flags, implicit_p and declared_p.
31376         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
31377         set_builtin_decl, set_builtin_decl_implicit_p,
31378         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
31379         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
31380         * builtins.c (builtin_info): Adjust.
31381         * gimplify.c (gimplify_addr_expr): References to builtins
31382         that have been declared by the user makes them eligible for
31383         use by the compiler.  Call set_builtin_decl_implicit_p on them.
31384
31385 2015-01-20  Jeff Law  <law@redhat.com>
31386
31387         PR target/59946
31388         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
31389         allow pc-relative addresses in operand predicates or constraints.
31390
31391 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
31392
31393         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
31394         neon on aarch32 processors for stringops.
31395
31396 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31397
31398         PR ipa/63576
31399         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
31400
31401 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31402
31403         PR lto/45375
31404         * ipa-inline.c: Include lto-streamer.h
31405         (report_inline_failed_reason): Output source file differences and
31406         flags on optimization/target node mismatch.
31407         (can_inline_edge_p): Consider caller to be the outer inline function;
31408         be less restrictive about matching opimize and optimize_size attributes.
31409         (inline_account_function_p): Break out from ...
31410         (inline_small_functions): ... here.
31411         * ipa-inline-transform.c (clone_inlined_nodes): Use
31412         inline_account_function_p.
31413         (inline_call): Use optimize attribution; use inline_account_function_p.
31414         (inline_transform): Use opt_for_fn.
31415         * ipa-inline.h (inline_account_function_p): Declare.
31416
31417 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
31418
31419         PR debug/64663
31420         * dwarf2out.c (decl_piece_node): Don't put bitsize into
31421         mode if bitsize <= 0.
31422         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
31423         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
31424         sizes and positions.
31425
31426 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
31427
31428         * config/nios2/nios2.c (nios2_asm_file_end): Implement
31429         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
31430         needed.
31431         (TARGET_ASM_FILE_END): Define.
31432
31433 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31434
31435         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
31436         (struct tune_params): Use the enum.
31437         * arm.c (arm_*_tune): Update.
31438         (arm_option_override): Update.
31439
31440 2015-01-20  Richard Biener  <rguenther@suse.de>
31441
31442         PR ipa/64684
31443         * ipa-reference.c (add_static_var): Inline ...
31444         (analyze_function): ... here after splitting out from ...
31445         (is_proper_for_analysis): ... this.
31446
31447 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
31448
31449         PR target/64149
31450         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
31451         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
31452         replace the conditional with it's true branch.
31453         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
31454         (arm_lra_p): Remove.
31455
31456 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
31457
31458         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
31459
31460 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31461
31462         * config/tilegx/mul-tables.c: Move symtab.h include after
31463         coretypes.h include.
31464         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
31465         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
31466         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
31467         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
31468         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
31469
31470 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
31471
31472         PR bootstrap/64676
31473         Revert:
31474         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31475
31476         PR rtl-optimization/64081
31477         * loop-iv.c (def_pred_latch_p): New function.
31478         (latch_dominating_def): Allow specific cases with non-single
31479         definitions.
31480         (iv_get_reaching_def): Likewise.
31481         (check_complex_exit_p): New function.
31482         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31483         with exits not executing on any iteration.
31484
31485 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31486
31487         PR lto/45375
31488         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
31489         to set branch cost.
31490
31491 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31492
31493         PR lto/45375
31494         * i386.c (gate): Check flag_expensive_optimizations and
31495         optimize_size.
31496         (ix86_option_override_internal): Drop optimize_size condition
31497         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
31498         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
31499         MASK_PREFER_AVX128.
31500         (ix86_avx256_split_vector_move_misalign,
31501         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
31502         * sse.md (all uses of TARGET_PREFER_AVX128): Add
31503         optimize_insn_for_speed_p check.
31504
31505 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
31506
31507         * config/mips/mips.h (FP_ASM_SPEC): New define.
31508         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
31509         instead.
31510
31511 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
31512
31513         PR target/53988
31514         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
31515         nullptr for insn when reaching the first insn.
31516         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
31517         (sh_insn_operands_modified_between_p): Add nullptr check.
31518         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
31519         sign extending mem load if the insn contains any UNSPEC or
31520         UNSPEC_VOLATILE.
31521
31522 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31523
31524         * params.def (inline-unit-growth): Drop to 15%.
31525         * invoke.texi (inline-unit-growth): Document change.
31526
31527 2015-01-19  Martin Liska  <mliska@suse.cz>
31528
31529         PR ipa/64668
31530         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
31531         function for second argument of OBJ_TYPE_REF.
31532
31533 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31534
31535         PR ipa/64218
31536         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
31537         whether function is an alias.
31538
31539 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31540
31541         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
31542         cases.
31543
31544 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
31545
31546         PR rtl-optimization/64671
31547         * lra-remat.c (operand_to_remat): Don't consider jump and call
31548         insns.
31549
31550 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
31551
31552         PR target/59828
31553         * config/rs6000/default64.h: Include rs6000-cpus.def.
31554         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
31555         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
31556         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
31557         and POWER8.
31558         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
31559         POWER8.
31560         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
31561         pseudo-op to specify assembler dialect.
31562
31563 2015-01-19  Martin Liska  <mliska@suse.cz>
31564
31565         PR ipa/64664
31566         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
31567         Handle safe potentially removed nodes during filtering.
31568
31569 2015-01-19  Martin Liska  <mliska@suse.cz>
31570
31571         * doc/extend.texi (no_icf): Add new attribute description.
31572         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
31573         where the pass attempts to merge a function with no_icf attribute.
31574
31575 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31576
31577         PR target/64532
31578         * doc/md.texi (ARM Options): Document register constraints.
31579
31580 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31581             Andrew Pinski  <apinski@cavium.com>
31582
31583         PR target/64304
31584         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
31585         (ashl<mode>3): Don't expand if operands[2] is not constant.
31586
31587 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31588
31589         PR target/64448
31590         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
31591         Match xor-and-xor RTL pattern.
31592
31593 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31594
31595         PR rtl-optimization/64081
31596         * loop-iv.c (def_pred_latch_p): New function.
31597         (latch_dominating_def): Allow specific cases with non-single
31598         definitions.
31599         (iv_get_reaching_def): Likewise.
31600         (check_complex_exit_p): New function.
31601         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31602         with exits not executing on any iteration.
31603
31604 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
31605
31606         * common.opt (fgraphite): Fix a typo.
31607
31608 2015-01-19  Felix Yang  <felix.yang@huawei.com>
31609
31610         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
31611         pattern.
31612         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
31613         uminp, smax_nanp, smin_nanp): New builtins.
31614         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
31615         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
31616         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
31617         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
31618         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
31619         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
31620         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
31621         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
31622         vpminnms_f32): Rewrite using builtin functions.
31623
31624 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
31625
31626         PR libgomp/64625
31627         * omp-low.c (offload_symbol_decl): Remove variable.
31628         (get_offload_symbol_decl): Remove function.
31629         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
31630         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
31631         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
31632         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
31633         BUILT_IN_GOACC_UPDATE don't pass it at all.
31634
31635 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31636
31637         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
31638         callers.
31639
31640 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31641
31642         * ipa-chkp.c (chkp_produce_thunks): Add early param
31643         to split thunks production into two passes.  Keep
31644         'always_inline' function bodies after the first pass.
31645         (pass_data_ipa_chkp_early_produce_thunks): New.
31646         (pass_ipa_chkp_early_produce_thunks): New.
31647         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
31648         chkp_produce_thunks signature.
31649         (make_pass_ipa_chkp_early_produce_thunks): New.
31650         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
31651         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
31652         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
31653
31654 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31655
31656         * cgraph.c (cgraph_node::dump): Dump profile flags.
31657
31658 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
31659
31660         PR target/64652
31661         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
31662         reg appear first in the parallel.
31663
31664 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31665
31666         * ipa-reference.c (set_reference_optimization_summary,
31667         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
31668         disabled.
31669         (ignore_module_statics): New static var.
31670         (propagate_bits): If ipa-reference is disabled, do not look into local
31671         properties.
31672         (analyze_function): Disable analysis when ipa_reference is disabled.
31673         (generate_summary): Do not dump when reference is disabled;
31674         collect vars accessed from functions with ipa-reference disabled.
31675         (get_read_write_all_from_node): When ipa-reference is disabled, use the
31676         node flags.
31677         (gate): Enable for LTO.
31678         (ignore_edge_p): New function.
31679         (propagate): Skip functions w/o ipa-reference analysis.
31680         * optc-save-gen.awk: Handle optimize_debug correctly.
31681         * opth-gen.awk: Likewise.
31682         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
31683         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
31684         fira-share-save-slots, fira-share-spill-slots,
31685         fmodulo-sched-allow-regmoves, fpartial-inlining,
31686         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
31687         ftracer, ftree-parallelize-loops, fassociative-math,
31688         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
31689         Optimization
31690         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
31691         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
31692         Optimization.
31693         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
31694         Fix for IPA.
31695
31696 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31697
31698         PR ipa/64378
31699         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
31700         flag correctly.
31701         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
31702
31703 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
31704
31705         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
31706         Remove duplicate option listings.
31707
31708 2015-01-18  Felix Yang  <felix.yang@huawei.com>
31709
31710         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
31711         (autofdo_source_profile::get_callsite_total_count,
31712         function_instance::get_function_instance_by_decl,
31713         string_table::get_index, string_table::get_index_by_decl,
31714         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
31715         Fix comment typos. Reformatting and minor code rearrangement.
31716
31717 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31718
31719         * config/rs6000/rs6000.md (probe_stack): Delete.
31720         (probe_stack_address): New.
31721
31722 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31723
31724         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
31725         to test for 32-bit ABIs, not !TARGET_POWERPC64.
31726
31727 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31728
31729         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
31730         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
31731         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
31732         snafu.
31733         (rs6000_libcall_value): Use the new function.
31734
31735 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
31736
31737         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
31738
31739 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31740
31741         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
31742         implement a more precise life analysis for it during backward scan.
31743
31744 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
31745
31746         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
31747
31748 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
31749
31750         PR rtl-optimization/52773
31751         * calls.c (emit_library_call_value): When pushing arguments use
31752         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
31753         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
31754         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
31755
31756 2015-01-17  Jeff Law  <law@redhat.com>
31757
31758         PR rtl-optimization/32790
31759         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
31760         not ZERO_EXTEND in SET_DESTs.
31761
31762 2015-01-17  Alan Modra  <amodra@gmail.com>
31763
31764         * cprop.c (do_local_cprop): Revert last change.
31765
31766 2015-01-16  DJ Delorie  <dj@redhat.com>
31767             Nick Clifton  <nickc@redhat.com>
31768
31769         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
31770         (addhi3_real): Likewise.  Fix [HL+0] syntax.
31771         (subqi3_real): Likewise.
31772         (subhi3_real): Likewise.
31773         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
31774         (cbranchhi4_real): Likewise.
31775         (cbranchhi4_real_inverted): Likewise.
31776         (cbranchsi4_real_lt): Likewise.
31777         (cbranchsi4_real_ge): Likewise.
31778         (cbranchsi4_real_ge): Likewise.
31779         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
31780         (sub<mode>3_virt): Likewise.
31781         (cbranchqi4_virt): Likewise.
31782         (cbranchhi4_virt): Likewise.
31783         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
31784         always use '[reg+imm]' even when imm is zero.
31785         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
31786         (rl78_general_operand): New.
31787         (rl78_nonimmediate_operand): New.
31788         (rl78_nonfar_operand): Use them.
31789         (rl78_nonfar_nonimm_operand): Likewise.
31790         (rl78_stack_based_mem): Fix.
31791         * config/rl78/constraints.md (Ibqi): New.
31792         (IBqi): New.
31793         (Wsa): New.
31794         (Wsf): New.
31795         (Cs1): Fix.
31796         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
31797         (iorqi3): Likewise.
31798         (xorqi3): Likewise.
31799         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
31800
31801         * config/rl78/constrains (Qs8): New constraint.
31802         * config/rl78/rl78.c (rl78_flags_already_set): New function.
31803         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
31804         * config/rl78/rl78-real.md (update_Z): New attribute.
31805         Update patterns to set it.
31806         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
31807         shorter compare and branch sequence can be used.
31808         (cbranchhi4_real): Likewise.
31809         (cbranchhi4_real_inverted): Likewise.
31810
31811         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
31812         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
31813         address space.
31814         * config/rl78/rl78.c (rl78_get_name_encoding): New.
31815         (rl78_option_override): Allow -mes0 only if C.
31816         (characterize_address): Support subregs of symbol_refs.
31817         (rl78_addr_space_address_mode): Move.  Add __near.
31818         (rl78_far_p): Likewise.
31819         (rl78_addr_space_pointer_mode): Likewise.
31820         (rl78_as_legitimate_address): Likewise.
31821         (rl78_addr_space_subset_p): Likewise.
31822         (rl78_addr_space_convert): Likewise.
31823         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
31824         symbols with -mes0.
31825         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
31826         addressing.
31827         (rl78_alloc_physical_registers_op1): Change logic to prefer
31828         symbol[BC] addressing.
31829         (frodata_section): New.
31830         (rl78_asm_init_sections): Initialize it.
31831         (rl78_select_section): Put __far readonly symbols in .frodata.
31832         (rl78_make_type_far): New.
31833         (rl78_insert_attributes): Force all readonly symbols to be
31834         __far when -mes0.
31835         (rl78_asm_out_integer): New.
31836         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
31837         * config/rl78/rl78.opt (-mes0): New.
31838
31839         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
31840         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
31841         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
31842         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
31843         (rl78_saddr_p): New.
31844         (rl78_output_aligned_common): New.
31845         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
31846         (rl78_handle_saddr_attribute): New.
31847         (rl78_handle_naked_attribute): New.
31848         (rl78_attribute_table): Add saddr.
31849         (rl78_print_operand_1): Don't print '!' on saddr operands.
31850         (rl78_print_operand_1): Strip encodings.
31851         (rl78_sfr_p): New.
31852         (rl78_strip_name_encoding): New.
31853         (rl78_attrlist_to_encoding): New.
31854         (rl78_encode_section_info): New.
31855         (rl78_asm_init_sections): New.
31856         (rl78_select_section): New.
31857         (rl78_output_labelref): New.
31858         (rl78_output_aligned_common): New.
31859         (rl78_asm_out_integer): New.
31860         (rl78_asm_ctor_dtor): New.
31861         (rl78_asm_constructor): New.
31862         (rl78_asm_destructor): New.
31863
31864         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
31865         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
31866         (transcode_memory_rtx): Update.
31867         (rl78_expand_epilogue): Use A_REG instead of 0.
31868
31869 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31870
31871         * config/arm/arm-protos.h (struct tune_params): New field
31872         sched_autopref_queue_depth.
31873         * config/arm/arm.c (sched-int.h): Include header.
31874         (arm_first_cycle_multipass_dfa_lookahead_guard,)
31875         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
31876         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
31877         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
31878         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
31879         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
31880         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
31881         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
31882         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
31883         * config/arm/t-arm (arm.o): Update.
31884         * haifa-sched.c (update_insn_after_change): Update.
31885         (rank_for_schedule): Use auto-prefetcher model, if requested.
31886         (autopref_multipass_init): New static function.
31887         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
31888         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
31889         variable for debug dumps.
31890         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
31891         (autopref_multipass_dfa_lookahead_guard): New global function that
31892         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
31893         (init_h_i_d): Update.
31894         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
31895         * sched-int.h (enum autopref_multipass_data_status): New const enum.
31896         (autopref_multipass_data_): Structure for auto-prefetcher data.
31897         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
31898         (struct _haifa_insn_data:autopref_multipass_data): New field.
31899         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
31900         (autopref_multipass_dfa_lookahead_guard): Declare.
31901
31902 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31903
31904         * rtlanal.c (get_base_term): Handle SCRATCH.
31905
31906 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31907
31908         * config/aarch64/aarch64.c
31909         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
31910         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31911         * config/arm/arm.c
31912         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
31913         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31914
31915 2015-01-17  Alan Modra  <amodra@gmail.com>
31916
31917         * cprop.c (do_local_cprop): Disallow replacement of fixed
31918         hard registers.
31919
31920 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31921
31922         PR target/62066
31923         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
31924         early return 0.
31925
31926 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31927
31928         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
31929         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
31930
31931 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31932
31933         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
31934         * config/arm/thumb1.md: ... Here.
31935
31936 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31937
31938         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
31939         TImode for TARGET_32BIT.
31940
31941 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31942
31943         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
31944         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
31945         as ...
31946         (rs6000_abi_word_mode): New function.
31947
31948 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31949
31950         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
31951         instead of UNITS_PER_WORD to describe the size of stack slots.
31952
31953 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31954
31955         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
31956         as rs6000_promote_function_mode.  Move comment to there.
31957         (rs6000_promote_function_mode): New function.
31958
31959 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31960
31961         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
31962         -mpowerpc64 is active.
31963
31964 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31965
31966         PR middle-end/64353
31967         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
31968         virtuals on start.
31969
31970 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31971
31972         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
31973         introduced in revision 219724.
31974
31975 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31976             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31977
31978         PR target/64263
31979         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
31980         destination is not a GP reg.
31981         (*movdi_aarch64): Likewise.
31982
31983 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
31984
31985         PR target/64623
31986         * config/rs6000/default64.h: Revert ISA change.
31987
31988 2015-01-16  Richard Biener  <rguenther@suse.de>
31989
31990         PR middle-end/64614
31991         * tree-ssa-uninit.c: Include tree-cfg.h.
31992         (MAX_SWITCH_CASES): New define.
31993         (convert_control_dep_chain_into_preds): Handle switch statements.
31994         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
31995         (normalize_one_pred_1): Do not split bit-manipulations.
31996         Record (x & CST).
31997
31998 2015-01-16  Richard Biener  <rguenther@suse.de>
31999
32000         PR tree-optimization/64568
32001         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
32002         complex load rewriting for TARGET_MEM_REFs.
32003
32004 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
32005
32006         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
32007
32008 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
32009
32010         PR target/64149
32011         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
32012         variable.
32013         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
32014         (aarch64_lra_p): Remove.
32015
32016 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
32017
32018         PR target/64363
32019         * ipa-chkp.h (chkp_instrumentable_p): New.
32020         * ipa-chkp.c: Include tree-inline.h.
32021         (chkp_instrumentable_p): New.
32022         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
32023         Fix processing of not instrumentable functions.
32024         (chkp_versioning): Use chkp_instrumentable_p. Warn about
32025         not instrumentable functions.
32026         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
32027         chkp_instrumentable_p.
32028         * tree-inline.h (copy_forbidden): New.
32029         * tree-inline.c (copy_forbidden): Not static anymore.
32030
32031 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32032
32033         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
32034         ptr1, ptr2 unused.
32035
32036 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
32037
32038         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
32039         type OP_OUT to OP_INOUT.
32040
32041 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
32042
32043         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
32044         (high x) y) to y if x and y have the same base.
32045
32046 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
32047
32048         * config/arm/cortex-a57.md: New.
32049         * config/aarch64/aarch64.md: Include it.
32050         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
32051         * config/aarch64/aarch64-tune.md: Regenerate.
32052
32053 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
32054
32055         PR target/64015
32056         * ccmp.c (expand_ccmp_next): New function.
32057         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
32058         and compare insn sequence.
32059         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
32060         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
32061         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
32062         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
32063         (*ccmp_ior): Changed to ccmp_ior<mode>.
32064         (cmp<mode>): New pattern.
32065         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
32066         parameters.
32067         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
32068
32069 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
32070
32071         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
32072         _mm256_bsrli_epi128): New.
32073         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
32074
32075 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
32076
32077         * expmed.c (store_bit_field_using_insv): Improve warning message.
32078         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
32079
32080 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
32081
32082         PR rtl-optimization/64011
32083         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
32084         there is partial overflow.
32085
32086 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32087
32088         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
32089         prototype.
32090         (nds32_expand_epilogue_v3pop): Likewise.
32091         * config/nds32/nds32.md (sibcall): Define this for sibling call
32092         optimization.
32093         (sibcall_register): Likewise.
32094         (sibcall_immediate): Likewise.
32095         (sibcall_value): Likewise.
32096         (sibcall_value_register): Likewise.
32097         (sibcall_value_immediate): Likewise.
32098         (sibcall_epilogue): Likewise.
32099         (epilogue): Pass false to indicate this is not a sibcall epilogue.
32100         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
32101         (nds32_expand_epilogue_v3pop): Likewise.
32102
32103 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32104
32105         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
32106         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
32107         (return_internal): New.
32108         (return): Define this named pattern.
32109         (simple_return): Define this named pattern.
32110         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
32111         pattern instead of unspec_volatile_func_return.
32112         (nds32_expand_epilogue_v3pop): Likewise.
32113         (nds32_can_use_return_insn): New function.
32114
32115 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32116
32117         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
32118         * config/nds32/nds32.md (pop25return): New.
32119         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
32120         pop25return pattern.
32121
32122 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32123
32124         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
32125         -mforbid-fp-as-gp, and -mex9 options.
32126
32127 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
32128
32129         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
32130         remove -mgp-direct option.
32131
32132 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32133
32134         * doc/invoke.texi (--param early-inlining-insns): Update default value.
32135         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
32136
32137 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32138
32139         * ipa-inline.c (inline_small_functions): Work around hints
32140         cache issue.
32141
32142 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
32143
32144         PR target/59710
32145         * doc/invoke.texi (Option Summary): Document new Nios II
32146         -mgpopt= syntax.
32147         (Nios II Options): Likewise.
32148         * config/nios2/nios2.opt: Add -mgpopt= option support.
32149         Modify existing -mgpopt and -mno-gpopt options to be aliases.
32150         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
32151         * config/nios2/nios2.c (nios2_option_override): Adjust
32152         -mgpopt defaulting.
32153         (nios2_in_small_data_p): Return true for explicit small data
32154         sections even with -G0.
32155         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
32156         option choices.
32157
32158 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32159
32160         PR ipa/64612
32161         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
32162         of comdat locals.
32163         (inline_call): Fix removal of aliases.
32164
32165 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32166
32167         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
32168         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
32169         * opts.c (common_handle_option): Add -fsanitize=vptr.
32170         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
32171         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
32172         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
32173         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
32174         (ubsan_expand_vptr_ifn): New prototype.
32175         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
32176         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
32177         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
32178         expand_LOOP_VECTORIZED): Make argument nameless, remove
32179         ATTRIBUTE_UNUSED.
32180         (expand_UBSAN_VPTR): New function.
32181         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
32182         in fn spec.
32183         (UBSAN_VPTR): New internal function.
32184         * sanopt.c (tree_map_traits): Renamed to ...
32185         (sanopt_tree_map_traits): ... this.
32186         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
32187         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
32188         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
32189         (maybe_optimize_ubsan_vptr_ifn): New function.
32190         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
32191         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
32192         -fsanitize=vptr.
32193         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
32194         internal calls like pure functions for aliasing, even when they
32195         have other side-effects that prevent making them ECF_PURE.
32196         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
32197         (ubsan_expand_vptr_ifn): New function.
32198
32199 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
32200
32201         PR rtl-optimization/64110
32202         * stmt.c (parse_output_constraint): Process '^' and '$'.
32203         (parse_input_constraint): Ditto.
32204         * lra-constraints.c (process_alt_operands): Process the new
32205         constraints.
32206         * ira-costs.c (record_reg_classes): Process the new constraint
32207         '^'.
32208         * genoutput.c (indep_constraints): Add '^' and '$'.
32209         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
32210         * doc/md.texi: Add description of the new constraints.
32211
32212 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
32213             Bernd Schmidt  <bernds@codesourcery.com>
32214             Cesar Philippidis  <cesar@codesourcery.com>
32215             James Norris  <jnorris@codesourcery.com>
32216             Tom de Vries  <tom@codesourcery.com>
32217             Ilmir Usmanov  <i.usmanov@samsung.com>
32218             Dmitry Bocharnikov  <dmitry.b@samsung.com>
32219             Evgeny Gavrin  <e.gavrin@samsung.com>
32220             Jakub Jelinek  <jakub@redhat.com>
32221
32222         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
32223         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
32224         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
32225         New function types.
32226         * builtins.c: Include "gomp-constants.h".
32227         (expand_builtin_acc_on_device): New function.
32228         (expand_builtin, is_inexpensive_builtin): Handle
32229         BUILT_IN_ACC_ON_DEVICE.
32230         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
32231         New macros.
32232         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
32233         flag_openmp.
32234         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
32235         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
32236         i386/intelmic-offload.h.
32237         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
32238         to libgomp and its dependencies.
32239         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
32240         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
32241         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
32242         * config/ia64/hpux.h (LIB_SPEC): Likewise.
32243         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
32244         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
32245         * doc/generic.texi: Update for OpenACC changes.
32246         * doc/gimple.texi: Likewise.
32247         * doc/invoke.texi: Likewise.
32248         * doc/sourcebuild.texi: Likewise.
32249         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
32250         GF_OMP_FOR_KIND_OACC_LOOP.
32251         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
32252         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
32253         GF_OMP_TARGET_KIND_OACC_UPDATE,
32254         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
32255         Dump more data.
32256         * gimple.c: Update comments for OpenACC changes.
32257         * gimple.def: Likewise.
32258         * gimple.h: Likewise.
32259         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
32260         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32261         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
32262         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
32263         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
32264         appropriate place.
32265         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
32266         * gimplify.c: Include "gomp-constants.h".
32267         Update comments for OpenACC changes.
32268         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
32269         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
32270         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32271         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
32272         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32273         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32274         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
32275         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32276         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
32277         OMP_CLAUSE_SEQ.
32278         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
32279         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32280         OMP_CLAUSE_SET_MAP_KIND.
32281         (gimplify_oacc_cache): New function.
32282         (gimplify_omp_for): Handle OACC_LOOP.
32283         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
32284         OACC_DATA.
32285         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
32286         OACC_EXIT_DATA, OACC_UPDATE.
32287         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
32288         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
32289         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
32290         (gimplify_body): Consider flag_openacc next to flag_openmp.
32291         * lto-streamer-out.c: Include "gomp-constants.h".
32292         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
32293         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
32294         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
32295         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
32296         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
32297         (BUILT_IN_ACC_ON_DEVICE): New builtins.
32298         * omp-low.c: Include "gomp-constants.h".
32299         Update comments for OpenACC changes.
32300         (struct omp_context): Add reduction_map, gwv_below, gwv_this
32301         members.
32302         (extract_omp_for_data, use_pointer_for_field, install_var_field)
32303         (new_omp_context, delete_omp_context, scan_sharing_clauses)
32304         (create_omp_child_function, scan_omp_for, scan_omp_target)
32305         (check_omp_nesting_restrictions, lower_reduction_clauses)
32306         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
32307         Update for OpenACC changes.
32308         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
32309         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
32310         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
32311         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32312         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
32313         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
32314         OMP_CLAUSE_MAP_*.
32315         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
32316         Handle GF_OMP_FOR_KIND_OACC_LOOP.
32317         (expand_omp_target, lower_omp_target): Handle
32318         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32319         GF_OMP_TARGET_KIND_OACC_UPDATE,
32320         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
32321         GF_OMP_TARGET_KIND_OACC_DATA.
32322         (pass_expand_omp::execute, execute_lower_omp)
32323         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
32324         flag_openmp.
32325         (offload_symbol_decl): New variable.
32326         (oacc_get_reduction_array_id, oacc_max_threads)
32327         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
32328         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
32329         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
32330         (oacc_gimple_assign, oacc_initialize_reduction_data)
32331         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
32332         functions.
32333         (is_targetreg_ctx): Remove function.
32334         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
32335         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
32336         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32337         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
32338         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
32339         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
32340         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
32341         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
32342         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
32343         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
32344         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
32345         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
32346         * tree-core.h: Update comments for OpenACC changes.
32347         (enum omp_clause_map_kind): Remove.
32348         (struct tree_omp_clause): Change type of map_kind member from enum
32349         omp_clause_map_kind to unsigned char.
32350         * tree-inline.c: Update comments for OpenACC changes.
32351         * tree-nested.c: Likewise.  Include "gomp-constants.h".
32352         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
32353         (convert_tramp_reference_stmt, convert_gimple_call): Update for
32354         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32355         OMP_CLAUSE_SET_MAP_KIND.
32356         * tree-pretty-print.c: Include "gomp-constants.h".
32357         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
32358         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
32359         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
32360         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
32361         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32362         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
32363         instead of OMP_CLAUSE_MAP_*.
32364         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
32365         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
32366         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32367         * tree-streamer-in.c: Include "gomp-constants.h".
32368         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
32369         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
32370         * tree-streamer-out.c: Include "gomp-constants.h".
32371         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
32372         OMP_CLAUSE_MAP_*.
32373         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
32374         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
32375         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
32376         * tree.c (omp_clause_num_ops): Update accordingly.
32377         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
32378         Likewise.
32379         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
32380         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
32381         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
32382         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
32383         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
32384         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
32385         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
32386         (OMP_CLAUSE_SET_MAP_KIND): New macro.
32387         * varpool.c (varpool_node::get_create): Consider flag_openacc next
32388         to flag_openmp.
32389         * config/i386/intelmic-offload.h: New file.
32390         * config/nvptx/offload.h: Likewise.
32391
32392 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32393
32394         * explow.h: Remove duplicate contents.
32395         * dojump.h: Likewise.
32396
32397 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
32398
32399         * arm.c (arm_xgene_tune): Add default initializer for instruction
32400         fusion.
32401
32402 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32403
32404         PR ipa/64068
32405         PR ipa/64559
32406         * ipa.c (symbol_table::remove_unreachable_nodes):
32407         Do not put abstract origins into boundary.
32408
32409 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
32410
32411         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
32412         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
32413
32414 2015-01-15  Steve Ellcey  <sellcey@mips.com>
32415
32416         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
32417         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
32418         builtins.def, and chkp-builtins.def.
32419
32420 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
32421
32422         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
32423         ISA 2.7 (POWER8).
32424
32425 2015-01-15  Richard Biener  <rguenther@suse.de>
32426
32427         PR tree-optimization/61743
32428         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
32429         information on PHIs for some simple cases.
32430
32431 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32432
32433         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
32434         Include xgene1.md.
32435         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
32436         * config/arm/arm-cores.def (xgene1): New entry.
32437         * config/arm/arm-tables.opt: Regenerate.
32438         * config/arm/arm-tune.md: Regenerate.
32439         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
32440
32441 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32442
32443         * tree-if-conv.c: Include hash-map.h.
32444         (aggressive_if_conv): New variable.
32445         (fold_build_cond_expr): Add simplification of non-zero condition.
32446         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
32447         destination block is not always executed.
32448         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
32449         than two predecessors if AGGRESSIVE_IF_CONV is true.
32450         (if_convertible_stmt_p): Fix commentary.
32451         (all_preds_critical_p): New function.
32452         (has_pred_critical_p): New function.
32453         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
32454         BB can have more than two predecessors and all incoming edges can be
32455         critical.
32456         (predicate_bbs): Skip predication for loop exit block, use build2_loc
32457         to compute predicate for true edge.
32458         (find_phi_replacement_condition): Delete this function.
32459         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
32460         Allow interchange PHI arguments if EXTENDED is false.
32461         Change check that block containing reduction statement candidate
32462         is predecessor of phi-block since phi may have more than two arguments.
32463         (phi_args_hash_traits): New helper structure.
32464         (struct phi_args_hash_traits): New type.
32465         (phi_args_hash_traits::hash): New function.
32466         (phi_args_hash_traits::equal_keys): New function.
32467         (gen_phi_arg_condition): New function.
32468         (predicate_scalar_phi): Add handling of phi nodes with more than two
32469         arguments, delete COND and TRUE_BB arguments, insert body of
32470         find_phi_replacement_condition to predicate ordinary phi nodes.
32471         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
32472         delete call of find_phi_replacement_condition and invoke
32473         predicate_scalar_phi with two arguments.
32474         (insert_gimplified_predicates): Add assert that non-predicated block
32475         don't have statements to insert.
32476         (ifcvt_split_critical_edges): New function.
32477         (ifcvt_split_def_stmt): Likewise.
32478         (ifcvt_walk_pattern_tree): Likewise.
32479         (stmt_is_root_of_bool_pattern): Likewise.
32480         (ifcvt_repair_bool_pattern): Likewise.
32481         (ifcvt_local_dce): Likewise.
32482         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
32483         is copy of inner or outer loop force_vectorize field, invoke
32484         ifcvt_split_critical_edges, ifcvt_local_dce and
32485         ifcvt_repair_bool_pattern for aggressive if-conversion.
32486
32487 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
32488
32489         * config/aarch64/aarch64.md: Include xgene1.md.
32490         * config/aarch64/xgene1.md: New file.
32491
32492 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32493
32494         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
32495         xgene1 (APM XGene-1) core definition.
32496         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
32497         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
32498         * doc/invoke.texi: Document -mcpu=xgene1.
32499
32500 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32501
32502         * dojump.h: New header file.
32503         * explow.h: Likewise.
32504         * expr.h: Remove includes.
32505         Move expmed.c prototypes to expmed.h.
32506         Move dojump.c prototypes to dojump.h.
32507         Move alias.c prototypes to alias.h.
32508         Move explow.c prototypes to explow.h.
32509         Move calls.c prototypes to calls.h.
32510         Move emit-rtl.c prototypes to emit-rtl.h.
32511         Move varasm.c prototypes to varasm.h.
32512         Move stmt.c prototypes to stmt.h.
32513         (saved_pending_stack_adjust): Move to dojump.h.
32514         (adjust_address): Move to explow.h.
32515         (adjust_address_nv): Move to emit-rtl.h.
32516         (adjust_bitfield_address): Likewise.
32517         (adjust_bitfield_address_size): Likewise.
32518         (adjust_bitfield_address_nv): Likewise.
32519         (adjust_automodify_address_nv): Likewise.
32520         * explow.c (expr_size): Move to expr.c.
32521         (int_expr_size): Likewise.
32522         (tree_expr_size): Likewise.
32523         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32524         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32525         * genemit.c (main): Generate includes statistics.h, real.h,
32526         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
32527         stmt.h.
32528         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
32529         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
32530         explow.h, emit-rtl.h, stmt.h.
32531         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
32532         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
32533         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
32534         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
32535         emit-rtl.h, varasm.h, stmt.h.
32536         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
32537         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
32538         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
32539         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
32540         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
32541         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
32542         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
32543         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
32544         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
32545         tm.h tree.h varasm.h vec.h wide-int.h.
32546         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32547         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32548         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
32549         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
32550         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
32551         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
32552         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
32553         * loop-iv.c: Likewise.
32554         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
32555         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
32556         statistics.h stmt.h tree.h varasm.h wide-int.h.
32557         * lra-constraints.c: Likewise.
32558         * lra-eliminations.c: Likewise.
32559         * lra-lives.c: Likewise.
32560         * lra-remat.c: Likewise.
32561         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32562         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
32563         statistics.h stmt.h tree.h varasm.h wide-int.h.
32564         * hw-doloop.c: Likewise.
32565         * ira-color.c: Likewise.
32566         * ira-emit.c: Likewise.
32567         * loop-doloop.c: Likewise.
32568         * loop-invariant.c: Likewise.
32569         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32570         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
32571         statistics.h stmt.h tree.h varasm.h wide-int.h.
32572         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
32573         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
32574         statistics.h stmt.h tree.h varasm.h wide-int.h.
32575         * combine-stack-adj.c: Likewise.
32576         * cse.c: Likewise.
32577         * ddg.c: Likewise.
32578         * ifcvt.c: Likewise.
32579         * ira-costs.c: Likewise.
32580         * jump.c: Likewise.
32581         * lra-coalesce.c: Likewise.
32582         * lra-spills.c: Likewise.
32583         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32584         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
32585         stmt.h varasm.h wide-int.h.
32586         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32587         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32588         varasm.h.
32589         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
32590         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
32591         statistics.h stmt.h varasm.h wide-int.h.
32592         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
32593         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
32594         varasm.h wide-int.h.
32595         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
32596         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32597         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
32598         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
32599         statistics.h stmt.h.
32600         * config/tilepro/tilepro.c: Likewise.
32601         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
32602         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
32603         * config/pdp11/pdp11.c: Likewise.
32604         * config/xtensa/xtensa.c: Likewise.
32605         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
32606         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32607         varasm.h.
32608         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32609         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32610         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
32611         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32612         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32613         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
32614         * rtl-chkp.c: Likewise.
32615         * tree-chkp-opt.c: Likewise.
32616         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
32617         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32618         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
32619         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32620         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32621         statistics.h stmt.h.
32622         * tree-vect-data-refs.c: Likewise.
32623         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
32624         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32625         rtl.h statistics.h stmt.h varasm.h.
32626         * internal-fn.c: Likewise.
32627         * ipa-icf-gimple.c: Likewise.
32628         * lto-section-out.c: Likewise.
32629         * tree-data-ref.c: Likewise.
32630         * tree-nested.c: Likewise.
32631         * tree-outof-ssa.c: Likewise.
32632         * tree-predcom.c: Likewise.
32633         * tree-pretty-print.c: Likewise.
32634         * tree-scalar-evolution.c: Likewise.
32635         * tree-ssa-strlen.c: Likewise.
32636         * tree-vect-loop.c: Likewise.
32637         * tree-vect-patterns.c: Likewise.
32638         * tree-vect-slp.c: Likewise.
32639         * tree-vect-stmts.c: Likewise.
32640         * tsan.c: Likewise.
32641         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32642         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
32643         stmt.h.
32644         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
32645         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32646         statistics.h stmt.h varasm.h.
32647         * loop-unroll.c: Likewise.
32648         * ubsan.c: Likewise.
32649         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
32650         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
32651         stmt.h varasm.h.
32652         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32653         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
32654         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
32655         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32656         statistics.h stmt.h.
32657         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
32658         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32659         statistics.h stmt.h varasm.h.
32660         * gimple-match-head.c: Likewise.
32661         * lto-cgraph.c: Likewise.
32662         * lto-section-in.c: Likewise.
32663         * lto-streamer-in.c: Likewise.
32664         * lto-streamer-out.c: Likewise.
32665         * tree-affine.c: Likewise.
32666         * tree-cfg.c: Likewise.
32667         * tree-cfgcleanup.c: Likewise.
32668         * tree-if-conv.c: Likewise.
32669         * tree-into-ssa.c: Likewise.
32670         * tree-ssa-alias.c: Likewise.
32671         * tree-ssa-copyrename.c: Likewise.
32672         * tree-ssa-dse.c: Likewise.
32673         * tree-ssa-forwprop.c: Likewise.
32674         * tree-ssa-live.c: Likewise.
32675         * tree-ssa-math-opts.c: Likewise.
32676         * tree-ssa-pre.c: Likewise.
32677         * tree-ssa-sccvn.c: Likewise.
32678         * tree-tailcall.c: Likewise.
32679         * tree-vect-generic.c: Likewise.
32680         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32681         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
32682         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32683         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
32684         * varasm.c: Likewise.
32685         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32686         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
32687         varasm.h.
32688         * init-regs.c: Likewise.
32689         * ira.c: Likewise.
32690         * omp-low.c: Likewise.
32691         * stack-ptr-mod.c: Likewise.
32692         * tree-ssa-reassoc.c: Likewise.
32693         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32694         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
32695         varasm.h.
32696         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32697         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
32698         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32699         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
32700         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32701         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
32702         * tree-ssa-phiopt.c: Likewise.
32703         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32704         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32705         * config/fr30/fr30.c: Likewise.
32706         * config/frv/frv.c: Likewise.
32707         * expr.c: Likewise.
32708         * final.c: Likewise.
32709         * optabs.c: Likewise.
32710         * passes.c: Likewise.
32711         * simplify-rtx.c: Likewise.
32712         * stmt.c: Likewise.
32713         * toplev.c: Likewise.
32714         * var-tracking.c: Likewise.
32715         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32716         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32717         * lower-subreg.c: Likewise.
32718         * postreload-gcse.c: Likewise.
32719         * ree.c: Likewise.
32720         * reginfo.c: Likewise.
32721         * store-motion.c: Likewise.
32722         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32723         fixed-value.h hashtab.h real.h stmt.h varasm.h.
32724         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32725         fixed-value.h hashtab.h statistics.h stmt.h.
32726         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32727         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32728         * except.c: Likewise.
32729         * explow.c: Likewise.
32730         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32731         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
32732         varasm.h.
32733         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32734         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
32735         * tree-ssa-structalias.c: Likewise.
32736         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32737         fixed-value.h insn-config.h real.h statistics.h.
32738         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32739         fixed-value.h insn-config.h real.h statistics.h stmt.h.
32740         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32741         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32742         * cfgbuild.c: Likewise.
32743         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32744         fixed-value.h real.h rtl.h statistics.h stmt.h.
32745         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32746         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32747         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32748         fixed-value.h real.h statistics.h stmt.h.
32749         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32750         fixed-value.h real.h statistics.h stmt.h varasm.h.
32751         * cprop.c: Likewise.
32752         * modulo-sched.c: Likewise.
32753         * postreload.c: Likewise.
32754         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32755         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
32756         statistics.h stmt.h varasm.h.
32757         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
32758         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32759         rtl.h statistics.h stmt.h varasm.h.
32760         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
32761         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
32762         varasm.h.
32763         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32764         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
32765         varasm.h.
32766         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
32767         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
32768         varasm.h.
32769         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
32770         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32771         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32772         function.h real.h statistics.h stmt.h varasm.h.
32773         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32774         insn-config.h real.h statistics.h stmt.h.
32775         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32776         statistics.h stmt.h.
32777         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
32778         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
32779         statistics.h stmt.h varasm.h.
32780         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
32781         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
32782         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32783         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
32784         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
32785         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32786         statistics.h stmt.h varasm.h.
32787         * ipa-polymorphic-call.c: Likewise.
32788         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
32789         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32790         statistics.h stmt.h.
32791         * config/c6x/c6x.c: Likewise.
32792         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
32793         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32794         statistics.h stmt.h varasm.h.
32795         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
32796         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
32797         stmt.h varasm.h.
32798         * ipa-split.c: Likewise.
32799         * tree-eh.c: Likewise.
32800         * tree-ssa-dce.c: Likewise.
32801         * tree-ssa-loop-niter.c: Likewise.
32802         * tree-vrp.c: Likewise.
32803         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
32804         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
32805         stmt.h.
32806         * config/nds32/nds32-fp-as-gp.c: Likewise.
32807         * config/nds32/nds32-intrinsic.c: Likewise.
32808         * config/nds32/nds32-isr.c: Likewise.
32809         * config/nds32/nds32-md-auxiliary.c: Likewise.
32810         * config/nds32/nds32-memory-manipulation.c: Likewise.
32811         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
32812         * config/nds32/nds32-predicates.c: Likewise.
32813         * config/nds32/nds32.c: Likewise.
32814         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
32815         fixed-value.h hashtab.h real.h statistics.h.
32816         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
32817         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32818         * config/arm/arm.c: Likewise.
32819         * config/avr/avr.c: Likewise.
32820         * config/bfin/bfin.c: Likewise.
32821         * config/h8300/h8300.c: Likewise.
32822         * config/i386/i386.c: Likewise.
32823         * config/ia64/ia64.c: Likewise.
32824         * config/iq2000/iq2000.c: Likewise.
32825         * config/m32c/m32c.c: Likewise.
32826         * config/m32r/m32r.c: Likewise.
32827         * config/m68k/m68k.c: Likewise.
32828         * config/mcore/mcore.c: Likewise.
32829         * config/mep/mep.c: Likewise.
32830         * config/mips/mips.c: Likewise.
32831         * config/mn10300/mn10300.c: Likewise.
32832         * config/moxie/moxie.c: Likewise.
32833         * config/pa/pa.c: Likewise.
32834         * config/rl78/rl78.c: Likewise.
32835         * config/rx/rx.c: Likewise.
32836         * config/s390/s390.c: Likewise.
32837         * config/sh/sh.c: Likewise.
32838         * config/sparc/sparc.c: Likewise.
32839         * config/spu/spu.c: Likewise.
32840         * config/stormy16/stormy16.c: Likewise.
32841         * config/v850/v850.c: Likewise.
32842         * config/vax/vax.c: Likewise.
32843         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
32844         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32845         * config/msp430/msp430.c: Likewise.
32846         * predict.c: Likewise.
32847         * value-prof.c: Likewise.
32848         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
32849         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
32850         * config/microblaze/microblaze.c: Likewise.
32851         * config/nios2/nios2.c: Likewise.
32852         * config/rs6000/rs6000.c: Likewise.
32853         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32854         insn-config.h real.h rtl.h statistics.h stmt.h.
32855         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32856         insn-config.h real.h statistics.h stmt.h.
32857         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
32858         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32859         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
32860         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32861         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
32862         fixed-value.h real.h statistics.h stmt.h.
32863         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
32864         fixed-value.h statistics.h stmt.h.
32865         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
32866         stmt.h.
32867
32868 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32869
32870         * gengtype.c (create_user_defined_type): Workaround
32871         -Wmaybe-uninitialized false positives.
32872         * cse.c (fold_rtx): Likewise.
32873         * loop-invariant.c (gain_for_invariant): Likewise.
32874
32875 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32876
32877         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
32878         set the memory attributes in all cases but clear MEM_EXPR if need be.
32879
32880 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32881
32882         PR tree-optimization/64434
32883         * cfgexpand.c (reorder_operands): New function.
32884         (expand_gimple_basic_block): Insert call of reorder_operands if
32885         optimized is true.
32886
32887 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
32888
32889         * config/mips/micromips.md (*swp): Remove explicit parallel.
32890         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
32891         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
32892         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
32893         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
32894         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
32895         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
32896         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
32897         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
32898         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
32899         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
32900         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
32901         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
32902         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
32903         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
32904         (mips_wrdsp): Likewise.
32905         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
32906         parallel.
32907         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
32908         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
32909         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
32910         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
32911         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
32912         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
32913         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
32914         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
32915         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
32916
32917 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32918
32919         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
32920         (mips_print_operand): Support 'y' to print exact log2 in decimal
32921         of a const_int.
32922         * config/mips/mips.h (ISA_HAS_LSA): New define.
32923         (ISA_HAS_DLSA): Likewise.
32924         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
32925         * config/mips/predicates.md (const_immlsa_operand): New predicate.
32926
32927 2015-01-15  Martin Liska  <mliska@suse.cz>
32928
32929         PR target/64377
32930         * optc-save-gen.awk: Add support for array types.
32931
32932 2015-01-15  Richard Biener  <rguenther@suse.de>
32933
32934         PR middle-end/64365
32935         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
32936         for MEM_REF access functions with the same base can never partially
32937         overlap.
32938
32939 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
32940
32941         * common.opt: New option -fstack-protector-explicit.
32942         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
32943         (stack_protect_decl_phase): Handle stack_protect attribute for
32944         explicit stack protection requests.
32945         (expand_used_vars): Similarly.
32946         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
32947         * doc/extend.texi: Add documentation for "stack_protect" attribute.
32948         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
32949
32950 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
32951
32952         PR target/53988
32953         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
32954         reg-reg copies.
32955         (sh_extending_set_of_reg): New struct.
32956         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
32957         sh_remove_reg_dead_or_unused_notes): New Declarations.
32958         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
32959         sh_find_extending_set_of_reg, sh_split_tst_subregs,
32960         sh_extending_set_of_reg::use_as_extended_reg): New functions.
32961         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
32962         convert to insn_and_split and use new function sh_split_tst_subregs.
32963
32964 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
32965
32966         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
32967         option.
32968         (Optimization Options): Move -fuse-ld documentation to...
32969         (Link Options): ...here.
32970
32971 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32972
32973         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
32974         offsets.
32975         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
32976         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
32977         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
32978         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
32979         instead of ZR for the memory operand of LL/SC.
32980         (compare_and_swap_12, sync_add<mode>): Likewise.
32981         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
32982         (sync_new_<optab>_12, sync_nand_12): Likewise.
32983         (sync_old_nand_12, sync_new_nand_12): Likewise.
32984         (sync_sub<mode>, sync_old_add<mode>): Likewise.
32985         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
32986         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
32987         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
32988         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
32989         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
32990         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
32991         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
32992         * doc/md.texi (ZC): Update description.
32993
32994 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32995
32996         * builtins.c (expand_builtin_atomic_exchange): Remove error when
32997         memory model is CONSUME.
32998         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
32999         expand_builtin_atomic_store): Change invalid memory model errors to
33000         warnings.
33001         (expand_builtin_atomic_clear): Change invalid model errors to warnings
33002         and issue warning for CONSUME.
33003
33004 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
33005
33006         * lto-cgraph: Update function comments for
33007         lto_symtab_encoder_encode_*.
33008
33009 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
33010
33011         * Makefile.in (site.exp): Do not set ENABLE_LTO.
33012
33013 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
33014
33015         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
33016         * lto-cgraph.c (select_what_to_stream): Remove argument, use
33017         lto_stream_offload_p instead.
33018         * lto-streamer.h (select_what_to_stream): Remove argument.
33019         * passes.c (ipa_write_summaries): Likewise.
33020         * tree-pass.h (ipa_write_summaries): Likewise.
33021
33022 2015-01-14  Richard Biener  <rguenther@suse.de>
33023
33024         PR tree-optimization/59354
33025         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
33026         groups larger than the slp group size as having gaps.
33027
33028 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
33029
33030         PR middle-end/59448
33031         * builtins.c (get_memmodel): Promote consume to acquire always.
33032
33033 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
33034
33035         PR target/64386
33036         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
33037         V32HImode.
33038
33039 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
33040
33041         PR target/64393
33042         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
33043         Enable AVX512BW.
33044         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
33045         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
33046         AVX512VBMI, as it implies AVX512BW.
33047
33048 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
33049
33050         PR target/64387
33051         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
33052         (vec_unpacks_hi_v16sf): Ditto.
33053
33054 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33055
33056         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
33057         is not available.
33058
33059 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33060
33061         * doc/invoke.texi (mapcs): Mention deprecation.
33062         (mapcs-frame): Likewise.
33063
33064 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33065
33066         PR target/64453
33067         * config/arm/arm.c (callee_saved_reg_p): Define.
33068         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
33069         register is callee saved instead of !call_used_regs[reg].
33070         (thumb1_compute_save_reg_mask): Likewise.
33071
33072 2015-01-14  Hale Wang  <hale.wang@arm.com>
33073
33074         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
33075         Cortex-M7.
33076
33077 2015-01-14  Richard Biener  <rguenther@suse.de>
33078
33079         PR lto/64415
33080         * tree-inline.c (insert_debug_decl_map): Check destination
33081         function MAY_HAVE_DEBUG_STMTS.
33082         (insert_init_debug_bind): Likewise.
33083         (insert_init_stmt): Remove redundant check.
33084         (remap_gimple_stmt): Drop debug stmts if the destination
33085         function has var-tracking assignments disabled.
33086
33087 2015-01-14  Martin Liska  <mliska@suse.cz>
33088
33089         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
33090         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
33091
33092 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33093
33094         PR target/64460
33095         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
33096         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
33097
33098 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
33099
33100         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
33101         level from an ARCH; do not inject the default.
33102         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
33103         MIPS_ISA_LEVEL_SPEC.
33104         (MIPS_ISA_NAN2008_SPEC): Update comment.
33105         (BASE_DRIVER_SELF_SPECS): Likewise.
33106         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
33107         MIPS_DEFAULT_ISA_LEVEL_SPEC.
33108         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
33109         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
33110         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
33111
33112 2015-01-14  Richard Biener  <rguenther@suse.de>
33113
33114         PR tree-optimization/64493
33115         PR tree-optimization/64495
33116         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
33117         assign the proper vectorized PHI to the inner loop exit PHIs.
33118
33119 2015-01-14  Joey Ye  <joey.ye@arm.com>
33120
33121         * config/arm/arm.c (arm_compute_save_reg_mask):
33122         Do not save lr in case of tail call.
33123         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
33124
33125 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
33126
33127         * tree-vrp.c (check_array_ref): Emit more warnings
33128         for warn_array_bounds >= 2.
33129         * common.opt: New option -Warray-bounds=.
33130         * doc/invoke.texi: Document -Warray-bounds=.
33131
33132 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
33133
33134         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
33135         (mforbid-fp-as-gp): Remove.
33136         (mex9): Remove.
33137         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
33138         (nds32_symbol_load_store_p): Remove.
33139         (nds32_fp_as_gp_check_available): Clean up implementation.
33140         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
33141         cases.
33142         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
33143         fp-as-gp and ex9 cases.
33144
33145 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
33146
33147         * tree-profile.c (init_ic_make_global_vars): Drop workaround
33148         for bintuils bug 14342.
33149         (init_ic_make_global_vars): Likewise.
33150         (gimple_init_edge_profiler): Likewise.
33151         (gimple_gen_ic_func_profiler): Likewise.
33152
33153 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
33154
33155         * ipa-inline.c (inline_small_functions): Swap the operands in
33156         enum.
33157
33158 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
33159
33160         PR ipa/64481
33161         * ipa-inline-analysis.c (node_growth_cache): Remove.
33162         (initialize_growth_caches): Do not initialize it.
33163         (free_growth_caches): Do not free it.
33164         (do_estimate_growth): Rename to ...
33165         (estimate_growth): ... this one; drop growth cache code.
33166         (growth_likely_positive): Always go the heuristics way.
33167         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
33168         (reset_edge_caches): Do not reset node growth.
33169         (heap_edge_removal_hook): Do not maintain cache.
33170         (inline_small_functions): Likewise; strenghten sanity check.
33171         (ipa_inline): Do not maintain caches.
33172         * ipa-inline.h (node_growth_cache): Remove.
33173         (do_estimate_growth): Remove to ...
33174         (estimate_growth): this one; remove inline version.
33175         (reset_node_growth_cache): Remove.
33176
33177 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
33178
33179         PR ipa/64565
33180         * ipa-inline.c (inline_small_functions): Update callee keys after
33181         resolving speculation
33182         (inline_small_functions): Always check monotonicity of the queue.
33183
33184 2015-01-13  Marek Polacek  <polacek@redhat.com>
33185
33186         PR middle-end/64391
33187         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
33188
33189 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
33190
33191         PR rtl-optimization/64286
33192         * ree.c (combine_reaching_defs): Move part of comment earlier,
33193         remove !SCALAR_INT_MODE_P check.
33194         (add_removable_extension): Don't add vector mode
33195         extensions if all uses of the source register aren't the same
33196         vector extensions.
33197
33198 2015-01-13  Renlin Li  <renlin.li@arm.com>
33199
33200         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
33201         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
33202
33203 2015-01-13  Martin Liska  <mliska@suse.cz>
33204
33205         * ipa-icf.c (sem_function::equals_private): Call new functions
33206         cl_target_option_print_diff and cl_optimization_print_diff.
33207         * optc-save-gen.awk (cl_target_option_print_diff): New function.
33208         (cl_optimization_print_diff): Likewise.
33209         * opth-gen.awk: Likewise.
33210
33211 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
33212
33213         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
33214         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
33215         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
33216         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
33217         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
33218         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
33219
33220 2015-01-13  Andrew Pinski  <apinski@cavium.com>
33221
33222         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
33223         instead of src mode.
33224
33225 2015-01-13  Richard Biener  <rguenther@suse.de>
33226
33227         PR lto/64373
33228         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
33229         DECL_CONTEXT.
33230
33231 2015-01-13  Andrew Pinski  <apinski@cavium.com>
33232
33233         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
33234         volatile mems.
33235         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
33236
33237 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
33238
33239         PR middle-end/63974
33240         * cfgexpand.c (expand_computed_goto): Don't call
33241         convert_memory_address here.
33242
33243 2015-01-13  Richard Biener  <rguenther@suse.de>
33244
33245         PR tree-optimization/64406
33246         * tree-loop-distibution.c (pass_loop_distribution::execute):
33247         Reset the SCEV hashtable if we distributed anything.
33248
33249 2015-01-13  Richard Biener  <rguenther@suse.de>
33250
33251         PR tree-optimization/64404
33252         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
33253         SLP types for CSEd loads.
33254
33255 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33256
33257         PR tree-optimization/64436
33258         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
33259         merge of two symbolic numbers for a bitwise OR to ...
33260         (perform_symbolic_merge): This. Also fix computation of the range and
33261         end of the symbolic number corresponding to the result of a bitwise OR.
33262
33263 2015-01-13  Richard Biener  <rguenther@suse.de>
33264
33265         PR tree-optimization/64568
33266         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
33267         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
33268
33269 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33270
33271         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
33272         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
33273
33274 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33275
33276         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
33277         target-specific symbol_ref flag.
33278         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
33279         resides in rodata section.
33280         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
33281         (nds32_encode_section_info): New function.
33282
33283 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33284
33285         * config/nds32/nds32.md (call): Use pseudo instruction bal which
33286         clobbers TA_REGNUM if large code model is specified.
33287         (call_register): Likewise.
33288         (call_immediate): Likewise.
33289         (call_value): Likewise.
33290         (call_value_register): Likewise.
33291         (call_value_immediate): Likewise.
33292
33293 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33294
33295         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
33296         (TARGET_CMODEL_MEDIUM): New macro.
33297         (TARGET_CMODEL_LARGE): New macro.
33298         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
33299         code model setting in assembly code.
33300
33301 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33302
33303         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
33304         Remove MASK_GP_DIRECT flag.
33305         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
33306         one of the multilib default options.
33307         * config/nds32/nds32.opt (mgp-direct): Remove.
33308         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
33309         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
33310
33311 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33312
33313         * config/nds32/nds32.opt (mcmodel): Add new option.
33314         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
33315         to describe code model.
33316
33317 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
33318
33319         PR target/64479
33320         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
33321
33322 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
33323
33324         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
33325         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33326         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
33327         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
33328         __builtin_sh_set_fpscr.
33329
33330 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33331
33332         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
33333         after a funtion name just to indicate it is a function.
33334         ([-fsanitize-undefined-trap-on-error]): Likewise.
33335         ([-fdbg-cnt=]): Likewise.
33336         ([-mmemcpy]): Likewise.
33337         ([-mflush-func]): Likewise.
33338         ([-msynci]): Likewise.
33339
33340 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33341
33342         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
33343         example.
33344
33345 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
33346
33347         PR tree-optimization/64563
33348         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
33349         instead of != VR_VARYING.
33350
33351         PR target/64513
33352         * config/i386/i386.c (ix86_expand_prologue): Add
33353         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
33354
33355         PR tree-optimization/64454
33356         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
33357         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
33358         for signed or [0, op1 - 1] for unsigned modulo.
33359         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
33360         even if op1 does not satisfy integer_pow2p.
33361
33362         PR other/64370
33363         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
33364
33365 2015-01-12  Jeff Law  <law@redhat.com>
33366
33367         PR target/64461
33368         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
33369         (trunchiqi2, truncsihi2): Similarly.
33370
33371         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
33372         rather than calling F.
33373
33374 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33375
33376         * tsan.c (instrument_expr): Use force_gimple_operand.
33377         Use may_be_nonaddressable_p instead of is_gimple_addressable.
33378
33379 2015-01-12  Richard Biener  <rguenther@suse.de>
33380
33381         PR tree-optimization/64530
33382         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
33383         back dr1.
33384
33385 2015-01-12  Richard Biener  <rguenther@suse.de>
33386
33387         PR middle-end/64357
33388         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
33389         latches properly.
33390
33391 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33392
33393         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
33394         Cortex-A17 tuning parameters.
33395         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
33396
33397 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33398
33399         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
33400         * config/arm/arm.c (arm_macro_fusion_p): New function.
33401         (arm_macro_fusion_pair_p): Likewise.
33402         (TARGET_SCHED_MACRO_FUSION_P): Define.
33403         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
33404         (ARM_FUSE_NOTHING): Likewise.
33405         (ARM_FUSE_MOVW_MOVT): Likewise.
33406         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
33407         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
33408         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
33409         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
33410         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
33411         arm_cortex_a5_tune): Specify fuseable_ops value.
33412
33413 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
33414
33415         PR bootstrap/64561
33416         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
33417         test for PIE with copy reloc.
33418         * configure: Regenerated.
33419
33420 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33421
33422         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
33423         in gen_rtx_REG.
33424         (arm_tls_descseq_addr): Likewise.
33425         (arm_gen_movmemqi): Likewise.
33426         (arm_expand_epilogue_apcs_frame): Likewise.
33427         (arm_expand_epilogue): Likewise.
33428         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
33429         in gen_rtx_REG.
33430
33431 2015-01-12  Martin Liska  <mliska@suse.cz>
33432
33433         PR ipa/64550
33434         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
33435         volatility for correct operands.
33436
33437 2015-01-12  Martin Liska  <mliska@suse.cz>
33438
33439         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
33440         indication that a function is not leaf.
33441         (sem_function::compare_polymorphic_p): Likewise.
33442
33443 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33444
33445         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
33446         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
33447         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
33448         fold-const.h, tree-check.h.
33449
33450 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33451
33452         PR ipa/63967
33453         PR ipa/64425
33454         * ipa-inline.c (compute_uninlined_call_time,
33455         compute_inlined_call_time): Use counts for extra precision when
33456         needed possible.
33457         (big_speedup_p): Fix formating.
33458         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
33459         (relative_time_benefit): Remove.
33460         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
33461         merge guessed and read profile paths.
33462         (inline_small_functions): Count only !optimize_size functions into
33463         initial size; be more lax about sanity check when profile is used;
33464         be sure to update inlined function profile when profile is read.
33465
33466 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33467
33468         PR ipa/63470
33469         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
33470         cost when edge becomes direct.
33471         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
33472         is resolved or when introducing new speculation.
33473
33474 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
33475
33476         PR ipa/64551
33477         PR ipa/64552
33478         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
33479         '||' to fix typo issue.
33480
33481         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
33482         accept and return NULL.
33483
33484 2015-01-12  Martin Liska  <mliska@suse.cz>
33485
33486         * cgraph.c (cgraph_edge::remove_callee): Move function to header
33487         file for being inlined.
33488         (cgraph_set_edge_callee): Delete.
33489         (cgraph_edge::redirect_callee): Move function to header file
33490         for being inlined.
33491         (cgraph_edge::make_direct): Use new function.
33492         (cgraph_edge::dump_edge_flags): New function created from
33493         static dump_edge_flags function.
33494         (cgraph_node::dump): Use new function.
33495         (cgraph_edge::verify_count_and_frequency): New function created
33496         from verify_edge_count_and_frequency.
33497         (cgraph_edge::verify_corresponds_to_fndecl): New function created
33498         from verify_edge_corresponds_to_fndecl.
33499         (verify_edge_corresponds_to_fndecl): Delete.
33500         (cgraph_node::verify_node): Use new function.
33501         * cgraph.h (cgraph_edge::set_callee): New function.
33502         (cgraph_edge::dump_edge_flags): Likewise.
33503         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
33504
33505 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
33506
33507         * ipa-utils.c (estimate_function_body_sizes): Do not
33508         free node params when called late with early=true.
33509
33510 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
33511
33512         * doc/md.texi (Instruction Patterns): Rewrite text for
33513         clarity.
33514         (Example): Likewise.
33515
33516 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
33517
33518         * doc/invoke.texi (Option Summary): Break long lines.
33519         [(-fdiagnostics-color)]: Put long literal in @smallexample
33520         instead of inline.
33521         [(-fsanitize-recover)]: Likewise.
33522         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
33523         [(-ffast-math)]: Likewise.
33524         [(--param max-inline-insns-recursive)]: Likewise.
33525         [(--param max-inline-recursive-depth)]: Likewise.
33526         [(-mno-text-section-literals)]: Likewise.
33527
33528 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
33529
33530         * doc/install.texi: Update for libgomp being renamed from "GNU
33531         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
33532         Runtime Library".
33533         * doc/sourcebuild.texi: Likewise.
33534
33535 2015-01-10  Anthony Green  <green@moxielogic.com>
33536
33537         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
33538         mul.x availability for moxiebox configuration.
33539
33540 2015-01-09  Anthony Green  <green@moxielogic.com>
33541
33542         * config/moxie/moxie.md: Tabify assembly output.
33543
33544 2015-01-09  Anthony Green  <green@moxielogic.com>
33545
33546         * config/moxie/moxie.md (CC_REG): Correct register definition.
33547
33548 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
33549
33550         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
33551         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
33552         of log files.
33553
33554 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33555
33556         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
33557
33558 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
33559             Jakub Jelinek  <jakub@redhat.com>
33560
33561         PR middle-end/64412
33562         * lto-streamer.h (lto_stream_offload_p): New declaration.
33563         * lto-streamer.c (lto_stream_offload_p): New variable.
33564         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
33565         at the same time as section_name_prefix.
33566         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
33567         if lto_stream_offload_p.
33568         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
33569         stream TREE_TARGET_OPTION if lto_stream_offload_p.
33570         (write_ts_function_decl_tree_pointers): Don't
33571         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
33572         * tree-streamer-in.c (unpack_value_fields): Don't stream
33573         TREE_TARGET_OPTION in if ACCEL_COMPILER.
33574         (lto_input_ts_function_decl_tree_pointers): Don't stream
33575         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
33576         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
33577         instead of section_name_prefix string comparisons.
33578
33579 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
33580
33581         PR rtl-optimization/64536
33582         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
33583         tablejumps.
33584
33585 2015-01-09  Michael Collison  <michael.collison@linaro.org>
33586
33587         PR tree-optimization/64322
33588         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
33589         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
33590
33591 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33592
33593         PR rtl-optimization/64539
33594         * regcprop.c (kill_clobbered_values): Factor out of ...
33595         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
33596         instead of note_stores with kill_clobbered_value.
33597
33598 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33599
33600          * ginclude/unwind-arm-common.h: Revert previous commit.
33601
33602 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33603
33604         * config.gcc (arm*-*-freebsd*): New configuration.
33605         * config/arm/freebsd.h: New file.
33606         * config.host: Add extra components for arm*-*-freebsd*.
33607         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
33608         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
33609
33610 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33611
33612         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
33613         for -mcpu=e6500.
33614         * config/rs6000/t-rtems: Add e6500 multilibs.
33615
33616 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33617
33618         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
33619         MPC8540.
33620
33621 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33622
33623         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
33624         MULTILIB_EXCEPTIONS.
33625
33626 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33627
33628         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
33629         MULTILIB_EXCEPTIONS.
33630
33631 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33632
33633         * config/arm/t-rtems-eabi: Rename to...
33634         * config/arm/t-rtems: ...this.
33635         * config/arm/rtems-eabi.h: Rename to...
33636         * config/arm/rtems.h: ...this.
33637         * config.gcc (arm*-*-rtems*): Reflect changes above.
33638
33639 2015-01-09  Richard Biener  <rguenther@suse.de>
33640
33641         PR tree-optimization/64410
33642         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
33643         on the LHS.
33644         (execute_update_addresses_taken): Deal with that.
33645         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
33646         loads/stores for complex variables.
33647
33648 2015-01-09  Martin Liska  <mliska@suse.cz>
33649
33650         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
33651         name comparison.
33652         (func_checker::compare_memory_operand): New function.
33653         (func_checker::compare_operand): Split case to newly
33654         added functions.
33655         (func_checker::compare_cst_or_decl): New function.
33656         (func_checker::compare_gimple_call): Identify
33657         memory operands.
33658         (func_checker::compare_gimple_assign): Likewise.
33659         * ipa-icf-gimple.h: New function.
33660
33661 2015-01-09  Martin Liska  <mliska@suse.cz>
33662
33663         PR ipa/64503
33664         * sreal.c (sreal::dump): Change unsigned format to signed for
33665         m_exp value.
33666         (sreal::to_double): Replace exp2 with scalbln.
33667
33668 2015-01-09  Martin Liska  <mliska@suse.cz>
33669
33670         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
33671         * ipa-icf.c (sem_function::equals_private): Add support for target and
33672         (sem_item_optimizer::merge_classes): Remove redundant function
33673         optimization flags comparison.
33674         * tree.h (target_opts_for_fn): New function.
33675
33676 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33677
33678         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
33679
33680 2015-01-09  Kito Cheng  <kito@0xlab.org>
33681
33682         PR rtl-optimization/64348
33683         * lra-constraints.c (split_reg): Fix caller-save store/restore
33684         instruction generation.
33685
33686 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
33687
33688         PR gcov-profile/61790
33689         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
33690         long long.  Fallback to int64_t if host doesn't have long long and
33691         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
33692
33693 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33694
33695         PR tree-optimization/63989
33696         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
33697         from 1000 to 10000.
33698         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
33699         (get_stridx): If we don't have a record for certain SSA_NAME,
33700         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
33701         constant offset, call get_stridx_plus_constant.
33702         (get_stridx_plus_constant): New function.
33703         (zero_length_string): Don't use get_stridx here.
33704
33705         PR target/55023
33706         PR middle-end/64388
33707         * dse.c (struct insn_info): Mention frame_read set also
33708         before reload for tail calls on some targets.
33709         (scan_insn): Revert 2014-12-22 change.  Set frame_read
33710         also before reload for tail calls if
33711         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
33712         instead of add_non_frame_wild_read for non-const/memset
33713         tail calls after reload.
33714
33715 2015-01-08  Jason Merrill  <jason@redhat.com>
33716
33717         * ubsan.c (do_ubsan_in_current_function): New.
33718         (pass_ubsan::gate): Use it.
33719         * ubsan.h: Declare it.
33720         * convert.c (convert_to_integer): Use it.
33721
33722 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33723
33724         PR target/64338
33725         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
33726         compare_code when it is unconditionally overwritten afterwards.
33727         Use ix86_reverse_condition instead of reverse_condition.  Don't
33728         change code if *reverse_condition* returned UNKNOWN and don't
33729         swap ct/cf and negate diff in that case.
33730
33731 2015-01-08  Mike Stump  <mikestump@comcast.net>
33732
33733         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
33734         (pass_tsan_O0::gate): Likewise.
33735         * extend.texi (Function Attributes): Add no_sanitize_thread
33736         documentation.
33737
33738 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
33739
33740         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
33741         for registering builtins.
33742         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
33743         add -fopenmp to the argv_obstack used when invoking
33744         compile_for_target.
33745
33746         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
33747         add "-m32" or "-m64" to argv_obstack.
33748         (generate_host_descr_file): Likewise, when invoking host_compiler.
33749         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
33750         ld.
33751
33752 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33753
33754         * config/sh/sh-mem.cc: Use constant as second operand when emitting
33755         tstsi_t insns.
33756
33757 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33758
33759         PR target/55212
33760         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
33761         constant load if constant operand fits into I08.
33762
33763 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33764
33765         PR sanitizer/64336
33766         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
33767         and TREE_THIS_VOLATILE for MEM_REFs.
33768         (build5_stat): Fix up initialization of TREE_READONLY and
33769         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
33770
33771 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
33772
33773         PR target/64533
33774         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
33775         of r for the second alternative of the destination operand.
33776
33777 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
33778
33779         PR target/36557
33780         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
33781
33782 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33783
33784         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
33785         keywords.
33786         ([-fivar-visibility], [-fvisibility]): Likewise.
33787
33788 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33789
33790         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
33791         the file where @code, @command, etc is more appropriate.
33792
33793 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
33794
33795         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
33796         of -mrecip= documentation.
33797
33798 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33799
33800         PR target/64505
33801         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
33802         correct reload handler if -m32 -mpowerpc64 is used.
33803
33804 2015-01-06  Tom de Vries  <tom@codesourcery.com>
33805
33806         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
33807
33808 2015-01-08  Christian Bruel  <christian.bruel@st.com>
33809
33810         PR target/64507
33811         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
33812
33813 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33814
33815         PR tree-optimization/63259
33816         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
33817         if optab exists for 16bit byteswap.
33818
33819 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
33820
33821         * opts.c (common_handle_option): Add support for
33822         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
33823         * doc/invoke.texi: Document -fno-sanitize=all,
33824         -f{,no-}sanitize-recover=all.  Document that
33825         -fsanitize=float-cast-overflow is not enabled
33826         by -fsanitize=undefined.  Fix up documentation
33827         of -f{,no-}sanitize-recover.
33828
33829 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
33830
33831         * config.gcc: Add Visium support.
33832         * configure.ac: Likewise.
33833         * configure: Regenerate.
33834         * doc/extend.texi (interrupt attribute): Add Visium.
33835         * doc/invoke.texi: Document Visium options.
33836         * doc/install.texi: Document Visium target.
33837         * doc/md.texi: Document Visium constraints.
33838         * common/config/visium: New directory.
33839         * config/visium: Likewise.
33840
33841 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33842
33843         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
33844         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
33845
33846 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33847
33848         * combine.c (combine_validate_cost): Do not count the cost of a
33849         split I2 twice.  Do not display it twice in the dump, either.
33850
33851 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33852
33853         Revert parts of r219199.
33854         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
33855         <inttypes.h>.
33856         ([-Wtraditional]): Restore markup on <limits.h>.
33857
33858 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
33859
33860         PR c++/31397
33861         * doc/invoke.texi: Document -Wsuggest-override.
33862
33863 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
33864
33865         PR rtl-optimization/64287
33866         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
33867         (process_options): Disable flag_ipa_ra if profiling.
33868
33869 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
33870
33871         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
33872
33873 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
33874
33875         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
33876         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
33877         put under #if TARGET_LOOPS guard.
33878
33879 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
33880
33881         * config/i386/i386.c (output_387_binary_op): Use std::swap.
33882
33883 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
33884
33885         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
33886         * rtl.h (refers_to_regno_p): Add overload.
33887         * cse.c: Use it.
33888         * bt-load.c: Likewise.
33889         * combine.c: Likewise.
33890         * df-scan.c: Likewise.
33891         * sched-deps.c: Likewise.
33892         * config/s390/s390.c: Likewise.
33893         * config/m32r/m32r.c: Likewise.
33894         * config/rs6000/spe.md: Likewise.
33895         * config/rs6000/rs6000.c: Likewise.
33896         * config/pa/pa.c: Likewise.
33897         * config/stormy16/stormy16.c: Likewise.
33898         * config/cris/cris.c: Likewise.
33899         * config/arc/arc.md: Likewise.
33900         * config/arc/arc.c: Likewise.
33901         * config/sh/sh.md: Likewise.
33902         * config/sh/sh.c: Likewise.
33903         * config/frv/frv.c: Likewise.
33904
33905 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33906
33907         PR sanitizer/64265
33908         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
33909         call as cleanup of the whole body.
33910         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
33911         * tsan.c (replace_func_exit): New function.
33912         (instrument_func_exit): Moved earlier.
33913         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
33914         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
33915         been found.
33916         (tsan_pass): Don't call instrument_func_exit.
33917         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
33918         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
33919         inlining.
33920
33921         PR sanitizer/64344
33922         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
33923         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
33924         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
33925         if the result is integer_zerop, return NULL_TREE.
33926         * convert.c (convert_to_integer): Pass expr as ARG.
33927
33928         PR tree-optimization/64465
33929         * tree-inline.c (redirect_all_calls): During inlining
33930         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
33931         changed the stmt to a non-throwing call.
33932
33933 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33934
33935         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
33936         etc markup throughout the file.
33937
33938 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33939
33940         Enable experimental TSAN support for Ada.
33941         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
33942
33943 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33944
33945         PR tree-optimization/64494
33946         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
33947         clear SSA_NAME_ANTI_RANGE_P flag.
33948
33949 2015-01-05  Marek Polacek  <polacek@redhat.com>
33950
33951         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
33952
33953 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33954
33955         Update copyright years.
33956
33957         * gcc.c (process_command): Update copyright notice dates.
33958         * gcov-dump.c: Ditto.
33959         * gcov.c: Ditto.
33960         * doc/cpp.texi: Bump @copying's copyright year.
33961         * doc/cppinternals.texi: Ditto.
33962         * doc/gcc.texi: Ditto.
33963         * doc/gccint.texi: Ditto.
33964         * doc/gcov.texi: Ditto.
33965         * doc/install.texi: Ditto.
33966         * doc/invoke.texi: Ditto.
33967
33968         * auto-profile.c, auto-profile.h: Fix up Copyright line.
33969
33970 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
33971
33972         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
33973         verb tense, etc.
33974         ([-fvtable-verify], [-fvtv-debug]): Likewise.
33975         ([-Wabi]): Likewise.
33976         ([-fmessage-length]): Likewise.
33977         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
33978         ([-Wno-discarded-qualifiers]): Likewise.
33979         ([-Wnodiscarded-array-qualifiers]): Likewise.
33980         ([-Wno-virtual-move-assign]): Likewise.
33981         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
33982         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
33983         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
33984         ([-fsanitize-undefined-trap-on-error]): Likewise.
33985         ([-floop-interchange]): Likewise.
33986         ([-ftree-coalesce-inlined-vars]): Likewise.
33987         ([-fvect-cost-model]): Likewise.
33988         ([-flto]): Likewise.
33989         ([--param]): Likewise.
33990         (Spec Files): Likewise.
33991         ([-mstrict-align]): Likewise.
33992         ([-mfix-cortex-a53-835769]): Likewise.
33993         ([-march], [-mtune]): Likewise.
33994         ([-mpic-register]): Likewise.
33995         ([-munaligned-access]): Likewise.
33996         ([-msp8]): Likewise.
33997         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
33998         (AVR Built-in Macros): Likewise.
33999         ([-mpreferred-stack-boundary]): Likewise.
34000         ([-mtune-crtl]): Likewise.
34001         ([-mashf]): Likewise.
34002         ([-mmcu=]): Likewise.
34003         ([-minrt]): Likewise.
34004         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
34005         ([-mupper-regs]): Likewise.
34006         ([-matomic-model]): Likewise.
34007         ([-mdiv]): Likewise.
34008         ([-mzdcbranch]): Likewise.
34009         ([-mdisable-callt]): Likewise.
34010         ([-msoft-float]): Likewise.
34011         ([-m8byte-align]): Likewise.
34012         ([-fstack-reuse]): Likewise.
34013
34014 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
34015
34016         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
34017         Fix markup, light copy-editing.
34018         ([-fauto-profile]): Rewrite to fix formatting and content
34019         problems.
34020
34021 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
34022
34023         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
34024         Copy-edit description.
34025         ([-fisolate-erroneous-paths-attribute]): Likewise.
34026         * common.opt (fisolate-erroneous-paths-dereference):
34027         Copy-edit description.
34028         (fisolate-erroneous-paths-attribute): Likewise.
34029
34030 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
34031
34032         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
34033         tidy grammar.
34034
34035 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
34036
34037         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
34038         ([-fvtv-debug]): Likewise.
34039         ([-Wc++-compat]): Likewise.
34040         ([-Wc++11-compat]): Likewise.
34041         ([-Wc++14-compat]): Likewise.
34042         ([-Wno-sized-deallocation]): Likewise.
34043         ([-femit-class-debug-always]): Likewise.
34044         ([-femit-struct-debug-detailed]): Likewise.
34045         ([-fno-keep-inline-dllexport]): Likewise.
34046         ([-fira-algorithm]): Likewise.
34047         ([-fira-region]): Likewise.
34048         ([-flra-remat]): Likewise.
34049         ([-fipa-ra]): Likewise.
34050         ([-fhoist-adjacent-loads]): Likewise.
34051         ([-fisolate-erroneous-paths-dereference]): Likewise.
34052         ([-fisolate-erroneous-paths-attribute]): Likewise.
34053         ([-ftree-switch-conversion]): Likewise.
34054         ([-ftree-tail-merge]): Likewise.
34055         ([-ftree-loop-if-convert]): Likewise.
34056         ([-ftree-loop-if-convert-stores]): Likewise.
34057         ([-ftree-loop-distribution]): Likewise.
34058         ([-ftree-loop-distribute-patterns]): Likewise.
34059         ([-flto-compression-level]): Likewise.
34060         ([-flto-report]): Likewise.
34061         ([-flto-report-wpa]): Likewise.
34062         ([-fuse-linker-plugin]): Likewise.
34063         ([-mfix-cortex-a53-835769]): Likewise.
34064         ([-mno-fix-cortex-a53-835769]): Likewise.
34065         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
34066         explicit listing; add a note to the discussion indicating they
34067         exist.  Reorder table to group similar options.  Add missing
34068         @opindex entries.  Add @need commands throughout the table to
34069         allow it to be split across multiple pages.
34070         ([-m8bit-idiv]): Fix @opindex.
34071         ([-mavx256-split-unaligned-load]): Likewise.
34072         ([-mavx256-split-unaligned-store]): Likewise.
34073         ([-mstack-protector-guard]): Likewise.
34074         ([-mcpu=]): Likewise.
34075         ([-mcpu]): Likewise.
34076         ([-mpointer-size=]): Likewise.
34077
34078 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
34079
34080         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
34081         instead of `m' constraint.  Likewise for unnamed movb comparison
34082         patterns using reg_before_reload_operand predicate.
34083         * config/pa/predicates.md (reg_before_reload_operand): Tighten
34084         predicate to reject register index and LO_SUM DLT memory forms
34085         after reload.
34086
34087 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
34088
34089         * doc/invoke.texi (Option Summary): Fix spelling of
34090         -fdevirtualize-at-ltrans.
34091         ([-fdevirtualize]): Fix markup.
34092         ([-fdevirtualize-speculatively]): Fix typo.
34093         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
34094         implementor-speaky.
34095         * common.opt (fdevirtualize-at-ltrans): Likewise.
34096         * ipa-devirt.c: Fix typos in comments throughout the file.
34097         (ipa_devirt): Fix typos in format strings for dump output.
34098
34099 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
34100
34101         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
34102         discussion of defaults, light copy-editing.
34103
34104 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34105
34106         * tsan.c (instrument_expr): corrected previous checkin.
34107
34108 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34109
34110         Instrument bit field and unaligned accesses for TSAN.
34111         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
34112         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
34113         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
34114         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
34115         unaligned memory regions.
34116
34117 2015-01-01  Anthony Green  <green@moxielogic.com>
34118
34119         * config/moxie/predicates.md (moxie_general_movsrc_operand):
34120         Restrict move source register offsets to 16 bits.
34121 \f
34122 Copyright (C) 2015 Free Software Foundation, Inc.
34123
34124 Copying and distribution of this file, with or without modification,
34125 are permitted in any medium without royalty provided the copyright
34126 notice and this notice are preserved.