target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-10-26  Simon Dardis <simon.dardis@imgtec.com>
2
3         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
4         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
5         * doc/tm.texi: Regenerated.
6         * reorg.c (dbr_schedule): Use new hook.
7         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
8
9 2015-10-26  Jeff Law  <law@redhat.com>
10
11         PR tree-optimization/68013
12         * tree-ssa-threadbackward.c
13         (fsm_find_control_statement_thread_paths): Make sure the first block
14         in the path is in VISITED_BBs.
15
16 2015-10-26  Richard Biener  <rguenther@suse.de>
17         Dominik Vogt  <vogt@linux.vnet.ibm.com>
18
19         PR middle-end/67443
20         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
21         Properly prune ref->ref for accesses outside of ref.
22
23 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
24
25         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
26         new statements to be inserted if inplace.  Allow calls to have
27         nonempty sequences.
28
29 2015-10-26  Richard Biener  <rguenther@suse.de>
30
31         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
32         (do_valueize): New function.
33         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
34         replace_uses_by.
35         * tree-ssa-threadedge.c: Remove builtins.h include, include
36         gimple-fold.h
37         (fold_assignment_stmt): Remove.
38         (threadedge_valueize): New function.
39         (record_temporary_equivalences_from_stmts): Use
40         gimple_fold_stmt_to_constant_1, note additional cleanup
41         opportunities.
42
43 2015-10-26  Richard Biener  <rguenther@suse.de>
44
45         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
46         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
47
48 2015-10-26  Alan Hayward <alan.hayward@arm.com>
49
50         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
51         VEC_COND_EXPR types.
52
53 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
54
55         * auto-inc-dec.c (insert_move_insn_before): Delete.
56         (attempt_change): Remember to cost the simple move in the
57         FORM_PRE_ADD and FORM_POST_ADD cases.
58
59 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
60
61         PR target/68091
62         * config/sh/sh.c (sh_vector_mode_supported_p): Use
63         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
64
65 2015-10-26  Tom de Vries  <tom@codesourcery.com>
66
67         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
68         factored out of ...
69         (intra_create_variable_infos): ... here.
70
71 2015-10-26  Tom de Vries  <tom@codesourcery.com>
72
73         * tree-ssa-structalias.c (intra_create_variable_infos): Add
74         restrict_pointer_p and recursive_restrict_p variables.
75
76 2015-10-26  Tom de Vries  <tom@codesourcery.com>
77
78         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
79         get_vi_for_tree call.
80
81 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
82
83         PR middle-end/67989
84         * optabs.c (expand_atomic_compare_and_swap): Handle case when
85         ptarget_oval or ptarget_bool are const0_rtx.
86
87 2015-10-26  Christian Bruel  <christian.bruel@st.com>
88
89         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
90         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
91         * cp/method.c (implicitly_declare_fn): Likewise.
92         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
93         * java/class.c (add_method_1): Likewise.
94
95 2015-10-26  Richard Biener  <rguenther@suse.de>
96
97         * alloc-pool.h (base_pool_allocator): Use placement new.
98         (base_pool_allocator::remove): Likewise.  Compute size outside of
99         flag_checking.
100
101 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
102
103         * builtins.c (do_real_to_int_conversion): New function.
104         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
105         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
106         arguments here.
107         * match.pd: Add rules previously handled by fold_fixed_mathfn
108         and fold_builtin_int_roundingfn.
109
110 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
111
112         * match.pd: Use macros to define built-in operator lists.
113
114 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
115             Richard Biener  <rguenther@suse.de>
116
117         * genmatch.c (dt_simplify::gen): Skip captures that are
118         part of the result.
119         (parser::parse_expr): Allow captures in results too.
120         * builtins.c (fold_builtin_cexp): Delete.
121         (fold_builtin_1): Handle constant cexp arguments here.
122         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
123
124 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
125
126         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
127         conditional compilation.
128         (base_pool_allocator::remove): Use flag_checking.
129
130 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
131
132         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
133
134         PR middle-end/68079
135         * dojump.c (do_compare_and_jump): Canonicalize both function and
136         method types.
137
138 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
139
140         PR target/68084
141         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
142         for =@ccae.
143
144 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
145
146         PR ipa/pr67600
147         * ipa-polymorphic-call.c
148         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
149         instance offset with offset of outer type.
150
151 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
152
153         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
154
155 2015-10-23  Caroline Tice  <cmtice@google.com>
156
157         (from Richard Biener
158         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
159         call to iterative_hash_host_wide_int.
160
161 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
162
163         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
164         Define as yes.
165
166 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
167
168         * tree-vect-generic.c (expand_vector_operations_1): Check
169         optab exists before use it.
170
171 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
172
173         * tree-vect-generic.c (expand_vector_condition): Avoid
174         uninitialized variable warning.
175
176 2015-10-23  Jeff Law  <law@redhat.com>
177
178         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
179         here.  Instead...
180         (execute_todo): Call it here.
181         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
182         statistics
183         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
184
185 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
186             Szabolcs Nagy  <szabolcs.nagy@arm.com>
187
188         * config.gcc (enable_secureplt): Add *-linux*-musl*.
189
190 2015-10-23  Jeff Law  <law@redhat.com>
191
192         PR tree-optimization/67830
193         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
194         Explicitly verify the mask has no bits outside the type of
195         the innermost operands.
196
197 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
198             Szabolcs Nagy  <szabolcs.nagy@arm.com>
199
200         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
201         (MUSL_DYNAMIC_LINKER64): Define.
202         (GNU_USER_DYNAMIC_LINKER32): Update.
203         (GNU_USER_DYNAMIC_LINKER64): Update.
204         (CHOOSE_DYNAMIC_LINKER): Update.
205
206         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
207         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
208         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
209         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
210         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
211         (CHOOSE_DYNAMIC_LINKER): Update.
212         (INCLUDE_DEFAULTS): Redefine.
213
214         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
215
216 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
217
218         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
219         comparing addresses.
220
221 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
222
223         * fold-const.c (operand_equal_p): Handle matching of vector
224         constructors.
225
226 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
227
228         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
229
230 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
231             Andrew Pinski  <apinski@cavium.com>
232
233         PR rtl-optimization/67736
234         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
235         of gen_lowpart.
236
237 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
238
239         PR middle-end/68066
240         * tree.c (build_truth_vector_type): Support BLK mode
241         returned for boolean vector.
242
243 2015-10-23  Alan Hayward <alan.hayward@arm.com>
244
245         PR tree-optimization/65947
246         * tree-vect-loop.c
247         (vect_is_simple_reduction_1): Find condition reductions.
248         (vect_model_reduction_cost): Add condition reduction costs.
249         (get_initial_def_for_reduction): Add condition reduction initial var.
250         (vect_create_epilog_for_reduction): Add condition reduction epilog.
251         (vectorizable_reduction): Condition reduction support.
252         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
253         * doc/sourcebuild.texi (Vector-specific attributes): Document
254         vect_max_reduc
255
256 2015-10-23  Richard Biener  <rguenther@suse.de>
257
258         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
259         and builtins.def.
260
261 2015-10-23  Richard Biener  <rguenther@suse.de>
262             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
263
264         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
265         into (A ^ B) - B to match.pd
266         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
267
268         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
269         New simplifier.
270         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
271         New simplifier.
272         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
273         New simplifier.
274         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
275         New simplifier.
276         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
277         INTEGER_CST@1)): New simplifier.
278
279 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
280
281         * builtins.c (integer_valued_real_p): Move to fold-const.c.
282         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
283         (fold_builtin_ceil, fold_builtin_round): Delete.
284         (fold_builtin_1): Handle constant trunc, floor, ceil and round
285         arguments here.
286         * convert.c (convert_to_real): Remove narrowing of rounding
287         functions.
288         * fold-const.h (integer_valued_real_unary_p)
289         (integer_valued_real_binary_p, integer_valued_real_call_p)
290         (integer_valued_real_single_p, integer_valued_real_p): Declare.
291         * fold-const.c (tree_single_nonnegative_warnv_p): Move
292         name_registered_for_update_p check to SSA_NAME case statement.
293         Don't call tree_simple_nonnegative_warnv_p for SSA names.
294         (integer_valued_real_unary_p, integer_valued_real_binary_p)
295         (integer_valued_real_call_p, integer_valued_real_single_p)
296         (integer_valued_real_invalid_p): New functions.
297         (integer_valued_real_p): Move from fold-const.c and rework
298         to call the functions above.  Handle SSA names.
299         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
300         * gimple-fold.c (gimple_assign_integer_valued_real_p)
301         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
302         (gimple_stmt_integer_valued_real_p): New functions.
303         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
304         Fold f(x)->x for the same f if x is known to be integer-valued.
305         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
306         the result.  Canonicalize floor(x) as trunc(x) if x is
307         nonnegative.
308
309 2015-10-23  Tom de Vries  <tom@codesourcery.com>
310
311         * tree-ssa-structalias.c (intra_create_variable_infos): Use
312         make_constraint_from.
313
314 2015-10-23  Tom de Vries  <tom@codesourcery.com>
315
316         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
317         setting of is_full_var in case of a single field.
318
319 2015-10-22  Martin Sebor  <msebor@redhat.com>
320
321         PR driver/68043
322         * config/i386/i386.opt: Add missing periods to the ends of sentences.
323         * config/msp430/msp430.opt: Same.
324
325 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
326
327         * doc/extend.exp (Global Register Variables): Rewrite.
328
329 2015-10-22  Jeff Law  <law@redhat.com>
330
331         * genattrtab.c (main): If we do not have any annul-true or annul-false
332         slots, then write out a dummy eligible_for_annul_true or
333         eligible_for_annul_false as needed.
334
335 2015-10-22  Nick Clifton  <nickc@redhat.com>
336
337         * config/msp430/msp430.opt: Add -msilicon-errata and
338         -msilicon-errata-warn.
339         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
340         assembler.
341         * doc/invoke.texi: Document new options.
342
343 2015-10-22  Richard Biener  <rguenther@suse.de>
344
345         PR tree-optimization/58497
346         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
347         (expand_vector_operations_1): Use it.  Lower operations on
348         all uniform vectors to scalar operations if the HW supports it.
349
350 2015-10-22  Richard Biener  <rguenther@suse.de>
351
352         PR tree-optimization/19049
353         PR tree-optimization/65962
354         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
355         to strided accesses if single-element interleaving doesn't work.
356
357 2015-10-22  Richard Biener  <rguenther@suse.de>
358
359         PR middle-end/68046
360         PR middle-end/61893
361         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
362         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
363         (expand_unop): Likewise.
364
365 2015-10-22  Richard Biener  <rguenther@suse.de>
366
367         * fold-const.c (fold_addr_of_array_ref_difference): Properly
368         convert operands before folding a MINUS_EXPR.
369         (fold_binary_loc): Move simplification of MINUS_EXPR on
370         converted POINTER_PLUS_EXPRs ...
371         * match.pd: ... here.
372
373 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
374
375         * builtins.c (fold_builtin_tan): Delete.
376         (fold_builtin_1): Handle constant tan arguments here.
377         * match.pd: Simplify (tan (atan x)) to x.
378
379 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
380
381         * builtins.c (fold_builtin_cproj): Delete.
382         (fold_builtin_1): Handle constant arguments here.
383         (build_complex_cproj): Move and rename to...
384         * tree.c: (build_complex_inf): ...this.
385         * tree.h (build_complex_inf): Declare.
386         * match.pd: Fold cproj(x)->x if x has no infinity.
387         Use build_complex_inf for existing cproj rules.
388
389 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
390
391         PR target/68015
392         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
393         already have a comparison result.
394
395 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
396
397         PR target/63304
398         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
399         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
400         (aarch64_classify_address): Likewise.
401         (aarch64_secondary_reload): Likewise.
402         (aarch64_override_options_after_change_1): Adjust.
403         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
404         Use aarch64_nopcrelative_literal_loads.
405         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
406         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
407         Declare.
408
409 2015-10-21  Martin Sebor  <msebor@redhat.com>
410
411         PR driver/68043
412         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
413         (print_filtered_help): Reference aliased option's name and encourage
414         readers to use it in preference to the alias if the former is not
415         documented.  Mention when using an option is diagnosed.
416         * gcc.c (display_help): End each sentence with a period.
417
418         * common.opt: End each sentence that describes an option with
419         a period.
420         * config/aarch64/aarch64.opt: Same.
421         * config/alpha/alpha.opt: Same.
422         * config/arc/arc.opt: Same.
423         * config/arm/arm.opt: Same.
424         * config/avr/avr.opt: Same.
425         * config/bfin/bfin.opt: Same.
426         * config/c6x/c6x.opt: Same.
427         * config/cr16/cr16.opt: Same.
428         * config/cris/cris.opt: Same.
429         * config/cris/linux.opt: Same.
430         * config/darwin.opt: Same.
431         * config/epiphany/epiphany.opt: Same.
432         * config/fr30/fr30.opt: Same.
433         * config/frv/frv.opt: Same.
434         * config/ft32/ft32.opt: Same.
435         * config/g.opt: Same.
436         * config/h8300/h8300.opt: Same.
437         * config/i386/cygming.opt: Same.
438         * config/i386/djgpp.opt: Same.
439         * config/i386/i386.opt: Same.
440         * config/i386/interix.opt: Same.
441         * config/i386/mingw-w64.opt: Same.
442         * config/i386/mingw.opt: Same.
443         * config/ia64/ia64.opt: Same.
444         * config/ia64/ilp32.opt: Same.
445         * config/iq2000/iq2000.opt: Same.
446         * config/linux.opt: Same.
447         * config/lm32/lm32.opt: Same.
448         * config/lynx.opt: Same.
449         * config/m32c/m32c.opt: Same.
450         * config/m32r/m32r.opt: Same.
451         * config/m68k/ieee.opt: Same.
452         * config/m68k/m68k.opt: Same.
453         * config/mcore/mcore.opt: Same.
454         * config/mep/mep.opt: Same.
455         * config/microblaze/microblaze.opt: Same.
456         * config/mips/mips.opt: Same.
457         * config/mmix/mmix.opt: Same.
458         * config/mn10300/mn10300.opt: Same.
459         * config/moxie/moxie.opt: Same.
460         * config/msp430/msp430.opt: Same.
461         * config/nios2/elf.opt: Same.
462         * config/nios2/nios2.opt: Same.
463         * config/nvptx/nvptx.opt: Same.
464         * config/pa/pa-hpux.opt: Same.
465         * config/pa/pa-hpux1010.opt: Same.
466         * config/pa/pa-hpux1111.opt: Same.
467         * config/pa/pa-hpux1131.opt: Same.
468         * config/pa/pa.opt: Same.
469         * config/pa/pa64-hpux.opt: Same.
470         * config/pdp11/pdp11.opt: Same.
471         * config/rl78/rl78.opt: Same.
472         * config/rs6000/476.opt: Same.
473         * config/rs6000/aix64.opt: Same.
474         * config/rs6000/darwin.opt: Same.
475         * config/rs6000/linux64.opt: Same.
476         * config/rs6000/rs6000.opt: Same.
477         * config/rs6000/sysv4.opt: Same.
478         * config/s390/s390.opt: Same.
479         * config/s390/tpf.opt: Same.
480         * config/sh/sh.opt: Same.
481         * config/sol2.opt: Same.
482         * config/sparc/long-double-switch.opt: Same.
483         * config/sparc/sparc.opt: Same.
484         * config/spu/spu.opt: Same.
485         * config/stormy16/stormy16.opt: Same.
486         * config/tilegx/tilegx.opt: Same.
487         * config/tilepro/tilepro.opt: Same.
488         * config/v850/v850.opt: Same.
489         * config/vax/vax.opt: Same.
490         * config/visium/visium.opt: Same.
491         * config/vms/vms.opt: Same.
492         * config/vxworks.opt: Same.
493         * config/xtensa/xtensa.opt: Same.
494
495 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
496             Sebastian Pop  <s.pop@samsung.com>
497
498         * graphite-scop-detection.c (parameter_index_in_region): Update call to
499         invariant_in_sese_p_rec.
500         * graphite-sese-to-poly.c (extract_affine): Same.
501         * sese.c (invariant_in_sese_p_rec): Pass in an extra
502         parameter has_vdefs.
503         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
504         variable depends on virtual definitions in the current region.
505         * sese.h (invariant_in_sese_p_rec): Update declaration.
506
507 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
508             Sebastian Pop  <s.pop@samsung.com>
509
510         * graphite-scop-detection.c (build_scops): Do not handle scops
511         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
512         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
513
514 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
515
516         * config.in: Regenerate.
517         * configure: Regenerate.
518         * configure.ac (CHECKING_P): Define.
519         * system.h: Use CHECKING_P.
520
521 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
522
523         PR ipa/67056
524         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
525         is negative we don't know the type.
526         (check_stmt_for_type_change): Skip constructors of non-polymorphic
527         types as those won't help devirutalization.
528
529 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
530
531         * fold-const.c (operand_equal_p): Add code matching empty constructors.
532
533 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
534
535         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
536         comments.
537         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
538         Add comments on sign of the result.
539         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
540         Recurse on operand #1 instead of operand #0.
541         <CEIL_MOD_EXPR>: Do not recurse.
542         <ROUND_MOD_EXPR>: Likewise.
543
544 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
545
546         * cfgrtl.c (pass_free_cfg::execute): Adjust.
547         * final.c (dbr_sequence_length): Always define.
548         (shorten_branches): Adjust.
549         * genattr-common.c (main): Always define DELAY_SLOTS.
550         * genattr.c (main): Unconditionally declare functions and define
551         macros related to delay slots.
552         * genattrtab.c (write_eligible_delay): Adjust.
553         (main): Always write out delay slot functions.
554         * opts.c (default_options_table): Adjust.
555         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
556         (redirect_with_delay_list_safe_p): Likewise.
557         (fill_simple_delay_slots): Likewise.
558         (fill_slots_from_thread): Likewise.
559         (make_return_insns): Likewise.
560         (dbr_schedule): Likewise.
561         (rest_of_handle_delay_slots): Likewise.
562         (pass_delay_slots::gate): Likewise.
563         * toplev.c (process_options): Likewise.
564
565 2015-10-21  Richard Henderson  <rth@redhat.com>
566
567         * targhooks.c (default_addr_space_pointer_mode): Remove check
568         for generic address space.
569         (default_addr_space_address_mode): Likewise.
570         (default_addr_space_valid_pointer_mode): Likewise.
571         (default_addr_space_legitimate_address_p): Likewise.
572         (default_addr_space_legitimize_address): Likewise.
573         * target.def (addr_space.pointer_mode): Update documentation
574         of default behavior.
575         (addr_space.address_mode): Likewise.
576         * tm.texi: Update.
577
578         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
579         address spaces.
580
581 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
582
583         * builtins.c (fold_builtin_cabs): Delete.
584         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
585         * match.pd: Add rules previously handled by fold_builtin_cabs.
586
587 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
588
589         * fold-const.h (fold_strip_sign_ops): Delete.
590         * fold-const.c (fold_strip_sign_ops): Likewise.
591         (fold_unary_loc, fold_binary_loc): Remove calls to it.
592         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
593         (fold_builtin_ccos): Delete.
594         (fold_builtin_pow): Don't call fold_strip_sign_ops.
595         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
596         Remove fndecl argument.
597         (fold_builtin_1): Update calls accordingly.  Handle constant
598         cos, cosh, ccos and ccosh here.
599
600 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
601
602         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
603         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
604         * common.opt (fssa-backprop): New option.
605         * fold-const.h (negate_mathfn_p): Declare.
606         * fold-const.c (negate_mathfn_p): Make public.
607         * timevar.def (TV_TREE_BACKPROP): New.
608         * tree-pass.h (make_pass_backprop): Declare.
609         * passes.def (pass_backprop): Add.
610         * gimple-ssa-backprop.c: New file.
611
612 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
613             Sebastian Pop  <s.pop@samsung.com>
614
615         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
616         Do not call create_empty_if_region_on_edge when cond_expr is true.
617         (translate_isl_ast_node_for): Check whether a guard has been generated.
618
619 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
620
621         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
622         (operator=): Removed.
623         (dr_info): Make alias_set number the last argument with default
624         value of invalid_alias_set.
625         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
626         of dr_info.
627         (rewrite_reductions_out_of_ssa): Iterate only through the
628         basic blocks which are inside region.
629         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
630         * sese.h (struct sese_l): Removed assignment operator.
631         (split_region_for_bb): Removed dead code.
632
633 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
634
635         * graphite-poly.h (struct dr_info): Removed conversion constructor.
636         (struct scop): Renamed scop::region to scop::scop_info
637         (scop_set_region): Same.
638         (SCOP_REGION): Removed
639         (SCOP_CONTEXT): Removed.
640         (POLY_SCOP_P): Removed.
641         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
642         Rename scop->region to scop->scop_info.
643         (add_parameters_to_ivs_params): Same.
644         (graphite_regenerate_ast_isl): Same.
645         * graphite-poly.c (new_scop): Same.
646         (free_scop): Same.
647         (print_scop_params): Same.
648         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
649         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
650         (dot_all_scops_1): Rename scop->region to scop->scop_info.
651         (scop_detection::nb_pbbs_in_loops): Same.
652         (find_scop_parameters): Same.
653         (try_generate_gimple_bb): Same.
654         (gather_bbs::before_dom_children): Same.
655         (gather_bbs::after_dom_children): Same.
656         (build_scops): Same.
657         * graphite-sese-to-poly.c (build_scop_scattering): Same.
658         (extract_affine_chrec): Same.
659         (extract_affine): Same.
660         (set_scop_parameter_dim): Same.
661         (build_loop_iteration_domains): Same.
662         (create_pw_aff_from_tree): Same.
663         (add_param_constraints): Same.
664         (build_scop_iteration_domain): Same.
665         (build_scop_drs): Same.
666         (analyze_drs_in_stmts): Same.
667         (insert_out_of_ssa_copy_on_edge): Same.
668         (rewrite_close_phi_out_of_ssa):Same.
669         (rewrite_reductions_out_of_ssa):Same.
670         (handle_scalar_deps_crossing_scop_limits):Same.
671         (rewrite_cross_bb_scalar_deps):Same.
672         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
673         (build_poly_scop):Same.
674         (build_alias_set): Use pointer to dr_info.
675         * graphite.c (print_graphite_scop_statistics):
676         (graphite_transform_loops):
677         * sese.h (struct sese_l): Remove conversion constructor.
678
679 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
680
681         PR middle-end/67966
682         * tree.c (verify_type): Verify that TYPE_MODE match
683         between TYPE_CANONICAL and type.
684         * expr.c (store_expr_with_bounds): Revert my previous change.
685         * expmed.c (store_bit_field_1): Revert prevoius change.
686         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
687         to match for all types.
688
689 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
690
691         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
692         nesting.
693
694 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
695
696         * doc/tm.texi: Regenerated.
697         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
698         * stor-layout.c (layout_type): Use mode to get vector mask size.
699         * target.def (get_mask_mode): New.
700         * targhooks.c (default_get_mask_mode): New.
701         * targhooks.h (default_get_mask_mode): New.
702         * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
703         for boolean vector.
704         * tree.c (MAX_BOOL_CACHED_PREC): New.
705         (nonstandard_boolean_type_cache): New.
706         (build_nonstandard_boolean_type): New.
707         (make_vector_type): Vector mask has no canonical type.
708         (build_truth_vector_type): New.
709         (build_same_sized_truth_vector_type): New.
710         (truth_type_for): Support vector masks.
711         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
712         (build_truth_vector_type): New.
713         (build_same_sized_truth_vector_type): New.
714         (build_nonstandard_boolean_type): New.
715         * tree-cfg.c (verify_gimple_comparison) Require boolean
716         vector type for vector comparison.
717         (verify_gimple_assign_ternary): Likewise.
718         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
719         condition operand.
720         * tree-vect-stmts.c (vectorizable_condition): Use boolean
721         vector type for vector comparison.
722         * tree-vect-generic.c (elem_op_func): Add new operand to hold
723         vector type.
724         (do_unop): Adjust to modified function type.
725         (do_binop): Likewise.
726         (do_plus_minus): Likewise.
727         (do_negate); Likewise.
728         (expand_vector_piecewise): Likewise.
729         (do_cond): Likewise.
730         (do_compare): Use comparison instead of condition.
731         (expand_vector_divmod): Use boolean vector type for comparison.
732         (expand_vector_operations_1): Skip scalar mask operations.
733
734 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
735
736         * omp-low.c (simd_clone_create): Set in_other_partition
737         for created clones.
738
739 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
740
741         * doc/extend.exp (Local Register Variables): Rewrite.
742
743 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
744
745         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
746         and x*x in cases where the operands are sign ops.  Extend these
747         rules to handle copysign as a sign op (including for cos, cosh
748         and pow, which already treated negate and abs as sign ops).
749
750 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
751
752         PR target/68018
753         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
754         for 64-bit MS_ABI targets also when default incoming stack boundary
755         is overriden.
756
757 2015-10-21  Richard Biener  <rguenther@suse.de>
758
759         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
760         cond stmts, enhanced and split out from ...
761         (vn_phi_eq): ... here.
762
763 2015-10-21  Richard Biener  <rguenther@suse.de>
764
765         PR middle-end/68031
766         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
767         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
768         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
769         make sure they are not registered for update.
770
771 2015-10-21  Richard Biener  <rguenther@suse.de>
772
773         PR tree-optimization/68026
774         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
775         unsigned VARYING values.
776
777 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
778
779         * asan.c (asan_emit_stack_protection): Don't pass local stack to
780         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
781         NULL and use local stack than.
782         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
783         in addition to __asan_init.
784         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
785         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
786         * asan.h (asan_intercepted_p): Handle new string builtins.
787         * ubsan.c (ubsan_use_new_style_p): New function.
788         (ubsan_instrument_float_cast): If location is unknown, assign
789         input_location to loc. Propagate loc to ubsan_create_data if
790         ubsan_use_new_style_p returned true.
791
792 2015-10-21  Jeff Law  <law@redhat.com>
793
794         * Makefile.in (OBJS): Remove sched-vis.c
795         * sched-vis.c: Removed.  Code moved into...
796         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
797         * rtl.h: Remove prototypes for functions now living in print-rtl.c
798         * print-rtl.h Add prototypes for new functions in print-rtl.c.
799         * auto-inc-dec.c: Include print-rtl.h
800         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
801         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
802
803         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
804         ATTRIBUTE_UNUSED.
805
806 2015-10-21  Richard Biener  <rguenther@suse.de>
807             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
808
809         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
810         to match.pd.
811         Move (a * (1 << b)) is (a << b) to match.pd.
812         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
813         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
814         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
815
816         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
817         New simplifier.
818         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
819         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
820         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
821         : New simplifier.
822         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
823         New simplifier.
824         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
825
826 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
827             Szabolcs Nagy  <szabolcs.nagy@arm.com>
828             Alan Modra  <amodra@gmail.com>
829
830         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
831         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
832         (LINK_SPEC): Add %(link_secure_plt).
833         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
834         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
835
836 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
837             Szabolcs Nagy  <szabolcs.nagy@arm.com>
838
839         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
840         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
841
842 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
843
844         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
845         New function.
846         (fusion_load_store): Use it.
847         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
848         ldp and stp in VD modes.
849         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
850         (store_pair<mode>, VD): Likewise.
851
852 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
853
854         PR rtl-optimization/67609
855         * lra-splill.c (lra_final_code_change): Don't remove all
856         sub-registers.
857
858 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
859
860         * simplify-rtx.c (simplify_binary_operation): If either operand was
861         a constant pool reference use them if all other simplifications failed.
862
863 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
864
865         * config/aarch64/aarch64.md
866         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
867         * config/aarch64/aarch64-simd.md
868         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
869         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
870         (aarch64_fpconst_pow_of_2): New function.
871         (aarch64_vec_fpconst_pow_of_2): Likewise.
872         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
873         prototype.
874         (aarch64_vec_fpconst_pow_of_2): Likewise.
875         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
876         (aarch64_fp_vec_pow2): Likewise.
877
878 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
879
880         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
881         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
882         * config/alpha/alpha.c (alpha_function_arg_advance): Update
883         ALPHA_ARG_SIZE usage.
884         (alpha_arg_partial_bytes): Ditto.
885
886 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
887
888         PR target/66810
889         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
890         error_mark_node decls.
891
892 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
893
894         PR target/67963
895         PR target/67985
896         * common/config/i386/i386-common.c (ix86_handle_option): Remove
897         OPT_miamcu handling.
898         * config/i386/i386.c (PTA_NO_80387): New macro.
899         (processor_alias_table): Add PTA_NO_80387 to lakemont.
900         (ix86_option_override_internal): Update MASK_80387 from
901         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
902         SSE math only if 80387 is supported.  Don't change
903         MASK_FLOAT_RETURNS.
904         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
905         80387 is supported.
906         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
907         if TARGET_80387 is true and TARGET_IAMCU is false.
908         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
909         is true and TARGET_IAMCU_P is false.
910
911 2015-10-20  Richard Biener  <rguenther@suse.de>
912
913         PR tree-optimization/68017
914         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
915
916 2015-10-20  Martin Liska  <mliska@suse.cz>
917
918         * cgraphclones.c (cgraph_node::create_virtual_clone):
919         Verify cgraph_node.local.versionable instead of calling
920         tree_versionable_function_p.
921         * ipa-cp.c (determine_versionability): Save the information
922         to ipa_node_params summary.
923         (ipcp_versionable_function_p): Use it.
924         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
925         (ipcp_generate_summary): Do not compute cgraph_node
926         versionability.
927         * ipa-inline-analysis.c (inline_generate_summary): Compute
928         versionability for all cgraph nodes.
929         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
930         ipa_node_params::versionability.
931         * ipa-prop.h (struct ipa_node_params): Declare it.
932
933 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
934
935         PR other/67868
936         * varasm.c (assemble_variable): Move special vtv handling to..
937         (handle_vtv_comdat_sections): .. here. New function.
938         (output_object_block): Handle vtv sections.
939
940 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
941
942         PR target/66912
943         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
944
945 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
946
947         * doc/extend.texi: Update documentation WRT inline functions.
948
949 2015-10-20  Alan Modra  <amodra@gmail.com>
950
951         PR go/66870
952         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
953         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
954         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
955
956 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
957
958         PR rtl-optimization/66790
959         * df.h (DF_MIR): New macro.
960         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
961         (DF_MIR_INFO_BB): New macro.
962         (DF_MIR_IN, DF_MIR_OUT): New macros.
963         (struct df_mir_bb_info): New.
964         (df_mir): New macro.
965         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
966         declarations.
967         (df_mir_get_bb_info): New.
968         * df-problems.c (struct df_mir_problem_data): New.
969         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
970         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
971         df_mir_confluence_0, df_mir_confluence_n,
972         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
973         df_mir_bottom_dump, df_mir_verify_solution_start,
974         df_mir_verify_solution_end): New.
975         (problem_MIR): New.
976         (df_mir_add_problem, df_mir_simulate_one_insn): New.
977         * timevar.def (TV_DF_MIR): New.
978         * ree.c: Include bitmap.h
979         (add_removable_extension): Add an INIT_REGS parameter.  Use it
980         to skip zero-extensions that may get an uninitialized register.
981         (find_removable_extensions): Compute must-initialized registers
982         using the MIR dataflow problem. Update the call to
983         add_removable_extension.
984         (find_and_remove_re): Call df_mir_add_problem.
985
986 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
987
988         * common/config/mn10300/mn10300-common.c
989         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
990         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
991
992 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
993
994         * doc/extend.texi (Explicit Register Variables): Simplify and
995         avoid unnecessary and confusion abbreviations.  Update cross
996         references.
997         doc/implement-c.tex: Update cross reference.
998
999 2015-10-19  Jeff Law  <law@redhat.com>
1000
1001         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
1002         that create irreducible loops unless the path elimiantes a multiway
1003         branch.
1004
1005 2015-10-19  Richard Biener  <rguenther@suse.de>
1006
1007         PR tree-optimization/67975
1008         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
1009         * tree-cfg.c (extract_true_false_controlled_edges): Split out
1010         core worker from ...
1011         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
1012         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
1013         instead of block number for PHIs with two or one args.
1014         (vn_phi_eq): Compare edge predicates of PHIs that are in different
1015         blocks.
1016
1017 2015-10-19  Richard Biener  <rguenther@suse.de>
1018
1019         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
1020         (gimple_stmt_nonnegative_warnv_p): Use it.
1021         * match.pd (CPROJ): New operator list.
1022         (cproj (complex ...)): Move simplifications from ...
1023         * builtins.c (fold_builtin_cproj): ... here.
1024
1025 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1026
1027         * config/i386/i386.c (ix86_expand_vector_move): Use
1028         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
1029         alignment.
1030
1031 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1032
1033         * doc/invoke.texi: Replace @optindex with @opindex.
1034
1035 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
1036
1037         PR target/67995
1038         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
1039         arch= is set,  clear all bits in x_ix86_isa_flags, except for
1040         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
1041
1042 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
1043
1044         PR middle-end/68002
1045         * common.opt (fkeep-static-functions): New option.
1046         * doc/invoke.texi: Document it.
1047         * cgraphunit.c (cgraph_node::finalize_function): Use it.
1048
1049 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1050
1051         * sched-int.h (struct autopref_multipass_data_): Remove offset
1052         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
1053         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
1054         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
1055         (autopref_rank_data): New function.
1056         (autopref_rank_for_schedule): Use it.
1057         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
1058
1059 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
1060
1061         PR other/65800
1062         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
1063
1064 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1065
1066         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
1067         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
1068         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
1069         (STANDARD_STARTFILE_PREFIX_1): New.
1070         (STANDARD_STARTFILE_PREFIX_2): New.
1071
1072 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1073
1074         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
1075         (darwin_driver_init): Note a version-min when provided on the c/l.
1076         * config/darwin.h (%darwin_minversion): Remove.
1077         * config/i386/darwin.h: Likewise.
1078         * config/rs6000/darwin.h: Likewise.
1079         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
1080         rather than an arbitrary constant.
1081
1082 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1083
1084         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
1085         PPC, detect conflicts between -arch and multilib settings.  Detect
1086         and warn about conflicts between multiple -arch definitions.
1087
1088 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
1089
1090         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
1091
1092 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1093
1094         * lra-constraints.c (add_next_usage_insn): Change argument type
1095         from rtx to rtx_insn *.
1096
1097 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
1098
1099         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
1100         for Lakemont.
1101
1102 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
1103
1104         * config/tilepro/gen-mul-tables.cc: Adjust include files.
1105         * config/tilegx/mul-tables.c: Regenerate.
1106         * config/tilepro/mul-tables.c: Regenerate.
1107
1108         * config/tilegx/tilegx-c.c: Adjust include files.
1109         * config/tilegx/tilegx.c: Likewise.
1110         * config/tilepro/tilepro-c.c: Likewise.
1111         * config/tilepro/tilepro.c: Likewise.
1112         * config/aarch64/aarch64-builtins.c: Likewise.
1113         * config/aarch64/aarch64.c: Likewise.
1114         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1115         * config/alpha/alpha.c: Likewise.
1116         * config/arc/arc.c: Likewise.
1117         * config/arm/aarch-common.c: Likewise.
1118         * config/arm/arm-builtins.c: Likewise.
1119         * config/arm/arm-c.c: Likewise.
1120         * config/arm/arm.c: Likewise.
1121         * config/avr/avr-c.c: Likewise.
1122         * config/avr/avr-devices.c: Likewise.
1123         * config/avr/avr-log.c: Likewise.
1124         * config/avr/avr.c: Likewise.
1125         * config/bfin/bfin.c: Likewise.
1126         * config/c6x/c6x.c: Likewise.
1127         * config/cr16/cr16.c: Likewise.
1128         * config/cris/cris.c: Likewise.
1129         * config/darwin-c.c: Likewise.
1130         * config/darwin-driver.c: Likewise.
1131         * config/darwin.c: Likewise.
1132         * config/default-c.c: Likewise.
1133         * config/epiphany/epiphany.c: Likewise.
1134         * config/epiphany/mode-switch-use.c: Likewise.
1135         * config/epiphany/resolve-sw-modes.c: Likewise.
1136         * config/fr30/fr30.c: Likewise.
1137         * config/frv/frv.c: Likewise.
1138         * config/ft32/ft32.c: Likewise.
1139         * config/glibc-c.c: Likewise.
1140         * config/h8300/h8300.c: Likewise.
1141         * config/i386/host-cygwin.c: Likewise.
1142         * config/i386/host-mingw32.c: Likewise.
1143         * config/i386/i386-c.c: Likewise.
1144         * config/i386/i386.c: Likewise.
1145         * config/i386/msformat-c.c: Likewise.
1146         * config/i386/winnt-cxx.c: Likewise.
1147         * config/i386/winnt-stubs.c: Likewise.
1148         * config/i386/winnt.c: Likewise.
1149         * config/ia64/ia64-c.c: Likewise.
1150         * config/ia64/ia64.c: Likewise.
1151         * config/iq2000/iq2000.c: Likewise.
1152         * config/lm32/lm32.c: Likewise.
1153         * config/m32c/m32c-pragma.c: Likewise.
1154         * config/m32c/m32c.c: Likewise.
1155         * config/m32r/m32r.c: Likewise.
1156         * config/mcore/mcore.c: Likewise.
1157         * config/mep/mep-pragma.c: Likewise.
1158         * config/mep/mep.c: Likewise.
1159         * config/microblaze/microblaze-c.c: Likewise.
1160         * config/microblaze/microblaze.c: Likewise.
1161         * config/mips/mips-tables.opt
1162         * config/mips/mips.c: Likewise.
1163         * config/mmix/mmix.c: Likewise.
1164         * config/mn10300/mn10300.c: Likewise.
1165         * config/moxie/moxie.c: Likewise.
1166         * config/msp430/msp430-c.c: Likewise.
1167         * config/msp430/msp430.c: Likewise.
1168         * config/nds32/nds32-cost.c: Likewise.
1169         * config/nds32/nds32-fp-as-gp.c: Likewise.
1170         * config/nds32/nds32-intrinsic.c: Likewise.
1171         * config/nds32/nds32-isr.c: Likewise.
1172         * config/nds32/nds32-md-auxiliary.c: Likewise.
1173         * config/nds32/nds32-memory-manipulation.c: Likewise.
1174         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1175         * config/nds32/nds32-predicates.c: Likewise.
1176         * config/nds32/nds32.c: Likewise.
1177         * config/nios2/nios2.c: Likewise.
1178         * config/nvptx/mkoffload.c: Likewise.
1179         * config/nvptx/nvptx.c: Likewise.
1180         * config/pa/pa.c: Likewise.
1181         * config/pdp11/pdp11.c: Likewise.
1182         * config/rl78/rl78-c.c: Likewise.
1183         * config/rl78/rl78.c: Likewise.
1184         * config/rs6000/host-darwin.c: Likewise.
1185         * config/rs6000/rs6000-c.c: Likewise.
1186         * config/rs6000/rs6000-linux.c: Likewise.
1187         * config/rs6000/rs6000.c: Likewise.
1188         * config/rx/rx.c: Likewise.
1189         * config/s390/s390-c.c: Likewise.
1190         * config/s390/s390.c: Likewise.
1191         * config/sh/sh-c.c: Likewise.
1192         * config/sh/sh-mem.cc: Likewise.
1193         * config/sh/sh.c: Likewise.
1194         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1195         * config/sh/sh_treg_combine.cc: Likewise.
1196         * config/sol2-c.c: Likewise.
1197         * config/sol2-cxx.c: Likewise.
1198         * config/sol2-stubs.c: Likewise.
1199         * config/sol2.c: Likewise.
1200         * config/sparc/sparc-c.c: Likewise.
1201         * config/sparc/sparc.c: Likewise.
1202         * config/spu/spu-c.c: Likewise.
1203         * config/spu/spu.c: Likewise.
1204         * config/stormy16/stormy16.c: Likewise.
1205         * config/v850/v850-c.c: Likewise.
1206         * config/v850/v850.c: Likewise.
1207         * config/vax/vax.c: Likewise.
1208         * config/visium/visium.c: Likewise.
1209         * config/vms/vms-c.c: Likewise.
1210         * config/vms/vms.c: Likewise.
1211         * config/vxworks.c: Likewise.
1212         * config/winnt-c.c: Likewise.
1213         * config/xtensa/xtensa.c: Likewise.
1214
1215 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1216
1217         PR target/67745
1218         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
1219         (FUNCTION_BOUNDARY_P): New macro:
1220         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
1221         New hook.
1222         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
1223         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
1224         * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
1225         * gcc/function.c (allocate_struct_function): Call
1226         relayout_function hook.
1227         * gcc/passes.c (rest_of_decl_compilation): Likewise.
1228
1229 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1230
1231         PR target/67745
1232         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
1233         * config/arm/arm.c (arm_option_override_internal): Call
1234         arm_override_options_after_change_1.
1235         (arm_override_options_after_change): New function.
1236         (arm_override_options_after_change_1): Likewise.
1237         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
1238
1239 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1240
1241         Revert:
1242         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1243         empty constructors.
1244
1245 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1246
1247         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
1248         argument is an ADDR_EXPR.
1249
1250 2015-10-16  Richard Biener  <rguenther@suse.de>
1251
1252         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
1253         and get rid of force_gimple_operand_gsi.
1254         (gimple_fold_builtin_memory_chk): Likewise.
1255         (gimple_fold_builtin_stxcpy_chk): Likewise.
1256         (rewrite_to_defined_overflow): Likewise.
1257         (gimple_convert_to_ptrofftype): New function.
1258         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
1259
1260 2015-10-16  Richard Biener  <rguenther@suse.de>
1261
1262         * tree-nested.h (build_addr): Adjust prototype.
1263         * tree-nested.c (build_addr): Remove context argument and use
1264         mark_addressable.
1265         (get_static_chain): Adjust calls to build_addr.
1266         (convert_nl_goto_reference): Likewise.
1267         (convert_tramp_reference_op): Likewise.
1268         (finalize_nesting_tree_1): Likewise.
1269         * value-prof.c (gimple_ic): Likewise.
1270         * gimple-low.c (lower_builtin_setjmp): Likewise.
1271         * tree-parloops.c (take_address_of): Likewise.
1272         (create_call_for_reduction_1): Likewise.
1273         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
1274         (gimple_gen_ic_func_profiler): Likewise.
1275
1276 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1277
1278         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1279         empty constructors.
1280
1281 2015-10-16  Michael Collison  <michael.collison@linaro.org>
1282             Andrew Pinski <andrew.pinski@caviumnetworks.com>
1283
1284         * match.pd ((x < y) && (x < z) -> x < min (y,z),
1285         (x > y) and (x > z) -> x > max (y,z))
1286
1287 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
1288             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1289
1290         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
1291         (DYNAMIC_LINKER): Renamed to ...
1292         (GLIBC_DYNAMIC_LINKER): This.
1293         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
1294
1295 2015-10-15  Marek Polacek  <polacek@redhat.com>
1296
1297         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
1298         gimple_call_builtin instead of is_gimple_call.
1299
1300 2015-10-15  Richard Biener  <rguenther@suse.de>
1301
1302         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
1303
1304 2015-10-15  Richard Biener  <rguenther@suse.de>
1305
1306         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
1307         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
1308         * tree-vect-loop.c (get_initial_def_for_induction): Drop
1309         use of force_gimple_operand in favor of gimple_build.
1310         Use vect_get_new_ssa_name.
1311         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
1312         (vectorizable_mask_load_store): Likewise.
1313         (vectorizable_call): Likewise.
1314         (vectorizable_store): Likewise.
1315         (vectorizable_load): Likewise.
1316         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
1317
1318 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
1319
1320         PR tree-optimization/67945
1321         * tree-pass.h (PROP_gimple_opt_math): New property flag.
1322         * generic-match-head.c (canonicalize_math_p): New function.
1323         * gimple-match-head.c: Include tree-pass.h.
1324         (canonicalize_math_p): New function.
1325         * match.pd: Group math built-in rules into simplifications
1326         and canonicalizations.  Guard the latter with canonicalize_math_p.
1327         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
1328         PROP_gimple_opt_math property.
1329
1330 2015-10-15  Marek Polacek  <polacek@redhat.com>
1331
1332         PR tree-optimization/67953
1333         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
1334
1335 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
1336
1337         * config.gcc: Recognize "." in architecture base name for AArch64.
1338
1339 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1340
1341         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
1342         ROUND_UP macro.
1343         * config/mips/mips.c (mips_setup_incoming_varargs): Use
1344         ROUND_DOWN to calculate off.
1345         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
1346         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
1347         rounded_size.
1348
1349 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1350
1351         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
1352
1353 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
1354             Torvald Riegel  <triegel@redhat.com>
1355
1356         PR target/67281
1357         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
1358         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1359         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
1360         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
1361         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
1362         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1363         trechkpt, treclaim, tsr, ttest): New define_expands.
1364         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1365         __TM_FENCE__ for htm.
1366         * doc/extend.texi: Update documentation for htm builtins.
1367
1368 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1369
1370         PR target/67967
1371         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
1372         REG_CFA_EXPRESSION to aligned SSE stores.
1373
1374 2015-10-14  Jeff Law  <law@redhat.com>
1375
1376         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
1377         num_threaded_edges for successful FSM threads too.
1378
1379 2015-10-14  Richard Biener  <rguenther@suse.de>
1380
1381         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
1382         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
1383         (vect_get_vec_def_for_operand): Remove unused parameter.
1384         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
1385         (vect_create_epilog_for_reduction): Likewise.
1386         (vectorizable_reduction): Likewise.
1387         (vectorizable_live_operation): Likewise.
1388         * tree-vect-patterns.c (type_conversion_p): Likewise.
1389         (vect_recog_vector_vector_shift_pattern): Likewise.
1390         (check_bool_pattern): Likewise.
1391         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1392         (vect_analyze_slp_cost_1): Likewise.
1393         * tree-vect-stmts.c (process_use): Likewise.
1394         (vect_get_vec_def_for_operand): Do not handle reductions.
1395         (vect_get_vec_defs): Adjust.
1396         (vectorizable_mask_load_store): Likewise.
1397         (vectorizable_call): Likewise.
1398         (vectorizable_simd_clone_call): Likewise.
1399         (vect_get_loop_based_defs): Likewise.
1400         (vectorizable_conversion): Likewise.
1401         (vectorizable_assignment): Likewise.
1402         (vectorizable_shift): Likewise.
1403         (vectorizable_operation): Likewise.
1404         (vectorizable_store): Likewise.
1405         (vectorizable_load): Likewise.
1406         (vect_is_simple_cond): Likewise.
1407         (vectorizable_condition): Likewise.
1408         (vect_is_simple_use): Remove unused parameters.
1409         (vect_is_simple_use_1): Adjust and rename.
1410
1411 2015-10-14  Richard Biener  <rguenther@suse.de>
1412
1413         PR tree-optimization/67915
1414         * match.pd: Handle comparisons of addresses of STRING_CSTs.
1415         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
1416         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
1417         stmt folding in favor of GIMPLE one.
1418
1419 2015-10-14  Marek Polacek  <polacek@redhat.com>
1420
1421         PR tree-optimization/67815
1422         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
1423         (reassociate_bb): Call it.
1424
1425 2015-10-14  Richard Biener  <rguenther@suse.de>
1426
1427         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1428         Reset info at start.
1429         (vect_analyze_group_access_1): Add debug print.
1430         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
1431         (vect_compute_single_scalar_iteration_cost): ... to this.
1432         (vect_analyze_loop_2): Adjust.
1433         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
1434         * tree-vectorizer.h: ... here.
1435         (add_stmt_info_to_vec): Remove.
1436         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
1437
1438 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1439
1440         * targhooks.c (default_target_option_pragma_parse): Do not warn if
1441         called on behalf of "#pragma GCC pop_options".
1442
1443 2015-10-14  Tom de Vries  <tom@codesourcery.com>
1444
1445         * cfganal.c (verify_no_unreachable_blocks): New function.
1446         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
1447         verify_no_unreachable_blocks.
1448         cfganal.h (verify_no_unreachable_blocks): Declare.
1449
1450 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
1451
1452         * common.opt: Add flag_checking.
1453         * system.h (CHECKING_P): Define.
1454
1455 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1456             Aldy Hernandez  <aldyh@redhat.com>
1457             Ilya Verbin  <ilya.verbin@intel.com>
1458
1459         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
1460         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
1461         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
1462         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
1463         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
1464         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
1465         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
1466         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
1467         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
1468         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
1469         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1470         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1471         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
1472         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
1473         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
1474         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
1475         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
1476         (struct cgraph_simd_clone_arg): Adjust comment.
1477         * coretypes.h (struct gomp_ordered): New forward decl.
1478         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
1479         set critical clauses to it.
1480         (gimple_build_omp_ordered): Return gomp_ordered * instead of
1481         gimple *.  Add CLAUSES argument, set ordered clauses to it.
1482         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
1483         GIMPLE_OMP_ORDERED.
1484         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
1485         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
1486         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
1487         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
1488         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
1489         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
1490         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
1491         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
1492         renumber
1493         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
1494         (gomp_critical): Add clauses field.
1495         (gomp_ordered): New struct.
1496         (is_a_helper <gomp_ordered *>::test): New inline.
1497         (gimple_build_omp_critical): Add CLAUSES argument.
1498         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
1499         instead of gimple *.
1500         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
1501         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
1502         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
1503         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
1504         inline functions.
1505         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
1506         (dump_gimple_omp_target): Handle enter data and exit data.
1507         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
1508         (dump_gimple_omp_critical): Print clauses.
1509         (dump_gimple_omp_ordered): New function.
1510         (dump_gimple_omp_task): Handle taskloop.
1511         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
1512         GIMPLE_OMP_ORDERED.
1513         * gimple-walk.c (walk_gimple_op): Walk clauses on
1514         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
1515         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
1516         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
1517         (struct gimplify_omp_ctx): Add loop_iter_var,
1518         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
1519         and target_firstprivatize_array_bases fields.
1520         (delete_omp_context): Release loop_iter_var.
1521         (gimplify_bind_expr): Handle ORT_NONE.
1522         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
1523         ORT_COMBINED_TARGET.
1524         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
1525         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
1526         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
1527         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
1528         ctx->target_map_scalars_firstprivate.
1529         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
1530         data sharing clauses.  For data sharing clause with VLA decl
1531         on omp target/target data don't add firstprivate for the pointer.
1532         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
1533         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
1534         the addition of ORT_COMBINED_TARGET.
1535         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
1536         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
1537         pointers as zero length array sections and
1538         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
1539         data sharing.
1540         (omp_check_private): Handle omp_member_access_dummy_var vars.
1541         (find_decl_expr): New function.
1542         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
1543         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
1544         Handle OMP_CLAUSE_GANG separately.  Handle
1545         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1546         clauses.  Diagnose linear clause on combined
1547         distribute {, parallel for} simd construct, unless it is the loop
1548         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
1549         Handle map clauses with COMPONENT_REF.  Initialize
1550         ctx->target_map_scalars_firstprivate,
1551         ctx->target_firstprivatize_array_bases and
1552         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
1553         linear clause even to target region if combined.  Remove
1554         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
1555         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
1556         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
1557         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
1558         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
1559         For linear clause on worksharing loop combined with parallel add
1560         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
1561         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
1562         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
1563         taskloop if needed.
1564         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
1565         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
1566         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
1567         GOMP_MAP_POINTER.
1568         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
1569         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
1570         in target body.  Handle removal of struct mapping if struct is not
1571         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
1572         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
1573         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
1574         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
1575         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
1576         clause appear together.  Handle
1577         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
1578         clause if it has map-type-modifier always.  Handle
1579         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1580         clauses.
1581         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
1582         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
1583         callers.
1584         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
1585         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
1586         iterators in doacross loops.
1587         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
1588         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
1589         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
1590         for the addition of ORT_COMBINED_TARGET.
1591         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
1592         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
1593         and OMP_TARGET_EXIT_DATA.
1594         (gimplify_omp_ordered): New function.
1595         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
1596         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
1597         Gimplify clauses on OMP_CRITICAL.
1598         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
1599         expand_GOMP_SIMD_ORDERED_END): New functions.
1600         * internal-fn.def (GOMP_SIMD_ORDERED_START,
1601         GOMP_SIMD_ORDERED_END): New internal functions.
1602         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
1603         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
1604         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
1605         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
1606         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
1607         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
1608         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
1609         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
1610         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
1611         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
1612         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
1613         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
1614         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
1615         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
1616         adjust type.
1617         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
1618         GOMP_target_data_41, adjust type.
1619         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
1620         GOMP_target_update_41, adjust type.
1621         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
1622         field.
1623         (struct omp_for_data): Add ordered and simd_schedule fields.
1624         (omp_member_access_dummy_var, unshare_and_remap_1,
1625         unshare_and_remap, is_taskloop_ctx): New functions.
1626         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
1627         (extract_omp_for_data): Handle taskloops and doacross loops
1628         and simd schedule modifier.
1629         (omp_adjust_chunk_size): New function.
1630         (get_ws_args_for): Use it.
1631         (lookup_sfield): Change first argument to splay_tree_key,
1632         add overload with first argument tree.
1633         (maybe_lookup_field): Likewise.
1634         (use_pointer_for_field): Handle omp_member_access_dummy_var.
1635         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
1636         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
1637         (build_outer_var_ref): Add LASTPRIVATE argument, handle
1638         taskloops and omp_member_access_dummy_var vars.
1639         (build_sender_ref): Change first argument to splay_tree_key,
1640         add overload with first argument tree.
1641         (install_var_field): For mask & 8 use &DECL_UID as key instead
1642         of the tree itself.
1643         (fixup_child_record_type): Const qualify *.omp_data_i.
1644         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
1645         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
1646         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
1647         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
1648         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
1649         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
1650         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
1651         kinds.
1652         (add_taskreg_looptemp_clauses): New function.
1653         (scan_omp_parallel): Use it.
1654         (scan_omp_task): Likewise.
1655         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1656         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
1657         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1658         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
1659         sandwiched taskloop constructs.  Type check
1660         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
1661         region.  Diagnose depend(source) or depend(sink:...) on
1662         target constructs or task/taskloop.
1663         (handle_simd_reference): Use get_name.
1664         (lower_rec_input_clauses): Likewise.  Ignore all
1665         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
1666         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
1667         before passing it to omp_clause_{default,copy}_ctor.  Handle
1668         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
1669         lastprivate_firstprivate flag for linear that needs copyin and
1670         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
1671         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
1672         on taskloop lookup decl in outer context.  Pass true to
1673         build_outer_var_ref lastprivate argument.  Handle
1674         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
1675         outside of outer taskloop for.
1676         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
1677         OMP_CLAUSE_DECL.
1678         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
1679         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
1680         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
1681         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
1682         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
1683         abstract origin.  Handle omp_member_access_dummy_var vars.
1684         (expand_parallel_call): Use expand_omp_build_assign.
1685         (expand_task_call): Handle taskloop construct expansion.  Add
1686         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
1687         integers.  Add priority argument to GOMP_task* calls.  Or in
1688         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
1689         GOMP_task call.
1690         (expand_omp_build_assign): Add prototype.  Add AFTER
1691         argument, if true emit statements after *GSI_P and continue linking.
1692         (expand_omp_taskreg): Adjust expand_task_call caller.
1693         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
1694         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
1695         zero_iter2_bb and first_zero_iter2 arguments, handle computation
1696         of counts even for ordered loops.
1697         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
1698         (expand_omp_ordered_source, expand_omp_ordered_sink,
1699         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
1700         functions.
1701         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
1702         clauses on worksharing loop.  Handle DOACROSS loop expansion.
1703         (expand_omp_for_static_nochunk): Handle linear clauses on
1704         worksharing loop.  Adjust expand_omp_for_init_counts
1705         callers.
1706         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
1707         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
1708         expand_omp_for_init_counts callers.
1709         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
1710         functions.
1711         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
1712         Handle doacross loops.
1713         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1714         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
1715         GOMP_target_{41,update_41,enter_exit_data} libcalls.
1716         (expand_omp): Don't expand ordered depend constructs here, record
1717         ord_stmt instead for later expand_omp_for_generic.
1718         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1719         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1720         clause as stand-alone directive.
1721         (lower_omp_ordered_clauses): New function.
1722         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
1723         don't lower anything.
1724         (lower_omp_for_lastprivate): Use last _looptemp_ clause
1725         on taskloop for comparison.
1726         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
1727         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
1728         expansion for linear adjustments.
1729         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1730         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
1731         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
1732         to tree * pointing to the stmt's clauses.
1733         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
1734         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1735         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
1736         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
1737         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
1738         clauses.  Always use short kind and 8-bit align shift.
1739         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
1740         (struct lower_omp_regimplify_operands_data): New type.
1741         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
1742         New functions.
1743         (lower_omp_1): Use lower_omp_regimplify_operands instead of
1744         gimple_regimplify_operands.
1745         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1746         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1747         clause as stand-alone directive.
1748         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
1749         (simd_clone_mangle): Mangle the various linear kinds
1750         per the new ABI.
1751         (simd_clone_adjust_argument_types): Handle
1752         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
1753         (simd_clone_init_simd_arrays): Don't do anything for uval.
1754         (simd_clone_adjust): Handle
1755         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1756         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
1757         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
1758         * omp-low.h (omp_member_access_dummy_var): New prototype.
1759         * passes.def (pass_simduid_cleanup): Schedule another copy of the
1760         pass after all optimizations.
1761         * tree.c (omp_clause_code_name): Add entries for
1762         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1763         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1764         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
1765         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
1766         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
1767         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
1768         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1769         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
1770         clauses.
1771         * tree-core.h (enum omp_clause_linear_kind): New.
1772         (struct tree_omp_clause): Change type of map_kind
1773         from unsigned char to unsigned int.  Add subcode.if_modifier
1774         and subcode.linear_kind fields.
1775         (enum omp_clause_code): Add
1776         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1777         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1778         (OMP_CLAUSE_REDUCTION): Document
1779         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1780         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
1781         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
1782         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
1783         operand.
1784         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
1785         operand.
1786         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
1787         codes.
1788         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
1789         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
1790         char.
1791         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
1792         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
1793         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
1794         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
1795         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
1796         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
1797         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
1798         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
1799         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
1800         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
1801         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
1802         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
1803         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
1804         * tree-inline.c (remap_gimple_stmt): Handle clauses on
1805         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
1806         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
1807         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
1808         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1809         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1810         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1811         (convert_local_omp_clauses): Likewise.
1812         * tree-pretty-print.c (dump_omp_clause): Handle
1813         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1814         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1815         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
1816         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
1817         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
1818         GOMP_MAP_FORCE_DEALLOC.  Handle
1819         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
1820         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
1821         and clauses on OMP_ORDERED and OMP_CRITICAL.
1822         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
1823         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
1824         (vectorize_loops): Adjust comments.
1825         (pass_simduid_cleanup::execute): Likewise.
1826         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1827         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
1828         * wide-int.h (wi::gcd): New.
1829
1830 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1831
1832         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
1833         (ix86_function_arg_advance): Ditto.
1834         (ix86_function_arg): Ditto.
1835         (ix86_gimplify_va_arg): Ditto.
1836         (ix86_class_max_nregs): Ditto.
1837         (inline_memory_move_cost): Ditto.
1838         (ix86_set_reg_reg_cost): Ditto.
1839         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
1840
1841 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
1842
1843         PR middle-end/67912
1844         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
1845
1846 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1847
1848         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
1849         ROUND_UP macro and UNITS_PER_WORD * 2.
1850         * config/sparc/sparc.c (sparc_compute_frame_size):
1851         Use ROUND_UP and ROUND_DOWN macros where applicable.
1852         (function_arg_record_value, function_arg_record_value_1)
1853         (function_arg_record_value_1): Ditto.
1854         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
1855         alignment to double-word.
1856         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
1857         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
1858         rounded_size.
1859
1860 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
1861
1862         * gcc/rtl.h (print_insn): Fix prototype.
1863
1864 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1865
1866         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
1867         -1.  Add assert that returned entry matches phi argument.
1868         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
1869         free_stmt_vec_info_vec ...
1870         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
1871         with -1.
1872
1873 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
1874
1875         PR tree-optimization/67909, 67947
1876         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
1877         really skip the inner loop.
1878
1879 2015-10-13  Jeff Law  <law@redhat.com>
1880
1881         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1882         Allow single block jump threading paths.
1883
1884 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1885
1886         PR tree-optimization/67476
1887         * doc/invoke.texi (@item parloops-schedule): New item.
1888         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
1889         * tree-parloops.c: Include params-enum.h.
1890         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
1891
1892 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1893
1894         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
1895         * params-enum.h: New file.
1896         * opts.c (handle_param): Handle case that param arg is a string.
1897         * params-list.h: Handle DEFPARAMENUM5 in params.def.
1898         * params.c (find_param): New function, factored out of ...
1899         (set_param_value): ... here.
1900         (param_string_value_p): New function.
1901         * params.h (struct param_info): Add value_names field.
1902         (find_param, param_string_value_p): Declare.
1903
1904 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1905
1906         PR tree-optimization/67476
1907         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
1908
1909 2015-10-13  Richard Biener  <rguenther@suse.de>
1910
1911         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
1912         the data dependence vector.
1913         (vect_peeling_hash_insert): Get the peeling hash table as argument.
1914         (vect_peeling_hash_get_lowest_cost): Likewise.
1915         (vect_enhance_data_refs_alignment): Adjust.
1916         (struct _vect_peel_info, struct _vect_peel_extended_info,
1917         struct peel_info_hasher): Move from ...
1918         * tree-vectorizer.h: ... here.
1919         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
1920         (LOOP_VINFO_PEELING_HTAB): Likewise.
1921         (struct _loop_vec_info): Remove min_profitable_iters and
1922         peeling_htab members.
1923         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
1924         here.
1925         (destroy_loop_vec_info): Adjust.
1926         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
1927         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
1928         to estimate alias versioning cost.
1929         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
1930
1931 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
1932
1933         * real.h (real_isinteger): Declare.
1934         * real.c (real_isinteger): New function.
1935         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
1936         if y is an even integer.
1937
1938 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1939
1940         revert:
1941         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1942         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1943         counts when these are more informative.
1944
1945 2015-10-12  Jeff Law  <law@redhat.com>
1946
1947         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
1948         (fsm_find_control_stmt_paths): Change name of first argument to
1949         more accurately relfect what it really is.  Handle simplification
1950         of GIMPLE_COND after finding a thread path for NAME.
1951         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
1952         nontrivial conditions to be handled by FSM threader.
1953         (thread_through_normal_block): Extract the name to looup via
1954         FSM threader from COND_EXPR.
1955
1956         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
1957         restriction that traced SSA_NAME is a user variable.
1958
1959 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1960
1961         PR tree-optimization/67476
1962         * omp-low.c (expand_omp_for_generic): Add missing phis.
1963
1964 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1965
1966         PR tree-optimization/67476
1967         * omp-low.c (expand_omp_for_generic): Handle simple latch.
1968
1969 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
1970
1971         * config/aarch64/aarch64-simd-builtins.def: Update builtins
1972         tables: add tbl3 and tbx4.
1973         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
1974         (aarch64_tbx4v8qi): New.
1975         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
1976         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
1977         Rewrite using builtin functions.
1978         * config/aarch64/iterators.md (UNSPEC_TBX): New.
1979
1980 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1981
1982         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
1983         ROUND_UP macro.
1984         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
1985         Use ROUND_UP and ROUND_DOWN macros where applicable.
1986         (rs6000_darwin64_record_arg_flush): Ditto.
1987         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
1988         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
1989         rounded_size.
1990
1991 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1992
1993         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
1994         (AARCH64_ROUND_DOWN): Ditto.
1995         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
1996
1997 2015-10-12  Richard Biener  <rguenther@suse.de>
1998
1999         PR ipa/67783
2000         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
2001         code that analyzes IVs on each stmt but in a cheaper way avoiding
2002         quadratic behavior.
2003
2004 2015-10-12  Nick Clifton  <nickc@redhat.com>
2005
2006         * config/msp430/msp430.c (msp430_mcu_names): Rename to
2007         msp430_mcu_data, add fields for ISA and hardware multiply
2008         support.  Import latest data from the devices.csv file.
2009         (msp430_override_option): Use the data from the new array.
2010         (msp430_use_f5_series_hwmult): Likewise.
2011         (use_32bit_hwmult): Likewise.
2012         (msp430_no_hwmult): Likewise.
2013         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
2014         MCU names.
2015         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
2016         not recognised then no hardware multiply support is assumed and
2017         that only the MSP430 ISA is allowed.
2018
2019 2015-10-12  Richard Biener  <rguenther@suse.de>
2020
2021         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
2022         related code ...
2023         (vect_analyze_loop_2): ... here.
2024
2025 2015-10-11  Jason Merrill  <jason@redhat.com>
2026
2027         PR c++/67557
2028         * expr.c (store_field): Call store_constructor directly when
2029         storing a CONSTRUCTOR into a target smaller than its type.
2030         Guard against unsafe bitwise copy.
2031
2032 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2033
2034         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
2035         counts when these are more informative.
2036
2037 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2038
2039         * tree-profile.c (tree_profiling): Do not clear
2040         pure/const when not instrumenting.
2041         (pass tree_profile): Add dump of symtab.
2042
2043 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2044
2045         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
2046         addresses.
2047         (fold_addr_of_array_ref_difference): Likewise.
2048
2049 2015-10-11  Jeff Law  <law@redhat.com>
2050
2051         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
2052         tree-ssa-threadbackward.c.
2053         (fsm_find_control_statement_thread_paths): Likewise.
2054         (thread_through_normal_block): Break out FSM bits and move them
2055         into a new function in tree-ssa-threadbackward.c.  Call new function
2056         instead.
2057         Minimize header file usage.
2058         * tree-ssa-threadbackward.h: New file.
2059         * tree-ssa-threadbackward.c: Likewise.
2060         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
2061
2062 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
2063
2064         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
2065
2066 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
2067
2068         PR rtl-optimization/67864
2069         * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
2070         fallthrough edges for conditional jumps.  Don't sort candidate
2071         edges if not optimizing for speed.
2072
2073 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2074
2075         * defaults.h (REVERSE_CONDITION): New default definition.
2076         * jump.c (reversed_comparison_code_parts): Adjust.
2077
2078 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2079
2080         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
2081         check HARD_FRAME_POINTER_IS_ARG_POINTER.
2082
2083 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2084
2085         * defaults.h (FRAME_ADDR_RTX): New default definition.
2086         * builtins.c (expand_builtin_return_addr): Adjust.
2087
2088 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2089
2090         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
2091         * builtins.c (expand_builtin_return_addr): Adjust.
2092
2093 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2094
2095         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
2096         * builtins.c (expand_builtin_return_addr): Adjust.
2097         * doc/tm.texi: Likewise.
2098         * doc/tm.texi.in: Likewise.
2099         * except.c (expand_builtin_unwind_init): Likewise.
2100
2101 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2102
2103         * builtins.c (expand_builtin_return_addr): Adjust.
2104         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
2105
2106 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2107
2108         * tree.c (type_with_interoperable_signedness): New.
2109         (gimple_canonical_types_compatible_p): Use it.
2110         * tree.h (type_with_interoperable_signedness): Declare
2111
2112 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2113
2114         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
2115         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
2116         when OEP_ADDRESS_OF is se.
2117
2118 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2119             Sebastian Pop  <s.pop@samsung.com>
2120
2121         * graphite-dependences.c (scop_get_dependences): Add dump of the
2122         data dependence graph.
2123         * graphite-poly.c (print_isl_union_map): New.
2124         (debug_isl_union_map): New.
2125         * graphite-poly.h (print_isl_union_map): Declare.
2126         (debug_isl_union_map): Declare.
2127
2128 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2129             Sebastian Pop  <s.pop@samsung.com>
2130
2131         * graphite-poly.c (print_iteration_domain): Remove verbosity.
2132         Remove OpenScop formatting.
2133         (print_iteration_domains): Same.
2134         (debug_iteration_domain): Same.
2135         (debug_iteration_domains): Same.
2136         (print_pdr): Same.
2137         (debug_pdr): Same.
2138         (dump_gbb_cases): Same.
2139         (dump_gbb_conditions): Same.
2140         (print_pdrs): Same.
2141         (debug_pdrs): Same.
2142         (print_pbb_body): Same.
2143         (print_pbb): Same.
2144         (print_scop_params): Same.
2145         (print_scop_context): Same.
2146         (print_scop): Same.
2147         (debug_pbb_domain): Same.
2148         (debug_pbb): Same.
2149         (debug_scop_context): Same.
2150         (debug_scop): Same.
2151         (debug_scop_params): Same.
2152         * graphite-poly.h: Same.
2153         * graphite.c (graphite_transform_loops): Same.
2154
2155 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2156
2157         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
2158         call that isn't needed.
2159
2160 2015-10-09  Jeff Law  <law@redhat.com>
2161
2162         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
2163         rather than moving each name to the freelist individually.
2164
2165 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
2166
2167         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
2168         * frame-header-opt.c: New file.
2169         * config/mips/mips-proto.h (mips_register_frame_header_opt):
2170         Add prototype.
2171         * config/mips/mips.c (mips_compute_frame_info): Check
2172         optimize_call_stack flag.
2173         (mips_option_override): Register new frame_header_opt pass.
2174         (mips_frame_info, mips_int_mask, mips_shadow_set,
2175         machine_function): Move these types to...
2176         * config/mips/mips.h: here.
2177         (machine_function): Add does_not_use_frame_header and
2178         optimize_call_stack fields.
2179         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
2180         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
2181         Document new flags.
2182         * config/mips/mips.opt (mframe-header-opt): Add new option.
2183
2184 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
2185
2186         * config/i386/i386.c
2187         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
2188         ROUND_DOWN where applicable.
2189
2190 2015-10-09  Jeff Law  <law@redhat.com>
2191
2192         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
2193         correct statement.
2194
2195 2015-10-09  Renlin Li  <renlin.li@arm.com>
2196
2197         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
2198         operands[0] and operands[2].
2199         (neon_vtrn<mode>_insn): Likewise.
2200         (neon_vzip<mode>_insn): Likewise.
2201
2202 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2203
2204         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
2205         ((X & C2) << C1): Expand to...
2206         (X {&,^,|} C2 << C1): ...This.
2207         ((X & C2) >> C1): Expand to...
2208         (X {&,^,|} C2 >> C1): ...This.
2209
2210 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
2211
2212         PR target/67895
2213         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
2214         Adjust embedded rounding/SAE specifier position.
2215         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
2216         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
2217         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
2218         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
2219         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
2220         Likewise.
2221         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
2222
2223 2015-10-09  Martin Jambor  <mjambor@suse.cz>
2224
2225         tree-optimization/67794
2226         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
2227         between types of state,ents but accept original definitions as a
2228         parameter.
2229         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
2230         iterate over definitions.
2231
2232 2015-10-09  James Norris  <jnorris@codesourcery.com>
2233
2234         * config/rs6000/rs6000.c (rs6000_offload_options): New.
2235         (TARGET_OFFLOAD_OPTIONS): New.
2236
2237 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
2238
2239         PR middle-end/67891
2240         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
2241
2242         PR middle-end/67766
2243         * function.c (expand_function_end): Move return value
2244         promotion past the handling of PARALLELs and CONCATs.
2245
2246         PR rtl-optimization/67828
2247         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
2248         (tree_may_unswitch_on): Don't unswitch on expressions
2249         involving undefined values.
2250
2251 2015-10-09  Richard Biener  <rguenther@suse.de>
2252
2253         * genmatch.c (print_operand): Fix formatting.
2254         (dt_node::append_simplify): Warn for multiple simplifiers
2255         that match the same pattern.
2256         * match.pd (log (exp @0)): Remove duplicates.
2257
2258 2015-10-09  Richard Biener  <rguenth@suse.de>
2259
2260         PR target/67366
2261         * gimple-fold.c (optabs-query.h): Include
2262         (gimple_fold_builtin_memory_op): Allow unaligned stores
2263         when movmisalign_optabs are available.
2264
2265 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2266
2267         PR target/67366
2268         * config/arm/arm.md (movmisalign<mode>): New.
2269         * config/arm/iterators.md (HSI): New.
2270
2271 2015-10-09  Richard Biener  <rguenther@suse.de>
2272
2273         PR tree-optimization/67891
2274         * gimple-match.h (gimple_simplified_result_is_gimple_val):
2275         New helper.
2276         (gimple_resimplify1): Declare.
2277         (gimple_resimplify2): Likewise.
2278         (gimple_resimplify3): Likewise.
2279         * gimple-match-head.c (gimple_resimplify1): Export.
2280         (gimple_resimplify2): Likewise.
2281         (gimple_resimplify3): Likewise.
2282         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
2283         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
2284         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
2285         to avoid creating stmts without VN info.
2286
2287 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
2288
2289         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
2290         of availability.
2291
2292 2015-10-08  Jeff Law  <law@redhat.com>
2293
2294         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
2295         and release_ssa_name in two places.
2296         (gimple_stringop_fixed_value): Similarly.
2297
2298         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
2299         release_defs.
2300
2301         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
2302         unlink_stmt_vdef and release_ssa_name_fn.
2303
2304         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
2305         release_defs.
2306
2307 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2308
2309         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
2310         SSE register save area to 16 bytes only if the incoming stack
2311         boundary is no less than 16 bytes.
2312
2313 2015-10-08  Jeff Law  <law@redhat.com>
2314
2315         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
2316         release_ssa_name.  Fix typo in comment.
2317
2318 2015-10-08  Nathan Sidwell  <nathan@acm.org>
2319
2320         * config/nvptx/nvptx.h (struct machine_function): Add comment.
2321         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
2322         may return pointer as well as in memory.
2323         (nvptx_output_return): Likewise.
2324
2325 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2326
2327         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
2328         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
2329         * match.pd: Add rules previously handled by fold_builtin_sqrt
2330         and fold_builtin_cbrt.
2331
2332 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2333
2334         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
2335         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
2336         * fold-const.h (tree_unary_nonnegative_warnv_p)
2337         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2338         (tree_expr_nonnegative_warnv_p): Add depth parameters.
2339         * fold-const.c: Include gimple-fold.h and params.h.
2340         (tree_ssa_name_nonnegative_warnv_p): New function.
2341         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
2342         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2343         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
2344         Add a depth parameter and increment it for recursive calls to
2345         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
2346         to handle SSA names.
2347         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
2348         (gimple_stmt_nonnegative_warnv_p): Declare.
2349         * tree-vrp.c (remove_range_assertions): Remove assert that condition
2350         cannot be proven false.
2351         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
2352         (gimple_stmt_nonnegative_warnv_p): Move to...
2353         * gimple-fold.c: ...here.  Add depth parameters and pass them
2354         down to the tree routines.  Accept statements that aren't
2355         assignments or calls but just return false for them.
2356         (gimple_val_nonnegative_real_p): Delete.
2357         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
2358         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
2359         Check HONOR_NANs first.
2360
2361 2015-10-08  Martin Jambor  <mjambor@suse.cz>
2362
2363         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
2364         unnecessary MIN.
2365
2366 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2367
2368         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
2369         in the tail of outer-loop.
2370
2371 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
2372
2373         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
2374         return UI_NONE.
2375
2376 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2377
2378         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
2379         "cfghooks.h", add prototypes for introduced new functions.
2380         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
2381         checks on ability of loop unswitching to tree_unswitch_single_loop;
2382         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
2383         on innermost loop check.
2384         (tree_unswitch_single_loop): Add all required checks on ability of
2385         loop unswitching under zero recursive level guard.
2386         (tree_unswitch_outer_loop): New function.
2387         (find_loop_guard): Likewise.
2388         (empty_bb_without_guard_p): Likewise.
2389         (used_outside_loop_p): Likewise.
2390         (get_vop_from_header): Likewise.
2391         (hoist_guard): Likewise.
2392         (check_exit_phi): Likewise.
2393
2394 2015-10-08  Marek Polacek  <polacek@redhat.com>
2395
2396         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
2397         ops element.
2398
2399 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2400
2401         PR c/65345
2402         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
2403         create_tmp_var_raw instead of create_tmp_var.
2404
2405 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
2406
2407         * expr.c (store_expr_with_bounds): Handle aggregate moves from
2408         BLKmode.
2409         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
2410         to define gimple type system; compare aggregates only by size.
2411
2412 2015-10-07  Jeff Law  <law@redhat.com>
2413
2414         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
2415         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
2416         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
2417         unnecessarily.
2418
2419 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2420             Sebastian Pop  <s.pop@samsung.com>
2421
2422         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
2423         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
2424         (generate_isl_schedule): Same.
2425         * graphite-optimize-isl.c (scop_get_domains): Same.
2426         (apply_schedule_map_to_scop): Same.
2427         * graphite-poly.c (print_iteration_domains): Same.
2428         (remove_gbbs_in_scop): Same.
2429         (new_scop): Same.
2430         (free_scop): Same.
2431         (print_scop): Same.
2432         * graphite-poly.h (struct scop): Rename bbs to pbbs.
2433         (SCOP_BBS): Remove.
2434         * graphite-scop-detection.c (compare_bb_depths): Remove.
2435         (graphite_sort_dominated_info): Remove.
2436         (try_generate_gimple_bb): Move out of scop_detection.
2437         (all_non_dominated_preds_marked_p): Remove.
2438         (build_scop_bbs_1): Remove.
2439         (build_scop_bbs): Remove.
2440         (nb_pbbs_in_loops): Do not use SCOP_BBS.
2441         (find_scop_parameters): Same.
2442         (sese_dom_walker): Rename gather_bbs.
2443         (before_dom_children): Call try_generate_gimple_bb and collect gbb
2444         and pbb.
2445         (build_scops): Call gather_bbs.
2446         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
2447         (add_conditions_to_constraints): Same.
2448         (build_scop_iteration_domain): Same.
2449         (build_scop_drs): Same.
2450         (new_pbb_from_pbb): Same.
2451         * sese.c (new_sese_info): Create bbs.
2452         * sese.h (struct sese_info_t): Add bbs.
2453
2454 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
2455
2456         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
2457         encoding in 64-bit mode.
2458
2459 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
2460
2461         PR target/66697
2462         * config/i386/i386.c (ix86_option_override_internal): Always use
2463         8-byte minimum stack boundary in 64-bit mode.
2464         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
2465         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
2466         Add a REG_CFA_EXPRESSION note if needed.
2467         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
2468         (ix86_handle_force_align_arg_pointer_attribute): New.
2469         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
2470         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
2471         with ix86_handle_force_align_arg_pointer_attribute.
2472         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
2473
2474 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2475             Sebastian Pop  <s.pop@samsung.com>
2476
2477         * graphite-scop-detection.c (parameter_index_in_region): Remove
2478         use of SESE_ADD_PARAMS.
2479         (find_scop_parameters): Same.
2480         * sese.c (new_sese_info): Same.
2481         * sese.h (struct sese_info_t): Remove add_params.
2482         (SESE_ADD_PARAMS): Remove.
2483
2484 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2485             Sebastian Pop  <s.pop@samsung.com>
2486
2487         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
2488         an sese_info_p.
2489         (copy_def): Same.
2490         (copy_internal_parameters): Same.
2491         (translate_isl_ast_to_gimple): Use an sese_l.
2492         (build_iv_mapping): Same.
2493         * graphite-poly.c (new_sese): Rename new_sese_info.
2494         (free_sese): Rename free_sese_info.
2495         * graphite-poly.h (struct scop): Use an sese_info_p.
2496         (scop_set_region): Same.
2497         * graphite-scop-detection.c (struct sese_l): Moved...
2498         (get_entry_bb): Moved...
2499         (get_exit_bb): Moved...
2500         (parameter_index_in_region_1): Use an sese_info_p.
2501         (parameter_index_in_region): Same.
2502         (scan_tree_for_params): Same.
2503         (find_params_in_bb): Same.
2504         (sese_dom_walker): Use an sese_l.
2505         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
2506         (reduction_phi_p): Same.
2507         (parameter_index_in_region_1): Use an sese_info_p.
2508         (propagate_expr_outside_region): Use an sese_l.
2509         * graphite.c: Replace uses of SCOP_REGION.
2510         * sese.c (sese_record_loop): Use an sese_info_p.
2511         (build_sese_loop_nests): Same.
2512         (sese_build_liveouts_use): Same.
2513         (sese_build_liveouts_bb): Same.
2514         (sese_build_liveouts_bb): Same.
2515         (sese_bad_liveouts_use): Same.
2516         (sese_reset_debug_liveouts_bb): Same.
2517         (sese_build_liveouts): Same.
2518         (new_sese): Renamed new_sese_info.
2519         (free_sese): Renamed free_sese_info.
2520         (set_rename): Use an sese_info_p.
2521         (graphite_copy_stmts_from_block): Same.
2522         (copy_bb_and_scalar_dependences): Same.
2523         (outermost_loop_in_sese_1): Use an sese_l.
2524         (outermost_loop_in_sese): Same.
2525         (if_region_set_false_region): Use an sese_info_p.
2526         (move_sese_in_condition): Same.
2527         (scalar_evolution_in_region): Use an sese_l.
2528         * sese.h (struct sese_l): ... here.
2529         (SESE_ENTRY): Remove.
2530         (SESE_ENTRY_BB): Remove.
2531         (SESE_EXIT): Remove.
2532         (SESE_EXIT_BB): Remove.
2533         (sese_contains_loop): Use an sese_info_p.
2534         (sese_nb_params): Same.
2535         (bb_in_sese_p): Use an sese_l.
2536         (stmt_in_sese_p): Same.
2537         (defined_in_sese_p): Same.
2538         (loop_in_sese_p): Same.
2539         (sese_loop_depth): Same.
2540         (struct ifsese_s): Use an sese_info_p.
2541         (gbb_loop_at_index): Use an sese_l.
2542         (nb_common_loops): Same.
2543         (scev_analyzable_p): Same.
2544
2545 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2546
2547         * config/i386/i386.c (ix86_conditional_register_usage): Use
2548         CALL_USED_REGISTERS_MASK.
2549         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
2550
2551 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2552
2553         PR bootstrap/67385
2554         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
2555         * configure: Regenerated.
2556
2557 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2558
2559         PR target/67850
2560         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
2561         (ix86_set_current_function): This.
2562         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
2563
2564 2015-10-07  Richard Biener  <rguenther@suse.de>
2565
2566         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2567         (vinfo_for_stmt): Adjust.
2568         (set_vinfo_for_stmt): Likewise.
2569         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
2570         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
2571         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
2572         of inner loop.
2573         (vect_analyze_loop_1): Remove.
2574         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
2575         inner loop when vectorizing an outer loop by splitting out from ...
2576         (vect_analyze_loop_form): ... here.
2577
2578 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2579
2580         PR c/65345
2581         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
2582         Use create_tmp_var_raw instead of create_tmp_var.
2583
2584 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
2585
2586         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
2587         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
2588         * real.c (CACHED_FRACTION): New helper macro.
2589         (dconst_third_ptr): Use it.
2590         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
2591         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
2592         dconst_sixth.
2593         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
2594
2595 2015-10-06  Jeff Law  <law@redhat.com>
2596
2597         PR tree-optimization/67816
2598         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
2599         from remove_jump_threads_starting_at.  Accept an edge rather than
2600         a basic block.
2601         * tree-ssa-threadupdate.c (removed_edges): New hash table.
2602         (remove_jump_threads_including): Note edges that get removed from
2603         the CFG for later pruning of jump threading paths including them.
2604         (thread_through_all_blocks): Remove paths which include edges that
2605         have been removed.
2606         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
2607         on each outgoing edges when optimizing away a control statement.
2608
2609 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2610
2611         * reorg.c (emit_delay_sequence): Store list of delay slot insns
2612         in a vector instead of rtx_insn_list.
2613         (add_to_delay_list): Likewise.
2614         (delete_from_delay_slot): Likewise.
2615         (optimize_skip): Likewise.
2616         (redirect_with_delay_list_safe_p): Likewise.
2617         (check_annul_list_true_false): Likewise.
2618         (steal_delay_list_from_target): Likewise.
2619         (steal_delay_list_from_fallthrough): Likewise.
2620         (redundant_insn): Likewise.
2621         (fill_simple_delay_slots): Likewise.
2622         (fill_slots_from_thread): Likewise.
2623         (fill_eager_delay_slots): Likewise.
2624         (relax_delay_slots): Likewise.
2625
2626 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
2627
2628         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
2629         For -mgpopt=local, also exclude unintialized common symbols.
2630         * doc/invoke.texi (Nios II Options): Document the change.
2631
2632 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2633
2634         * config/aarch64/iterators.md (vwcore): Add missing cases for
2635          V4HF/V8HF modes.
2636
2637 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2638             Sebastian Pop  <s.pop@samsung.com>
2639
2640         * graphite-poly.c (new_scop): Initialize drs.
2641         * graphite-poly.h (struct dr_info): New.
2642         (struct scop): Add drs.
2643         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
2644         (pdr_add_memory_accesses): Same.
2645         (build_poly_dr): Same.
2646         (build_alias_set): Same.
2647         (build_scop_drs): Same.
2648         (build_pbb_drs): Remove.
2649         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
2650         * tree-data-ref.h (data_reference): Remove alias_set.
2651
2652 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2653             Sebastian Pop  <s.pop@samsung.com>
2654
2655         * graphite-poly.c (free_data_refs_aux): Remove.
2656         (free_gimple_poly_bb): Do not call free_data_refs_aux.
2657         * graphite-poly.h (struct base_alias_pair): Remove.
2658         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
2659         base_alias_pair and dr->aux.
2660         (build_alias_set): Same.
2661         * tree-data-ref.c (create_data_ref): Initialize alias_set.
2662         * tree-data-ref.h (data_reference): Add alias_set.
2663
2664 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2665             Sebastian Pop  <s.pop@samsung.com>
2666
2667         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
2668         Do not set PDR_BASE_OBJECT_SET.
2669         * graphite-poly.h (poly_dr): Same.
2670         (PDR_BASE_OBJECT_SET): Remove.
2671         (new_poly_dr): Update decl.
2672         * graphite-sese-to-poly.c (build_poly_dr): Update call to
2673         new_poly_dr.
2674         (write_alias_graph_to_ascii_dimacs): Remove.
2675         (write_alias_graph_to_ascii_dot): Remove.
2676         (write_alias_graph_to_ascii_ecc): Remove.
2677         (dr_same_base_object_p): Remove.
2678         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
2679         code.
2680         (build_base_obj_set_for_drs): Remove.
2681         (dump_alias_graphs): Remove.
2682         (build_scop_drs): Remove dead code.
2683
2684 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2685             Peter Bergner  <bergner@vnet.ibm.com>
2686
2687         PR target/67808
2688         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
2689         allow registers, but provide insns for the combiner to create for
2690         loads from memory. Separate VSX code from non-VSX code. For
2691         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
2692         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
2693         so that registers come before memory operations. Drop support from
2694         converting DFmode to TFmode, if the DFmode value is in a GPR
2695         register.
2696         (extenddftf2_fprs): Likewise.
2697         (extenddftf2_internal): Likewise.
2698         (extenddftf2_vsx): Likewise.
2699         (extendsftf2): In the expander, only allow registers, but provide
2700         insns for the combiner to create for stores and loads.
2701
2702 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2703
2704         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
2705         from the decl parameter.
2706
2707 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
2708
2709         PR 67861
2710         * gimple-fold.c (gimple_fold_builtin): Add break after
2711         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
2712
2713 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
2714
2715         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
2716         to scop->isl_context.
2717
2718 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2719
2720         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
2721         (output_probe_stack_range): Rotate the loop and simplify.
2722         (thumb1_expand_prologue): Tweak sorry message.
2723         * config/arm/arm.md (probe_stack): Use bare string.
2724
2725 2015-10-06  Nick Clifton  <nickc@redhat.com>
2726
2727         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
2728
2729 2015-10-06  Nick Clifton  <nickc@redhat.com>
2730
2731         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
2732         (ATTR_PERSIST): New constant.
2733         (msp430_data_attr): New function - verifies an attribute that only
2734         applies to variables.
2735         (msp430_attributes): Add noinit and persistent attributes.
2736         (noinit_section): New variable.
2737         (presis_section): New variable.
2738         (TARGET_ASM_INIT_SECTIONS): Define.
2739         (msp430_init_sections): New function - initialises the noinit and
2740         persist section variables.
2741         (msp430_select_section): Add support for noinit and persist
2742         attributes.
2743         (msp430_section_type_flags): Likewise.
2744         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
2745         and persistent attributes.
2746
2747 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2748             Sebastian Pop  <s.pop@samsung.com>
2749
2750         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
2751         (no_violations): Remove.
2752         (subtract_commutative_associative_deps): Remove.
2753         (compute_deps): Do not call subtract_commutative_associative_deps.
2754         (transform_is_safe): Remove.
2755         (graphite_legal_transform): Remove.
2756         * graphite-poly.h (graphite_legal_transform): Remove.
2757
2758 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
2759
2760         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
2761         which are in this region are passed so gcc_assert and remove redundant
2762         computation.
2763         * sese.c (sese_build_liveouts): Pass only those bbs which are not
2764         in region.
2765         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
2766         gcc_assert on that and remove unnecessary computation.
2767         (sese_build_liveouts_use): Same.
2768
2769 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2770
2771         * graphite-dependences.c (scop_get_reads): Renamed scop->context
2772         to scop->param_context.
2773         (scop_get_must_writes): Same.
2774         (scop_get_may_writes): Same.
2775         (scop_get_original_schedule): Same.
2776         (scop_get_transformed_schedule): Same.
2777         (subtract_commutative_associative_deps): Same.
2778         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
2779         (generate_isl_context): Same.
2780         (generate_isl_schedule): Same.
2781         (scop_to_isl_ast): Same.
2782         (graphite_regenerate_ast_isl): Same.
2783         * graphite-optimize-isl.c (scop_get_domains): Same.
2784         (optimize_isl): Renamed scop->context to scop->param_context.
2785         * graphite-poly.c (new_poly_bb): Change the type of argument to
2786         gimple_poly_bb_p.
2787         (new_scop): Renamed scop->context to scop->param_context.
2788         (free_scop): Same.
2789         (print_scop_context): Same.
2790         * graphite-poly.h (new_poly_dr): Change the type of argument from
2791         void* to data_reference_p.
2792         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
2793         (new_poly_bb): Change the type of argument from void* to
2794         gimple_poly_bb_p.
2795         (pbb_set_black_box): Same.
2796         (struct scop): Rename context to param_context, ctx to isl_context.
2797         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
2798         Move declarations closer to assignment.
2799         (find_params_in_bb): Same.
2800         (find_scop_parameters): Same.
2801         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
2802         Global to be used for statement IDs.
2803         (isl_id_for_pbb): Use ssa_name_version_typesize.
2804         (simple_copy_phi_p): Move declarations closer to assignment.
2805         (build_pbb_scattering_polyhedrons): Same.
2806         (build_scop_scattering): Same.
2807         (isl_id_for_ssa_name): Same.
2808         (extract_affine_name): Same.
2809         (extract_affine_int): Same.
2810         (extract_affine): Same.
2811         (set_scop_parameter_dim): Use renamed member.
2812         (build_loop_iteration_domains): Same.
2813         (add_param_constraints): Same.
2814         (build_scop_iteration_domain): Same.
2815         (pdr_add_data_dimensions): Same.
2816         (build_poly_dr): Same.
2817         (build_scop_drs): Move declarations closer to assignment.
2818         (analyze_drs_in_stmts): Same.
2819         (insert_out_of_ssa_copy): Same.
2820         (insert_out_of_ssa_copy_on_edge): Same.
2821         (propagate_expr_outside_region): Same.
2822         (rewrite_phi_out_of_ssa): Same.
2823         (rewrite_degenerate_phi): Same.
2824         (rewrite_reductions_out_of_ssa): Same.
2825         (rewrite_cross_bb_scalar_dependence): Same.
2826         (handle_scalar_deps_crossing_scop_limits): Same.
2827         (rewrite_cross_bb_scalar_deps): Same.
2828         * graphite.c (graphite_transform_loops): Use renamed member.
2829
2830 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
2831
2832         PR c/65345
2833         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
2834         create_tmp_var_raw instead of create_tmp_var.
2835
2836 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2837
2838         PR c/65345
2839         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
2840         Use create_tmp_var_raw instead of create_tmp_var.
2841
2842 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
2843
2844         PR target/67849
2845         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
2846         split for upper-bank registers when target does not support
2847         AVX512VL.
2848         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
2849         split when target does not support AVX512VL.
2850
2851 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
2852
2853         PR c/65345
2854         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
2855         Adjust to use create_tmp_var_raw instead of create_tmp_var.
2856
2857 2015-10-06  Nick Clifton  <nickc@redhat.com>
2858
2859         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
2860         multiplication.
2861
2862 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
2863
2864         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
2865         (case ${target}): Add znver1.
2866         * config/i386/cpuid.h(bit_CLZERO):  Define.
2867         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
2868         -march=native recognize znver1 processors.
2869         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2870         znver1, clzero def_and_undef.
2871         * config/i386/i386.c (struct processor_costs znver1_cost): New.
2872         (m_znver1): New definition.
2873         (m_AMD_MULTIPLE): Includes m_znver1.
2874         (processor_target_table): Add znver1 entry.
2875         (ix86_target_string) : Add clzero entry.
2876         (static const char *const cpu_names): Add znver1 entry.
2877         (ix86_option_override_internal): Add znver1 instruction sets.
2878         (PTA_CLZERO) :  New definition.
2879         (ix86_option_override_internal): Handle new clzerooption.
2880         (ix86_issue_rate): Add znver1.
2881         (ix86_adjust_cost): Add znver1.
2882         (ia32_multipass_dfa_lookahead): Add znver1.
2883         (has_dispatch): Add znver1.
2884         * config/i386/i386.h (TARGET_znver1): New definition.
2885         (TARGET_CLZERO): Define.
2886         (TARGET_CLZERO_P): Define.
2887         (struct ix86_size_cost): Add TARGET_ZNVER1.
2888         (enum processor_type): Add PROCESSOR_znver1.
2889         * config/i386/i386.md (define_attr "cpu"): Add znver1.
2890         (set_attr znver1_decode): New definitions for znver1.
2891         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
2892         (mclzero): New.
2893         * config/i386/mmx.md (set_attr znver1_decode): New definitions
2894         for znver1.
2895         * config/i386/sse.md (set_attr znver1_decode): Likewise.
2896         * config/i386/x86-tune.def:  Add znver1 tunings.
2897         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
2898         * gcc/doc/invoke.texi: Add details about znver1
2899
2900 2015-10-06  Richard Biener  <rguenther@suse.de>
2901
2902         PR tree-optimization/67859
2903         * tree-ssa-pre.c (create_expression_by_pieces): Properly
2904         discard not inserted stmts.
2905
2906 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
2907
2908         * doc/extend.texi (Template Instantiation): Reorder options and
2909         de-emphasize -frepo.
2910         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
2911         example instead of -frepo.
2912
2913 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2914
2915         PR c/65345
2916         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
2917         use create_tmp_var_raw rather than create_tmp_var.
2918
2919 2015-10-06  Richard Biener  <rguenther@suse.de>
2920
2921         * tree-vectorizer.h (vec_info): New base class for...
2922         (_loop_vec_info): ... this and ...
2923         (_bb_vec_info): ... this.
2924         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
2925         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2926         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2927         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
2928         vect_destroy_datarefs): Adjust interface to take a vec_info *
2929         rather than both a loop_vec_info and a bb_vec_info argument.
2930         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
2931         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
2932         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
2933         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
2934         accordingly.
2935         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
2936         (destroy_loop_vec_info, vect_analyze_loop_2,
2937         vect_is_simple_reduction_1, get_initial_def_for_induction,
2938         vect_create_epilog_for_reduction, vectorizable_reduction,
2939         vectorizable_live_operation, vect_transform_loop): Adjust.
2940         * tree-vect-patterns.c (type_conversion_p,
2941         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
2942         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2943         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2944         check_bool_pattern, vect_recog_bool_pattern,
2945         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
2946         * tree-vect-slp.c (vect_get_and_check_slp_defs,
2947         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
2948         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
2949         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
2950         (new_bb_vec_info): Initialize base classs.
2951         * tree-vect-stmts.c (record_stmt_cost, process_use,
2952         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
2953         vectorizable_mask_load_store, vectorizable_call,
2954         vectorizable_simd_clone_call, vectorizable_conversion,
2955         vectorizable_assignment, vectorizable_shift,
2956         vectorizable_operation, vectorizable_store,
2957         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
2958         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
2959         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
2960
2961 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2962
2963         PR c/65345
2964         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
2965         create_tmp_var_raw rather than create_tmp_var.
2966
2967 2015-10-05  Marek Polacek  <polacek@redhat.com>
2968
2969         * tree-ssa-loop-im.c
2970         (move_computations_dom_walker::before_dom_children): Don't set
2971         SSA_NAME_ANTI_RANGE_P.
2972         * tree-ssa-phiopt.c (value_replacement): Likewise.
2973
2974 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2975             Sebastian Pop  <s.pop@samsung.com>
2976
2977         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
2978
2979 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2980             Sebastian Pop  <s.pop@samsung.com>
2981
2982         * graphite-poly.c (new_gimple_poly_bb): ... here.
2983         (free_data_refs_aux): ... here.
2984         (free_gimple_poly_bb): ... here.
2985         (remove_gbbs_in_scop): ... here.
2986         (new_scop): Call new_sese.
2987         (free_scop): Call remove_gbbs_in_scop and free_sese.
2988         * graphite-poly.h (base_alias_pair): ... here.
2989         (new_gimple_poly_bb): Declare.
2990         (free_gimple_poly_bb): Declare.
2991         * graphite-scop-detection.c (parameter_index_in_region_1):
2992         (parameter_index_in_region): ... here.
2993         (scan_tree_for_params): ... here.
2994         (find_params_in_bb): ... here.
2995         (find_scop_parameters): ... here.
2996         (build_scops): Call find_scop_parameters.
2997         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
2998         (free_scops): Move...
2999         (single_pred_cond_non_loop_exit): Move...
3000         (sese_dom_walker::before_dom_children): Move...
3001         (sese_dom_walker::after_dom_children): Move...
3002         (build_poly_scop): Move...
3003         * graphite-sese-to-poly.h (base_alias_pair): Move...
3004         * graphite.c (free_scops): ... here.
3005
3006 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
3007             Sebastian Pop  <s.pop@samsung.com>
3008
3009         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
3010         (trivially_empty_bb_p): Move...
3011         (same_close_phi_node): Move...
3012         (new_gimple_poly_bb): Move...
3013         (compare_bb_depths): Move...
3014         (graphite_sort_dominated_info): Move...
3015         (remove_duplicate_close_phi): Move...
3016         (make_close_phi_nodes_unique): Move...
3017         (canonicalize_loop_closed_ssa): Move...
3018         (canonicalize_loop_closed_ssa_form): Move...
3019         (loop_ivs_can_be_represented): Move...
3020         (single_pred_cond_non_loop_exit): Move...
3021         (graphite_can_represent_init): Move...
3022         (graphite_can_represent_scev): Move...
3023         (stmt_has_simple_data_refs_p): Move...
3024         (stmt_has_side_effects):  Move...
3025         (graphite_can_represent_stmt): Move...
3026         (scop_detection): ... here.
3027         (sese_dom_walker): ... and here.
3028         (build_scops): Call all moved functions.
3029         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
3030         (all_non_dominated_preds_marked_p): Move...
3031         (build_scop_bbs_1): Move...
3032         (build_scop_bbs): Move...
3033         (set_scop_parameter_dim): Move...
3034         (nb_pbbs_in_loops): Move...
3035         (build_poly_scop): Do not call all the moved functions.
3036
3037 2015-10-05  Martin Jambor  <mjambor@suse.cz>
3038             Jan Hubicka  <hubicka@ucw.cz>
3039
3040         * ipa-cp.c (ipcp_alignment_lattice): New type.
3041         (ipcp_param_lattices): Use the above to represent alignment.
3042         (ipcp_alignment_lattice::print): New function.
3043         (print_all_lattices): Use it to print alignment information.
3044         (ipcp_alignment_lattice::top_p): New function.
3045         (ipcp_alignment_lattice::bottom_p): Likewise.
3046         (ipcp_alignment_lattice::set_to_bottom): Likewise.
3047         (ipcp_alignment_lattice::meet_with_1): Likewise.
3048         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
3049         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
3050         (initialize_node_lattices): Likewise.
3051         (propagate_alignment_accross_jump_function): Work with the new class
3052         for alignment lattices.
3053         (propagate_constants_accross_call): Pass only the alignment lattice to
3054         propagate_alignment_accross_jump_function.
3055         (ipcp_store_alignment_results): Work with the new class for alignment
3056         lattices.
3057
3058 2015-10-05  Marek Polacek  <polacek@redhat.com>
3059
3060         PR tree-optimization/67821
3061         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
3062
3063 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
3064
3065         PR other/65021
3066         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
3067         function to...
3068         (mkoffload_cleanup): ... this.  Adjust all users.
3069         (maybe_unlink): Look at save_temps and verbose flags instead of
3070         debug flag.
3071         (main): Parse "-save-temps" flag.
3072         (generate_target_descr_file, generate_target_offloadend_file)
3073         (generate_host_descr_file, prepare_target_image): Pass it on.
3074         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
3075         (mkoffload_cleanup): New function.
3076         (maybe_unlink): Look at save_temps and verbose flags instead of
3077         debug flag.
3078         (main): Instead of calling utils_cleanup, register atexit handler
3079         for mkoffload_cleanup.
3080         (main): Parse "-save-temps" flag.
3081         (compile_native, main): Pass it on.
3082         * lto-wrapper.c (compile_offload_image): Likewise.
3083
3084 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3085
3086         * gimple.h (gimple_op_ptr): Require a non const gimple *.
3087         (gimple_assign_lhs_ptr): Likewise.
3088         (gimple_assign_rhs1_ptr): Likewise.
3089         (gimple_assign_rhs2_ptr): Likewise.
3090         (gimple_assign_rhs3_ptr): Likewise.
3091         (gimple_call_lhs_ptr): Likewise.
3092         (gimple_call_fn_ptr): Likewise.
3093         (gimple_call_chain_ptr): Likewise.
3094                 (gimple_call_arg_ptr): Likewise.
3095                 (gimple_cond_lhs_ptr): Likewise.
3096         (gimple_cond_rhs_ptr): Likewise.
3097         (gimple_switch_index_ptr): Likewise.
3098         (gimple_return_retval_ptr): Likewise.
3099
3100 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3101
3102         * gimple.h (gimple_asm_input_op_ptr): Remove.
3103         (gimple_asm_output_op_ptr): Likewise.
3104
3105 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3106
3107         * gimple.h (gimple_location_ptr): Remove.
3108         * tree-vrp.c (check_all_array_refs): Adjust.
3109
3110 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3111
3112         * tree-ssa-operands.c (build_uses): store tree * instead of
3113         tree.
3114         (finalize_ssa_uses): Adjust.
3115         (append_use): Likewise.
3116         (verify_ssa_operands): Likewise.
3117
3118 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3119
3120         * real.h (build_real_truncate): Declare.
3121         * tree.c (build_real_truncate): New function.
3122         (strip_float_extensions): Use it.
3123         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
3124         (fold_builtin_hypot, fold_builtin_pow): Likewise.
3125         * match.pd: Likewise.
3126
3127 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
3128            Jiong Wang  <jiong.wang@arm.com>
3129
3130         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
3131
3132 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3133
3134         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
3135         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
3136         (aarch64_print_operand, aarch64_float_const_representable_p)
3137         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
3138         instead of REAL_VALUE_FROM_CONST_DOUBLE.
3139         * config/arc/arc.c (arc_print_operand): Likewise.
3140         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
3141         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
3142         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
3143         Likewise.
3144         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
3145         (consttable_16): Likewise.
3146         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
3147         * config/avr/avr.c (avr_print_operand): Likewise.
3148         * config/bfin/bfin.md: Likewise (in a define_split).
3149         * config/c6x/c6x.md: Likewise (in a define_split).
3150         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
3151         (cr16_print_operand): Likewise.
3152         * config/cris/cris.c (cris_print_operand): Likewise.
3153         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
3154         * config/fr30/fr30.c (fr30_print_operand): Likewise.
3155         (fr30_const_double_is_zero): Likewise.
3156         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
3157         * config/frv/frv.md: Likewise (in a define_split).
3158         * config/frv/predicates.md (int_2word_operand): Likewise.
3159         * config/h8300/h8300.c (h8300_print_operand): Likewise.
3160         * config/i386/i386.c (standard_80387_constant_p): Likewise.
3161         (ix86_print_operand, ix86_split_to_parts): Likewise.
3162         * config/i386/i386.md: Likewise (in a define_split).
3163         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
3164         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
3165         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
3166         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
3167         (print_operand): Likewise.
3168         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
3169         * config/mep/mep.md: Likewise (in define_split).
3170         * config/microblaze/microblaze.c (microblaze_const_double_ok)
3171         (print_operand): Likewise.
3172         * config/mips/mips.md (consttable_float): Likewise.
3173         * config/mmix/mmix.c (mmix_intval): Likewise.
3174         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
3175         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
3176         * config/pa/pa.c (pa_singlemove_string): Likewise.
3177         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
3178         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
3179         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
3180         (output_toc): Likewise.
3181         * config/rs6000/rs6000.md: Likewise (in define_splits).
3182         * config/rx/rx.c (rx_print_operand): Likewise.
3183         * config/s390/s390.c (s390_output_pool_entry): Likewise.
3184         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3185         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
3186         (and also in define_splits).
3187         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
3188         (fp_high_losum_p): Likewise.
3189         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
3190         (*movsf_high): Likewise.
3191         * config/spu/spu.c (const_double_to_hwint): Likewise.
3192         * config/v850/v850.c (const_double_split): Likewise.
3193         * config/vax/vax.c (vax_float_literal): Likewise.
3194         * config/visium/visium.c (visium_expand_copysign): Likewise.
3195         * config/visium/visium.md: Likewise (in define_split).
3196         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3197         * config/xtensa/xtensa.c (print_operand): Likewise.
3198         (xtensa_output_literal): Likewise.
3199         * cprop.c (implicit_set_cond_p): Likewise.
3200         * dwarf2out.c (insert_float): Likewise.
3201         * expmed.c (expand_mult, make_tree): Likewise.
3202         * expr.c (compress_float_constant): Likewise.
3203         * rtlanal.c (split_double): Likewise.
3204         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3205         (simplify_const_unary_operation, simplify_binary_operation_1)
3206         (simplify_const_binary_operation): Likewise.
3207         (simplify_const_relational_operation): Likewise.
3208         * varasm.c (output_constant_pool_2): Likewise.
3209
3210 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3211
3212         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
3213         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3214         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
3215         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
3216         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3217         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
3218         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
3219         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
3220         (ix86_emit_swsqrtsf): Likewise.
3221         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
3222         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
3223         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3224         * config/pa/pa.c (pa_expand_builtin): Likewise.
3225         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
3226         (rs6000_scale_v2df): Likewise.
3227         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
3228         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
3229         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
3230         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
3231         (vec_ctul): Likewise.
3232         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
3233         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
3234         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
3235         * cse.c (fold_rtx): Likewise.
3236         * emit-rtl.c (immed_double_const): Likewise (in comments).
3237         (init_emit_once): Likewise.
3238         * expr.c (compress_float_constant, expand_expr_real_1)
3239         (const_vector_from_tree): Likewise.
3240         * optabs.c (expand_float, expand_fix): Likewise.
3241         * reg-stack.c (reg_to_stack): Likewise.
3242         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3243         (simplify_const_unary_operation, simplify_binary_operation_1)
3244         (simplify_const_binary_operation, simplify_relational_operation)
3245         (simplify_immed_subreg): Likewise.
3246
3247 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3248
3249         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
3250         * doc/tm.texi: Regenerate.
3251         * real.h (REAL_ARITHMETIC): Delete.
3252         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
3253         (ix86_expand_round_sse4): Use real_arithmetic instead of
3254         REAL_ARITHMETIC.
3255         * config/i386/sse.md (round<mode>2): Likewise.
3256         * rtl.h (rtx_to_tree_code): Likewise (in comment).
3257         * explow.c (rtx_to_tree_code): Likewise (in comment).
3258         * match.pd: Likewise.
3259         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3260         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3261         (expand_pow_as_sqrts): Likewise.
3262         * tree-pretty-print.c (dump_generic_node): Remove code that
3263         was conditional on REAL_ARITHMETIC being undefined.
3264
3265 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3266
3267         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
3268         * doc/tm.texi: Regenerate.
3269         * real.h (real_less): Declare.
3270         (REAL_VALUES_LESS): Delete.
3271         * real.c (real_less): New function.
3272         (real_compare): Use it.
3273         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
3274         of REAL_VALUES_LESS.
3275         * config/microblaze/microblaze.c (microblaze_const_double_ok):
3276         Likewise.
3277         * fold-const.c (fold_convert_const_int_from_real): Likewise.
3278         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3279         (simplify_const_relational_operation): Likewise.
3280         * tree-call-cdce.c (check_pow): Likewise.
3281         (gen_conditions_for_pow_cst_base): Likewise.
3282
3283 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3284
3285         * real.h (REAL_VALUES_IDENTICAL): Delete.
3286         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
3287         instead of REAL_VALUES_IDENTICAL.
3288         * fold-const.c (operand_equal_p): Likewise.
3289         * ipa-icf.c (sem_variable::equals): Likewise.
3290         * tree-complex.c (some_nonzerop): Likewise.
3291         (expand_complex_multiplication): Likewise.
3292         * tree.c (simple_cst_equal): Likewise.
3293         * varasm.c (compare_constant): Likewise.
3294
3295 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3296
3297         * real.h (real_equal): Declare.
3298         (REAL_VALUES_EQUAL): Delete.
3299         * real.c (real_equal): New function.
3300         (real_compare): Use it.
3301         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
3302         * doc/tm.texi: Regenerate.
3303         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
3304         real_equal instead of REAL_VALUES_EQUAL.
3305         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
3306         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
3307         (fp_const_from_val): Likewise.
3308         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
3309         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
3310         (floating_exact_log2): Likewise.
3311         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3312         * config/vax/vax.c (vax_float_literal): Likewise.
3313         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3314         * cprop.c (implicit_set_cond_p): Likewise.
3315         * expmed.c (expand_mult): Likewise.
3316         * fold-const.c (const_binop): Likewise.
3317         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3318         (simplify_const_binary_operation): Likewise.
3319         (simplify_const_relational_operation): Likewise.
3320         * tree-call-cdce.c (check_pow): Likewise.
3321         (gen_conditions_for_pow_cst_base): Likewise.
3322         * tree-inline.c (estimate_num_insns): Likewise.
3323         * tree-ssa-dom.c (record_equality): Likewise.
3324         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3325         (gimple_expand_builtin_pow): Likewise.
3326         (pass_optimize_widening_mul::execute): Likewise.
3327         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
3328         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
3329         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
3330
3331 2015-10-05  Richard Biener  <rguenther@suse.de>
3332
3333         PR ipa/67783
3334         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
3335         consider loop header PHI defs as IVs.
3336
3337 2015-10-05  Richard Biener  <rguenther@suse.de>
3338
3339         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
3340         call handling ...
3341         (create_expression_by_pieces): ... here and build GIMPLE
3342         calls directly.  Use gimple_build API and avoid force_gimple_operand.
3343         (insert_into_preds_of_block): Simplify.
3344         (do_regular_insertion): Add comment.
3345
3346 2015-10-04  Jason Merrill  <jason@redhat.com>
3347
3348         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
3349
3350 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
3351
3352         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
3353         check for general register.
3354         (ix86_emit_save_regs): Ditto.
3355         (ix86_emit_save_regs_using_mov): Ditto.
3356         (ix86_emit_restore_regs_using_pop): Ditto.
3357         (ix86_emit_restore_regs_using_mov): Ditto.
3358
3359 2015-10-03  Marek Polacek  <polacek@redhat.com>
3360
3361         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
3362         (insn-dfatab.o): Likewise.
3363
3364 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
3365
3366         * config.gcc (xtensa*-*-uclinux*): New configuration.
3367         * config/xtensa/uclinux.h: New file.
3368         * config/xtensa/uclinux.opt: New file.
3369
3370 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
3371
3372         * doc/cpp.texi (Standard Predefined Macros): Document value of
3373         __cplusplus for C++14.
3374
3375 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
3376
3377         * gcc.c (process_command): Use spec_machine rather than
3378         spec_host_machine to build tooldir_prefix2.
3379
3380 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3381             Bernd Schmidt  <bernds@codesourcery.com>
3382
3383         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
3384         (Token, Stmt): Remove structs.
3385         (decls, vars, fns): Remove variables.
3386         (alloc_comment, append_stmt, is_keyword): Remove macros.
3387         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
3388         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
3389         (parse_init, parse_file): Remove functions.
3390         (read_file): Accept a pointer to a length and store into it.
3391         (process): Don't try to parse the input file, just write it out as
3392         a string, but looking for maps.  Also write out the length.
3393         (main): Don't use "-S" to compile PTX code.
3394
3395 2015-10-02  Jeff Law  <law@redhat.com>
3396
3397         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
3398         fixups.
3399
3400 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3401
3402         PR target/67822
3403         * config/nvptx/mkoffload.c (main): Scan the argument vector for
3404         -fopenmp, and skip generating an offloading image if specified.
3405
3406 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
3407
3408         * system.h (ROUND_UP): New macro definition.
3409         (ROUND_DOWN): Ditto.
3410         * ggc-page.c (ROUND_UP): Remove local macro definition.
3411         (PAGE_ALIGN): Implement using ROUND_UP macro.
3412
3413         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
3414         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
3415         to align values.
3416         (ix86_compute_frame_layout): Ditto.
3417         (ix86_expand_prologue): Ditto.
3418         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
3419         to round down values.
3420         (expand_set_or_movmem_via_rep): Ditto.
3421
3422 2015-10-02  Marek Polacek  <polacek@redhat.com>
3423
3424         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
3425
3426 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
3427
3428         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
3429         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
3430         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
3431         (free_gimple_bb): Renamed free_gimple_poly_bb.
3432         (try_generate_gimple_bb): Hoist loop invariant code.
3433         (analyze_drs_in_stmts): Same.
3434         (build_scop_drs): Call renamed functions.
3435         (new_pbb_from_pbb): Same.
3436         (scop_ivs_can_be_represented): Delete as functionality now moved to
3437         graphite-scop-detection.c
3438         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
3439
3440 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
3441
3442         * graphite-scop-detection.c (stmt_has_side_effects): New function
3443           outlined from stmt_simple_for_scop_p.
3444         (graphite_can_represent_stmt): Same.
3445         (stmt_simple_for_scop_p): Moved code out of this function for better
3446         readability.
3447
3448 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3449
3450         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
3451         F_AVX512IFMA.
3452         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
3453
3454 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3455
3456         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
3457
3458 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
3459
3460         PR rtl-optimization/67756
3461         * lra-constraints.c (match_reload): Add a new parameter.  Use it
3462         for creating a pseudo with the same value.
3463         (curr_insn_transform): Pass a new argument to match_reload.
3464
3465 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3466
3467         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
3468         (expand_vec_perm_even_odd_1): Handle V64QImode.
3469         (ix86_expand_vec_perm_const_1): Try expansion with
3470         expand_vec_perm_even_odd_trunc as well.
3471         * config/i386/sse.md (VI124_AVX512F): Rename to ...
3472         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
3473         to V54QI.
3474         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
3475         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
3476         to V32HI and V16SI.
3477         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
3478         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
3479         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
3480         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
3481         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
3482         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
3483
3484 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3485
3486         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
3487         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
3488
3489 2015-10-02  Jason Merrill  <jason@redhat.com>
3490
3491         PR c/59218
3492         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
3493         (diagnose_tm_1_op): Also diagnose volatile accesses in
3494         transaction_safe function.
3495
3496 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
3497
3498         * system.h (malloc.h): Don't include obsolete header.
3499
3500 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3501
3502         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
3503         (TLS_SECTION_ASM_FLAG): Delete.
3504
3505 2015-10-02  Marek Polacek  <polacek@redhat.com>
3506
3507         PR c/64249
3508         * doc/invoke.texi: Document -Wduplicated-cond.
3509         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
3510         (insn-dfatab.o): Likewise.
3511         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
3512         warning.
3513
3514 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
3515
3516         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
3517         sequences.
3518
3519 2015-10-02  Renlin Li  <renlin.li@arm.com>
3520
3521         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
3522
3523 2015-10-02  Renlin Li  <renlin.li@arm.com>
3524
3525         PR target/66776
3526         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
3527
3528 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3529
3530         PR rtl-optimization/67786
3531         PR rtl-optimization/67787
3532         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
3533         it modifies a reg used in the condition calculation.
3534
3535 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
3536
3537         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
3538         alternatives for reads from memory and moves from general-purpose
3539         registers.
3540         (*aarch64_combinez_be<mode>): Likewise.
3541
3542 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
3543
3544         PR target/51726
3545         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
3546         selectany within this function without need to keep attribute.
3547         (i386_pe_encode_section_info): Remove selectany-code.
3548
3549 2015-10-02  Richard Biener  <rguenther@suse.de>
3550
3551         * tree-ssa-sccvn.c (has_VN_INFO): New function.
3552         (free_scc_vn): Use it.
3553         (visit_use): Remove dead code and refactor to use gassign
3554         and use less indentation.
3555
3556 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3557
3558         PR target/67788
3559         PR target/67789
3560         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
3561         (rs6000_cannot_copy_insn_p): New function.
3562         * config/rs6000/rs6000.md (cannot_copy): New attribute.
3563         (load_toc_v4_PIC_1_normal): Set cannot_copy.
3564         (load_toc_v4_PIC_1_476): Ditto.
3565
3566 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3567
3568         * graphite-scop-detection.c (struct sese_l): New conversion constructor
3569         so that this type can be pushed into a vec.
3570         (class scop_builder): use sese_l to collect scops.
3571         (get_scops): New getter function.
3572         (remove_intersecting_scops): Use sese_l instead of scops_p.
3573         (intersects): Same.
3574         (add_scop): Same.
3575         (subsumes): Same.
3576         (remove_subscops): Same.
3577         (build_scops): Add scops to vec<scops_p> once all the scops have been
3578         detected.
3579
3580 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3581
3582         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3583         Renamed type from gimple_bb_p to gimple_poly_bb_p.
3584         (translate_isl_ast_node_user): Same.
3585         * graphite-poly.c (new_poly_bb): Same.
3586         * graphite-poly.h (gbb_from_bb): Same.
3587         * sese.h: Same.
3588         * graphite-sese-to-poly.c (new_gimple_bb):
3589         gimple_bb_p -> gimple_poly_bb_p
3590         (build_scop_scattering): Same.
3591         (find_params_in_bb): Same.
3592         (add_conditions_to_domain): Same.
3593         (sese_dom_walker::before_dom_children): Same.
3594         (analyze_drs_in_stmts): Same.
3595         (new_pbb_from_pbb): Same.
3596         (free_data_refs_aux): New pointer to type base_alias_pair.
3597         * graphite-sese-to-poly.h: Same.
3598         * sese.c (if_region_set_false_region): Fixed Indentation.
3599         (move_sese_in_condition): Same.
3600
3601 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3602             Aditya Kumar  <aditya.k7@samsung.com>
3603
3604         PR tree-optimization/66980
3605         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
3606         when data reference analysis has failed.
3607
3608 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3609             Aditya Kumar  <aditya.k7@samsung.com>
3610
3611         PR tree-optimization/67754
3612         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
3613         scev analysis on the same loop nest as analyze_drs_in_stmts.
3614         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
3615         renamed...
3616         (try_generate_gimple_bb): Call outermost_loop_in_sese.
3617         (analyze_drs_in_stmts): Same.
3618         * sese.c (outermost_loop_in_sese): ...here.
3619
3620 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3621             Aditya Kumar  <aditya.k7@samsung.com>
3622
3623         PR tree-optimization/67754
3624         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
3625         recursion on the inner loops.
3626
3627 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3628
3629         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
3630         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
3631         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
3632         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
3633         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
3634
3635 2015-10-01  Marek Polacek  <polacek@redhat.com>
3636
3637         PR c/65345
3638         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
3639         create_tmp_var_raw rather than create_tmp_var.
3640
3641 2015-10-01  Marek Polacek  <polacek@redhat.com>
3642
3643         PR tree-optimization/67769
3644         * tree-ssa-phiopt.c (conditional_replacement): Call
3645         reset_flow_sensitive_info_in_bb.
3646         (minmax_replacement): Likewise.
3647         (abs_replacement): Likewise.
3648
3649 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
3650
3651         * builtins.c: Don't include gomp-constants.h.
3652         (fold_builtin_1): Don't fold acc_on_device here.
3653         * gimple-fold.c: Include gomp-constants.h.
3654         (gimple_fold_builtin_acc_on_device): New.
3655         (gimple_fold_builtin): Call it.
3656
3657 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
3658
3659         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
3660         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
3661
3662 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
3663
3664         * config/arm/aarch-common-protos.h
3665         (aarch_accumulator_forwarding): New.
3666         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3667         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
3668         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3669         * config/arm/cortex-a53.md: Rewrite.
3670
3671 2015-10-01  Richard Biener  <rguenther@suse.de>
3672
3673         * gimple-match.h (mprts_hook): Declare.
3674         * gimple-match.head.c (mprts_hook): Define.
3675         (maybe_push_res_to_seq): Use new hook.
3676         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3677         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
3678         (vn_ssa_aux::has_constants): Remove.
3679         * tree-ssa-sccvn.c: Include gimple-match.h.
3680         (VN_INFO_GET): Assert we don't re-use SSA names.
3681         (vn_get_expr_for): Remove.
3682         (expr_has_constants): Likewise.
3683         (stmt_has_constants): Likewise.
3684         (simplify_binary_expression): Likewise.
3685         (simplify_unary_expression): Likewise.
3686         (vn_lookup_simplify_result): New hook.
3687         (visit_copy): Adjust.
3688         (visit_reference_op_call): Likewise.
3689         (visit_phi): Likewise.
3690         (visit_use): Likewise.
3691         (process_scc): Likewise.
3692         (init_scc_vn): Likewise.
3693         (visit_reference_op_load): Likewise.  Use match-and-simplify and
3694         a gimple seq for inserted expressions.
3695         (try_to_simplify): Remove GENERIC stmt combining code.
3696         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
3697         * tree-ssa-pre.c (eliminate_insert): Adjust.
3698         (eliminate_dom_walker::before_dom_children): Likewise.
3699
3700 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3701
3702         * doc/invoke.texi (Optimization Options): Add
3703         -freorder-blocks-algorithm=.
3704         (Optimize Options) <-O>: Add -freorder-blocks.
3705         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
3706         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
3707         <-freorder-blocks>: Also enabled at levels -O and -Os.
3708         <-freorder-blocks-algorithm=>: Document new option.
3709
3710 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3711
3712         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
3713         with flag_reorder_blocks_algorithm.
3714         * common.opt (freorder-blocks-algorithm=): New flag.
3715         (reorder_blocks_algorithm): New enum.
3716         * flag-types.h (reorder_blocks_algorithm): New enum.
3717         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
3718         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
3719
3720 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3721
3722         * bb-reorder.c: Add intro comment.
3723         (reorder_basic_blocks_software_trace_cache): Print a header to
3724         the dump file.
3725         (edge_order): New function.
3726         (reorder_basic_blocks_simple): New function.
3727         (reorder_basic_blocks): Choose between the STC and the simple
3728         algorithms (always choose the former).
3729
3730 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3731
3732         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
3733         function, factored out from ...
3734         (reorder_basic_blocks): ... here.
3735
3736 2015-10-01  Tom de Vries  <tom@codesourcery.com>
3737
3738         * tree-cfg.c (dump_function_to_file): Dump function attributes using
3739         __attribute__(()) string.  Move dumping of function attributes to before
3740         function name.
3741
3742 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
3743
3744         PR target/66870
3745         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3746         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
3747         based on gold linker version.
3748         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
3749         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
3750         * configure, config.in: Regenerate.
3751
3752 2015-10-01  Alan Modra  <amodra@gmail.com>
3753
3754         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
3755         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
3756         (rs6000_output_mi_thunk): Likewise.
3757
3758 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3759
3760         * config/nvptx/mkoffload.c (process): Change offload data format.
3761
3762 2015-09-30  Jeff Law  <law@redhat.com>
3763
3764         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
3765         with constant conditions.
3766         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
3767         (remove_ctrl_stmt_and_useless_edges): No longer static.
3768         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
3769         (remove_ctrl_stmt_and_useless_edges): Likewise.
3770
3771 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3772             Cesar Philippidis  <cesar@codesourcery.com>
3773
3774         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
3775         (TARGET_GOACC_VALIDATE_DIMS): Override.
3776         * target.def (TARGET_GOACC): New target hook prefix.
3777         (validate_dims): New hook.
3778         * targhooks.h (default_goacc_validate_dims): New.
3779         * omp-low.c (oacc_validate_dims): New.
3780         (execute_oacc_device_lower): New.
3781         (default_goacc_validate_dims): New.
3782         (pass_data_oacc_device_lower): New.
3783         (pass_oacc_device_lower): New pass.
3784         (make_pass_oacc_device_lower): New.
3785         * tree-pass.h (make_pass_oacc_device_lower): Declare.
3786         * passes.def (pass_oacc_device_lower): Add it.
3787         * doc/tm.texi: Rebuilt.
3788         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
3789         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
3790
3791 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3792
3793         PR rtl-optimization/67037
3794         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
3795
3796 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
3797
3798         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
3799         * passes.c: Include tree-ssanames.h.
3800         (execute_function_todo): Flush the pending free SSA_NAMEs after
3801         eliminating unreachable basic blocks.
3802         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
3803         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
3804         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
3805         (flush_ssanames_freelist): New function.
3806         (release_ssaname_fn): Put released names on the queue.
3807         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
3808         * tree-ssanames.h (flush_ssanames_freelist): Declare.
3809
3810 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3811
3812         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
3813         (generate_target_descr_file, generate_target_offloadend_file)
3814         (generate_host_descr_file, prepare_target_image): Pass it on.
3815         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
3816         (compile_native, main): Pass it on.
3817         * lto-wrapper.c (compile_offload_image): Likewise.
3818
3819 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3820             Ilya Verbin  <ilya.verbin@intel.com>
3821             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3822
3823         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
3824         (prepare_target_image, main): Refactor argv building to use
3825         obstacks.
3826
3827 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3828
3829         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
3830         * config/spu/spu.c (spu_expand_atomic_op): New function.
3831         * config/spu/spu.md (AINT): New mode iterator.
3832         (ATOMIC): New code iterator.
3833         (atomic_name, atomic_pred): New code predicates.
3834         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
3835         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
3836         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
3837         "atomic_<atomic_name>_fetch<mode>"): Likewise.
3838
3839 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
3840
3841         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
3842         debug insns.
3843         (scalar_chain::convert_reg): Likewise.
3844
3845 2015-09-30  Richard Biener  <rguenther@suse.de>
3846
3847         * builtins.c: Add comment that no new simplifications should
3848         be added here.
3849
3850 2015-09-30  Marek Polacek  <polacek@redhat.com>
3851
3852         PR tree-optimization/67690
3853         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
3854         reset_flow_sensitive_info_in_bb.
3855         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
3856         * tree-ssanames.c: Include "gimple-iterator.h".
3857         (reset_flow_sensitive_info_in_bb): New function.
3858         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
3859
3860 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3861
3862         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
3863         variable, replacing it with...
3864         (offload_abi): ... this new variable.  Adjust all users.
3865         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
3866
3867 2015-09-30  Matthias Klose  <doko@ubuntu.com>
3868
3869         * configure.ac: Remove extraneous ;;.
3870         * configure: Regenerate.
3871
3872 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
3873
3874         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
3875         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
3876         predicate, disallow register for operand 2.
3877
3878 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
3879
3880         * graphite-dependences.c (scop_get_dependences): Moved in down
3881         in order to be visible to its caller.
3882         * graphite-poly.h: Removed compute_deps, and extend_schedule.
3883
3884 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3885             Aditya Kumar  <aditya.k7@samsung.com>
3886
3887         PR tree-optimization/67754
3888         * graphite-optimize-isl.c (optimize_isl): Call
3889         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
3890
3891 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3892
3893         * builtins.c (expand_builtin_acc_on_device): Delete.
3894         (expand_builtin): Don't call it.
3895         (fold_builtin_1): Fold acc_on_device.
3896
3897 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
3898
3899         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
3900         (ix86_nsaved_sseregs): Likewise.
3901
3902 2015-09-29  Jeff Law  <law@redhat.com>
3903
3904         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
3905         computation of unused value.
3906
3907         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
3908         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
3909         inline macro expansion.
3910
3911         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
3912
3913         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
3914         (gen_shl_sext): Likewise.
3915         * config/sh/sh.md (divsi3): Likewise.
3916         (imm->ext_dest_operand splitter): Likewise.
3917
3918 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3919             Aditya Kumar  <aditya.k7@samsung.com>
3920
3921         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
3922         (nb_data_writes_in_bb): Remove.
3923         (split_pbb): Remove.
3924         (split_reduction_stmt): Remove.
3925         (is_reduction_operation_p): Remove.
3926         (phi_contains_arg): Remove.
3927         (follow_ssa_with_commutative_ops): Remove.
3928         (detect_commutative_reduction_arg): Remove.
3929         (detect_commutative_reduction_assign): Remove.
3930         (follow_inital_value_to_phi): Remove.
3931         (edge_initial_value_for_loop_phi): Remove.
3932         (initial_value_for_loop_phi): Remove.
3933         (used_outside_reduction): Remove.
3934         (detect_commutative_reduction): Remove.
3935         (translate_scalar_reduction_to_array_for_stmt): Remove.
3936         (remove_phi): Remove.
3937         (dr_indices_valid_in_loop): Remove.
3938         (close_phi_written_to_memory): Remove.
3939         (translate_scalar_reduction_to_array): Remove.
3940         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
3941         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
3942         (rewrite_commutative_reductions_out_of_ssa): Remove.
3943         (build_poly_scop): Remove call to
3944         rewrite_commutative_reductions_out_of_ssa.
3945
3946 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
3947
3948         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
3949         Add new insn types for vector load and store pairs.
3950         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
3951         types "neon_ldp{,_q}".
3952         * config/arm/cortex-a57.md (neon_load_c): Add insn types
3953         "neon_ldp{,_q}".
3954         (neon_store_complex): Add insn types "neon_stp{,_q}".
3955         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
3956         "neon_{ldp,stp}_q".
3957
3958 2015-09-29  Jeff Law  <law@redhat.com>
3959
3960         * config/rx/constraints.md (Int08): Fix undefined left shift
3961         behaviour.
3962         (Sint08, Sint16, Sint24): Likewise.
3963         * config/rx/rx.c (rx_get_stack_layout): Likewise.
3964
3965         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
3966         behaviour.
3967
3968         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
3969         left shift behaviour.
3970         * config/msp430/constraints.md ('L' constraint): Similarly.
3971         ('Ys' constraint): Similarly.
3972
3973 2015-09-29  Richard Biener  <rguenther@suse.de>
3974
3975         PR tree-optimization/67170
3976         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
3977         the translate function pointer parameter to get the
3978         bool whether to disambiguate only by reference.
3979         (walk_non_aliased_vuses): Likewise.
3980         * tree-ssa-alias.c (maybe_skip_until): Adjust.
3981         (get_continuation_for_phi_1): Likewise.
3982         (get_continuation_for_phi): Likewise.
3983         (walk_non_aliased_vuses): Likewise.
3984         * tree-ssa-sccvn.c (const_parms): New bitmap.
3985         (vn_reference_lookup_3): Adjust for interface change.
3986         Disambiguate parameters pointing to readonly memory.
3987         (free_scc_vn): Free const_parms.
3988         (run_scc_vn): Initialize const_parms from a fn spec attribute.
3989
3990 2015-09-29  Richard Biener  <rguenther@suse.de>
3991
3992         PR tree-optimization/67741
3993         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
3994         builtin calls with correct signature.
3995
3996 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
3997
3998         PR target/65105
3999         * config/i386/i386.c: Include dbgcnt.h.
4000         (has_non_address_hard_reg): New.
4001         (convertible_comparison_p): New.
4002         (scalar_to_vector_candidate_p): New.
4003         (remove_non_convertible_regs): New.
4004         (scalar_chain): New.
4005         (scalar_chain::scalar_chain): New.
4006         (scalar_chain::~scalar_chain): New.
4007         (scalar_chain::add_to_queue): New.
4008         (scalar_chain::mark_dual_mode_def): New.
4009         (scalar_chain::analyze_register_chain): New.
4010         (scalar_chain::add_insn): New.
4011         (scalar_chain::build): New.
4012         (scalar_chain::compute_convert_gain): New.
4013         (scalar_chain::replace_with_subreg): New.
4014         (scalar_chain::replace_with_subreg_in_insn): New.
4015         (scalar_chain::emit_conversion_insns): New.
4016         (scalar_chain::make_vector_copies): New.
4017         (scalar_chain::convert_reg): New.
4018         (scalar_chain::convert_op): New.
4019         (scalar_chain::convert_insn): New.
4020         (scalar_chain::convert): New.
4021         (convert_scalars_to_vector): New.
4022         (pass_data_stv): New.
4023         (pass_stv): New.
4024         (make_pass_stv): New.
4025         (ix86_option_override): Created and register stv pass.
4026         (flag_opts): Add -mstv.
4027         (ix86_option_override_internal): Likewise.
4028         * config/i386/i386.md (SWIM1248x): New.
4029         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
4030         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
4031         (*anddi3_doubleword): New.
4032         (*zext<mode>_doubleword): New.
4033         (*zextsi_doubleword): New.
4034         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
4035         (*<code>di3_doubleword): New.
4036         * config/i386/i386.opt (mstv): New.
4037         * dbgcnt.def (stv_conversion): New.
4038
4039 2015-09-29  Tom de Vries  <tom@codesourcery.com>
4040
4041         * tree-cfg.c (dump_function_to_file): Dump function attributes.
4042
4043 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
4044
4045         PR target/67716
4046         * config/sh/sh.c (sh_override_options_after_change): New.
4047         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
4048         (sh_option_override): Move align_loops, align_jumps and
4049         align_functions handling into sh_override_options_after_change.
4050
4051 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
4052
4053         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
4054         (nvptx_record_offload_symbol): Record function execution geometry.
4055         * config/nvptx/mkoffload.c (process): Include launch geometry in
4056         function data.
4057         * omp-low.c (oacc_launch_pack): New.
4058         (replace_oacc_fn_attrib): New.
4059         (set_oacc_fn_attrib): New.
4060         (get_oacc_fn_attrib): New.
4061         (expand_omp_target): Create keyed varargs for GOACC_parallel call
4062         generation.
4063         * omp-low.h (get_oacc_fn_attrib): Declare.
4064         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
4065         (DEF_FUNCTION_TYPE_VAR_11): Delete.
4066         * tree.h (OMP_CLAUSE_EXPR): New.
4067         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
4068
4069 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4070             Sebastian Pop  <s.pop@samsung.com>
4071
4072         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
4073
4074 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4075             Sebastian Pop  <s.pop@samsung.com>
4076
4077         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
4078         * graphite-scop-detection.c (struct sese_l): New type.
4079         (get_entry_bb): API for getting entry bb of SESE.
4080         (get_exit_bb): API for getting exit bb of SESE.
4081         (class debug_printer): New type.  Simple printer in debug mode.
4082         (trivially_empty_bb_p): New.  Return true when BB is empty or
4083         contains only debug instructions.
4084         (graphite_can_represent_expr): Call scalar_evoution_in_region
4085         instead of analyze_scalar_evolution.  Pass in scop instead of only
4086         the scop entry.
4087         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
4088         scop entry.
4089         (stmt_simple_for_scop_p): Same.
4090         (harmful_stmt_in_bb): Same.
4091         (graphite_can_represent_loop): Deleted.
4092         (struct scopdet_info): Deleted.
4093         (scopdet_basic_block_info): Deleted.
4094         (build_scops_1): Deleted.
4095         (bb_in_sd_region): Deleted.
4096         (find_single_entry_edge): Deleted.
4097         (find_single_exit_edge): Deleted.
4098         (create_single_entry_edge): Deleted.
4099         (sd_region_without_exit): Deleted.
4100         (create_single_exit_edge): Deleted.
4101         (unmark_exit_edges): Deleted.
4102         (mark_exit_edges): Deleted.
4103         (create_sese_edges): Deleted.
4104         (build_graphite_scops): Deleted.
4105         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
4106         (build_scops): Use the new scop_builder to build scops.
4107         (dot_all_scops_1): Use the new pretty printer.  Print loop father
4108         as well.
4109         (loop_body_is_valid_scop): New.  Return true if loop body is a
4110         valid scop.
4111         (class scop_builder): New.  Builds SCoPs for polyhedral
4112         optimizations.
4113         (scop_builder): New constructor.
4114         (static sese_l invalid_sese): sese_l with invalid edges.
4115         (get_sese): Get an sese (from a loop) if possible, invalid_sese
4116         otherwise.
4117         (get_nearest_dom_with_single_entry): Get nearest dominator of a
4118         basic_block with single entry.  Return NULL if we get to the
4119         beginning of a function.
4120         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
4121         a basic_block with single exit.  Return NULL if we get to the
4122         beginning of a function.
4123         (print_sese): Pretty-print SESE.
4124         (merge_sese): Merge two SESEs if possible and return the new SESE.
4125         (build_scop_depth): Start building the SCoP within a loop nest.
4126         (build_scop_breadth): Start building the SCoP at a single loop
4127         depth.  Merge adjacent SESEs if valid.
4128         (can_represent_loop_1): Returns true if Graphite can represent
4129         loop inside SCoP.  Helper for can_represent_loop.
4130         (can_represent_loop): Returns true if Graphite can represent LOOP
4131         and all its nested loops in SCoP.
4132         (loop_is_valid_scop): Returns true if LOOP and all its nests
4133         constitute a valid SCoP.
4134         (region_has_one_loop): Returns true of a region has only one loop.
4135         (add_scop): Add SCoP to the list of valid scops.  Removes an
4136         already existing scop if it intersects with or subsumed by this one.
4137         (harmful_stmt_in_region): Returns true if SCoP has any statment
4138         which cannot be represented by Graphite.
4139         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
4140         (remove_subscops): Remove any SCoP from the list of already found
4141         SCoPs, if subsumed by S1.
4142         (intersects): Return true if region bounded by SCoPs S1 and S2
4143         intersect.
4144         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
4145         * graphite.c (print_graphite_scop_statistics):
4146         (print_graphite_statistics): Print SCoP info while debugging.
4147         (graphite_initialize): Early exit in case number of loops in a
4148         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
4149         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4150         (graphite_finalize):
4151         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
4152         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
4153         (recompute_all_dominators): Recalculate POST_DOMINATORS.
4154         * tree-cfg.c (print_loops): Print the function name while printing
4155         loops.
4156
4157 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4158             Sebastian Pop  <s.pop@samsung.com>
4159
4160         PR tree-optimization/67700
4161         * graphite-sese-to-poly.c (parameter_index_in_region): Call
4162         invariant_in_sese_p_rec.
4163         (extract_affine): Same.
4164         (rewrite_cross_bb_scalar_deps): Call update_ssa.
4165         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
4166         * sese.h (invariant_in_sese_p_rec): Declare.
4167
4168 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
4169
4170         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
4171
4172 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
4173
4174         Revert:
4175         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4176                     Jiong Wang  <jiong.wang@arm.com>
4177
4178         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
4179         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
4180         (REG_CLASS_NAMES): Likewise.
4181         (REG_CLASS_CONTENTS): Likewise.
4182         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
4183         (aarch64_register_move_cost): Likewise.
4184         (aarch64_load_symref_appropriately): Invoke the new added pattern if
4185         possible.
4186         * config/aarch64/constraints.md (Uc0): New constraint.
4187
4188 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
4189
4190         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
4191
4192 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
4193
4194         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
4195         SECTION_EXCLUDE in XO mapping class.
4196
4197 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4198
4199         PR target/54236
4200         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
4201         and handle ne and eq codes.
4202         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
4203         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
4204         CONST_INT_P.  Use reverse_condition.
4205         (sh_split_treg_set_expr): Likewise.
4206
4207 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
4208
4209         * config/arm/types.md (type): Add rotate_imm.
4210         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
4211         ROR immediate case.
4212         (*rorsi3_insn_uxtw): Likewise.
4213         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
4214         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
4215         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
4216
4217 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4218
4219         PR rtl-optimization/67481
4220         * ifcvt.c (contains_ccmode_rtx_p): New function.
4221         (insn_valid_noce_process_p): Use it.
4222
4223 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4224
4225         PR rtl-optimization/67456
4226         PR rtl-optimization/67464
4227         PR rtl-optimization/67465
4228         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
4229         move in the mode of x.  Handle combination of complex and simple
4230         block pairs as well as the case when one is empty.
4231
4232 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4233
4234         * doc/gimple.texi: Update references to gimple_statement_base.
4235         * gdbhooks.py: Likewise.
4236         * gimple.h: Likewise.
4237
4238 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4239
4240         * config/sparc/driver-sparc.c: map LEON to leon3
4241
4242 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4243
4244         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
4245           and make it inverse to change default
4246         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
4247           supervisor mode
4248         * doc/invoke.texi: Document change of default
4249
4250 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4251
4252         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
4253         true on %f0 for a target without FPU.
4254         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
4255         without FPU.
4256         (untyped_return): Do not load %f0 for a target without FPU.
4257
4258 2015-09-28  Andrew Pinski  <apinski@cavium.com>
4259
4260         * config/aarch64/aarch64.md (prefetch):
4261         Change the predicate of operand 0 to register_operand.
4262
4263 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
4264
4265         * config/i386/predicates.md (register_sse4nonimm_operand): New
4266         predicate.
4267         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
4268         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
4269         Use register_sse4nonimm_operand as operand 0 predicate.
4270         (*vec_extractv8hi_sse2): Remove insn pattern.
4271         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
4272         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
4273
4274 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
4275             Kaz Kojima  <kkojima@gcc.gnu.org>
4276
4277         PR target/67391
4278         * config/sh/sh-protos.h (sh_lra_p): Declare.
4279         * config/sh/sh.c (sh_lra_p): Make non-static.
4280         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
4281         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
4282         Expand into addsi3_scr if operands[2] if needed.
4283         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
4284         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
4285         (addsi3_scr, *addsi3): New insn_and_split patterns.
4286
4287 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
4288
4289         PR rtl-optimization/64164
4290         PR tree-optimization/67312
4291         PR middle-end/67340
4292         PR middle-end/67490
4293         PR bootstrap/67597
4294         * cfgexpand.c (parm_in_stack_slot_p): Remove.
4295         (ssa_default_def_partition): Remove.
4296         (get_rtl_for_parm_ssa_default_def): Remove.
4297         (set_rtl): Check that RTL assignments match expectations.
4298         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
4299         default def location for params and results.  Record SSA names
4300         or types in REG and MEM attrs, respectively.
4301         (set_parm_rtl): New.
4302         (expand_one_ssa_partition): Drop logic that assigned MEMs with
4303         unassigned addresses.
4304         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
4305         deferred stack alloc vars.
4306         (expand_used_vars): Skip partitions holding parm default defs.
4307         Move adjust_one_expanded_partition_var loop...
4308         (pass_expand::execute): ... here.  Drop redundant assert.
4309         Adjust comments before the final loop over all ssa names.
4310         Require assigned rtl of parms and results to match exactly.
4311         Reset its attributes to match them, not any other variables in
4312         the same partition.
4313         (expand_debug_expr): Use entry value for PARM's default defs
4314         only iff they have zero nondebug uses.
4315         * cfgexpand.h (parm_in_stack_slot_p): Remove.
4316         (get_rtl_for_parm_ssa_default_def): Remove.
4317         (set_parm_rtl): Declare.
4318         * doc/invoke.texi: Improve wording.
4319         * explow.c (promote_decl_mode): Fix promote_function_mode for
4320         result decls not by reference.
4321         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
4322         bypass TYPE_MODE to get the actual vector mode.
4323         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
4324         2015-08-19's changes as follows.  Drop include of
4325         basic-block.h and df.h.
4326         (rtl_for_parm): Remove.
4327         (maybe_reset_rtl_for_parm): Remove.
4328         (parm_in_unassigned_mem_p): Remove.
4329         (use_register_for_decl): Add logic for RESULT_DECLs matching
4330         assign_parms' behavior.
4331         (split_complex_args): Revert.
4332         (assign_parms_augmented_arg_list): Revert.  Add comment
4333         referencing the logic above.
4334         (assign_parm_adjust_stack_rtl): Revert.
4335         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
4336         of SET_DECL_RTL.  Set up a REG if the parm demands so.
4337         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
4338         calls into a single set_parm_rtl.  Set up a temporary RTL
4339         temporarily for expand_assignment.
4340         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
4341         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
4342         (assign_bounds): Revert.
4343         (assign_parms): Revert.  Use set_parm_rtl.
4344         (allocate_struct_function): Relayout result and parms of
4345         non-abstruct functions.
4346         (expand_function_start): Revert.  Use set_parm_rtl.  If the
4347         result is not a hard reg, create a pseudo from the promoted
4348         mode of the default def.  Promote static chain mode.
4349         * tree-outof-ssa.c (remove_ssa_form): Drop unused
4350         partition_has_default_def.  Set up
4351         partitions_for_parm_default_defs.
4352         (finish_out_of_ssa): Remove partition_has_default_def.
4353         Release partitions_for_parm_default_defs.
4354         * tree-outof-ssa.h (struct ssaexpand): Remove
4355         partition_has_default_def.  Add
4356         partitions_for_parm_default_defs.
4357         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
4358         stor-layout.h.
4359         (build_ssa_conflict_graph): Fix conflict-detection of default
4360         defs of even unused default defs of params and results.
4361         (for_all_parms): New.
4362         (create_default_def): New.
4363         (register_default_def): New.
4364         (coalesce_with_default): New.
4365         (create_outofssa_var_map): Create default defs for all parms
4366         and results, and register their partitions.  Add GIMPLE_RETURN
4367         operands as coalesce candidates with results.  Add default
4368         defs of each parm or result as coalesce candidates with its
4369         other defs.  Mark each result def, and each default def of
4370         parms, as used_in_copy.
4371         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
4372         with the ssa names, even anonymous ones.  Drop
4373         parm_in_stack_slot_p calls.  Require same signedness and
4374         alignment.
4375         (coalesce_ssa_name): Add coalesce candidates for all defs of
4376         each parm and result, even unused ones.
4377         (parm_default_def_partition_arg): New type.
4378         (set_parm_default_def_partition): New.
4379         (get_parm_default_def_partitions): New.
4380         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
4381         * tree-ssa-live.c (partition_view_init): Regard unused defs of
4382         parms and results as used.
4383         (verify_live_on_entry): Don't error out just because they're
4384         not live.
4385
4386 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
4387
4388         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4389         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
4390         (output_fde): Don't output length for debug_frame on AIX.
4391         (output_call_frame_info): Don't output length for debug_frame on AIX.
4392         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
4393         HAVE_XCOFF_DWARF_EXTRAS.
4394         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
4395         HAVE_XCOFF_DWARF_EXTRAS.
4396         (output_compilation_unit_header): Don't output length on AIX.
4397         (output_pubnames): Don't output length on AIX.
4398         (output_aranges): Delete argument. Compute length locally. Don't
4399         output length on AIX.
4400         (output_line_info): Don't output length on AIX.
4401         (dwarf2out_finish): Don't compute aranges_length.
4402         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4403         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
4404         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
4405         symbol decoration for AIX.
4406         (rs6000_xcoff_debug_unwind_info): New.
4407         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
4408         for SECTION_DEBUG.
4409         (rs6000_xcoff_declare_function_name): Emit different
4410         .function pseudo-op when DWARF2_DEBUG. Don't call
4411         xcoffout_declare_function for DWARF2_DEBUG.
4412         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
4413         Redefine.
4414         * config/rs6000/aix71.h: New.
4415         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
4416         locations support.
4417         * configure: Regenerate.
4418         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
4419         DWARF support.
4420
4421 2015-09-26  Jeff Law  <law@redhat.com>
4422
4423         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
4424         behaviour.
4425         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
4426         behaviour.
4427
4428         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
4429         behaviour
4430
4431         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
4432         undefined behaviour.
4433
4434         * config/cris/cris.md (asrandb): Fix left shift undefined
4435         behaviour.
4436         (asrandw): Likewise.
4437
4438 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4439
4440         PR target/61578
4441         * lra-constarints.c (match_reload): Check presence of the input pseudo
4442         in the output operand.
4443
4444 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4445
4446         * doc/invoke.texi (-fsanitize): Minor wording tweak.
4447
4448 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4449
4450         * doc/invoke.texi (-fsanitize): Update URLs.
4451
4452 2015-09-25  Teresa Johnson  <tejohnson@google.com>
4453
4454         * opts.c (finish_options): Unset -freorder-blocks-and-partition
4455         if not using profile.
4456
4457 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4458
4459         PR pretty-print/67567
4460         * pretty-print.c (pp_string): Add gcc_checking_assert.
4461         * pretty-print.h (output_buffer_append_r): Likewise.
4462
4463 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4464
4465         PR target/67675
4466         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
4467         addr2 individually.  Don't emit logical or insn if one is known to
4468         be aligned approriately.
4469         (sh_expand_cmpnstr): Likewise.
4470
4471 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
4472
4473         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
4474         __builtin_aarch64_fp[sc]r arguments into a register.
4475
4476 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4477
4478         * config.gcc (x86_archs): Replace lakemount with lakemont.
4479         (with_cpu): Likewise.
4480         (with_arch): Likewise.
4481         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4482         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
4483         __tune_lakemount__ with __tune_lakemont__.
4484         * config/i386/i386.c (lakemount_cost): Renamed to ...
4485         (lakemont_cost): This.
4486         (m_LAKEMOUNT): Renamed to ...
4487         (m_LAKEMONT): This.
4488         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
4489         (processor_target_table): Replace "lakemount" with "lakemont".
4490         (processor_alias_table): Likewise.
4491         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
4492         PROCESSOR_LAKEMONT.
4493         (ix86_adjust_cost): Likewise.
4494         (ia32_multipass_dfa_lookahead): Likewise.
4495         * config/i386/i386.h (processor_type): Likewise.
4496         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
4497         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
4498         Lakemount with Lakemont.
4499
4500 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
4501
4502         * config.gcc (x86_archs): Replace iamcu with lakemount.
4503         (with_cpu): Likewise.
4504         (with_arch): Likewise.
4505         * doc/invoke.texi: Likewise.
4506         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4507         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
4508         __tune_iamcu__ with __tune_lakemount__.
4509         * config/i386/i386.c (iamcu_cost): Renamed to ...
4510         (lakemount_cost): This.
4511         (m_IAMCU): Renamed to ...
4512         (m_LAKEMOUNT): This.
4513         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
4514         (processor_target_table): Replace "iamcu" with "lakemount".
4515         (processor_alias_table): Likewise.
4516         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
4517         PROCESSOR_LAKEMOUNT.
4518         (ix86_adjust_cost): Likewise.
4519         (ia32_multipass_dfa_lookahead): Likewise.
4520         * config/i386/i386.h (processor_type): Likewise.
4521         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
4522
4523 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
4524
4525         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
4526         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
4527         Declare.
4528         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
4529         (pa_expand_compare_and_swap_loop): New.
4530         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
4531         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
4532         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
4533         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
4534         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
4535         Revise.
4536
4537 2015-09-24  Michael Collison  <michael.collison@linaro.org>
4538
4539         PR other/57195
4540         * read-md.c (read_name): Allow mode iterators inside angle
4541         brackets in rtl expressions.
4542
4543 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
4544
4545         PR target/61578
4546         * ira-color.c (update_allocno_cost): Add parameter.
4547         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
4548         parameter.
4549
4550 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4551
4552         PR driver/67640
4553         * opts-common.c (prune_options): Discard all -fdiagnostics-color
4554         but the last one, which is moved to the front to be processed
4555         first.
4556         * opts.c (enable_warning_as_error): Reject options that do not
4557         control warnings.
4558
4559 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4560
4561         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
4562
4563 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4564
4565         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
4566         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
4567         (aarch64_cannot_force_const_mem): Likewise.
4568         (aarch64_classify_address): Likewise.
4569         (aarch64_classify_symbolic_expression): Likewise.
4570         (aarch64_print_operand): Likewise.
4571         (aarch64_classify_symbol): Likewise.
4572         (aarch64_mov_operand_p): Likewise.
4573         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
4574         (aarch64_mov_operand): Likewise.
4575
4576 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
4577
4578         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
4579         for info->spe_gp_size.
4580
4581 2015-09-24  Richard Biener  <rguenther@suse.de>
4582
4583         PR lto/67699
4584         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
4585         abstract origins.
4586
4587 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
4588
4589         * tree-object-size.c (plus_stmt_object_size)
4590         (cond_expr_object_size): Change the formal parameters from gimple
4591         to gimple *.
4592         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
4593         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
4594         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
4595
4596 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4597
4598         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
4599         Check for ld -type pie on Solaris 11.x and 12.
4600         * configure: Regenerate.
4601         * config.in: Regenerate.
4602
4603         * gcc.c (LD_PIE_SPEC): Allow redefinition.
4604
4605         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
4606         (STARTFILE_SPEC): Use it.
4607         (ENDFILE_CRTEND_SPEC): Define.
4608         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
4609         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
4610         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
4611         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
4612         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
4613         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
4614         (ENDFILE_ARCH_SPEC): Define.
4615         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
4616
4617 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4618
4619         * configure.ac (gcc_cv_solaris_crts): New test.
4620         * configure. Regenerate.
4621         * config.in: Regenerate.
4622         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
4623         HAVE_SOLARIS_CRTS variant.
4624
4625 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4626
4627         * tree-inline.h (count_insns_seq): Delete prototype.
4628         (estimate_num_insns_seq): Define prototype.
4629         * tree-inline.c (count_insns_seq): Delete.
4630         (estimate_num_insns_seq): Remove static qualifier.
4631         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
4632         with estimate_num_insns_seq.
4633
4634 2015-09-24  Richard Biener  <rguenther@suse.de>
4635
4636         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
4637         members.
4638         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
4639         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
4640         offset.
4641         (ao_ref_init_from_vn_reference): Record clique and base in the
4642         built base.
4643         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
4644
4645 2015-09-24  Richard Biener  <rguenther@suse.de>
4646
4647         PR tree-optimization/48885
4648         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
4649         as not including any restrict tags from other pointers.
4650
4651 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4652
4653         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
4654         character when appending to offload_targets.
4655
4656         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
4657         offload targets by commas, not colons.
4658         * config.in: Regenerate.
4659         * configure: Likewise.
4660         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
4661         instead of setting up the default offload targets here...
4662         (process_command): ..., do it here.
4663         libgomp/
4664         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
4665         targets are separated by commas.
4666         * config.h.in: Regenerate.
4667
4668 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4669             Nathan Sidwell  <nathan@codesourcery.com>
4670
4671         * omp-low.h (omp_reduction_init_op): Declare.
4672         * omp-low.c (omp_reduction_init_op): New, broken out of ...
4673         (omp_reduction_init): ... here.  Call it.
4674         * tree-parloops.c (initialize_reductions): Use
4675         omp_reduction_init_op.
4676
4677 2015-09-23   Richard Biener  <rguenther@suse.de>
4678
4679         PR middle-end/67662
4680         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
4681         undefined overflow unless they will cancel out.
4682
4683 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4684
4685         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
4686         insn emit.
4687
4688 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4689
4690         PR c/49655
4691         * opts.h (write_langs): Declare.
4692         * opts-global.c (write_langs): Make it extern.
4693
4694 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
4695
4696         PR target/67391
4697         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
4698         overlapping regs when matching the pattern.
4699
4700 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
4701
4702         * config/aarch64/aarch64-simd.md
4703         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
4704         (aarch64_float_truncate_hi_v4sf_le): New.
4705         (aarch64_float_truncate_hi_v4sf_be): Likewise.
4706
4707 2015-09-23  Richard Biener  <rguenther@suse.de>
4708
4709         * tree-ssa-structalias.c (intra_create_variable_infos): Build
4710         representatives for all restrict qualified pointer destinations.
4711
4712 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4713
4714         * config/i386/i386.md (define_code_attr mshift): New.
4715         (define_mode_iterator SWI1248_AVX512BW): Rename ...
4716         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
4717         only.
4718         (define_insn "*k<logic><mode>"): Use new iterator name.
4719         (define_insn "*<mshift><mode>3"): New.
4720
4721 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
4722
4723         PR middle-end/67649
4724         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
4725         mark the block as accessible.
4726
4727 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
4728
4729         * function.c (thread_prologue_and_epilogue_insns): Delete
4730         orig_entry_edge argument to try_shrink_wrapping.
4731         * shrink-wrap.c (can_get_prologue): New function.
4732         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
4733         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
4734         can_get_prologue where needed.  Remove code that finds a single
4735         edge for the prologue.  Remove code that tests if any reg clobbered
4736         by the prologue is live on the prologue edge.  Remove code that finds
4737         the new prologue edge after duplicating blocks.  Make a new prologue
4738         block and edge.
4739         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
4740
4741 2015-09-22  Jeff Law  <law@redhat.com>
4742
4743         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
4744         behavior.
4745
4746 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4747
4748         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
4749         -Wtemplates, -Wnamespaces): Document.
4750
4751 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4752
4753         PR tree-optimization/67671
4754         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
4755         pointer references as restrict.
4756
4757 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4758
4759         * config/nios2/nios2.c (nios2_legitimize_address): When handling
4760         'reg + reloc' cases, allow first operand to be non-REG, and use
4761         force_reg() to enforce address pattern.
4762
4763 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
4764
4765         PR target/67480
4766         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
4767         (define_mode_iterator VI12_AVX_AVX512F): New.
4768         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
4769         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
4770         (define_insn "*<code><mode>3"): ... Into new pattern using
4771         VI12_AVX_AVX512F iterators without masking.
4772
4773 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4774
4775         * config.gcc: Support "skylake-avx512".
4776         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4777         PROCESSOR_SKYLAKE_AVX512.
4778         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
4779         (processor_target_table): Add "skylake-avx512".
4780         (PTA_SKYLAKE_AVX512): Define.
4781         (ix86_option_override_internal): Add "skylake_avx512".
4782         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
4783         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
4784         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
4785         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
4786         * doc/invoke.texi (skylake-avx512): New.
4787
4788 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4789
4790         * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
4791         operand in pattern.
4792         (define_insn "kunpcksi"): Ditto.
4793         (define_insn "kunpckdi"): Ditto.
4794
4795 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4796
4797         * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
4798         iterator instead of fixed modes.
4799
4800 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4801
4802         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4803         Adjust declaration.
4804         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
4805         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
4806         out_result.  Update to support update-fetch operations.
4807         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
4808         Adjust for change to aarch64_gen_atomic_ldop.
4809         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
4810         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
4811         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
4812         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
4813         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
4814
4815 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4816
4817         * config/aarch64/aarch64-protos.h
4818         (aarch64_atomic_ldop_supported_p): Declare.
4819         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
4820         (enum aarch64_atomic_load_op_code): New.
4821         (aarch64_emit_atomic_load_op): New.
4822         (aarch64_gen_atomic_ldop): Update to support load-operate
4823         patterns.
4824         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
4825         to an expander.
4826         (aarch64_atomic_<atomic_optab><mode>): New.
4827         (aarch64_atomic_<atomic_optab><mode>_lse): New.
4828         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
4829         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
4830         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
4831
4832 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4833
4834         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
4835         (UNSPECV_ATOMIC_LDOP_OR): New.
4836         (UNSPECV_ATOMIC_LDOP_BIC): New.
4837         (UNSPECV_ATOMIC_LDOP_XOR): New.
4838         (UNSPECV_ATOMIC_LDOP_PLUS): New.
4839         (ATOMIC_LDOP): New.
4840         (atomic_ldop): New.
4841         (aarch64_atomic_load<atomic_ldop><mode>): New.
4842
4843 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4844
4845         * config/aarch64/aarch64.md
4846         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
4847         pattern.
4848
4849 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4850
4851         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4852         Declare.
4853         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
4854         (aarch64_gen_atomic_ldop): New.
4855         (aarch64_split_atomic_op): Fix whitespace and add a comment.
4856         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
4857         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
4858         (atomic_exchange<mode>): Replace with an expander.
4859         (aarch64_atomic_exchange<mode>): New.
4860         (aarch64_atomic_exchange<mode>_lse): New.
4861         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
4862         (aarch64_atomic_swp<mode>): New.
4863
4864 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4865
4866         * tree-inline.c (expand_call_inline): Use inform for extra note.
4867         Do not give a note with UNKNOWN_LOCATION.
4868         Replace input_location with gimple_location (stmt).
4869         Use true/false instead of TRUE/FALSE.
4870
4871 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4872
4873         PR tree-optimization/67666
4874         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
4875         with single field non-conservative.
4876
4877 2015-09-21  David S. Miller  <davem@davemloft.net>
4878
4879         PR/67622
4880         Revert:
4881         2015-09-11  David S. Miller  <davem@davemloft.net>
4882
4883         * config/sparc/constraints.md: Make "U" constraint a real register
4884         constraint.
4885         * config/sparc/sparc.c (TARGET_LRA_P): Define.
4886         (D_MODES, DF_MODES): Add missing cast.
4887         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
4888         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
4889         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
4890         cost to 8.
4891         * config/sparc/sparc.h (PROMOTE_MODE): Define.
4892         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
4893         provide these insn when flag_pic.
4894
4895         2015-09-17  David S. Miller  <davem@davemloft.net>
4896
4897         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
4898         Declare.
4899         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
4900         function.
4901         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
4902         (HARD_REGNO_CALLER_SAVE_MODE): Define.
4903         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
4904         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
4905         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
4906         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
4907         provide when flag_pic.
4908
4909 2015-09-21  Jeff Law  <law@redhat.com>
4910
4911         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
4912         behavior.
4913
4914 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4915
4916         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
4917
4918 2015-09-21  Richard Biener  <rguenther@suse.de>
4919
4920         * passes.c (rest_of_decl_compilation): Do not call
4921         dwarf2out_early_global_decl for aliases.
4922
4923 2015-09-21  Richard Biener  <rguenther@suse.de>
4924
4925         PR debug/67664
4926         * dwarf2out.c (add_location_or_const_value_attribute): Remove
4927         attribute parameter.  Early exit if either DW_AT_const_value
4928         or DW_AT_location are present already.
4929         (gen_variable_die): Adjust caller.
4930         (dwarf2out_late_global_decl): Likewise.
4931
4932 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4933
4934         PR target/67657
4935         * config/sh/sh.c (sh_remove_overlapping_post_inc,
4936         sh_peephole_emit_move_insn): Add new functions.
4937         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
4938         sh_peephole_emit_move_insn): Declere them.
4939         * config/sh/sh.md: Use them in various peephole2 patterns.
4940
4941 2015-09-21  Richard Biener  <rguenther@suse.de>
4942
4943         PR middle-end/67651
4944         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
4945         address with -fno-delete-null-pointer-checks.
4946
4947 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
4948
4949         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
4950         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
4951         (reduc_uplus_v16qi): Remove.
4952
4953         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
4954         (reduc_<VEC_reduc_name>_v2df): Remove.
4955         (reduc_<VEC_reduc_name>_v4sf): Remove.
4956         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
4957
4958         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
4959         gen_ function by removing * prefix.
4960         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
4961
4962 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4963
4964         PR middle-end/60832
4965         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
4966         Print i_bound without converting it to a tree.
4967
4968 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
4969
4970         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
4971         operands[4] operands[5] swap with std::swap, removed tmp variable.
4972         (arm_evpc_neon_vzip): Replaced in0/in1 and
4973         out0/out1 swaps with std::swap, removed x variable.
4974         (arm_evpc_neon_vtrn): Replaced in0/int1 and
4975         out0/out1 swaos with std::swap, removed x variable.
4976         (arm_expand_vec_perm_const_1): Replaced
4977         d->op0/d->op1 swap with std::swap, removed x variable.
4978         (arm_evpc_neon_vuzp): Replaced in0/in1 and
4979         out0/out1 swaps with std::swap, removed x variable.
4980
4981 2015-09-21  Jonathan Yong  <10walls@gmail.com>
4982
4983         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
4984         sysroot/usr/lib/32api for additional win32 libraries,
4985         fixes failing Cygwin bootstrapping.
4986
4987 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4988
4989         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
4990
4991 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4992
4993         PR target/67126
4994         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
4995         (*mov_t_msb_neg): Rewrite negc pattern.
4996
4997 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4998
4999         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
5000         immediate generation code.
5001
5002 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5003
5004         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
5005         redundant immediate generation code.
5006
5007 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5008
5009         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
5010         (AARCH64_NUM_BITMASKS): Remove.
5011         (aarch64_bitmasks_cmp): Remove.
5012         (aarch64_build_bitmask_table): Remove.
5013
5014 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5015
5016         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
5017         slow immediate matching loops with a faster algorithm.
5018
5019 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
5020
5021         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
5022         faster algorithm.
5023
5024 2015-09-20  Jeff Law  <law@redhat.com>
5025
5026         PR tree-optimization/47679
5027         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
5028         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
5029         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
5030         (thread_through_normal_block): Use record_temporary_equivalences.
5031
5032 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
5033
5034         * coretypes.h (gimple): Change typedef to be a forward declaration.
5035         * gimple.h (gimple_statement_base): rename to gimple.
5036         * (all functions and types using gimple): Adjust.
5037         * *.[ch]: Likewise.
5038
5039 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
5040             David Edelsohn  <dje.gcc@gmail.com>
5041
5042         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
5043         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5044         (EH_FRAME_THROUGH_COLLECT2): Define.
5045         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5046         (ASM_OUTPUT_DWARF_PCREL): Define.
5047         (ASM_OUTPUT_DWARF_DATAREL): Define.
5048
5049 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
5050
5051         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
5052         of TARGET_ELF32.
5053
5054 2015-09-18  Jeff Law  <law@redhat.com>
5055
5056         PR tree-optimization/47679
5057         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
5058         it here ...
5059         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
5060         object.  Update constructor.
5061         (pass_dominator::execute):  Corresponding chagnes to declaration
5062         and initialization of avail_exprs_stack.  Update constructor call
5063         for dom_opt_dom_walker object.
5064         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
5065         it down to children as needed.
5066         (record_equivalences_from_incoming_edge): Likewise.
5067         (eliminate_redundant_computations): Likewise.
5068         (record_equivalences_from_stmt): Likewise.
5069         (simplify_stmt_for_jump_threading): Likewise.
5070         (record_temporary_equivalences): Likewise.
5071         (optimize_stmt): Likewise.
5072         (dom_opt_dom_walker::thread_across_edge): Update access to
5073         avail_exprs_stack object and pass it to children as needed.
5074         (dom_opt_dom_walker::before_dom_children): Similarly.
5075         (dom_opt_dom_walker::after_dom_children): Similarly.
5076         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
5077         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
5078         Add avail_expr_stack argument.  Pass it to children as needed.
5079         (dummy_simplify): Likewise.
5080         (simplify_control_stmt_condition): Likewise.
5081         (thread_around_empty_blocks): Likewise.
5082         (thread_through_normal_block): Likewise.
5083         (thread_across_edge): Likewise.
5084         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5085         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
5086
5087         PR tree-optimization/47679
5088         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
5089         it here ...
5090         (dom_opt_dom_walker): New private member holding the const_and_copies
5091         object.  Update constructor.
5092         (pass_dominator::execute): Corresponding changes to declaration
5093         and initialization of const_and_copies.  Update constructor call
5094         for the dom_opt_dom_walker object.
5095         (record_temporary_equivalences): Accept const_and_copies argument
5096         pass it down to children as needed.
5097         (record_equality): Likewise.
5098         (record_equivalences_from_incoming_edge): Likewise.
5099         (cprop_into_successor_phis, optimize_stmt): Likewise.
5100         (eliminate_redundant_computations): Likewise.
5101         (dom_opt_dom_walker::thread_across_edge): Update access to
5102         const_and_copies object and pass it to children as needed.
5103         (dom_opt_dom_walker::before_dom_children): Similarly.
5104         (dom_opt_dom_walker::after_dom_children): Similarly.
5105
5106         PR tree-optimization/47679
5107         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
5108         it into the avail_exprs_stack class.
5109         (pass_dominator::execute): Corresponding changes to declaration
5110         and initialization of avail_exprs.  Pass avail_exprs to
5111         dump_dominator_optimization_stats.
5112         (record_cond): Extract avail_exprs from avail_exprs_stack.
5113         (lookup_avail_expr): Similarly.
5114         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
5115         position in file.
5116         (dump_dominator_optimization_stats): Make static and prototype.
5117         Add argument for the hash table to dump.
5118         (debug_dominator_optimization_stats): Remove.
5119         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
5120         prototype.
5121         (debug_dominator_optimization_stats): Similarly.
5122         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
5123         "void" in prototype for pop_to_marker method.  Add accessor method
5124         for the underlying avail_exprs table.
5125
5126         * tree-ssa-threadedge.c: Remove trailing whitespace.
5127
5128 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
5129
5130         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
5131         unsigned.
5132         (pa_ldil_cint_p): Likewise.
5133         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
5134         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
5135         Update callers.
5136         * config/pa/pa.md: Likewise.
5137
5138 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
5139
5140         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
5141         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
5142         (diagnostic_show_locus): Likewise.
5143         (diagnostic_print_caret_line): Likewise.
5144         * diagnostic-show-locus.c: New file.
5145
5146 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
5147
5148         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
5149         "back" parameter. Declare label in #if block.
5150
5151 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
5152
5153         PR middle-end/67619
5154         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
5155         the address to a register.
5156
5157 2015-09-18  Jeff Law  <law@redhat.com>
5158
5159         PR tree-optimization/47679
5160         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
5161         * tree-ssa-dom.c: Remove unnecessary header includes.
5162         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
5163         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
5164         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
5165         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
5166         (pass_phi_only_cprop::execute): Likewise.
5167         (make_pass_phi_only_cprop): Likewise.
5168         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
5169         uses of file scoped statics by passing the required objects
5170         as parameters wherever needed.
5171
5172 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
5173             David Edelsohn  <dje.gcc@gmail.com>
5174
5175         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
5176         EH_FRAME_THROUGH_COLLECT2.
5177         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
5178         DW_EH_PE_datarel.
5179         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
5180         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
5181         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
5182         * except.c (switch_to_exception_section): Use a read-only section
5183         even if EH_FRAME_SECTION_NAME is undefined.
5184         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
5185         * collect2.c (write_c_file_stat): Provide dbase on AIX.
5186         (scan_prog_file): Don't export __dso_handle nor
5187         __gcc_unwind_dbase.
5188         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5189         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5190         (ASM_OUTPUT_DWARF_PCREL): Define.
5191         (ASM_OUTPUT_DWARF_DATAREL): Define.
5192         (EH_FRAME_THROUGH_COLLECT2): Define.
5193         (EH_FRAME_IN_DATA_SECTION): Delete.
5194         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
5195         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
5196         Declare.
5197         (rs6000_asm_output_dwarf_datarel): Declare.
5198         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
5199         (rs6000_aix_asm_output_dwarf_datarel): New.
5200         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
5201         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
5202         (EH_FRAME_THROUGH_COLLECT2): Define.
5203         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
5204         (EH_FRAME_THROUGH_COLLECT2): Define.
5205         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5206         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
5207         (EH_FRAME_THROUGH_COLLECT2): New.
5208         (ASM_OUTPUT_DWARF_DATAREL): New.
5209         * doc/tm.texi: Regenerate.
5210
5211 2015-09-18  Richard Biener  <rguenther@suse.de>
5212
5213         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
5214         we're in early phase.
5215         (schedule_generic_params_dies_gen): Likewise.
5216         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
5217         work as possible, retaining unhandled cases.
5218         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
5219         clear out generic_type_instances at the end.
5220         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
5221         (dwarf2out_early_finish): ... here.  Do most of
5222         gen_remaining_tmpl_value_param_die_attribute here.
5223
5224 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
5225
5226         PR tree-optimization/67283
5227         * tree-sra.c (type_consists_of_records_p): Rename to...
5228         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
5229         (completely_scalarize_record): Rename to...
5230         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
5231         (scalarize_elem): New.
5232         (analyze_all_variable_accesses): Follow renamings.
5233
5234 2015-09-18  Richard Biener  <rguenther@suse.de>
5235
5236         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
5237         in early-dwarf.
5238
5239 2015-09-18  Richard Biener  <rguenther@suse.de>
5240
5241         PR tree-optimization/66142
5242         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
5243         treat MEM[&x] and x the same.
5244         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
5245         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
5246         when we simplified sth.
5247         (vn_reference_maybe_forwprop_address): Likewise.
5248         (valueize_refs_1): When we simplified through
5249         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
5250         set valueized_anything to true.
5251         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
5252         one ref kills the other instead of just a offset-based test.
5253         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
5254         for the operand_equal_p test to compare bases and also compare
5255         sizes.
5256
5257 2015-09-17  Christian Bruel  <christian.bruel@st.com>
5258
5259         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
5260
5261 2015-09-17  Richard Henderson  <rth@redhat.com>
5262
5263         PR libstdc++/65913
5264         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
5265         pointers that encode the alignment of the object.
5266
5267 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5268
5269         PR rtl-optimization/66790
5270         * df-problems.c (LIVE): Amend documentation.
5271
5272 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
5273
5274         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
5275         and optabs-tree.o.
5276         (GTFILES): Replace optabs.c with optabs-libfunc.c.
5277         * genopinit.c (main): Add an include guard to insn-opinit.h.
5278         Protect the rtx_code parts with NUM_RTX_CODE.
5279         * optabs.h: Split parts out to...
5280         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
5281         * optabs.c: Split parts out to...
5282         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
5283         * cilk-common.c: Include optabs-query.h rather than optabs.h.
5284         * fold-const.c: Likewise.
5285         * target-globals.c: Likewise.
5286         * tree-if-conv.c: Likewise.
5287         * tree-ssa-forwprop.c: Likewise.
5288         * tree-ssa-loop-prefetch.c: Likewise.
5289         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
5290         Remove unncessary include files.
5291         * tree-ssa-phiopt.c: Likewise.
5292         * tree-ssa-reassoc.c: Likewise.
5293         * tree-switch-conversion.c: Likewise.
5294         * tree-vect-data-refs.c: Likewise.
5295         * tree-vect-generic.c: Likewise.
5296         * tree-vect-loop.c: Likewise.
5297         * tree-vect-patterns.c: Likewise.
5298         * tree-vect-slp.c: Likewise.
5299         * tree-vect-stmts.c: Likewise.
5300         * tree-vrp.c: Likewise.
5301         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
5302         rather than optabs.h.
5303         * expr.c: Include optabs-tree.h.
5304         * function.c: Likewise.
5305
5306 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5307
5308         PR middle-end/65958
5309         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
5310         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
5311         * config/arm/arm.c: Include common/common-target.h.
5312         (use_return_insn): Return 0 if the static chain register was saved
5313         above a non-APCS frame.
5314         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
5315         (struct scratch_reg): New.
5316         (get_scratch_register_on_entry): New function.
5317         (release_scratch_register_on_entry): Likewise.
5318         (arm_emit_probe_stack_range): Likewise.
5319         (output_probe_stack_range): Likewise.
5320         (arm_expand_prologue): Factor out code dealing with the IP register
5321         for nested function and adjust it for stack checking.
5322         Invoke arm_emit_probe_stack_range if static builtin stack checking
5323         is enabled.
5324         (thumb1_expand_prologue): Sorry out if static builtin stack checking
5325         is enabled.
5326         (arm_expand_epilogue): Add the saved static chain register, if any, to
5327         the amount of pre-pushed registers to pop.
5328         (arm_frame_pointer_required): Return true if static stack checking is
5329         enabled and we want to catch the exception with the EABI unwinder.
5330         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
5331         (UNSPEC_PROBE_STACK_RANGE): Likewise.
5332         * config/arm/arm.md (probe_stack): New insn.
5333         (probe_stack_range): Likewise.
5334
5335 2015-09-17  Richard Biener  <rguenther@suse.de>
5336
5337         * genmatch.c (parser::parse_expr): Improve error message
5338         for mis-placed flags.
5339
5340 2015-09-17  Richard Biener  <rguenther@suse.de>
5341
5342         * passes.c (rest_of_decl_compilation): Always call early_global_decl
5343         debug hook when we created a varpool node.
5344         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
5345         dwarf2out_early_global_decl, when not just add location or
5346         value attributes to existing DIEs.
5347
5348 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
5349
5350         * config/aarch64/aarch64.md (copysigndf3): New.
5351         (copysignsf3): Likewise.
5352
5353 2015-09-17  David S. Miller  <davem@davemloft.net>
5354
5355         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
5356         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
5357         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5358         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5359         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5360         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5361         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5362         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5363         provide when flag_pic.
5364
5365 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5366
5367         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
5368         object_allocator change.
5369
5370 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5371
5372         PR tree-optimization/66388
5373         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
5374         (dump_iv): Dump no_overflow information.
5375         (alloc_iv): Initialize new field for struct iv.
5376         (mark_bivs): Count number of no_overflow bivs.
5377         (find_deriving_biv_for_expr, record_biv_for_address_use): New
5378         functions.
5379         (idx_find_step): Call new functions above.
5380         (add_candidate_1, add_candidate): New paramter.
5381         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
5382         (get_computation_aff): Simplify convertion of cand for BIV.
5383         (get_computation_cost_at): Step cand's base if necessary.
5384
5385 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5386
5387         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
5388         parameter.
5389         (tree_simplify_using_condition): Ditto.
5390         (simplify_using_initial_conditions): Ditto.
5391         (loop_exits_before_overflow): Pass new argument to function
5392         simplify_using_initial_conditions.  Remove case for type conversions
5393         simplification.
5394         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
5395         parameter.
5396         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
5397         in iv base using loop initial conditions.
5398
5399 2015-09-16  Jeff Law  <law@redhat.com>
5400
5401         PR tree-optimization/47679
5402         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
5403         (free_all_edge_infos): Use it.
5404         (allocate_edge_info): Free preexisting edge info data.
5405         (pass_dominator::execute): Set up initial edge info structures.
5406         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
5407         thread_across_edge.
5408         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
5409         If non-null, then push/pop markers appropriately.
5410         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5411         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
5412         thread-across_edge.
5413
5414 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
5415
5416         * config/ft32/ft32.c: Fix the memory address space predicate.
5417
5418 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5419
5420         PR target/67573
5421         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
5422         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
5423
5424 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5425
5426         * toplev.h (check_global_declaration): Remove declaration.
5427         * toplev.c (check_global_declaration): Move to ...
5428         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
5429         (analyze_functions): Update call.
5430
5431 2015-09-16  David S. Miller  <davem@davemloft.net>
5432
5433         * lra-constraints.c (simplify_operand_subreg): Do not assume that
5434         lowpart of a SUBREG has offset zero.
5435
5436 2015-09-16  Jeff Law  <law@redhat.com>
5437
5438         PR tree-optimization/47679
5439         * tree-ssa-dom.c (enum expr_kind): Moved from here to
5440         tree-ssa-scopedtables.h.
5441         (struct hashable_expr, class expr_hash_elt): Likewise.
5442         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
5443         Move associated methods into tree-ssa-scopedtables.c.
5444         (avail_expr_hash, initialize_expr_from_cond): Similarly.
5445         (hashable_expr_equal_p, add_expr_commutative): Likewise.
5446         (add_hashable_expr): Likewise.
5447         (record_cond): Delete element directly.
5448         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
5449         private copy ctor and assignment operator methods.
5450         (expr_elt_hasher): Inline trivial methods.
5451         (initialize_expr_from_cond): Prototype.
5452         * tree-ssa-scopedtables.c: Add necessary includes, functions and
5453         methods that were previously in tree-ssa-dom.c.  Improve various
5454         comments.
5455
5456 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
5457
5458         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
5459
5460 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
5461
5462         PR bootstrap/67587
5463         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5464         fixup_partitions.
5465
5466 2015-09-16  Richard Biener  <rguenther@suse.de>
5467
5468         PR middle-end/67253
5469         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
5470         location of possibly shared trees.
5471
5472 2015-09-16  Richard Biener  <rguenther@suse.de>
5473
5474         PR middle-end/67271
5475         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
5476
5477 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
5478
5479         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
5480         offset and size computations instead of HOST_WIDE_INT.
5481
5482 2015-09-16  Richard Biener  <rguenther@suse.de>
5483
5484         PR middle-end/67442
5485         * fold-const.c (extract_muldiv_1): Properly extend multiplication
5486         result before builting a tree via wide_int_to_tree.
5487
5488 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
5489
5490         * Makefile.in: Add memory-block.cc
5491         (pool_allocator::initialize): Use fixed block size.
5492         (pool_allocator::release): Use memory_block_pool.
5493         (pool_allocator::allocate): Likewise.
5494         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
5495         object pools.
5496         * cfg.c (initialize_original_copy_tables): Likewise.
5497         * cselib.c (elt_list_pool, elt_loc_list_pool,
5498         cselib_val_pool): Likewise.
5499         * df-problems.c (df_chain_alloc): Likewise.
5500         * df-scan.c (df_scan_alloc): Likewise.
5501         * dse.c (cse_store_info_pool, rtx_store_info_pool,
5502         read_info_type_pool, insn_info_type_pool, bb_info_pool,
5503         group_info_pool, deferred_change_pool): Likewise.
5504         * et-forest.c (et_nodes, et_occurrences): Likewise.
5505         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
5506         ipcp_agg_lattice_pool): Likewise.
5507         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
5508         * ipa-profile.c (histogram_pool): Likewise.
5509         * ipa-prop.c (ipa_refdesc_pool): Likewise.
5510         * ira-build.c (live_range_pool, allocno_pool, object_pool,
5511         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
5512         * ira-color.c (update_cost_record_pool): Likewise.
5513         * lra-lives.c (lra_live_range_pool): Likewise.
5514         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
5515         * memory-block.cc: New file.
5516         * memory-block.h: New file.
5517         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
5518         * sched-deps.c (sched_deps_init): Likewise.
5519         * sel-sched-ir.c (sched_lists_pool): Likewise.
5520         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
5521         * tree-sra.c (access_pool): Likewise.
5522         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5523         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
5524         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
5525         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
5526         * tree-ssa-strlen.c (strinfo_pool): Likewise.
5527         * tree-ssa-structalias.c (variable_info_pool): Likewise.
5528         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
5529         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
5530
5531 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5532
5533         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
5534         definition.
5535         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
5536         call0 ABI.
5537
5538 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5539
5540         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
5541         to pass TLS call argument, according to current ABI.
5542         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
5543         callx0 for TLS call, according to current ABI.
5544
5545 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5546
5547         * tree-eh.c (lower_try_finally_dup_block): Clear location information
5548         on stack restore statements.
5549         (decide_copy_try_finally): Do not consider a stack restore statement as
5550         coming from sources.
5551
5552 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
5553
5554         * config/alpha/alpha.c (alpha_expand_block_clear): Use
5555         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
5556
5557 2015-09-15  Jeff Law  <law@redhat.com>
5558
5559         PR tree-optimization/47679
5560         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
5561         methods and private members.
5562         (avail_exprs_stack): Similarly.  Change type of global
5563         from a pair of expr_hash_elt_t to the new class.
5564         (expr_elt_hasher::hash): Corresponding changes.
5565         (expr_elt_hasher::equal): Similarly.
5566         (avail_expr_hash): Similarly.
5567         (pass_dominator::execute): Similarly.
5568         (dom_opt_dom_walker::thread_across_edge): Similarly.
5569         (record_cond): Similarly.
5570         (dom_opt_dom_walker::before_dom_children): Similarly.
5571         (dom_opt_dom_walker::after_dom_children): Similarly.
5572         (lookup_avail_expr): Likewise.
5573         (initialize_hash_element): Now a expr_hash_elt constructor.
5574         (initialize_hash_element_from_expr): Similarly.
5575         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
5576         (free_expr_hash_elt): Call dtor for the element.
5577         (remove_local_expressions_from_table): Now the "pop_to_marker"
5578         method in the available_exprs_stack class.
5579         (avail_expr_stack::record_expr): Method factored out.
5580         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
5581         Fix formatting.
5582         (hashable_expr_equal_p): Fix formatting.
5583
5584 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
5585
5586         * input.h (location_get_source_line): Drop "expanded_location"
5587         param in favor of a file and line number.
5588         * input.c (location_get_source_line): Likewise.
5589         (dump_location_info): Update for change in signature of
5590         location_get_source_line.
5591         * diagnostic.c (diagnostic_print_caret_line): Likewise.
5592
5593 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5594
5595         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
5596         Bump to 4KB for SJLJ exceptions.
5597         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
5598         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
5599         * doc/tm.texi: Regenerate.
5600
5601 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5602
5603         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
5604         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
5605         Update prototype.
5606
5607 2015-09-15  Richard Biener  <rguenther@suse.de>
5608
5609         PR tree-optimization/67470
5610         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
5611         structure for PHI hoisting by inserting a forwarder block
5612         if appropriate.
5613
5614 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5615
5616         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
5617         (arm_option_print): New function.
5618
5619 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5620
5621         PR target/52144
5622         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
5623         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
5624         Remove flags parameter.
5625         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
5626         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
5627         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
5628         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
5629         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
5630         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
5631         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
5632         * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
5633
5634 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5635
5636         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
5637
5638         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
5639         AARCH64_VALID_SIMD_DREG_MODE.
5640
5641 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5642
5643         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
5644         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
5645         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
5646         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
5647         aarch64_ld4_lane<mode>): Combine together, making...
5648         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5649         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5650         aarch64_st4_lane<mode>): Combine together, making...
5651         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5652         * config/aarch64/iterators.md (nregs): Add comment.
5653
5654 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5655
5656         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
5657         Change operand mode from <V_TWO_ELEM> to BLK.
5658         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
5659         (aarch64_vec_store_lanesoi_lane<mode): Likewise
5660         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5661         (aarch64_ld2_lane<mode>): Likewise.
5662         (aarch64_st2_lane<VQ:mode>): Likewise.
5663         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
5664
5665 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5666
5667         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
5668         Change operand mode from <V_FOUR_ELEM> to BLK.
5669         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
5670         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
5671         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5672         (aarch64_ld4_lane<mode>): Likewise.
5673         (aarch64_st4_lane<mode>): Likewise.
5674         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
5675
5676 2015-09-15  Richard Biener  <rguenther@suse.de>
5677
5678         PR middle-end/67563
5679         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
5680         transfer EH info from old to new stmt.
5681         (replace_call_with_value): Likewise.
5682         (replace_call_with_call_and_fold): Likewise.
5683         (gimple_fold_builtin_memory_op): Likewise.
5684         (gimple_fold_builtin_memset): Likewise.
5685         (gimple_fold_builtin_stpcpy): Likewise.
5686         (gimple_fold_call): Likewise.
5687
5688 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5689
5690         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
5691         comment.
5692         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
5693         (aarch64_simd_intEI_type_node): Likewise.
5694         (aarch64_simd_builtin_std_type): Remove EImode case.
5695         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
5696         * config/aarch64/aarch64-modes.def: Remove EImode.
5697
5698 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5699
5700         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
5701         Change operand mode from <V_THREE_ELEM> to BLK.
5702         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
5703         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
5704         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5705         (aarch64_ld3_lane<mode>): Likewise.
5706         (aarch64_st3_lane<mode>): Likewise.
5707         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
5708
5709 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5710
5711         * config/aarch64/aarch64-simd.md
5712         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
5713         Change all TImode operands to BLKmode.
5714         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
5715         Change all EImode operands to BLKmode.
5716         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
5717         Change all OImode operands to BLKmode.
5718
5719         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
5720         and call set_mem_size.
5721         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
5722
5723         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
5724
5725 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5726
5727         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
5728         to...
5729         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
5730
5731         (vec_store_lanesci_lane<mode>): Rename to...
5732         (aarch64_vec_store_lanesci_lane<mode>): ...this.
5733
5734         (vec_store_lanesxi_lane<mode>): Rename to...
5735         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
5736
5737         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5738         aarch64_st4_lane<mode>): Follow renaming.
5739
5740 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5741
5742         * config/s390/s390.c (s390_const_operand_ok): Add missing
5743         brackets.
5744
5745 2015-09-15  Richard Biener  <rguenther@suse.de>
5746
5747         PR lto/67568
5748         * lto-streamer.h (lto_location_cache::current_sysp): Properly
5749         initialize.
5750         * lto-streamer-out.c (clear_line_info): Likewise.
5751
5752 2015-09-15  Richard Biener  <rguenther@suse.de>
5753
5754         * doc/match-and-simplify.texi: Fix wording.
5755
5756 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
5757
5758         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
5759         unnecessary type conversion in op1.
5760
5761 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5762
5763         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
5764         (dup_block_and_redirect): Delete function.
5765         (can_dup_for_shrink_wrapping): New function.
5766         (fix_fake_fallthrough_edge): New function.
5767         (try_shrink_wrapping): Rewrite function.
5768         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
5769
5770 2015-09-14  Rich Felker  <dalias@libc.org>
5771
5772         * configure.ac: Change target pattern for sh TLS support
5773         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
5774         * configure: Regenerate.
5775
5776 2015-09-14  Jeff Law  <law@redhat.com>
5777
5778         PR tree-optimization/47679
5779         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
5780         type rather than void *.
5781
5782 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5783
5784         PR fortran/67460
5785         * diagnostic.c (diagnostic_initialize): Do not set
5786         some_warnings_are_errors.
5787         (diagnostic_finish): Use DK_WERROR count instead.
5788         (diagnostic_report_diagnostic): Do not set
5789         some_warnings_are_errors.
5790         * diagnostic.h (struct diagnostic_context): Remove
5791         some_warnings_are_errors.
5792
5793 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
5794
5795         * config/sparc/predicates.md (const_all_ones_operand): Use
5796         CONSTM1_RTX to simplify definition.
5797
5798 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
5799
5800         PR target/67061
5801         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
5802         Handle call insns.
5803
5804 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
5805
5806         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
5807         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
5808         OPT_fshow_column to handled saved option cases.
5809         (append_compiler_options): Do not skip the above added options.
5810
5811 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5812
5813         PR target/63304
5814         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
5815         nopcrelative_literal_loads.
5816         (aarch64_classify_address): Likewise.
5817         (aarch64_constant_pool_reload_icode): Define.
5818         (aarch64_secondary_reload): Handle secondary reloads for
5819         literal pools.
5820         (aarch64_override_options): Handle nopcrelative_literal_loads.
5821         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
5822         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
5823         Define.
5824         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5825         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
5826         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
5827         predicate.
5828         * doc/invoke.texi (mpc-relative-literal-loads): Document.
5829
5830 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
5831
5832         PR middle-end/67401
5833         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
5834         sync_compare_and_swap_optab libcall to target_oval.
5835
5836 2015-09-14  Marek Polacek  <polacek@redhat.com>
5837
5838         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
5839         value.
5840         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
5841
5842 2015-09-11  Mark Wielaard  <mjw@redhat.com>
5843
5844         PR c/28901
5845         * toplev.c (check_global_declaration): Check and use
5846         warn_unused_const_variable.
5847         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
5848         (-Wunused-variable): Remove non-constant. For C implies
5849         -Wunused-const-variable.
5850         (-Wunused-const-variable): New.
5851
5852 2015-09-14  Richard Biener  <rguenther@suse.de>
5853
5854         * doc/match-and-simplify.texi: Update for changed syntax
5855         of inner ifs and the new switch expression.
5856
5857 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
5858
5859         * config/i386/haswell.md: New file describing Haswell pipeline.
5860         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
5861         haswell-like processors.
5862         (ix86_reassociation_width): Increase reassociation width for 64-bit
5863         Haswell processor family.
5864         * config/i386/i386.md: Introduce haswell cpu and include new md file.
5865
5866 2015-09-14  Richard Biener  <rguenther@suse.de>
5867
5868         * doc/match-and-simplify.texi: Fixup some formatting issues
5869         and document the 's' flag.
5870
5871 2015-09-13  Olivier Hainque  <hainque@adacore.com>
5872             Eric Botcazou  <ebotcazou@adacore.com>
5873
5874         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
5875         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
5876         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
5877         (TARGET_CPU_gr5): Likewise.
5878         (TARGET_CPU_gr6): Likewise.
5879         (MULTILIB_DEFAULTS): Likewise.
5880         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
5881         for mcpu=gr5 and mcpu=gr6.
5882         (MULTILIB_DIRNAMES): Adjust accordingly.
5883
5884 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5885
5886         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
5887         (mem_ref_p): Likewise.
5888         (outermost_indep_loop): Adjust.
5889         (mem_ref_in_stmt): Likewise.
5890         (determine_max_movement): Likewise.
5891         (mem_ref_alloc): Likewise.
5892         (record_mem_ref_loc): Likewise.
5893         (set_ref_stored_in_loop): Likewise.
5894         (mark_ref_stored): Likewise.
5895         (gather_mem_refs_stmt): Likewise.
5896         (mem_refs_may_alias_p): Likewise.
5897         (for_all_locs_in_loop): Likewise.
5898         (struct rewrite_mem_ref_loc): Likewise.
5899         (rewrite_mem_refs): Likewise.
5900         (struct first_mem_ref_loc_1): Likewise.
5901         (first_mem_ref_loc): Likewise.
5902         (struct sm_set_flag_if_changed): Likewise.
5903         (execute_sm_if_changed_flag_set): Likewise.
5904         (execute_sm): Likewise.
5905         (hoist_memory_references):
5906         (struct ref_always_accessed): Likewise.
5907         (ref_always_accessed_p): Likewise.
5908         (refs_independent_p): Likewise.
5909         (record_dep_loop): Likewise.
5910         (ref_indep_loop_p_1): Likewise.
5911         (ref_indep_loop_p_2): Likewise.
5912         (ref_indep_loop_p): Likewise.
5913         (can_sm_ref_p): Likewise.
5914         (find_refs_for_sm): Likewise.
5915         (tree_ssa_lim_finalize): Likewise.
5916
5917 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5918
5919         * dwarf2out.c (dw_attr_ref): Remove typedef.
5920         (dw_line_info_ref): Likewise.
5921         (pubname_ref): Likewise.
5922         (dw_ranges_ref): Likewise.
5923         (dw_ranges_by_label_ref): Likewise.
5924         (comdat_type_node_ref): Likewise.
5925         (get_AT): Adjust.
5926         (get_AT_low_pc): Likewise.
5927         (get_AT_hi_pc): Likewise.
5928         (get_AT_string): Likewise.
5929         (get_AT_flag): Likewise.
5930         (get_AT_unsigned): Likewise.
5931         (get_AT_ref): Likewise.
5932         (get_AT_file): Likewise.
5933         (remove_AT): Likewise.
5934         (print_die): Likewise.
5935         (check_die): Likewise.
5936         (die_checksum): Likewise.
5937         (attr_checksum_ordered): Likewise.
5938         (struct checksum_attributes): Likewise.
5939         (collect_checksum_attributes): Likewise.
5940         (die_checksum_ordered): Likewise.
5941         (same_die_p): Likewise.
5942         (is_declaration_die): Likewise.
5943         (clone_die): Likewise.
5944         (clone_as_declaration): Likewise.
5945         (copy_declaration_context): Likewise.
5946         (break_out_comdat_types): Likewise.
5947         (copy_decls_walk): Likewise.
5948         (output_location_lists): Likewise.
5949         (external_ref_hasher::hash): Likewise.
5950         (optimize_external_refs_1): Likewise.
5951         (build_abbrev_table): Likewise.
5952         (size_of_die): Likewise.
5953         (unmark_all_dies): Likewise.
5954         (size_of_pubnames): Likewise.
5955         (output_die_abbrevs): Likewise.
5956         (output_die): Likewise.
5957         (output_pubnames): Likewise.
5958         (add_ranges_num): Likewise.
5959         (add_ranges_by_labels): Likewise.
5960         (add_high_low_attributes): Likewise.
5961         (gen_producer_string): Likewise.
5962         (dwarf2out_set_name): Likewise.
5963         (new_line_info_table): Likewise.
5964         (prune_unused_types_walk_attribs): Likewise.
5965         (prune_unused_types_update_strings): Likewise.
5966         (prune_unused_types): Likewise.
5967         (resolve_addr): Likewise.
5968         (optimize_location_lists_1): Likewise.
5969         (index_location_lists): Likewise.
5970         (dwarf2out_finish): Likewise.
5971
5972 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5973
5974         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
5975
5976 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5977
5978         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
5979         (dump_asserts_for): Adjust.
5980         (register_new_assert_for): Likewise.
5981         (process_assert_insertions): Likewise.
5982         (insert_range_assertions): Likewise.
5983
5984 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5985
5986         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
5987         and remove typedef.
5988         (new_temp_expr_table): Adjust.
5989         (free_temp_expr_table): Likewise.
5990         (version_to_be_replaced_p): Likewise.
5991         (make_dependent_on_partition): Likewise.
5992         (add_to_partition_kill_list): Likewise.
5993         (remove_from_partition_kill_list): Likewise.
5994         (add_dependence): Likewise.
5995         (finished_with_expr): Likewise.
5996         (process_replaceable): Likewise.
5997         (kill_expr): Likewise.
5998         (kill_virtual_exprs): Likewise.
5999         (mark_replaceable): Likewise.
6000         (find_replaceable_in_bb): Likewise.
6001         (find_replaceable_exprs): Likewise.
6002         (debug_ter): Likewise.
6003
6004 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6005
6006         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
6007         (struct btr_user): Rename from btr_user_s.
6008         (struct btr_def): Rename from btr_def_s.
6009         (find_btr_def_group): Adjust.
6010         (add_btr_def): Likewise.
6011         (new_btr_user): Likewise.
6012         (note_other_use_this_block): Likewise.
6013         (compute_defs_uses_and_gen): Likewise.
6014         (link_btr_uses): Likewise.
6015         (build_btr_def_use_webs): Likewise.
6016         (block_at_edge_of_live_range_p): Likewise.
6017         (btr_def_live_range): Likewise.
6018         (combine_btr_defs): Likewise.
6019         (move_btr_def): Likewise.
6020         (migrate_btr_def): Likewise.
6021         (migrate_btr_defs): Likewise.
6022
6023 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6024
6025         * var-tracking.c (shared_hash_def): Rename to shared_hash.
6026         (shared_hash): Remove typedef.
6027         (struct dataflow_set): Adjust.
6028         (shared_hash_unshare): Likewise.
6029         (dataflow_set_merge): Likewise.
6030         (vt_initialize): Likewise.
6031         (vt_finalize): Likewise.
6032
6033 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6034
6035         * var-tracking.c (struct location_chain): Rename from
6036         location_chain_def.
6037         (struct variable_part): Adjust.
6038         (variable_htab_free): Likewise.
6039         (unshare_variable): Likewise.
6040         (get_init_value): Likewise.
6041         (get_addr_from_local_cache): Likewise.
6042         (drop_overlapping_mem_locs): Likewise.
6043         (val_reset): Likewise.
6044         (struct variable_union_info): Likewise.
6045         (variable_union): Likewise.
6046         (find_loc_in_1pdv): Likewise.
6047         (insert_into_intersection): Likewise.
6048         (intersect_loc_chains): Likewise.
6049         (canonicalize_loc_order_check): Likewise.
6050         (canonicalize_values_mark): Likewise.
6051         (canonicalize_values_star): Likewise.
6052         (canonicalize_vars_star): Likewise.
6053         (variable_merge_over_cur): Likewise.
6054         (remove_duplicate_values): Likewise.
6055         (variable_post_merge_new_vals): Likewise.
6056         (variable_post_merge_perm_vals): Likewise.
6057         (find_mem_expr_in_1pdv): Likewise.
6058         (dataflow_set_preserve_mem_locs): Likewise.
6059         (dataflow_set_remove_mem_locs): Likewise.
6060         (variable_part_different_p): Likewise.
6061         (onepart_variable_different_p): Likewise.
6062         (find_src_set_src): Likewise.
6063         (dump_var): Likewise.
6064         (set_slot_part): Likewise.
6065         (clobber_slot_part): Likewise.
6066         (delete_slot_part): Likewise.
6067         (vt_expand_var_loc_chain): Likewise.
6068         (emit_note_insn_var_location): Likewise.
6069         (vt_finalize): Likewise.
6070
6071 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6072
6073         * dse.c (store_info_t): Remove typedef.
6074         (group_info_t): Likewise.
6075         (const_group_info_t): Likewise.
6076         (deferred_change_t): Likewise.
6077         (get_group_info): Adjust.
6078         (free_store_info): Likewise.
6079         (canon_address): Likewise.
6080         (clear_rhs_from_active_local_stores): Likewise.
6081         (record_store): Likewise.
6082         (replace_read): Likewise.
6083         (check_mem_read_rtx): Likewise.
6084         (scan_insn): Likewise.
6085         (remove_useless_values): Likewise.
6086         (dse_step1): Likewise.
6087         (dse_step2_init): Likewise.
6088         (dse_step2_nospill): Likewise.
6089         (scan_stores_nospill): Likewise.
6090         (scan_reads_nospill): Likewise.
6091         (dse_step3_exit_block_scan): Likewise.
6092         (dse_step3): Likewise.
6093         (dse_step5_nospill): Likewise.
6094         (dse_step6): Likewise.
6095
6096 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6097
6098         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
6099         (alias_set_entry): Remove typedef.
6100         (alias_set_subset_of): Adjust.
6101         (alias_sets_conflict_p): Likewise.
6102         (init_alias_set_entry): Likewise.
6103         (get_alias_set): Likewise.
6104         (new_alias_set): Likewise.
6105         (record_alias_subset): Likewise.
6106
6107 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
6108
6109         * doc/install.texi (Downloading the source): Mark up
6110         contrib/download_prerequisites properly and drop leading "./".
6111
6112 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6113
6114         * config/arc/arc.h: Remove define of STRUCT_VALUE.
6115         * config/lm32/lm32.h: Likewise.
6116         * config/mep/mep.h: Likewise.
6117         * config/visium/visium.h: Likewise.
6118         * system.h: Poison STRUCT_VALUE macro.
6119
6120 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
6121
6122         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
6123         CONSTANT_P operands.
6124
6125 2015-09-11  David S. Miller  <davem@davemloft.net>
6126
6127         * config/sparc/constraints.md: Make "U" constraint a real register
6128         constraint.
6129         * config/sparc/sparc.c (TARGET_LRA_P): Define.
6130         (D_MODES, DF_MODES): Add missing cast.
6131         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
6132         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
6133         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
6134         cost to 8.
6135         * config/sparc/sparc.h (PROMOTE_MODE): Define.
6136         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
6137         provide these insn when flag_pic.
6138
6139 2015-09-11  Jeff Law  <law@redhat.com>
6140
6141         PR tree-optimization/47679
6142         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
6143         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
6144         member with m_.  Update inline member functions as necessary.  Add
6145         toplevel comment.
6146         * tree-ssa-scopedtables.c: Update const_and_copies's member
6147         functions to use m_ prefix to access the stack.
6148
6149 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6150
6151         * graphite-optimize-isl.c (disable_tiling): Remove.
6152         (get_schedule_for_band): Do not use disable_tiling.
6153         (get_prevector_map): Delete function.
6154         (enable_polly_vector): Remove.
6155         (get_schedule_for_band_list): Remove dead code.
6156
6157 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6158
6159         * graphite-optimize-isl.c (get_tile_map): Refactor.
6160         (get_schedule_for_band): Same.
6161         (getScheduleForBand): Same.
6162         (get_prevector_map): Same.
6163         (get_schedule_for_band_list): Same.
6164         (get_schedule_map): Same.
6165         (get_single_map): Same.
6166         (apply_schedule_map_to_scop): Same.
6167         (optimize_isl): Same.
6168
6169 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6170
6171         PR target/63304
6172         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
6173         (movtf): Delete.
6174         * config/aarch64/iterators.md (GPF_TF_F16): New.
6175         (GPF_F16): Delete.
6176
6177 2015-09-10  Nathan Sidwell  <nathan@acm.org>
6178
6179         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
6180         (nvptx_reorg): Adjust comments.
6181
6182 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
6183
6184         PR bootstrap/67363
6185         * configure.ac: Check if setenv and unsetenv are declared.
6186         * configure: Rebuild.
6187         * config.in: Rebuild.
6188         * system.h: Declare setenv and unsetenv if not declared.
6189
6190 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6191
6192         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
6193         commentary to simplify permute mask adjustment equation.
6194         (special_handling_values): Add SH_VPERM.
6195         (const_load_sequence_p): New function.
6196         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
6197         the mask loaded from the constant pool.
6198         (adjust_vperm): New function.
6199         (handle_special_swappables): Call adjust_vperm.
6200         (dump_swap_insn_table): Handle SH_VPERM.
6201
6202 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6203
6204         * shrink-wrap.c (requires_stack_frame_p): Remove static.
6205         * shrink-wrap.h (requires_stack_frame_p): Put back.
6206
6207 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
6208
6209         * reload1.c (elimination_costs_in_insn): Locally turn
6210         -Wmaybe-uninitialized into a warning.
6211
6212 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
6213
6214         * shrink-wrap.c (requires_stack_frame_p): Make static.
6215         (prepare_shrink_wrap): Likewise.
6216         (dup_block_and_redirect): Likewise.
6217         * shrink-wrap.h: Remove declarations of those functions.
6218
6219 2015-09-10  Mark Wielaard  <mjw@redhat.com>
6220
6221         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
6222
6223 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
6224
6225         PR target/67506
6226         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
6227         missing simplify_gen_subreg.
6228
6229 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6230
6231         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
6232         the vector element is bigger than 64 bit.
6233
6234 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6235
6236         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
6237         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
6238
6239 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6240
6241         * config/s390/s390.c: Add V1TImode to constant pool modes.
6242
6243 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6244
6245         PR target/67439
6246         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
6247         predicate.  Set predicable_short_it attr to "no".
6248
6249 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
6250
6251         PR rtl-optimization/67421
6252         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
6253         left wide shift tranformation.
6254
6255 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
6256
6257         * common/config/arc/arc-common.c: Remove references to A5.
6258         * config/arc/arc-opts.h: Likewise.
6259         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
6260         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
6261         * config/arc/t-arc-newlib: Likewise.
6262
6263 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
6264
6265         * config/arc/arc.md (length): Fix attribute length for conditional
6266         executed instructions with long immediate.
6267
6268 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6269
6270         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
6271         type for second alternative.
6272
6273 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
6274
6275         * doc/invoke.texi (Downloading GCC): Mention
6276         contrib/download_prerequisites script.
6277
6278 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
6279
6280         PR c++/67523
6281         * gimplify.c (gimplify_omp_for): If inner stmt is not found
6282         for combined loop, assert seen_error () and return GS_ERROR.
6283
6284         PR middle-end/67521
6285         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
6286         if decl is already in outer->variables.
6287
6288         PR middle-end/67517
6289         * gimplify.c (gimplify_scan_omp_clauses): Instead of
6290         asserting that decl is not specified in octx->variables,
6291         break out of the loop if it is.
6292
6293         PR c++/67514
6294         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
6295         iterator is not explicitly determined, but is defined inside
6296         of the combined workshare region, handle it like if it has
6297         DECL_EXPR in OMP_FOR_PRE_BODY.
6298
6299 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6300
6301         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
6302         (*cmp<mode>): Add assembler spacing.
6303         (setcc_int<mode>, set_cc_float<mode>): Likewise.
6304         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
6305         level.
6306         (write_func_decl_from_insn): Refactor argument loops & comma emission.
6307         (nvptx_expand_call): Likewise.
6308         (nvptx_output_call_insn): Likewise.
6309         (nvptx_reorg_subreg): Add spacing.
6310
6311 2015-09-09  Marek Polacek  <polacek@redhat.com>
6312
6313         PR middle-end/67512
6314         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
6315         for comparisons.
6316
6317 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
6318
6319         PR c++/53184
6320         * doc/invoke.texi ([Wsubobject-linkage]): Document.
6321
6322 2015-09-09  Tom de Vries  <tom@codesourcery.com>
6323
6324         * params-list.h: Add missing copyright notice.
6325
6326 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6327
6328         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
6329         sel_truesi, not andsi.
6330
6331 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6332
6333         * config/arm/arm.md (*subsi3_compare0): Rename to...
6334         (subsi3_compare0): ... This.
6335         (modsi3): New define_expand.
6336         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
6337         when operand is power of 2.
6338
6339 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6340
6341         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
6342         (*neg<mode>2_compare0): Rename to...
6343         (neg<mode>2_compare0): ... This.
6344         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
6345         Move check for speed inside the if-then-elses.  Reflect
6346         CSNEG sequence in MOD by power of 2 case.
6347
6348 2015-09-09  Alan Modra  <amodra@gmail.com>
6349
6350         PR target/67378
6351         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
6352         reload replacement for PRE_MODIFY address reg.
6353
6354 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
6355
6356         PR tree-optimization/53852
6357         * config.in: Regenerate.
6358         * configure: Regenerate.
6359         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
6360         * graphite-optimize-isl.c (optimize_isl): Stop computation when
6361         PARAM_MAX_ISL_OPERATIONS is reached.
6362         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
6363         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
6364         result equal to isl_stat_ok as the status now can be isl_error_quota.
6365         (subtract_commutative_associative_deps): Same.
6366         (compute_deps): Same.
6367
6368 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
6369             Sebastian Pop  <s.pop@samsung.com>
6370
6371         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
6372         Return the parameter if it was saved in corresponding
6373         parameter_rename_map of the region.
6374         (copy_def): Copy def from sese region to the newly created region.
6375         (copy_internal_parameters): Copy all the internal parameters defined
6376         within a region to the newly created region.
6377         (graphite_regenerate_ast_isl): Copy parameters to the new region before
6378         translating isl to gimple.
6379         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
6380         the loop-nest does not have any data-references.
6381         (build_graphite_scops): Create a scop only when there is at least one
6382         loop inside it.
6383         (contains_only_close_phi_nodes): Deleted.
6384         (print_graphite_scop_statistics): Deleted
6385         (print_graphite_statistics): Deleted
6386         (limit_scops): Deleted.
6387         (build_scops): Removed call to limit_scops.
6388         * sese.c (new_sese): Construct.
6389         (free_sese): Destruct.
6390         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
6391         added.
6392         (set_rename): Pass sese region so that parameters inside the region can
6393         be added to its parameter_rename_map.
6394         (rename_uses): Pass sese region.
6395         (graphite_copy_stmts_from_block): Do not copy parameters that have been
6396         generated in the header of the scop. For each SSA_NAME in the
6397         parameter_rename_map rename its usage.
6398         (invariant_in_sese_p_rec): Return false if tree t is defined outside
6399         sese region.
6400         (scalar_evolution_in_region): If the tree t is invariant just return t.
6401         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
6402         struct sese to keep track of all the parameters which need renaming.
6403         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
6404         any data-refs.
6405         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
6406
6407 2015-09-08  Tom de Vries  <tom@codesourcery.com>
6408
6409         * Makefile.in (generated_files): Add params.list.
6410         (params.list, s-params.list): Add rule.
6411         * params.h (enum compiler_param): Include params-list.h.  Move define
6412         DEFPARAM, include params.def and undef DEFPARAM ...
6413         * params-list.h: ... here.  New file.
6414
6415 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
6416
6417         * pretty-print.h (printer_fn): Fix typo in comment.
6418
6419 2015-09-07  Jeff Law  <law@redhat.com>
6420
6421         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
6422
6423 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6424
6425         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
6426         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
6427         (arm_neon_fp16_hw): New.
6428
6429 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6430
6431         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
6432         UNITS_PER_WORD >= 4.
6433
6434 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6435
6436         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
6437         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
6438         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
6439         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
6440         (aarch64_float_extend_lo_v2df): Rename to...
6441         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
6442
6443         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
6444         (float_extend_lo): Add v4sf.
6445
6446         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
6447         * config/aarch64/iterators.md (VQ_HSF): New iterator.
6448         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
6449         (Vwide): New mode_attr.
6450
6451 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6452
6453         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
6454         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
6455         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
6456         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
6457         V4HF and V8HF variants to iterator.
6458
6459         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
6460
6461         * config/aarch64/iterators.md (VDQF_F16): New.
6462         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
6463
6464 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6465
6466         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
6467         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6468         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
6469         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
6470         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
6471         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6472         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
6473         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
6474         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
6475         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
6476         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
6477         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6478         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
6479         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
6480         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
6481         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
6482         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
6483         vld1q_dup_f16): New.
6484
6485 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6486
6487         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
6488         Reparameterize to...
6489         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
6490         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
6491         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
6492
6493         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
6494         v8hf variant.
6495         (float_truncate_lo_): Use BUILTIN_VDF iterator.
6496
6497         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
6498
6499         * config/aarch64/iterators.md (VDF, Vdtype): New.
6500         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
6501
6502 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6503
6504         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
6505         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
6506         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
6507         Add __builtin_aarch64_simd_hf.
6508         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
6509         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
6510         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
6511         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
6512         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
6513         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
6514         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
6515         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
6516         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
6517
6518         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
6519         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
6520         (VDC, Vdbl): Add V4HF.
6521
6522 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6523
6524         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
6525         V4HFmode and V8HFmode.
6526         (aarch64_split_simd_move): Add case for V8HFmode.
6527         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
6528         (aarch64_simd_builtin_std_type): Handle HFmode.
6529         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
6530
6531         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
6532         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
6533         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
6534
6535         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
6536         Float16x8_t.
6537
6538         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
6539         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
6540         New typedefs.
6541         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
6542         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
6543         vst1q_lane_f16): New.
6544         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
6545         (VALLDI_F16, VALL_F16): New.
6546         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
6547         Add cases for V4HF and V8HF.
6548         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
6549
6550 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6551
6552         * config/arm/arm-builtins.c (VAR11, VAR12): New.
6553         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
6554         vld4_dup): Add v4hf variant.
6555         (vget_high, vget_low): Add v8hf variant.
6556         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
6557         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
6558         v4hf and v8hf variants.
6559
6560         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
6561         (VDX): Add V4HF.
6562         (V_DOUBLE): Add case for V4HF.
6563         (VQX): Add V8HF.
6564         (V_HALF): Add case for V8HF.
6565         (VDQX): Add V4HF, V8HF.
6566         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
6567         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
6568
6569         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
6570         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
6571         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
6572         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
6573         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
6574         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
6575         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
6576         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
6577         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
6578
6579         (neon_vcreate, neon_vreinterpretv8qi<mode>,
6580         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6581         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
6582         Change VDX to VD_RE.
6583
6584         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
6585         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
6586         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
6587
6588         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
6589         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
6590         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
6591         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
6592         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
6593         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
6594         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
6595         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
6596         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
6597
6598 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6599
6600         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
6601         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
6602         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
6603         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
6604         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6605         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
6606         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
6607         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
6608         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
6609         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
6610         New.
6611
6612 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6613
6614         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
6615
6616         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
6617
6618         * config/arm/arm-builtins.c (v8hf_UP): New.
6619         (arm_init_simd_builtin_types): Initialise Float16x8_t.
6620
6621         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
6622
6623         * config/arm/arm_neon.h (float16x8_t): New typedef.
6624
6625 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6626
6627         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
6628         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
6629         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
6630         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
6631         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6632         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
6633         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
6634         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
6635         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6636         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
6637
6638 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
6639
6640         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
6641         non-alphanumeric characters in the symbol name.
6642
6643 2015-09-07  Marek Polacek  <polacek@redhat.com>
6644
6645         PR inline-asm/67448
6646         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
6647         a memory input.
6648
6649 2015-09-07  Marek Polacek  <polacek@redhat.com>
6650
6651         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
6652
6653 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
6654
6655         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
6656         not warn.
6657
6658 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
6659
6660         PR middle-end/67452
6661         * tree-ssa-live.c: Include cfgloop.h.
6662         (remove_unused_locals): Clear loop->simduid if simduid is about
6663         to be removed from cfun->local_decls.
6664
6665 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6666
6667         PR target/65210
6668         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
6669         attribute as well.
6670
6671 2015-09-04  Tom de Vries  <tom@codesourcery.com>
6672
6673         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
6674
6675 2015-09-04  Jeff Law  <law@redhat.com>
6676
6677         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
6678         unnecessary constructor.  It's now trivial and implemented inside...
6679         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
6680         constructor.  Add comments to various methods.  Remove unused
6681         private fields.
6682         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
6683         * tree-vrp.c (identify_jump_threads): Likewise.
6684         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
6685         indentation issues.
6686         (thread_across_edge): Similarly.
6687         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
6688         arguments in constructor call.
6689
6690 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
6691
6692         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
6693         temp path contains a '-'.
6694
6695 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6696             Petr Murzin  <petr.murzin@intel.com>
6697             Kirill Yukhin  <kirill.yukhin@intel.com>
6698
6699         * config/i386/i386-builtin-types.def
6700         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
6701         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
6702         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
6703         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
6704         * config/i386/i386.c
6705         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
6706         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6707         IX86_BUILTIN_SCATTERALTDIV16SI.
6708         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
6709         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
6710         __builtin_ia32_scatteraltdiv8si.
6711         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
6712         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6713         IX86_BUILTIN_SCATTERALTDIV16SI.
6714         (ix86_vectorize_builtin_scatter): New.
6715         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
6716         ix86_vectorize_builtin_scatter.
6717
6718 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6719             Petr Murzin  <petr.murzin@intel.com>
6720             Kirill Yukhin  <kirill.yukhin@intel.com>
6721
6722         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
6723         * doc/tm.texi: Regenerate.
6724         * target.def: Add scatter builtin.
6725         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
6726         for loads/stores in case of gather/scatter accordingly.
6727         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6728         STMT_VINFO_GATHER_P(S).
6729         (vect_check_gather): Rename to ...
6730         (vect_check_gather_scatter): this.
6731         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
6732         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
6733         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6734         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
6735         variable and new checkings for it accordingly.
6736         * tree-vect-stmts.c
6737         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6738         STMT_VINFO_GATHER_P(S).
6739         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6740         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
6741
6742 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6743
6744         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
6745         define_insn.
6746         (mulv16qi3): New define_expand.
6747
6748 2015-09-03  Martin Sebor  <msebor@redhat.com>
6749
6750         PR c/66516
6751         * doc/extend.texi (Other Builtins): Document when the address
6752         of a built-in function can be taken.
6753
6754 2015-09-03  Richard Biener  <rguenther@suse.de>
6755
6756         * dwarf2out.c (flush_limbo_die_list): Split out from ...
6757         (dwarf2out_early_finish): ... here.
6758         (dwarf2out_finish): Do not call dwarf2out_early_finish but
6759         flush_limbo_die_list.  Assert we have no deferred asm names.
6760
6761 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6762
6763         * optabs.c (expand_binop): Don't create a broadcast vector with a
6764         source element wider than the inner mode.
6765
6766 2015-09-03  Richard Biener  <rguenther@suse.de>
6767
6768         * varasm.c (output_constant): Use fold_convert instead of
6769         wide_int_to_tree.
6770
6771 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6772
6773         PR tree-optimization/65637
6774         * omp-low.c (expand_omp_for_static_chunk): Handle case that
6775         fin_bb has 2 predecessors.
6776
6777 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6778
6779         PR tree-optimization/65637
6780         * omp-low.c (find_phi_with_arg_on_edge): New function.
6781         (expand_omp_for_static_chunk): Fix inner loop phi.
6782
6783 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6784
6785         PR tree-optimization/65637
6786         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
6787         that head is NULL.
6788
6789 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6790
6791         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
6792
6793 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6794
6795         * doc/invoke.texi (parloops-chunk-size): Add item.
6796         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
6797         * tree-parloops.c: Include params.h.
6798         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
6799         param parloops-chunk-size is used.
6800
6801 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6802
6803         PR middle-end/67351
6804         * fold-const.c (fold_binary_loc) : Move
6805         Transform (x >> c) << c into x & (-1<<c) or
6806         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
6807         types using simplify and match.
6808         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
6809         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
6810
6811 2015-09-03  Richard Biener  <rguenther@suse.de>
6812
6813         PR ipa/66705
6814         * tree-ssa-structalias.c (ctor_for_analysis): New function.
6815         (create_variable_info_for_1): Use ctor_for_analysis instead
6816         of get_constructor.
6817         (create_variable_info_for): Likewise.
6818
6819 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
6820
6821         PR ipa/67280
6822         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
6823         in new callgraph edge.
6824
6825 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
6826
6827         PR target/59810
6828         PR target/63652
6829         PR target/63653
6830         * config/aarch64/aarch64-simd.md
6831         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
6832         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
6833         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
6834         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
6835
6836 2015-09-02  Alan Modra  <amodra@gmail.com>
6837
6838         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
6839         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
6840         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
6841
6842 2015-09-02  Alan Modra  <amodra@gmail.com>
6843
6844         PR target/67417
6845         * config/rs6000/predicates.md (current_file_function_operand): Don't
6846         return true for weak symbols.
6847         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
6848
6849 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
6850             Andrew Bennett  <andrew.bennett@imgtec.com>
6851
6852         * config/mips/mips-opts.h (mips_cb_setting): New enum.
6853         * config/mips/mips-protos.h: Add definitions for
6854         mips_output_jump and mips_output_equal_conditional_branch
6855         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
6856         JIC instruction.
6857         (mips_emit_compare): Add support for the MIPS R6 conditional
6858         compact branches.
6859         (mips_process_sync_loop): Likewise.
6860         (mips_output_order_conditional_branch): Likewise.
6861         (mips16_build_call_stub): Change MIPS_CALL to
6862         mips_output_jump.
6863         (mips_print_operand_punctuation): Update 's' case to only
6864         apply to micromips r2.
6865         (mips_adjust_insn_length): Add support for forbidden slot
6866         hazards.
6867         (mips_avoid_hazard): Likewise.
6868         (mips_reorg_process_insns): Likewise.
6869         (mips_output_jump): New function.
6870         (mips_output_equal_conditional_branch): Likewise.
6871         (mips_output_conditional_branch): Use jrc/bc if compact
6872         branch support is enabled.  Ensure the forbidden slots
6873         between the two branch instructions is filled with a nop.
6874         (mips_option_override): Add support to process the compact
6875         branch option and set the correct defaults.  Prevent
6876         non-explict relocs being using for MIPS R6.
6877         (mips_trampoline_init): Add compact branch support.
6878         (mips_mult_zero_zero_cost): Allow zero initialisation of
6879         accumulators with TARGET_DSP.
6880         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
6881         (TARGET_CB_MAYBE): New define.
6882         (TARGET_CB_ALWAYS): New define.
6883         (ISA_HAS_DELAY_SLOTS): New define.
6884         (ISA_HAS_COMPACT_BRANCHES): New define.
6885         (ISA_HAS_JRC): New define.
6886         (MIPS_BRANCH_C): New define.
6887         (MIPS_CALL): Removed.
6888         (MICROMIPS_J): Removed.
6889         * config/mips/mips.md (compact_form): New attr.
6890         (hazard): Add support for forbidden slots.
6891         (define_delay): Add support for compact branches.
6892         (*branch_order<mode>): Likewise.
6893         (*branch_order<mode>_inverted): Likewise.
6894         (*branch_equality<mode>): Likewise.
6895         (*branch_equality<mode>_inverted): Likewise.
6896         (*jump_absolute): Likewise.
6897         (*jump_pic): Likewise.
6898         (indirect_jump): Use mips_output_jump to produce assembly output.
6899         (tablejump_<mode>"): Likewise.
6900         (*<optab>"): Likewise.
6901         (<optab>_internal): Likewise.
6902         (sibcall_internal): Likewise.
6903         (sibcall_value_internal): Likewise.
6904         (sibcall_value_multiple_internal): Likewise.
6905         (call_internal): Likewise.
6906         (call_split): Likewise.
6907         (call_internal_direct): Likewise.
6908         (call_direct_split): Likewise.
6909         (call_value_internal): Likewise.
6910         (call_value_split): Likewise.
6911         (call_value_internal_direct): Likewise.
6912         (call_value_direct_split): Likewise.
6913         (call_value_multiple_internal): Likewise.
6914         (call_value_multiple_split): Likewise.
6915         (mips_get_fcsr_mips16_<mode>): Likewise.
6916         (mips_set_fcsr_mips16_<mode>): Likewise.
6917         (tls_get_tp_mips16_<mode>): Likewise.
6918         * config/mips/mips.opt: Add -mcompact-branches option.
6919         * config/mips/predicates.md (order_operator): Ensure the
6920         conditional compact branches are only used if the ISA them.
6921         * doc/invoke.texi: Document -mcompact-branches option.
6922
6923 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
6924
6925         PR target/61578
6926         * lra-lives.c (process_bb_lives): Process move pseudos with the
6927         same value for copies and preferences
6928         * lra-constraints.c (match_reload): Create match reload pseudo
6929         with the same value from single dying input pseudo.
6930
6931 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6932
6933         PR target/67405
6934         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
6935
6936 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
6937
6938         * trans-mem.c: Add contributed-by.
6939         * trans-mem.h: Same.
6940
6941 2015-09-01  Richard Biener  <rguenther@suse.de>
6942
6943         * expr.c (expand_expr_real_1): For expanding TERed defs
6944         set the current location to that of the def if not UNKNOWN.
6945
6946 2015-09-01  David Sherwood  <david.sherwood@arm.com>
6947
6948         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
6949
6950 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6951
6952         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
6953         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
6954         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
6955         Include rtl-iter.h.
6956         (noce_simple_bbs): New function.
6957         (noce_try_move): Bail if basic blocks are not simple.
6958         (noce_try_store_flag): Likewise.
6959         (noce_try_store_flag_constants): Likewise.
6960         (noce_try_addcc): Likewise.
6961         (noce_try_store_flag_mask): Likewise.
6962         (noce_try_cmove): Likewise.
6963         (noce_try_minmax): Likewise.
6964         (noce_try_abs): Likewise.
6965         (noce_try_sign_mask): Likewise.
6966         (noce_try_bitop): Likewise.
6967         (bbs_ok_for_cmove_arith): New function.
6968         (noce_emit_all_but_last): Likewise.
6969         (noce_emit_insn): Likewise.
6970         (noce_emit_bb): Likewise.
6971         (noce_try_cmove_arith): Handle non-simple basic blocks.
6972         (insn_valid_noce_process_p): New function.
6973         (contains_mem_rtx_p): Likewise.
6974         (bb_valid_for_noce_process_p): Likewise.
6975         (noce_process_if_block): Allow non-simple basic blocks
6976         where appropriate.
6977
6978 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
6979
6980         * tree-ssa-dom.c (record_equivalences_from_phis,
6981         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
6982         (lookup_avail_expr): Likewise, and remove comment and unused temp.
6983
6984 2015-09-01  Nick Clifton  <nickc@redhat.com>
6985
6986         * config/msp430/msp430.opt (mcpu): Fix typo.
6987
6988 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6989
6990         * config/aarch64/aarch64.c (aarch64_set_current_function):
6991         Re-layout any vector parameters have non-simd layout.
6992         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
6993         Delete.
6994         (aarch64_simd_expand_args): Delete call to the above.
6995
6996 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
6997
6998         * doc/invoke.texi (asan-stack): Add space before option.
6999
7000 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
7001
7002         * tree.h (zerop): New function.
7003         * tree.c (zerop): Likewise.
7004         (element_precision): Handle expressions.
7005         * match.pd (define_predicates): Add zerop.
7006         (x <= +Inf): Fix comment.
7007         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
7008         * fold-const.c (fold_binary_loc): ... here. Remove.
7009
7010 2015-08-31  Richard Biener  <rguenther@suse.de>
7011
7012         PR middle-end/67381
7013         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
7014
7015 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
7016
7017         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
7018         (CEXPI): New operator list.
7019         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
7020         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
7021         Converted from ...
7022         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
7023
7024 2015-08-31  Tom de Vries  <tom@codesourcery.com>
7025
7026         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
7027         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
7028         parameter.
7029         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
7030         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
7031         (rewrite_into_loop_closed_ssa): ... here.
7032         (replace_uses_in_dominated_bbs): Remove function.
7033         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
7034         rewrite_into_loop_closed_ssa_1.
7035
7036 2015-08-31  Michael Matz  <matz@suse.de>
7037
7038         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
7039         enter entry and exit blocks for reverse post order.
7040
7041 2015-08-31  Richard Biener  <rguenther@suse.de>
7042
7043         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
7044         (lto_location_cache::current_sysp): Likewise.
7045         (output_block::current_sysp): Likewise.
7046         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
7047         (lto_location_cache::apply_location_cache): Properly record
7048         system header locations.
7049         (lto_location_cache::input_location): Input whether a file
7050         is a system header.
7051         * lto-streamer-out.c (lto_output_location): Stream whether a file
7052         is a system header.
7053
7054 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7055
7056         PR bootstrap/67363
7057         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
7058
7059 2015-08-31  Tom de Vries  <tom@codesourcery.com>
7060
7061         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
7062         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
7063         Improve function header comments.
7064
7065 2015-08-30  Michael Collison  <michael.collison@linaro.org>
7066
7067         PR other/67320
7068         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
7069         standard names
7070
7071 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7072
7073         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
7074         special_handling bitfield.
7075         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
7076         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
7077         that represents a general xxpermdi.
7078         (insn_is_swappable_p): Add handling for vec_concat of two
7079         doublewords, which maps to a specific xxpermdi.
7080         (adjust_xxpermdi): New function.
7081         (adjust_concat): Likewise.
7082         (handle_special_swappables): Call adjust_xxpermdi and
7083         adjust_concat.
7084         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
7085
7086 2015-08-30  Rich Felker <dalias@libc.org>
7087
7088         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
7089         case instead of sh[123456ble]-*-*.
7090
7091 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
7092
7093         * ira.c (print_unform_and_important_classes,
7094         print_translated_classes): Remove reg_class_names static array.
7095         (print_unform_and_important_classes): Rename to ...
7096         (print_uniform_and_important_classes): ... this.
7097         (ira_debug_allocno_classes): Update accordingly.
7098
7099 2015-08-29  Tom de Vries  <tom@codesourcery.com>
7100
7101         PR tree-optimization/46193
7102         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
7103         clause.
7104
7105 2015-08-28  Jeff Law  <law@redhat.com>
7106
7107         PR lto/66752
7108         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
7109         unable to find X NE 0 in the tables, return X as the simplified
7110         condition.
7111         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
7112         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
7113         to VISISTED_BBS.
7114         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
7115         after removing the control flow statement and unnecessary edges.
7116
7117 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
7118
7119         Revert:
7120         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7121
7122         PR tree-optimization/67283
7123         * tree-sra.c (type_consists_of_records_p): Rename to...
7124         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7125
7126         (completely_scalarize_record): Rename to...
7127         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
7128         code to:
7129         (scalarize_elem): New.
7130
7131 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
7132
7133         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
7134         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
7135         (aarch64_symbol_type): Likewise.
7136         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7137         Likewise.
7138         (aarch64_expand_mov_immediate): Likewise.
7139         (aarch64_print_operand): Likewise.
7140         (aarch64_classify_tls_symbol): Likewise.
7141
7142 2015-08-28  Richard Biener  <rguenther@suse.de>
7143
7144         * cgraphunit.c (symbol_table::compile): Move early debug generation
7145         and finish...
7146         (symbol_table::finalize_compilation_unit): ... back here and
7147         add a !seen_error () guard.
7148
7149 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7150
7151         * toplev.c (process_options): Do not use flag_loop_block,
7152         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
7153         flag_loop_optimize_isl.
7154
7155 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7156
7157         * Makefile.in (OBJS): Remove graphite-blocking.o and
7158         graphite-interchange.o.
7159         * common.opt (floop-strip-mine, floop-interchange, floop-block):
7160         Alias of floop-nest-optimize.
7161         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
7162         Document as alias of -floop-nest-optimize.
7163         * graphite-blocking.c: Remove.
7164         * graphite-interchange.c: Remove.
7165         * graphite-optimize-isl.c: Include dumpfile.h.
7166         (getScheduleForBand): Add dump for tiled loops.  Use
7167         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
7168         * graphite-poly.c (scop_max_loop_depth): Remove.
7169         (print_scattering_function_1): Remove.
7170         (print_scattering_function): Remove.
7171         (print_scattering_functions): Remove.
7172         (debug_scattering_function): Remove.
7173         (debug_scattering_functions): Remove.
7174         (apply_poly_transforms): Remove use of flag_loop_block,
7175         flag_loop_strip_mine, and flag_loop_interchange.
7176         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
7177         PBB_ORIGINAL.
7178         (print_pdr_access_layout): Remove.
7179         (print_pdr): Print ISL representation.
7180         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
7181         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
7182         (free_scop): Same.
7183         (openscop_print_pbb_domain): Remove.
7184         (print_pbb): Remove call to print_scattering_function.
7185         (openscop_print_scop_context): Remove.
7186         (print_scop_context): Do not print matrices anymore.
7187         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
7188         SCOP_TRANSFORMED_SCHEDULE.
7189         (print_isl_set): Add printing of a new line.
7190         (print_isl_map): Same.
7191         (print_isl_aff): Same.
7192         (print_isl_constraint): Same.
7193         (loop_to_lst): Remove.
7194         (scop_to_lst): Remove.
7195         (lst_indent_to): Remove.
7196         (print_lst): Remove.
7197         (debug_lst): Remove.
7198         (dot_lst_1): Remove.
7199         (dot_lst): Remove.
7200         (reverse_loop_at_level): Remove.
7201         (reverse_loop_for_pbbs): Remove.
7202         * graphite-poly.h (pdr_dim_iter_domain): Remove.
7203         (pdr_nb_params): Remove.
7204         (pdr_alias_set_dim): Remove.
7205         (pdr_subscript_dim): Remove.
7206         (pdr_iterator_dim): Remove.
7207         (pdr_parameter_dim): Remove.
7208         (same_pdr_p): Remove.
7209         (struct poly_scattering): Remove.
7210         (struct poly_bb): Remove _original, _transformed, _saved.
7211         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
7212         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
7213         (PBB_NB_LOCAL_VARIABLES): Remove.
7214         (PBB_NB_SCATTERING_TRANSFORM): Remove.
7215         (schedule_to_scattering): Remove.
7216         (number_of_write_pdrs): Remove.
7217         (pbb_dim_iter_domain): Remove.
7218         (pbb_nb_params): Remove.
7219         (pbb_nb_scattering_orig): Remove.
7220         (pbb_nb_scattering_transform): Remove.
7221         (pbb_nb_dynamic_scattering_transform): Remove.
7222         (pbb_nb_local_vars): Remove.
7223         (pbb_iterator_dim): Remove.
7224         (pbb_parameter_dim): Remove.
7225         (psco_scattering_dim): Remove.
7226         (psct_scattering_dim): Remove.
7227         (psct_local_var_dim): Remove.
7228         (psco_iterator_dim): Remove.
7229         (psct_iterator_dim): Remove.
7230         (psco_parameter_dim): Remove.
7231         (psct_parameter_dim): Remove.
7232         (psct_dynamic_dim): Remove.
7233         (psct_static_dim): Remove.
7234         (psct_add_local_variable): Remove.
7235         (new_lst_loop): Remove.
7236         (new_lst_stmt): Remove.
7237         (free_lst): Remove.
7238         (copy_lst): Remove.
7239         (lst_add_loop_under_loop): Remove.
7240         (lst_depth): Remove.
7241         (lst_dewey_number): Remove.
7242         (lst_dewey_number_at_depth): Remove.
7243         (lst_pred): Remove.
7244         (lst_succ): Remove.
7245         (lst_find_pbb): Remove.
7246         (find_lst_loop): Remove.
7247         (lst_find_first_pbb): Remove.
7248         (lst_empty_p): Remove.
7249         (lst_find_last_pbb): Remove.
7250         (lst_contains_p): Remove.
7251         (lst_contains_pbb): Remove.
7252         (lst_create_nest): Remove.
7253         (lst_remove_from_sequence): Remove.
7254         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
7255         (lst_niter_for_loop): Remove.
7256         (pbb_update_scattering): Remove.
7257         (lst_update_scattering_under): Remove.
7258         (lst_update_scattering): Remove.
7259         (lst_insert_in_sequence): Remove.
7260         (lst_replace): Remove.
7261         (lst_substitute_3): Remove.
7262         (lst_distribute_lst): Remove.
7263         (lst_remove_all_before_including_pbb): Remove.
7264         (lst_remove_all_before_excluding_pbb): Remove.
7265         (struct scop): Remove original_schedule, transformed_schedule, and
7266         saved_schedule.
7267         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
7268         (SCOP_SAVED_SCHEDULE): Remove.
7269         (poly_scattering_new): Remove.
7270         (poly_scattering_free): Remove.
7271         (poly_scattering_copy): Remove.
7272         (store_scattering_pbb): Remove.
7273         (store_lst_schedule): Remove.
7274         (restore_lst_schedule): Remove.
7275         (store_scattering): Remove.
7276         (restore_scattering_pbb): Remove.
7277         (restore_scattering): Remove.
7278         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
7279         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
7280         compute the scattering polyhedron dimension from the dimension of
7281         pbb->domain.
7282         (build_scop_scattering): Update call to
7283         build_pbb_scattering_polyhedrons.
7284         (build_poly_scop): Remove call to scop_to_lst.
7285         * graphite.c (graphite_transform_loops): Add call to print_scop.
7286         (gate_graphite_transforms): Remove use of flag_loop_block,
7287         flag_loop_interchange, and flag_loop_strip_mine.
7288
7289 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7290
7291         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
7292         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
7293         -floop-nest-optimize.
7294         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
7295         (generate_luj_sepclass): Remove.
7296         (generate_luj_options): Remove.
7297         (set_options): Remove opt_luj.
7298         (scop_to_isl_ast): Remove opt_luj.
7299         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
7300         flag_loop_unroll_jam.
7301         (getPrevectorMap_full): Remove.
7302         (getScheduleForBandList): Remove map_sepcl.
7303         (getScheduleMap): Same.
7304         (apply_schedule_map_to_scop): Remove sepcl.
7305         (optimize_isl): Same.
7306         * graphite-poly.c (apply_poly_transforms): Remove check for
7307         flag_loop_unroll_jam.
7308         (new_poly_bb): Remove map_sepclass.
7309         * graphite-poly.h (struct poly_bb): Same.
7310         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
7311         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
7312         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
7313         * toplev.c (process_options): Remove flag_loop_unroll_jam.
7314
7315 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
7316
7317         PR target/67317
7318         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
7319         (addqi3_cc): Ditto.
7320         (UNSPEC_ADD_CARRY): Remove.
7321         (addqi3_cconly_overflow): New expander.
7322         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
7323         Adjust for changed add<mode>3_carry.
7324         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
7325         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
7326         (<plusminus_insn><mode>3_carry): Remove expander.
7327         (*<plusminus_insn><mode>3_carry): Split insn pattern to
7328         add<mode>3_carry and sub<mode>3_carry.
7329         (plusminus_carry_mnemonic): Remove code attribute.
7330         (add<mode>3_carry): Canonicalize insn pattern.
7331         (*addsi3_carry_zext): Ditto.
7332         (sub<mode>3_carry): Ditto.
7333         (*subsi3_carry_zext): Ditto.
7334         (adcx<mode>3): Remove insn pattern.
7335         (addcarry<mode>): New insn pattern.
7336         (subborrow<mode>): Ditto.
7337         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
7338         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
7339         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
7340         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
7341         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
7342         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
7343         Rewrite expander to not clobber carry flag chains.
7344
7345 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
7346
7347         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
7348         instead of a rotate.
7349
7350 2015-08-27  Marek Polacek  <polacek@redhat.com>
7351
7352         PR middle-end/67005
7353         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
7354         an entry into an irreducible region.
7355
7356 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7357
7358         * configure: Regenerate.
7359
7360 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7361
7362         PR tree-optimization/67283
7363         * tree-sra.c (type_consists_of_records_p): Rename to...
7364         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7365
7366         (completely_scalarize_record): Rename to...
7367         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7368         (scalarize_elem): New.
7369
7370 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7371
7372         * tree-sra.c (completely_scalarize_var): Rename to...
7373         (create_total_scalarization_access): ... Here. Drop call to
7374         completely_scalarize_record.
7375
7376         (analyze_all_variable_accesses): Replace completely_scalarize_var
7377         with create_total_scalarization_access and completely_scalarize_record.
7378
7379 2015-08-27  Alan Modra  <amodra@gmail.com>
7380
7381         PR target/67356
7382         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
7383         for operand 1.
7384
7385 2015-08-27  Richard Biener  <rguenther@suse.de>
7386
7387         * passes.c (rest_of_decl_compilation): Guard early_global_decl
7388         call with !seen_error ().
7389         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
7390         early debug generation and finish...
7391         (symbol_table::compile): ... here to put it after a !seen_error ()
7392         guard.
7393
7394 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7395
7396         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
7397         Solaris 12+.
7398
7399 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7400             Andre Vieira  <andre.simoesdiasvieira@arm.com>
7401
7402         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
7403         (*cb<optab><mode>1): Likewise.
7404         (*tb<optab><mode>1): Likewise.
7405         (*cb<optab><mode>1): Likewise.
7406         * config/aarch64/iterators.md (inv_cb): New code attribute.
7407         (inv_tb): Likewise.
7408         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
7409         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
7410
7411 2015-08-27  Richard Biener  <rguenther@suse.de>
7412
7413         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
7414
7415 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7416
7417         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
7418         trap to fix ICE.
7419
7420 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7421
7422         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
7423         Add declaration.
7424
7425         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
7426         comment.
7427         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
7428         floating point in VSX registers.
7429         (rs6000_output_move_128bit): Always print out the set insn if we
7430         can't generate an appropriate 128-bit move.
7431         (rs6000_generate_compare): Add support for IEEE 128-bit floating
7432         point in VSX registers comparisons.
7433         (rs6000_expand_float128_convert): Likewise.
7434
7435         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
7436         predicate for only GPR hard registers.
7437
7438         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
7439         modes to iterators. Add new iterators for moving 128-bit values in
7440         scalar FPR registers and VSX registers.
7441         (FMOVE128): Likewise.
7442         (FMOVE128_FPR): Likewise.
7443         (FMOVE128_GPR): Likewise.
7444         (FMOVE128_VSX): Likewise.
7445         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
7446         in VSX registers.
7447         (IFKF): Likewise.
7448         (IBM128): Likewise.
7449         (TFIFKF): Likewise.
7450         (RELOAD): Add IEEE 128-bit floating point modes.
7451         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
7452         floating point in VSX registers modes.
7453         (signbit<mode>2, IBM128 iterator): Likewise.
7454         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
7455         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7456         (negtf2): Likewise.
7457         (neg<mode>2, TFIFKF iterator): Likewise.
7458         (negtf2_internal): Likewise.
7459         (abstf2): Likewise.
7460         (abs<mode>2, TFIFKF iterator): Likewise.
7461         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
7462         VSX insn support for negate, absolute value, and negative absolute
7463         value.
7464         (ieee_128bit_vsx_neg<mode>2): Likewise.
7465         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
7466         (ieee_128bit_vsx_abs<mode>2): Likewise.
7467         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7468         (ieee_128bit_vsx_nabs<mode>2): Likewise.
7469         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7470         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
7471         floating point in VSX registers.
7472         (unpack<mode>_dm): Likewise.
7473         (unpack<mode>_nodm): Likewise.
7474         (pack<mode>): Likewise.
7475         (unpackv1ti): Likewise.
7476         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
7477         (packv1ti): Likewise.
7478         (pack<mode>, FMOVE128_VSX iterator): Likewise.
7479         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
7480         registers.
7481         (extenddftf2_internal): Likewise.
7482         (trunctfdf2): Likewise.
7483         (trunctfdf2_internal2): Likewise.
7484         (fix_trunc_helper): Likewise.
7485         (fix_trunctfdi2"): Likewise.
7486         (floatditf2): Likewise.
7487         (floatuns<mode>tf2): Likewise.
7488         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
7489         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
7490         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
7491         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
7492         (float<SDI:mode><IFKF:mode>2): Likewise.
7493         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
7494
7495 2015-08-26  Renlin Li  <renlin.li@arm.com>
7496
7497         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
7498
7499 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7500             Jiong Wang  <jiong.wang@arm.com>
7501
7502         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
7503         (tlsie_tiny_<mode>): New define_insn.
7504         (tlsie_tiny_sidi): Likewise.
7505         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
7506         SYMBOL_TINY_TLSIE.
7507         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
7508         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7509         SYMBOL_TINY_TLSIE.
7510         (aarch64_expand_mov_immediate): Likewise.
7511         (aarch64_print_operand): Likewise.
7512         (arch64_classify_tls_symbol): Likewise.
7513
7514 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7515
7516         * config/arm/arm-arches.def: Replace single value flags with
7517         an initializer built from ARM_FSET_MAKE_CPU1.
7518         * config/arm/arm-cores.def: Likewise.
7519         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
7520         derivation from the ARM_CORE macro definition, use the given value
7521         instead.
7522         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
7523         ARM_ARCH macro definition, use the given value instead.
7524
7525 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7526
7527         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
7528         feature set.
7529         (struct builtin_description): Replace field mask with field
7530         features.
7531         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
7532         (IWMMXT2_BUILTIN): Likewise.
7533         (IWMMXT2_BUILTIN2): Likewise.
7534         (FP_BUILTIN): Likewise.
7535         (CRC32_BUILTIN): Likewise.
7536         (CRYPTO_BUILTIN): Likewise.
7537         (iwmmx_mbuiltin): Likewise.
7538         (iwmmx2_mbuiltin): Likewise.
7539         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
7540         struct builtin_description.
7541
7542 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7543
7544         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
7545         (struct builtin_description): Change type of mask to unsigned
7546         long.
7547         * config/arm/arm-protos.h (insn_flags): Declare as type
7548         arm_feature_set.
7549         (tune_flags): Likewise.
7550         * config/arm/arm.c (feature_count): New.
7551         (insn_flags): Define as type arm_feature_set.
7552         (tune_flags): Likewise.
7553         (struct processors): Define field flags as type arm_feature_set.
7554         (all_cores): Update for change to struct processors.
7555         (all_architectures): Likewise.
7556         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
7557         macros.
7558         (arm_option_override_internal): Likewise.
7559         (arm_option_override): Likewise.
7560
7561 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7562             Jiong Wang  <jiong.wang@arm.com>
7563
7564         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
7565         tls size for tiny, small, large memory model.
7566         (aarch64_load_symref_appropriately): Support new symbol types.
7567         (aarch64_expand_mov_immediate): Likewise.
7568         (aarch64_print_operand): Likewise.
7569         (aarch64_classify_tls_symbol): Likewise.
7570         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
7571         (aarch64_symbol_type): Likewise.
7572         * config/aarch64/aarch64.md (tlsle): Deleted.
7573         (tlsle12_<mode>): New define_insn.
7574         (tlsle24_<mode>): Likewise.
7575         (tlsle32_<mode>): Likewise.
7576         (tlsle48_<mode>): Likewise.
7577         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7578         "aarch64_tlsle32".
7579
7580 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7581
7582         * config/arm/arm-protos.h (FL_NONE): New.
7583         (FL_ANY): New.
7584         (arm_feature_set): New.
7585         (ARM_FSET_MAKE): New.
7586         (ARM_FSET_MAKE_CPU1): New.
7587         (ARM_FSET_MAKE_CPU2): New.
7588         (ARM_FSET_CPU1): New.
7589         (ARM_FSET_CPU2): New.
7590         (ARM_FSET_EMPTY): New.
7591         (ARM_FSET_ANY): New.
7592         (ARM_FSET_HAS_CPU1): New.
7593         (ARM_FSET_HAS_CPU2): New.
7594         (ARM_FSET_HAS_CPU): New.
7595         (ARM_FSET_ADD_CPU1): New.
7596         (ARM_FSET_ADD_CPU2): New.
7597         (ARM_FSET_DEL_CPU1): New.
7598         (ARM_FSET_DEL_CPU2): New.
7599         (ARM_FSET_UNION): New.
7600         (ARM_FSET_INTER): New.
7601         (ARM_FSET_XOR): New.
7602         (ARM_FSET_EXCLUDE): New.
7603         (AFM_FSET_IS_EMPTY): New.
7604         (ARM_FSET_CPU_SUBSET): New.
7605
7606 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7607
7608         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7609         SYMBOL_TLSLE to SYMBOL_TLSLE24.
7610         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7611         Likewise.
7612         (aarch64_expand_mov_immediate): Likewise.
7613         (aarch64_print_operand): Likewise.
7614         (aarch64_classify_symbol): Likewise.
7615
7616 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7617
7618         * config/aarch64/aarch64.opt (mtls-size): New entry.
7619         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
7620         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
7621         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
7622
7623 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7624
7625         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
7626         ARM_CORE entry.  Fix some white-space.
7627         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
7628         ARM_CORE definition.
7629
7630 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7631
7632         * fold-const.c (fold_binary_loc) : Move Optimize
7633         root(x)*root(y) as root(x*y) to match.pd.
7634         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
7635         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
7636         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
7637         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
7638         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
7639         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
7640         (mult (exps:s @0) (exps:s @1)) : New simplifier.
7641         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
7642         (rdiv @0 (exps:s @1)) : New simplifier.
7643
7644 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
7645
7646         * gcc.c (driver::finalize): Only assign to extra_specs if
7647         [EXTRA_SPECS].
7648
7649 2015-08-25  Marek Polacek  <polacek@redhat.com>
7650
7651         PR middle-end/67330
7652         * varasm.c (declare_weak): Return after giving an error.
7653
7654 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
7655
7656         * gcc-main.c (main): Add params to driver ctor.
7657         * gcc.c (class env_manager): New.
7658         (env): New global.
7659         (env_manager::init): New.
7660         (env_manager::get): New.
7661         (env_manager::xput): New.
7662         (env_manager::restore): New.
7663         Poison getenv and putenv.
7664         (DEFAULT_TARGET_SYSTEM_ROOT): New.
7665         (target_system_root): Update initialization to use
7666         DEFAULT_TARGET_SYSTEM_ROOT.
7667         (struct spec_list): Add field "default_ptr".
7668         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
7669         (init_spec): Likewise.
7670         (set_spec): Clear field "default_ptr".
7671         (read_specs): Free "spec" and "buffer".
7672         (xputenv): Reimplement in terms of env_manager.
7673         (process_command): Replace ::getenv calls with calls to the
7674         env_manager singleton.
7675         (process_brace_body): Free string in three places.
7676         (driver::driver): New.
7677         (driver::~driver): New.
7678         (used_arg): Convert from a function to...
7679         (class used_arg_t): ...this class, and...
7680         (used_arg): ...this new global instance.
7681         (used_arg_t::finalize): New function.
7682         (getenv_spec_function): Add "const" to local "value".  Replace
7683         ::getenv call with call to the env_manager singleton.
7684         (path_prefix_reset): New function.
7685         (driver::finalize): New function.
7686         * gcc.h (driver::driver): New.
7687         (driver::~driver): New.
7688         (driver::finalize): New.
7689
7690 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7691
7692         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
7693         target doesn't have one.
7694
7695 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7696
7697         PR target/67346
7698         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
7699
7700 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7701
7702         PR target/67344
7703         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
7704         a define_insn, remove second alternative.
7705
7706 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
7707             Joseph Myers  <joseph@codesourcery.com>
7708
7709         * gcc.c (struct switchstr): Expand comment.
7710
7711 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7712
7713         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
7714         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
7715
7716 2015-08-25  Richard Biener  <rguenther@suse.de>
7717
7718         PR middle-end/67306
7719         * genmatch.c (expr::gen_transform): Verify the result of
7720         builtin_decl_implicit.
7721         (dt_simplify::gen_1): Likewise.
7722
7723 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7724
7725         * config/arm/constraints.md: Also list Cs and US ARM-specific
7726         constraints as used.
7727
7728 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7729
7730         PR target/66609
7731         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
7732         UNSPEC_PCREL.
7733         (nonpic_symbol_mentioned_p): Likewise.
7734         (sh_delegitimize_address): Likewise.
7735         (sh_function_ok_for_sibcall): Take into account weak symbols.
7736         (sh_expand_sym_label2reg): New.
7737         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
7738         * config/sh/sh.md (UNSPEC_PCREL): New enum.
7739         (call_pcrel): Use sh_expand_sym_label2reg.
7740         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7741         (symPCREL_label2reg) New expand.
7742
7743 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7744
7745         * graphite-poly.c: Change type of region from void* to sese.
7746         * graphite-poly.h (struct scop): Changing the type of scop::region
7747         from void* to sese. Change accessor macro accordingly.
7748         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
7749
7750 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7751
7752         * graphite-scop-detection.c (stmt_simple_for_scop_p):
7753         Constrain only on INTEGER_TYPE.
7754
7755 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7756
7757         PR target/67211
7758         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
7759         -mefficient-unaligned-vsx on ISA 2.7.
7760
7761         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
7762         option to a masked option.
7763
7764         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
7765         logic for -mefficient-unaligned-vsx so that it is set via an arch
7766         ISA option, instead of being set if -mtune=power8 is set. Move
7767         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
7768         near other default option handling.
7769
7770 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7771
7772         * genflags.c (gen_macro): Delete.
7773         (gen_proto): Don't create GEN.*CALL.* macros.
7774         * gensupport.h (get_file_location): Declare.
7775         * gensupport.c (rtx_locs): New variable.
7776         (read_md_rtx): Record rtx locations.
7777         (get_file_location): New function.
7778         * target-insns.def (call, call_pop, call_value, call_value_pop)
7779         (sibcall, sibcall_value): New patterns.
7780         * gentarget-def.c (parse_argument): New function.
7781         (def_target_insn): Use it.  Handle optional operands.  Raise an
7782         error if an .md pattern has the wrong number of operands for the
7783         pattern name.  Remove the names of unused operands from the prototype.
7784         * builtins.c (expand_builtin_apply): Use targetm functions
7785         instead of HAVE_call_value and GEN_CALL_VALUE.
7786         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
7787         and sibcall_value_pop.
7788         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
7789         of GEN_CALL.
7790         * config/alpha/alpha.md (untyped_call): Likewise.
7791         * config/iq2000/iq2000.md (untyped_call): Likewise.
7792         * config/m68k/m68k.md (untyped_call): Likewise.
7793         * config/mips/mips.md (untyped_call): Likewise.
7794         * config/pa/pa.md (untyped_call): Likewise.
7795         * config/rs6000/rs6000.md (untyped_call): Likewise.
7796         * config/sparc/sparc.md (untyped_call): Likewise.
7797         * config/tilegx/tilegx.md (untyped_call): Likewise.
7798         * config/tilepro/tilepro.md (untyped_call): Likewise.
7799         * config/visium/visium.md (untyped_call): Likewise.
7800         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
7801         gen_call_value instead of GEN_CALL_VALUE.
7802         * config/arm/arm.md (untyped_call): Likewise.
7803         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
7804         GEN_CALL.
7805
7806 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7807
7808         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
7809         (have_cbranchcc4): New variable.
7810         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
7811         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
7812         (if_convert): Initialize have_cbranchcc4.
7813
7814 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7815
7816         * builtins.c (expand_cmpstrn): Rename to...
7817         (expand_cmpstrn_or_cmpmem): ...this.
7818         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
7819         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
7820         Remove mode argument.
7821         (expand_builtin): Update accordingly.
7822
7823 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7824
7825         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
7826         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
7827         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
7828         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
7829         Add predicates for operands 0 and 3.
7830         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
7831         operand.
7832         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
7833         immediate_operand to nonmemory_operand.
7834
7835 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7836
7837         * df-scan.c (df_insn_info_init_fields): New function, split out
7838         from...
7839         (df_insn_create_insn_record): ...here.
7840         (df_insn_info_free_fields): New function, split out from...
7841         (df_insn_info_delete): ...here.
7842         (df_insn_rescan): Use the new functions instead of freeing and
7843         reallocating the df_insn_info.
7844
7845 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7846
7847         * doc/install.texi (Binaries): Remove links no longer valid.
7848
7849 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
7850
7851         * config/nvptx/mkoffload.c (process): Replace
7852         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
7853
7854 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
7855
7856         PR target/67329
7857         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
7858
7859 2015-08-24  Renlin Li  <renlin.li@arm.com>
7860
7861         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
7862         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
7863         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
7864         * config/arm/constraints.md ("j"): Add check for high code.
7865
7866 2015-08-24  Tom de Vries  <tom@codesourcery.com>
7867
7868         PR tree-optimization/65468
7869         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
7870         chunk_size is one.
7871
7872 2015-08-24  Nathan Sidwell  <nathan@acm.org>
7873
7874         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
7875         change to nvptx_type_from_mode call. Use arg_promotion for both
7876         split and non-split args.
7877
7878 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7879
7880         * target-insns.def (movstr): New pattern.
7881         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
7882         (expand_movstr): Use targetm rather than HAVE_movstr/
7883         CODE_FOR_movstr.
7884
7885 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7886
7887         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
7888         cast syntax.
7889
7890 2015-08-24  Andrew Pinski  <apinski@cavium.com>
7891
7892         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
7893         AARCH64_EXTRA_TUNING_OPTION.
7894         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
7895         New enum.
7896         (aarch64_extra_tuning_flags): Base the shifted value on the index
7897         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
7898         * config/aarch64/aarch64.c: Remove the last argument to
7899         AARCH64_EXTRA_TUNING_OPTION.
7900
7901 2015-08-23  Nathan Sidwell  <nathan@acm.org>
7902
7903         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
7904         decls.
7905         (nvptx_declare_function_name): Insert formatting tabs for
7906         consistency.
7907
7908 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7909
7910         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
7911         parm_decl, rather than generating a dummy default def in cfun.
7912         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
7913         ssa_name from cfun and child_fn do not share a stmt as def stmt.
7914         (move_stmt_op): Handle PARM_DECl.
7915         (gather_ssa_name_hash_map_from): New function.
7916         (move_sese_region_to_fn): Add default defs for function params, and add
7917         them to vars_map.  Release copied ssa names.
7918         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
7919
7920 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7921
7922         * doc/sourcebuild.texi: Rename vect_no_int_max with
7923         vect_no_int_min_max.  Update description.
7924
7925 2015-08-22  Andrew Pinski  <apinski@cavium.com>
7926
7927          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
7928         * config/aarch64/aarch64-protos.h
7929         (aarch64_fusion_pairs_index): New enum.
7930         (aarch64_fusion_pairs): Base the shifted value on the index instead
7931         Rewrite AARCH64_FUSE_ALL to be based on the end index.
7932         of the argument to AARCH64_FUSION_PAIR.
7933         * config/aarch64/aarch64.c: Remove the last argument to
7934         AARCH64_FUSION_PAIR.
7935
7936 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
7937
7938         * dominance.c (new_zero_array): Define.
7939         (dom_info): Redefine as class with proper encapsulation.
7940         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
7941         Add new members.
7942         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
7943         allocations/deallocations.  Pass function as parameter (instead of
7944         using cfun).
7945         (dom_info::get_idom): Define accessor method.
7946         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
7947         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
7948         (calculate_dominance_info): Adjust to use dom_info class.
7949         (verify_dominators): Likewise.
7950
7951 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
7952
7953         * print-rtl.c (print_rtx): Check the correct range for
7954         flag_dump_unnumbered_links to behave as documented.
7955
7956         PR rtl-optimization/67227
7957         PR rtl-optimization/64164
7958         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
7959         (nonoverlapping_memrefs_p): Test offsets and sizes when given
7960         identical gimple_reg exprs.
7961
7962 2015-08-21  Nathan Sidwell  <nathan@acm.org>
7963
7964         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
7965         expansion.
7966         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
7967         crtl->stack_alignment_needed to determine alignment.
7968         (nvptx_get_drap_rtx): New.
7969         (TARGET_GET_DRAP_RTX): Override.
7970         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
7971
7972 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7973
7974         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
7975
7976 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7977
7978         * configure.ac: Remove uwin* cases.
7979         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
7980         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
7981         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
7982         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
7983         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
7984         i[34567]86-*-uwin*, powerpc-*-beos*.
7985
7986 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
7987
7988         * gencodes.c (gencodes): Print the comma for the preceding
7989         enum value rather than the current one.  Use aliased enum values
7990         rather than #defines for compiled-out patterns.
7991         (main): Update accordingly.  Replace LAST_INSN_CODE with
7992         NUM_INSN_CODES.
7993         * lra.c (insn_code_data): Update accordingly.
7994         (finish_insn_code_data_once, get_static_insn_data): Likewise.
7995         * recog.h (target_recog): Likewise.
7996         (preprocess_insn_constraints): Change parameter to unsigned int.
7997         * recog.c (preprocess_insn_constraints): Likewise.
7998         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
7999         * tree-vect-stmts.c (vectorizable_operation): Simplify.
8000
8001 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
8002
8003         PR rtl-optimization/61657
8004         * loop-iv.c (iv_number_of_iterations): Declare up and down as
8005         unsigned.  Remove superflous uint64_t cast.
8006
8007 2014-08-21  Felix Yang  <felix.yang@huawei.com>
8008             Jiji Jiang  <jiangjiji@huawei.com>
8009
8010         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
8011         argument and get builtin function code directly from CALL.
8012         (gimple_stringop_fixed_value): Modified accordingly.
8013         (gimple_stringops_transform, gimple_stringops_values_to_profile):
8014         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
8015
8016 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
8017
8018         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
8019
8020 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8021
8022         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
8023         to match.pd.
8024         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
8025         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
8026         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
8027         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
8028         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
8029         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
8030         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
8031         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
8032         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
8033         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
8034
8035         * match.pd (SIN ) : New Operator.
8036         (TAN) : New Operator.
8037         (mult (SQRT@1 @0) @1) : New simplifier.
8038         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
8039         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
8040         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
8041         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
8042         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
8043         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
8044         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
8045         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
8046         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
8047         (rdiv @0 (POW:s @1 @2)) : New simplifier.
8048
8049 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
8050
8051         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
8052         loop if EXPR is simplified to const value.
8053
8054 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
8055
8056         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
8057         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
8058
8059 2015-08-21  Richard Biener  <rguenther@suse.de>
8060
8061         PR middle-end/67285
8062         * gimple-fold.c (replace_stmt_with_simplification): Assert
8063         seq is empty when replacing a call with itself but different
8064         arguments.
8065         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
8066         a call require that it is const.
8067
8068 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8069
8070         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
8071         * builtins.c (get_object_alignment_2): Adjust.
8072         * varasm.c (align_variable): Likewise.
8073         (get_variable_align): Likewise.
8074         (build_constant_desc): Likewise.
8075         (force_const_mem): Likewise.
8076         * doc/tm.texi.in: Likewise.
8077         * doc/tm.texi: Regenerate.
8078
8079 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8080
8081         * genconfig.c (main): Always define HAVE_cc0.
8082         * recog.c (rest_of_handle_peephole2): Adjust.
8083
8084 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8085
8086         * reorg.c (relax_delay_slots): Don't use #if to check value of
8087         HAVE_cc0.
8088
8089 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8090
8091         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
8092         * targhooks.c (default_have_conditional_execution): Adjust.
8093
8094 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8095
8096         * rtl.h (rtvec_all_equal_p): Declare.
8097         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
8098         * rtl.c (rtvec_all_equal_p): New function.
8099         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
8100         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
8101         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
8102         * config/arm/arm.c (neon_vdup_constant): Likewise.
8103         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
8104         * config/tilegx/constraints.md (W, Y): Likewise.
8105         * config/tilepro/constraints.md (W, Y): Likewise.
8106         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
8107         (classify_immediate): Use unwrap_const_vec_duplicate.
8108         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
8109         (reg_or_v2s8bit_operand): Likewise.
8110         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
8111         (reg_or_v4s8bit_operand): Likewise.
8112
8113 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8114
8115         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
8116         (vec_shasigma_be): New #define.
8117         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
8118         (VPMSUMH): Likewise.
8119         (VPMSUMW): Likewise.
8120         (VPMSUMD): Likewise.
8121         (VPMSUM): New BU_P8V_OVERLOAD_2.
8122         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
8123         entries for VEC_MADD and VEC_VPMSUM.
8124
8125 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
8126
8127         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
8128         Multiply argument avr_n_flash by 64 to match unit of "KiB".
8129         (avr_pgm_check_var_decl): Same.
8130
8131 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
8132
8133         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
8134         initialization of HFmode scalar type (float16_t) to...
8135         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
8136         code.
8137
8138         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
8139
8140         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
8141         having an -mfp16-format.
8142
8143 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8144
8145         * config/i386/predicates.md (vector_all_ones_operand): Use
8146         CONSTM1_RTX to simplify definition.
8147
8148 2015-08-20  Richard Biener  <rguenther@suse.de>
8149
8150         * toplev.c (compile_file): Remove loop calling late_global_decl
8151         on all symbols.
8152         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
8153         on decls we assembled.
8154
8155 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
8156
8157         * common/config/aarch64/aarch64-common.c
8158         (AARCH64_CPU_NAME_LENGTH): Delete.
8159         (aarch64_option_extension): New.
8160         (all_extensions): Likewise.
8161         (processor_name_to_arch): Likewise.
8162         (arch_to_arch_name): Likewise.
8163         (all_cores): New.
8164         (all_architectures): Likewise.
8165         (aarch64_get_extension_string_for_isa_flags): Likewise.
8166         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
8167         architecture names.
8168         * config/aarch64/aarch64-protos.h
8169         (aarch64_get_extension_string_for_isa_flags): New.
8170         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
8171         (aarch64_option_print): Get the string to print from
8172         aarch64_get_extension_string_for_isa_flags.
8173         (aarch64_declare_function_name): Likewise.
8174         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
8175         (MCPU_TO_MARCH_SPEC): This.
8176         (ASM_CPU_SPEC): Use it.
8177         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
8178         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
8179         (EXTRA_SPEC_FUNCTIONS): Use it.
8180
8181 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
8182
8183         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
8184         expansion when !ISA_HAS_LWL_LWR.
8185         (mips_block_move_straight): Update the size of elements copied to
8186         account for alignment when !ISA_HAS_LWL_LWR.
8187         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
8188
8189 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8190
8191         * expr.c (expand_expr_real_2): Check gimple statement during
8192         LSHIFT_EXPR expand.
8193
8194 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
8195
8196         * common.opt (fstack-protector): Initialize to -1.
8197         (fstack-protector-all): Likewise.
8198         (fstack-protector-strong): Likewise.
8199         (fstack-protector-explicit): Likewise.
8200         * configure.ac: Add --enable-default-ssp.
8201         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
8202         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
8203         -1.
8204         * doc/install.texi: Document --enable-default-ssp.
8205         * config.in: Regenerated.
8206         * configure: Likewise.
8207
8208 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
8209
8210         PR rtl-optimization/64164
8211         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
8212         (parm_in_stack_slot_p): ... this.  Disregard mode, what
8213         matters is whether the parm will live in a pseudo or a stack
8214         slot.
8215         (expand_one_ssa_partition): Deal with params without a default
8216         def.  Disregard mode.
8217         * cfgexpand.h: Renamed function declaration.
8218         * tree-ssa-coalesce.c: Adjust.
8219         * function.c (split_complex_args): Allocate stack slot for
8220         unassigned parms before splitting.
8221         (parm_in_unassigned_mem_p): New.  Use it instead of
8222         parm_maybe_byref_p throughout this file.
8223         (assign_parm_setup_block): Use it.  Accept pseudos in the
8224         expand-assigned rtl.
8225         (assign_parm_setup_reg): Drop BLKmode requirement.
8226         (assign_parm_setup_stack): Allocate and fill in the address of
8227         unassigned MEM parms.
8228
8229 2015-08-19  David Sherwood  <david.sherwood@arm.com>
8230
8231         * genmodes.c (emit_mode_unit_size_inline): New function.
8232         (emit_mode_unit_precision_inline): New function.
8233         (emit_insn_modes_h): Emit new #define.  Emit new functions.
8234         (emit_mode_unit_size): New function.
8235         (emit_mode_unit_precision): New function.
8236         (emit_mode_adjustments): Add mode_unit_size adjustments.
8237         (emit_insn_modes_c): Emit new arrays.
8238         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
8239         use new inline methods.
8240
8241 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8242
8243         * config/aarch64/aarch64.c (bit_count): Delete prototype
8244         and definition.
8245         (aarch64_print_operand): Use popcount_hwi instead of the above.
8246
8247 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8248
8249         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
8250         comment.
8251
8252 2015-08-19  Marek Polacek  <polacek@redhat.com>
8253
8254         PR middle-end/67133
8255         * gimple-ssa-isolate-paths.c
8256         (insert_trap_and_remove_trailing_statements): Rename to ...
8257         (insert_trap): ... this.  Don't remove trailing statements; split
8258         block instead.
8259         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
8260
8261 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
8262
8263         PR other/67042
8264         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
8265         conditionalize the whole on __GNUC__.  Add fallback code
8266         depending neither on undefined nor implementation-defined behaviour.
8267
8268 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8269
8270         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
8271         whitespaces with tab.
8272
8273 2015-08-19  Florian Weimer  <fweimer@redhat.com>
8274
8275         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
8276         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
8277         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
8278         Move Name_Ids instantiation to the Prj.Proc package, to avoid
8279         trampolines.
8280
8281 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8282
8283         * config/arm/arm.c (bounds_check): Use %wd print format
8284         for HOST_WIDE_INT arguments.
8285
8286 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
8287
8288         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
8289         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
8290         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
8291         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
8292         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
8293         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
8294         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
8295         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
8296         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
8297         typedefs.
8298
8299 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
8300
8301         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
8302         function.c, graphite-scop-detection.c, haifa-sched.c,
8303         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
8304         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
8305         varasm.c: Remove typedefs of structs.
8306
8307 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
8308
8309         * config/rs6000/altivec.h (vec_adde): New define.
8310         (vec_addec): Likewise.
8311         (vec_double): Likewise.
8312         (vec_bperm): Likewise.
8313         (vec_gb): Likewise.
8314         * config/rs6000/rs6000-builtin.def (ADDE): New
8315         BU_ALTIVEC_OVERLOAD_3.
8316         (ADDEC): Likewise.
8317         (DOUBLE): New BU_VSX_OVERLOAD_1.
8318         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
8319         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
8320         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
8321         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
8322         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
8323         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
8324         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
8325         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
8326         and P8V_BUILTIN_VEC_VBPERMQ.
8327
8328 2015-08-18  Jason Merrill  <jason@redhat.com>
8329
8330         * print-tree.c (print_node): Handle TREE_BINFO.
8331
8332 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8333
8334         PR middle-end/36757
8335         * builtins.c (expand_builtin_signbit): Add asserts to make sure
8336         we can expand BUILT_IN_SIGNBIT inline.
8337         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
8338         * doc/extend.texi: Document the type-generic __builtin_signbit.
8339
8340 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
8341
8342         PR rtl-optimization/67218
8343         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
8344         (simplify_unary_operation_1): Use it.
8345
8346 2015-08-18  Marek Polacek  <polacek@redhat.com>
8347
8348         PR middle-end/67222
8349         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
8350         if the call isn't valid.
8351         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
8352         gimple_call_builtin_p.
8353         (call_may_clobber_ref_p_1): Likewise.
8354         (stmt_kills_ref_p): Likewise.
8355
8356 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
8357
8358         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
8359         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
8360         (mips_hard_regno_scratch_ok): Likewise.
8361         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
8362         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
8363
8364 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
8365
8366         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
8367         (determine_value_range): Call refine_value_range_using_guard for
8368         each loop initial condition to improve value range.
8369
8370 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
8371
8372         * config/i386/i386.c: Remove include of fibheap.h.
8373
8374 2015-08-17  Richard Biener  <rguenther@suse.de>
8375
8376         PR tree-optimization/67221
8377         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
8378         (sccvn_dom_walker::before_dom_children): Mark backedges of
8379         non-executable blocks as not executable.
8380
8381 2015-08-17  David Sherwood  <david.sherwood@arm.com>
8382
8383         * config/arm/arm.c (neon_element_bits): Replace call to
8384         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
8385         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
8386         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
8387         (neon_vdup_lane<mode>): Likewise.
8388         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
8389         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
8390         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
8391         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8392         * config/spu/spu.c (arith_immediate_p): Likewise.
8393         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8394         * expr.c (expand_expr_real_2): Likewise.
8395         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
8396         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8397         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8398         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
8399         New variable.
8400         * fold-const.c (fold_binary_loc): Replace call to
8401         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
8402         GET_MODE_UNIT_PRECISION (m).
8403
8404 2015-08-17  Mike Stump  <mikestump@comcast.net>
8405
8406         * config/arm/arm.c (arm_block_move_unaligned_straight):
8407         Emit normal move instead of unaligned load when source or destination
8408         are appropriately aligned.
8409
8410 2015-08-17  Richard Biener  <rguenther@suse.de>
8411             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8412
8413         PR middle-end/16107
8414         * match.pd (div (coss (op @0) : New simplifier.
8415
8416 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
8417
8418         PR rtl-optimization/64164
8419         PR bootstrap/66978
8420         PR middle-end/66983
8421         PR rtl-optimization/67000
8422         PR middle-end/67034
8423         PR middle-end/67035
8424         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
8425         * tree-ssa-copyrename.c: Removed.
8426         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
8427         -ftree-coalesce-vars.
8428         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
8429         * common.opt (ftree-copyrename): Ignore.
8430         (ftree-coalesce-inlined-vars): Likewise.
8431         * doc/invoke.texi: Remove the ignored options above.
8432         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
8433         * tree-ssa-coalesce.h: ... here.
8434         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
8435         headers required by it.
8436         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
8437         across variables when flag_tree_coalesce_vars.  Check register
8438         use and promoted modes to allow coalescing.  Do not coalesce
8439         maybe-byref parms with SSA_NAMEs of other variables, or
8440         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
8441         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
8442         with its member functions to tree-ssa-coalesce.c.
8443         (var_map_base_init): Likewise.  Renamed to
8444         compute_samebase_partition_bases.
8445         (partition_view_normal): Drop want_bases parameter.
8446         (partition_view_bitmap): Likewise.
8447         * tree-ssa-live.h: Adjust declarations.
8448         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
8449         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
8450         default defs at the entry point.
8451         (dump_part_var_map): New.
8452         (compute_optimized_partition_bases): New, called by...
8453         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
8454         of compute_samebase_partition_bases.  Adjust.
8455         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
8456         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
8457         (ssa_default_def_partition): New.
8458         (get_rtl_for_parm_ssa_default_def): New.
8459         (align_local_variable, add_stack_var): Support anonymous SSA
8460         names.
8461         (defer_stack_allocation): Likewise.  Declare earlier.
8462         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
8463         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
8464         Do no record deferred-allocation marker in
8465         SA.partition_to_pseudo.
8466         (expand_stack_vars): Adjust check for the marker in it.
8467         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
8468         redundant MEM attr setting.
8469         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
8470         from...
8471         (expand_one_stack_var): ... this.  New wrapper to check and
8472         skip already expanded SSA partitions.
8473         (record_alignment_for_reg_var): New, factored out of...
8474         (expand_one_var): ... this.
8475         (expand_one_ssa_partition): New.
8476         (adjust_one_expanded_partition_var): New.
8477         (expand_one_register_var): Check and skip already expanded SSA
8478         partitions.
8479         (expand_used_vars): Don't create DECLs for anonymous SSA
8480         names.  Expand all SSA partitions, then adjust all SSA names.
8481         (pass::execute): Replace the loops that set
8482         SA.partition_to_pseudo from partition leaders and cleared
8483         DECL_RTL for multi-location variables, and that which used to
8484         rename vars and set attrs, with one that clears DECL_RTL and
8485         checks that PARMs and RESULTs default_defs match DECL_RTL.
8486         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
8487         * emit-rtl.c: Include stor-layout.h.
8488         (set_reg_attrs_for_parm): Handle NULL decl.
8489         (set_reg_attrs_for_decl_rtl): Take mode from expression if
8490         it's not a DECL.
8491         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
8492         rather than its possibly-NULL DECL.
8493         * explow.c (promote_ssa_mode): New.
8494         * explow.h (promote_ssa_mode): Declare.
8495         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
8496         (read_complex_part): Export.
8497         * expr.h (read_complex_part): Declare.
8498         * cfgexpand.h (parm_maybe_byref_p): Declare.
8499         * function.c: Include cfgexpand.h.
8500         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
8501         (use_register_for_parm_decl): Wrapper for the above to
8502         special-case the result_ptr.
8503         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
8504         (split_complex_args): Take assign_parm_data_all argument.
8505         Pass it to rtl_for_parm.  Set up rtl and context for split
8506         args.  Reset complex parm before fetching its default decl
8507         rtl.
8508         (assign_parms_unsplit_complex): Use the default-def complex
8509         parm rtl if it matches the components.
8510         (assign_parms_augmented_arg_list): Adjust.
8511         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
8512         multiple locations.  Recognize split complex args.
8513         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
8514         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
8515         (assign_parm_setup_block): Prefer SSA-assigned location, and
8516         fill in its address if the memory location of a maybe-byref
8517         parm was not assigned by cfgexpand.
8518         (assign_parm_setup_reg): Likewise.  Adjust its mode as
8519         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
8520         sure passed_pointer parms don't need conversion.  Copy address
8521         or value as needed.
8522         (assign_parm_setup_stack): Prefer SSA-assigned location.
8523         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
8524         rtl before testing for pointer bounds.  Special-case result_ptr.
8525         (expand_function_start): Maybe reset DECL_RTL of result.
8526         Prefer SSA-assigned location for result and static chain.
8527         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
8528         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
8529         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
8530         anonymous SSA names.  Use promote_ssa_mode.
8531         (get_temp_reg): Likewise.
8532         (remove_ssa_form): Adjust.
8533         * stor-layout.c (layout_decl): Don't set mem attributes of
8534         non-MEMs.
8535         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
8536         and get its reg_usage for reg invalidation.
8537         (compute_bb_dataflow): Pass it insn.
8538         (emit_notes_in_bb): Likewise.
8539
8540 2015-08-14  Marek Polacek  <polacek@redhat.com>
8541
8542         * tree-core.h (tree_base): Fix typo.
8543
8544 2015-08-14  Marek Polacek  <polacek@redhat.com>
8545
8546         PR middle-end/67133
8547         * gimple.c (infer_nonnull_range_by_attribute): Check that the
8548         nonnull argument position is not outside function arguments.
8549
8550 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
8551
8552         PR target/67143
8553         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
8554         'lconst_atomic' with 'const_atomic'.
8555         (atomic_fetch_<optab><mode>): Likewise.
8556         (atomic_<optab>_fetch<mode>): Likewise.
8557         * config/aarch64/iterators.md (lconst-atomic): Move below
8558         'const_atomic'.
8559         (const_atomic): New.
8560
8561 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
8562             Bernd Schmidt  <bernds@codesourcery.com>
8563
8564         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
8565         debug options.
8566         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
8567         (DWARF2_DEBUGGING_INFO): Don't define.
8568         * debug.h (dwarf2_lineno_debug_hooks): Declare.
8569         * toplev.c (process_options): Add a case for it.
8570         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
8571         (dwarf2out_init): Skip most initializations if
8572         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
8573         case.
8574         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
8575         DWARF2_LINENO_DEBUGGING_INFO.
8576         * opts.c (set_debug_level): Likewise.
8577
8578 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
8579
8580         * config/arm/types.md (is_neon_type): Add missing types.
8581
8582 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8583
8584         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
8585         for skylake.
8586         * config/i386/i386.c (PTA_SKYLAKE): New macros.
8587         (processor_alias_table): Add skylake description.
8588         (enum processor_model): Add skylake processor.
8589         (arch_names_table): Add skylake record.
8590         * doc/invoke.texi: Add skylake item.
8591
8592 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
8593
8594         * ira-int.h: Include recog.h.
8595         * ira-build.c: Don't include recog.h.
8596         * ira-color.c: Likewise.
8597         * ira-conflicts.c: Likewise.
8598         * ira-costs.c: Likewise.
8599         * ira-emit.c: Likewise.
8600         * ira-lives.c: Likewise.
8601         * ira.c: Likewise.
8602         * sched-deps.c: Likewise.
8603         * sel-sched.c: Likewise.
8604         * target-globals.c: Likewise.
8605
8606 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
8607
8608         PR bootstrap/55035
8609         * reload1.c (elimination_costs_in_insn): Make it obvious to the
8610         compiler that the n_dups and n_operands loop bounds are invariant.
8611
8612 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8613
8614         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
8615         expressions in A and B.
8616
8617 2015-08-13  Richard Biener  <rguenther@suse.de>
8618
8619         * tree.c (nonnull_arg_p): Move from ...
8620         * tree-vrp.c (nonnull_arg_p): ... here.
8621         * tree.h (nonnull_arg_p): Declare.
8622         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
8623         here, register ptr != 0 for nonnull_arg_p pointer arguments.
8624         Properly initialize static chain and by-reference result pointer.
8625         (run_scc_vn): Adjust.
8626
8627 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8628
8629         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
8630         TUNE_I6400.
8631
8632 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8633
8634         * config/aarch64/aarch64-protos.h
8635         (aarch64_gen_atomic_cas): Declare.
8636         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
8637         Choose appropriate instruction pattern for the target.
8638         (aarch64_gen_atomic_cas): New.
8639         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
8640         (atomic_compare_and_swap<mode>_1): Rename to
8641         aarch64_compare_and_swap<mode>.  Fix some indentation.
8642         (aarch64_compare_and_swap<mode>_lse): New.
8643         (aarch64_atomic_cas<mode>): New.
8644
8645 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8646
8647         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
8648         (TARGET_LSE): New.
8649
8650 2015-08-13  Richard Biener  <rguenther@suse.de>
8651
8652         PR tree-optimization/67191
8653         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
8654         assert we value-numbered last stmts operand because it can validly
8655         trigger for unreachable code.
8656
8657 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8658
8659         PR rtl-optimization/67103
8660         * ifcvt.c (noce_try_store_flag_constants): Move
8661         x = (-(test != 0) & (b - a)) + a transformation to...
8662         (noce_try_cmove): ... Here.  Try it if normal conditional
8663         move fails.
8664
8665 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8666
8667         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
8668         pseudo-processors.
8669         * config/mips/mips.md (processor): Remove w32 and w64.
8670
8671 2015-08-13  Richard Biener  <rguenther@suse.de>
8672
8673         PR tree-optimization/66502
8674         PR tree-optimization/67167
8675         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
8676         backedge arguments.
8677         (vn_phi_lookup): Adjust.
8678         (vn_phi_insert): Likewise.
8679         (visit_phi): Prefer to value-number to another PHI node
8680         over value-numbering to a PHI argument.
8681         (init_scc_vn): Mark DFS back edges.
8682
8683 2015-08-13  Richard Biener  <rguenther@suse.de>
8684
8685         * gimple.h (gcall::code_): New constant static member.
8686         (gcond::code_): Likewise.
8687         * gimple.c (gcall::code_): Define.
8688         (gcond::code_): Likewise.
8689         (is_a_helper <const gcond *>): Add.
8690         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
8691         and forward to a new gcall overload with less checking and a
8692         cheaper way to access the operand.
8693         (gimple_call_lhs_ptr): Likewise.
8694         (gimple_call_set_lhs): Likewise.
8695         (gimple_call_internal_p): Likewise.
8696         (gimple_call_with_bounds_p): Likewise.
8697         (gimple_call_set_with_bounds): Likewise.
8698         (gimple_call_internal_fn): Likewise.
8699         (gimple_call_set_ctrl_altering): Likewise.
8700         (gimple_call_ctrl_altering_p): Likewise.
8701         (gimple_call_fntype): Likewise.
8702         (gimple_call_fn): Likewise.
8703         (gimple_call_fn_ptr): Likewise.
8704         (gimple_call_set_fndecl): Likewise.
8705         (gimple_call_fndecl): Likewise.
8706         (gimple_call_chain): Likewise.
8707         (gimple_call_num_args): Likewise.
8708         (gimple_call_arg): Likewise.
8709         (gimple_call_arg_ptr): Likewise.
8710         (gimple_call_set_arg): Likewise.
8711         (gimple_call_noreturn_p): Likewise.
8712         (gimple_cond_code): Likewise.
8713         (gimple_cond_lhs): Likewise.
8714         (gimple_cond_rhs): Likewise.
8715         (gimple_has_lhs): Reduce checking.
8716
8717 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8718
8719         PR middle-end/25529
8720         * match.pd (div (mult @0 @1) @1) : New simplifier.
8721
8722 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8723
8724         PR target/67071
8725         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
8726         predicate to allow construction of vector constants using the
8727         VSLDOI vector shift instruction.
8728
8729         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
8730         declaration.
8731
8732         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
8733         the number of bytes to be shifted left and filled in with either
8734         all zero or all one bits.
8735         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
8736         methods exist.
8737         (output_vec_const_move): On power8, generate XXLORC to generate
8738         a vector constant with all 1's. Do a split if we need to use a
8739         VSLDOI instruction.
8740
8741         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
8742         properly test for the MSB.
8743
8744         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
8745         vector constants that can be created with VSLDOI.
8746
8747 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8748
8749         revert:
8750         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8751         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8752         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8753         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8754         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8755         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8756         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8757         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8758         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8759
8760 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
8761
8762         * config/xtensa/constraints.md (define_constraint "Y"): New
8763         constraint.
8764         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
8765         * config/xtensa/linux.h (ASM_SPEC): Likewise.
8766         * config/xtensa/predicates.md (move_operand): Match constants
8767         and symbols in the presence of TARGET_AUTO_LITPOOLS.
8768         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
8769         immediate references to TLS data.
8770         (xtensa_emit_move_sequence): Don't force constants to memory in
8771         the presence of TARGET_AUTO_LITPOOLS.
8772         (print_operand): Add 'y' format, same as default, but capable of
8773         printing SF mode constants as well.
8774         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
8775         (movsf_internal): Add movi pattern that loads literal.
8776         (movsf, movdf): Don't force constants to memory in the presence
8777         of TARGET_AUTO_LITPOOLS.
8778         (movdf_internal): Add 'Y' constraint.
8779         * config/xtensa/xtensa.opt (mauto-litpools): New option.
8780         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
8781
8782 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8783
8784         * config/arm/arm-fpus.def: Replace booleans with feature flags.
8785         Update comment.
8786         * config/arm/arm.c (ARM_FPU): Update macro.
8787         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
8788         (TARGET_FP16): Likewise.
8789         (TARGET_CRYPTO): Likewise.
8790         (TARGET_NEON): Likewise.
8791         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
8792         field features.
8793
8794 2015-08-12  Tom de Vries  <tom@codesourcery.com>
8795
8796         PR other/67092
8797         PR other/67098
8798         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
8799         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
8800         accordingly.  Mention default for --with-stage1-ldflags.
8801
8802 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8803
8804         * config/arm/arm.h (arm_fpu_feature_set): New.
8805         (ARM_FPU_FSET_HAS): New.
8806         (FPU_FL_NONE): New.
8807         (FPU_FL_NEON): New.
8808         (FPU_FL_FP16): New.
8809         (FPU_FL_CRYPTO): New.
8810
8811 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8812
8813         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
8814         after -mcmodel=large -fPIC sorry.
8815
8816 2015-08-12  Richard Biener  <rguenther@suse.de>
8817
8818         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
8819         comparison operand order and commutative ternary op operand order.
8820         (sccvn_dom_walker::cond_stack): New state to track temporary
8821         expressions.
8822         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
8823         no longer valid.
8824         (sccvn_dom_walker::record_cond): Add a single temporary conditional
8825         expression.
8826         (sccvn_dom_walker::record_conds): Add a temporary conditional
8827         expressions and all related expressions also true/false.
8828         (sccvn_dom_walker::before_dom_children): Record temporary
8829         expressions based on the controlling condition of a single
8830         predecessor.  When trying to simplify a conditional statement
8831         lookup expressions we might have inserted earlier.
8832
8833 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
8834
8835         PR target/67127
8836         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
8837         to ARM core registers.
8838
8839 2015-08-12  Nathan Sidwell  <nathan@acm.org>
8840
8841         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
8842         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
8843
8844 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
8845
8846         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
8847         line with comments.
8848         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
8849
8850 2015-08-12  Richard Biener  <rguenther@suse.de>
8851
8852         * gimple.h (remove_pointer): New trait.
8853         (GIMPLE_CHECK2): New inline template function.
8854         (gassign::code_): New constant static member.
8855         (is_a_helper<const gassign *>): Add.
8856         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
8857         and forward to a new gassign overload with less checking and a
8858         cheaper way to access the operand.
8859         (gimple_assign_lhs_ptr): Likewise.
8860         (gimple_assign_set_lhs): Likewise.
8861         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
8862         Likewise.
8863         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
8864         Likewise.
8865         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
8866         Likewise.
8867         (gimple_assign_rhs_code): Likewise.
8868         * gimple.c (gassign::code_): Define.
8869
8870 2015-08-12  Richard Biener  <rguenther@suse.de>
8871
8872         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8873         Eliminate edges marked as not executable by SCCVN.
8874         * tree-ssa-sccvn.c: Include gimple-iterator.h.
8875         (cond_dom_walker): Rename to sccvn_dom_walker.
8876         (sccvn_dom_walker::before_dom_children): Value-number defs
8877         of all stmts.
8878         (run_scc_vn): Remove loop value-numbering all SSA names.
8879         Drop not visited SSA names to varying.
8880
8881 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8882
8883         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8884         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8885         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8886         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8887         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8888         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8889         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8890         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8891         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8892
8893 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
8894
8895         PR target/66954
8896         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
8897         to enum feature_priority and feature_list.
8898         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
8899         and isa_names_table.
8900
8901 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
8902
8903         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
8904         vect_induction_def.
8905
8906 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8907
8908         PR c/66098
8909         PR c/66711
8910         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
8911         account when deciding what was the command-line status.
8912
8913 2015-08-11  Nathan Sidwell  <nathan@acm.org>
8914
8915         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
8916
8917         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
8918         we're not the only contributor to target phi.
8919
8920 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
8921
8922         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
8923         FIXED_REG0.
8924
8925 2015-08-11  Tom de Vries  <tom@codesourcery.com>
8926
8927         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
8928
8929 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8930
8931         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
8932         with CPU_SLM.
8933         * config/i386/i386.md (cpu): Remove knl.
8934
8935 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8936
8937         PR libgomp/65742
8938         PR middle-end/66332
8939         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
8940         open-coded sequence.
8941         * omp-low.c (oacc_process_reduction_data): Remove handline of
8942         GOMP_DEVICE_HOST_NONSHM.
8943
8944         * lto-streamer-in.c (lto_input_mode_table): Adjust to
8945         GET_MODE_INNER changes.
8946
8947 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8948             Ilya Verbin  <ilya.verbin@intel.com>
8949
8950         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
8951
8952 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8953
8954         * doc/options.texi (EnabledBy): Document that the argument must be
8955         a Common option.
8956         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
8957         Not enabled by -Wall.
8958         * optc-gen.awk: Give nicer error messages. Detect if the argument
8959         of EnabledBy is not a Common option.
8960         * common.opt (Wnull-dereference): Not enabled by -Wall.
8961         * opt-functions.awk (lang_enabled_by): Nicer error messages.
8962
8963 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
8964
8965         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
8966         model == 0x4f as Broadwell.
8967
8968 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
8969
8970         PR rtl-optimization/67028
8971         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
8972         Add test to see if a const_int fits in the new mode.
8973
8974 2015-08-07  DJ Delorie  <dj@redhat.com>
8975
8976         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
8977
8978 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8979
8980         PR rtl-optimization/67029
8981         * ira-color.c: Include "recog.h" before including "ira-int.h".
8982         * target-globals.c: Likewise.
8983         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
8984         adds an alternative_mask argument and use it instead of
8985         preferred_alternatives.
8986         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
8987         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
8988         * sched-deps.c: Include "ira-int.h" after including "ira.h".
8989         (sched_analyze_insn): Update call to
8990         ira_implicitly_set_insn_hard_regs.
8991         * sel-sched.c: Include "ira-int.h" after including "ira.h".
8992         (implicit_clobber_conflict_p): Update call to
8993         ira_implicitly_set_insn_hard_regs.
8994
8995 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8996
8997         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
8998
8999 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
9000
9001         PR target/67002
9002         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
9003         currently_expanding_to_rtl is set.
9004
9005 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
9006
9007         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
9008         * configure: Regenerate.
9009
9010 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9011             Jiong Wang  <jiong.wang@arm.com>
9012
9013         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
9014         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
9015         (REG_CLASS_NAMES): Likewise.
9016         (REG_CLASS_CONTENTS): Likewise.
9017         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
9018         (aarch64_register_move_cost): Likewise.
9019         (aarch64_load_symref_appropriately): Invoke the new added pattern if
9020         possible.
9021         * config/aarch64/constraints.md (Uc0): New constraint.
9022
9023 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
9024
9025         * config/aarch64/constraints.md (Usf): Add the test of
9026         aarch64_is_noplt_call_p.
9027
9028 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
9029
9030         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
9031         declaration.
9032         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
9033         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
9034         (call_symbol): Likewise.
9035
9036 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
9037
9038         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
9039         for vectorizing multiplication patterns.
9040         * tree-vectorizer.h: Adjust the number of patterns.
9041
9042 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
9043
9044         * config/i386/sse.md (*vec_concatv2df): Declare added
9045         alternatives as sselog type.
9046
9047 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9048
9049         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
9050         all GPRs.
9051
9052 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9053
9054         * config/s390/s390.c (s390_expand_tbegin): Expand either
9055         tbegin_1_z13 or tbegin_1 depending on VX flag.
9056         * config/s390/s390.md ("tbegin_1_z13"): New expander.
9057
9058 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9059
9060         * config/s390/s390.opt: Clarify description for -mzvector
9061         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
9062         -mzvector.
9063
9064 2015-08-06  Richard Biener  <rguenther@suse.de>
9065
9066         * gimple.h (gimple_call_set_fn): Access op member directly.
9067         (gimple_call_chain_ptr): Likewise.
9068         (gimple_call_set_chain): Likewise.
9069         (gimple_cond_lhs_ptr): Likewise.
9070         (gimple_cond_set_lhs): Likewise.
9071         (gimple_cond_rhs_ptr): Likewise.
9072         (gimple_cond_set_rhs): Likewise.
9073         (gimple_cond_true_label): Likewise.
9074         (gimple_cond_set_true_label): Likewise.
9075         (gimple_cond_set_false_label): Likewise.
9076         (gimple_cond_false_label): Likewise.
9077         (gimple_label_label): Likewise.
9078         (gimple_label_set_label): Likewise.
9079         (gimple_goto_set_dest): Likewise.
9080         (gimple_asm_input_op): Likewise.
9081         (gimple_asm_input_op_ptr): Likewise.
9082         (gimple_asm_set_input_op): Likewise.
9083         (gimple_asm_output_op): Likewise.
9084         (gimple_asm_output_op_ptr): Likewise.
9085         (gimple_asm_set_output_op): Likewise.
9086         (gimple_asm_clobber_op): Likewise.
9087         (gimple_asm_set_clobber_op): Likewise.
9088         (gimple_asm_label_op): Likewise.
9089         (gimple_asm_set_label_op): Likewise.
9090         (gimple_switch_index): Likewise.
9091         (gimple_switch_index_ptr): Likewise.
9092         (gimple_return_retval_ptr): Likewise.
9093         (gimple_return_retval): Likewise.
9094         (gimple_return_set_retval): Likewise.
9095         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
9096         (gimple_switch_label): Likewise.
9097         (gimple_switch_set_label): Likewise.
9098
9099 2015-08-06  Richard Biener  <rguenther@suse.de>
9100
9101         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
9102         bool comparison canonicalization and restrict to integers.
9103
9104 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
9105
9106         * coretypes.h (enum symbol_visibility): Relocate here.
9107         * flag-types.h (enum symbol_visibility): Remove.
9108         * tree-core.h (enum symbol_visibility): Remove.
9109
9110 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
9111
9112         PR target/66870
9113         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
9114         for no_split_stack function attribute along with
9115         flag_split_stack.
9116         (rs6000_expand_split_stack_prologue): Likewise.
9117
9118 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9119             Jeff Law  <law@redhat.com>
9120
9121         PR c/16351
9122         * doc/invoke.texi (Wnull-dereference): New.
9123         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
9124         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
9125         Warn for potential NULL dereferences.
9126         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
9127         * ubsan.c (instrument_nonnull_arg): Call
9128         infer_nonnull_range_by_attribute.
9129         (instrument_nonnull_return): Likewise.
9130         * common.opt (Wnull-dereference); New.
9131         * gimple.c (infer_nonnull_range): Remove bool arguments.
9132         (infer_nonnull_range_by_dereference): New.
9133         (infer_nonnull_range_by_attribute): New.
9134         * gimple.h: Update declarations.
9135
9136 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9137
9138         * gensupport.c (sequence_num): Replace with...
9139         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
9140         ...these new variables.
9141         (init_rtx_reader_args_cb): Update accordingly.
9142         (get_num_code_insns): Likewise.
9143         (read_md_rtx): Rework to use a while loop and get_c_test.
9144         Use the new counters.  Remove redundant DEFINE_SUBST case.
9145         * genoutput.c (gen_split): Delete.
9146         (main): Don't call it.
9147
9148 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9149
9150         * gensupport.h (get_c_test): Declare.
9151         * gensupport.c (get_c_test): New function.
9152         * genconditions.c (main): Use it.
9153         * genrecog.c (validate_pattern): Likewise.
9154         (match_pattern_1): Likewise.  Remove c_test argument.
9155         (match_pattern): Update accordingly and remove c_test argument.
9156         (main): Update accordingly.
9157
9158 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9159
9160         * gensupport.h (get_num_insn_codes): Declare.
9161         * gensupport.c (get_num_insn_codes): New function.
9162         * genattrtab.c (optimize_attrs): Rename max_insn_code to
9163         num_insn_codes.
9164         (main): Likewise.  Use get_num_insn_codes.
9165         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
9166
9167 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9168
9169         PR middle-end/66311
9170         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
9171         is zero- rather than sign-extended.
9172
9173 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9174
9175         * target-insns.def (can_extend): Delete.
9176
9177 2015-08-05  Richard Biener  <rguenther@suse.de>
9178
9179         PR tree-optimization/67121
9180         * tree-if-conv.c (combine_blocks): Clear range-info produced
9181         by stmts no longer executed conditionally.
9182
9183 2015-08-05  Nick Clifton  <nickc@redhat.com>
9184
9185         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
9186         to allow identical far pointers to remain.
9187
9188 2015-08-05  Richard Biener  <rguenther@suse.de>
9189
9190         PR middle-end/67120
9191         * match.pd: Compare address bases with == if they are decls
9192         or SSA names, not operand_equal_p.  Otherwise fail.
9193
9194 2015-08-05  Richard Biener  <rguenther@suse.de>
9195
9196         PR tree-optimization/67055
9197         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
9198         NULL gimple_block.
9199
9200         * g++.dg/torture/pr67055.C: New testcase.
9201
9202 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9203
9204         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
9205         noavx512vl.
9206         (define_attr "enabled"): Handle avx521vl and noavx512vl.
9207         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
9208         AVX-512 alternative out of SSE.
9209         (define_insn "*vec_concatv2df"): Ditto.
9210
9211 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9212
9213         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
9214         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
9215         CODE_FOR_avx_ptestv4di.
9216         * config/i386/sse.md (define_mode_iterator V_AVX): New.
9217         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
9218         (define_insn "avx_ptest256"): Merge this ...
9219         (define_insn "sse4_1_ptest"): And this ...
9220         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
9221
9222 2015-08-05  Richard Biener  <rguenther@suse.de>
9223
9224         PR tree-optimization/67109
9225         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
9226         against too big groups.  Print whether this is a load or store
9227         group.  Rename from ...
9228         (vect_analyze_group_access): ... this which is now a wrapper
9229         dissolving an invalid group.
9230         (vect_analyze_data_ref_accesses): Print whether this is a load
9231         or store group.
9232
9233 2015-08-05  Richard Biener  <rguenther@suse.de>
9234
9235         PR middle-end/67107
9236         * match.pd: Guard const_binop result checking against NULL_TREE
9237         result.
9238
9239 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
9240
9241         * cse.c (cse_insn): Restoring old behaviour for src_eqv
9242          when dest and value in the REG_EQUAL are same and dest
9243          is STRICT_LOW_PART.
9244
9245 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
9246
9247         * config/moxie/moxie.h (PRINT_OPERAND,
9248           PRINT_OPERAND_ADDRESS): Remove macros.
9249         * config/moxie/moxie-protos.h (moxie_print_operand,
9250           moxie_print_operand_address): Remove declaration.
9251         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
9252           TARGET_PRINT_OPERAND_ADDRESS): Define.
9253           (moxie_print_operand, moxie_print_operand_address): Make static.
9254
9255 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9256
9257         PR target/66731
9258         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
9259         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
9260
9261 2015-08-04  Richard Biener  <rguenther@suse.de>
9262
9263         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
9264         generated code.
9265         (dt_operand::gen_gimple_expr): Adjust.
9266
9267 2015-08-04  Richard Biener  <rguenther@suse.de>
9268
9269         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
9270         bool compares on RHS.
9271         * match.pd: Add X ==/!= !X is false/true pattern.
9272
9273 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
9274
9275         * config/aarch64/aarch64.c: Change inner loop statement cost
9276         to be consistent with other targets.
9277
9278 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
9279
9280         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
9281         targets.
9282
9283 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
9284
9285         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
9286         (machine_function): Remove pseudos field.
9287
9288 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9289
9290         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9291         Exit early and use target_option_current_node if processing current
9292         pragma.
9293
9294 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9295
9296         * doc/extend.texi (AArch64 Function Attributes): New node.
9297         (AArch64 Pragmas): Likewise.
9298
9299 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9300
9301         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9302         Initialize simd builtins if TARGET_SIMD.
9303         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
9304         Make sure that the builtins are initialized only once no matter how
9305         many times the function is called.
9306         (aarch64_init_builtins): Unconditionally initialize crc builtins.
9307         (aarch64_relayout_simd_param): New function.
9308         (aarch64_simd_expand_args): Use above during argument expansion.
9309         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
9310         simd builtins if TARGET_SIMD.
9311         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
9312         prototype.
9313         (aarch64_relayout_simd_types): Likewise.
9314
9315 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9316
9317         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
9318         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
9319         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
9320         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9321         static keyword.
9322         (aarch64_reset_previous_fndecl): New function.
9323         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
9324         the string.
9325         * config/aarch64/aarch64-c.c: New file.
9326         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
9327         Push and pop options at beginning and end.  Remove ifdef
9328         __ARM_FEATURE_CRC32.
9329         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
9330         Add pragma +nothing+simd and +nothing+crypto where appropriate.
9331         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
9332         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
9333         Define prototype.
9334         (aarch64_register_pragmas): Likewise.
9335         (aarch64_reset_previous_fndecl): Likewise.
9336         (aarch64_process_target_attr): Likewise.
9337         (aarch64_override_options_internal): Likewise.
9338
9339 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9340
9341         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
9342         New function.
9343         (aarch64_can_inline_p): Likewise.
9344         (TARGET_CAN_INLINE_P): Define.
9345
9346 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9347
9348         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9349         Remove static.  Handle OPT_mgeneral_regs_only,
9350         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
9351         OPT_momit_leaf_frame_pointer.
9352         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
9353         (aarch64_attr_opt_type): New enum.
9354         (aarch64_attribute_info): New struct.
9355         (aarch64_handle_attr_arch): New function.
9356         (aarch64_handle_attr_cpu): Likewise.
9357         (aarch64_handle_attr_tune): Likewise.
9358         (aarch64_handle_attr_isa_flags): Likewise.
9359         (aarch64_attributes): New table.
9360         (aarch64_process_one_target_attr): New function.
9361         (num_occurences_in_str): Likewise.
9362         (aarch64_process_target_attr): Likewise.
9363         (aarch64_option_valid_attribute_p): Likewise.
9364         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
9365         * config/aarch64/aarch64-protos.h: Include input.h
9366         (aarch64_handle_option): Declare prototype.
9367
9368 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9369
9370         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
9371         * config/aarch64/aarch64.c: Include target-globals.h
9372         (aarch64_previous_fndecl): New variable.
9373         (aarch64_set_current_function): New function.
9374         (TARGET_SET_CURRENT_FUNCTION): Define.
9375
9376 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9377
9378         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
9379         (explicit_arch): Likewise.
9380         (x_aarch64_isa_flags): Likewise.
9381         (mgeneral-regs-only): Mark as Save.
9382         (mfix-cortex-a53-835769): Likewise.
9383         (mcmodel=): Likewise.
9384         (mstrict-align): Likewise.
9385         (momit-leaf-frame-pointer): Likewise.
9386         (mtls-dialect): Likewise.
9387         (master=): Likewise.
9388         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
9389         (aarch64_isa_flags): Remove extern declaration.
9390         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
9391         to indicate success or failure.
9392         (aarch64_validate_march): Likewise.
9393         (aarch64_validate_mtune): Likewise.
9394         (aarch64_isa_flags): Delete.
9395         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
9396         instead of aarch64_isa_flags.
9397         (aarch64_get_tune_cpu): New function.
9398         (aarch64_get_arch): Likewise.
9399         (aarch64_override_options): Use above and set up explicit_tune_core
9400         and explicit_arch.
9401         (aarch64_print_extension): Move earlier in file.  Add isa_flags
9402         argument and use that instead of the global aarch64_isa_flags.
9403         (aarch64_option_save): New function.
9404         (aarch64_option_restore): Likewise.
9405         (aarch64_option_print): Likewise.
9406         (aarch64_declare_function_name): Likewise.
9407         (aarch64_start_file): Delete.
9408         (TARGET_ASM_FILE_START): Do not define.
9409         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
9410         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
9411         Declare prototype.
9412
9413 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9414
9415         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
9416         flag_omit_leaf_frame_pointer to 2.
9417
9418 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9419
9420         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
9421         define to 0 or 1.
9422         (TARGET_FIX_ERR_A53_835769): New macro.
9423         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9424         handling of opts->x_aarch64_fix_a53_err835769.
9425         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
9426         than aarch64_fix_a53_err835769.
9427         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
9428         * config/aarch64/aarch64-linux.h: Likewise.
9429
9430 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
9431
9432         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
9433         ix86_expand_int_movcc as boolean.
9434
9435 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9436
9437         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
9438         (aarch64_cpu_string): Likewise.
9439         (aarch64_tune_string): Likewise.
9440         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
9441         (aarch64_parse_extension): Return aarch64_parse_opt_result.
9442         Add extra argument to put result into.
9443         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
9444         (aarch64_parse_cpu): Add arguments to put results into. Return
9445         aarch64_parse_opt_result.
9446         (aarch64_parse_tune): Likewise.
9447         (aarch64_override_options_after_change_1): New function.
9448         (aarch64_override_options_internal): New function.
9449         (aarch64_validate_mcpu): Likewise.
9450         (aarch64_validate_march): Likewise.
9451         (aarch64_validate_mtune): Likewise.
9452         (aarch64_override_options): Update to reflect above changes.
9453         Move some logic into aarch64_override_options_internal.
9454         Initialize target_option_default_node and target_option_current_node.
9455         (aarch64_override_options_after_change): Move logic into
9456         aarch64_override_options_after_change_1 and call it with global_options.
9457         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
9458         flag values from that.
9459
9460 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9461
9462         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
9463         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
9464         * config/aarch64/aarch64.c (struct processor): Add arch field.
9465         (all_architectures): Handle above, move above all_cores.
9466         (all_cores): Handle above.
9467         (aarch64_parse_arch): Handle above changes.
9468         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
9469         above.  Update comments.
9470         (armv8.1-a): Likewise.
9471         * config/aarch64/aarch64-cores.def: Update according to above.
9472         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
9473         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
9474         aarch64_arch_driver_info.
9475
9476 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9477
9478         * config/aarch64/aarch64.c (struct processor): Add ident field.
9479         Rename core sched_core.
9480         (all_cores): Handle above changes.
9481         (all_architectures): Likewise.
9482         (aarch64_parse_arch): Likewise.
9483         (aarch64_override_options): Likewise.
9484
9485 2015-08-04  Richard Biener  <rguenther@suse.de>
9486
9487         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9488         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
9489         comparisons embedded in [VEC_]COND_EXPRs.
9490
9491 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
9492
9493         * tree-if-conv.c: Fix various typos in comments.
9494         * tree-vect-stmts.c: Likewise.
9495
9496 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9497
9498         PR tree-optimization/67043
9499         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
9500         preheader after hoisting invariant in it.
9501         (find_defs): Force recomputation of all luids.
9502
9503 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
9504
9505         * config/rs6000/htm.md (tabort.): Restrict the source operand to
9506         using a base register.
9507
9508 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
9509
9510         * main.c (main): Pass in NULL for toplev's external_timer.
9511         * timevar.c: Include coretypes.h.
9512         (class timer::named_items): New.
9513         (timer::named_items::named_items): New.
9514         (timer::named_items::~named_items): New.
9515         (timer::named_items::push): New.
9516         (timer::named_items::pop): New.
9517         (timer::named_items::print): New.
9518         (timer::timer): Initialize field "m_jit_client_items".
9519         (timer::~timer): New.
9520         (timer::push): Move bulk of implementation to...
9521         (timer::push_internal): ...here.  New function.
9522         (timer::pop): Move bulk of implementation to...
9523         (timer::pop_internal): ...here.  New function.
9524         (timer::push_client_item): New.
9525         (timer::pop_client_item): New.
9526         (timer::print_row): New function, taken from timer::print.
9527         (timer::print): Print "GCC items" header if we also have client
9528         items.  Move row-printing to timer::print_row.  Print any client
9529         items.
9530         (timer::get_topmost_item_name): New method.
9531         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
9532         (TV_JIT_CLIENT_CODE): New.
9533         * timevar.h (timer::push_client_item): New declaration.
9534         (timer::pop_client_item): New declaration.
9535         (timer::get_topmost_item_name): New method.
9536         (timer::push_internal): New declaration.
9537         (timer::pop_internal): New declaration.
9538         (timer::print_row): New declaration.
9539         (timer::named_items): New declaration.
9540         (timer::m_jit_client_items): New field.
9541         (timer): Add friend class named_items.
9542         (auto_timevar::auto_timevar): Add timer param.
9543         (auto_timevar::~auto_timevar): Use field "m_timer".
9544         (auto_timevar::m_timer): New field.
9545         * toplev.c (initialize_rtl): Add g_timer as param when
9546         constructing auto_timevar instance.
9547         (toplev::toplev): Add "external_timer" param, and use it to
9548         initialize the "g_timer" global if non-NULL.
9549         (toplev::~toplev): If this created "g_timer", delete it.
9550         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
9551         with "external_timer" timer *.
9552
9553 2015-08-03  Alexander Basov <coohpt@gmail.com>
9554
9555         PR middle-end/64744
9556         PR middle-end/48470
9557         PR middle-end/43404
9558         * cfgexpand.c (expand_one_var): Add check if stack is going to
9559         be used in naked function.
9560         * expr.c (expand_expr_addr_expr_1): Remove excess checking
9561         whether expression should not reside in MEM.
9562         * function.c (use_register_for_decl): Do not use registers for
9563         non-register things (volatile, float, BLKMode) in naked functions.
9564
9565 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
9566
9567         PR target/67060
9568         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
9569         Adjust splits to match new pattern.
9570
9571 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
9572
9573         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
9574         (VEC_M): Likewise.
9575         (VEC_N): Likewise.
9576         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
9577         point in VSX registers.
9578
9579         * config/rs6000/constraints.md (wb constraint): Document unused
9580         w<x> constraint.
9581         (we constraint): Likewise.
9582         (wo constraint): Likewise.
9583         (wp constraint): New constraint for IEEE 128-bit floating point in
9584         VSX registers.
9585         (wq constraint): Likewise.
9586
9587         * config/rs6000/predicates.md (easy_fp_constant): Add support for
9588         IEEE 128-bit floating point in VSX registers.
9589         (easy_scalar_constant): Likewise.
9590
9591         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
9592         constraints (wp, wq) for IEEE 128-bit floating point in VSX
9593         registers.
9594         (rs6000_init_hard_regno_mode_ok): Likewise.
9595
9596         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
9597         floating point in VSX registers.
9598         (VSX_L): Likewise.
9599         (VSX_M): Likewise.
9600         (VSX_M2): Likewise.
9601         (VSm): Likewise.
9602         (VSs): Likewise.
9603         (VSr): Likewise.
9604         (VSa): Likewise.
9605         (VSv): Likewise.
9606         (vsx_le_permute_<mode>): Add support to properly swap bytes for
9607         IEEE 128-bit floating point in VSX registers on little endian.
9608         (vsx_le_undo_permute_<mode>): Likewise.
9609         (vsx_le_perm_load_<mode>): Likewise.
9610         (vsx_le_perm_store_<mode>): Likewise.
9611         (splitters for IEEE 128-bit fp moves): Likewise.
9612
9613         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
9614         wq constraints.
9615
9616         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
9617         floating point in VSX registers.
9618         (VM2): Likewise.
9619
9620         * doc/md.text (Machine Constraints): Document wp and wq
9621         constraints on PowerPC.
9622
9623 2015-08-03  Jeff Law  <law@redhat.com>
9624
9625         PR middle-end/66314
9626         PR gcov-profile/66899
9627         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
9628         iterate over the jump threading paths when an element in the
9629         jump threading paths array is eliminated.
9630
9631 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
9632
9633         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
9634
9635 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
9636
9637         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
9638         is_use_properly_guarded the variable def_preds.  Free its
9639         contents before returning.
9640         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
9641         (is_use_properly_guarded): Replace local variable def_preds with
9642         a parameter.  Adjust accordingly.  Only update *def_preds if it's
9643         the empty vector.
9644
9645 2015-08-03  Richard Biener  <rguenther@suse.de>
9646
9647         * genmatch.c (simplify::for_subst_vec): New member.
9648         (binary_ok): New helper for for lowering.
9649         (lower_for): Delay substituting operators into result expressions
9650         if we can merge the results eventually again.
9651         (capture_info::walk_result): Adjust for user_id appearing as
9652         result expression operator.
9653         (expr::gen_transform): Likewise.
9654         (dt_simplify::gen_1): Likewise.
9655         (dt_simplify::gen): Pass not substituted operators to tail
9656         functions or initialize local variable with it.
9657         (decision_tree::gen): Adjust function signature.
9658         * match.pd: Fix tests against global code and add default
9659         cases to switch stmts.
9660
9661 2015-08-03  Richard Biener  <rguenther@suse.de>
9662
9663         * genmatch.c (dt_simplify::gen): Create captures array
9664         with an initializer.
9665
9666 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9667
9668         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
9669         the host compiler is affected by placement new aliasing bug.
9670         * configure: Regenerate.
9671         * Makefile.in (ALIASING_FLAGS): New variable.
9672         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
9673
9674 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9675
9676         PR target/66731
9677         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
9678         (negmulsf3_vfp): Likewise.
9679         (muldf3negdf_vfp): Disable for -frounding-math.
9680         (mulsf3negsf_vfp): Likewise.
9681         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
9682         fix MULT cost with -frounding-math.
9683
9684 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9685
9686         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
9687         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
9688         explicit.  Prefer to add the flag whenever possible.
9689         (noce_process_if_block): Try noce_try_store_flag_constants before
9690         noce_try_cmove.
9691
9692 2015-08-03  Richard Biener  <rguenther@suse.de>
9693
9694         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
9695         New hash-map to record equivalent transforms.
9696         (dt_node::analyze): Populate the equivalent transforms hash-map.
9697         (dt_simplify::info): Add reference to hash-map entry.
9698         (dt_simplify::gen): If we have split out a function for the
9699         transform, generate a call to it.
9700         (sinfo_hashmap_traits::hash): New function.
9701         (compare_op): New helper function for ...
9702         (sinfo_hashmap_traits::equal_keys): ... this new function.
9703         (decision_tree::gen): Split out common equivalent transforms
9704         into functions.
9705
9706 2015-08-03  Richard Biener  <rguenther@suse.de>
9707
9708         * gimple-fold.c (fold_gimple_assign): Remove folding of
9709         the comparison in COND_EXPRs.
9710
9711 2015-08-03  Richard Biener  <rguenther@suse.de>
9712
9713         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
9714         on the rhs of assignments first simplify the embedded
9715         GENERIC condition.
9716
9717 2015-08-03  Richard Biener  <rguenther@suse.de>
9718
9719         PR tree-optimization/66917
9720         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
9721         field.
9722         (DR_VECT_AUX): New macro.
9723         (set_dr_misalignment): Adjust.
9724         (dr_misalignment): Likewise.
9725         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9726         Compute whether the base is at least element aligned.
9727         * tree-vect-stmts.c (ensure_base_align): Adjust.
9728         (vectorizable_store): If the base is not element aligned
9729         preserve alignment of the original access if misalignment is unknown.
9730         (vectorizable_load): Likewise.
9731
9732 2015-08-02  Martin Sebor  <msebor@redhat.com>
9733
9734         * c-family/c.opt (-Wframe-address): New warning option.
9735         * doc/invoke.texi (Wframe-address): Document it.
9736         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
9737         Clarify possible effects of calling the functions with non-zero
9738         arguments and mention -Wframe-address.
9739         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
9740
9741 2015-08-01  Michael Collison  <michael.collison@linaro.org
9742             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9743
9744         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
9745         (*arm_umin_cmp): Likewise.
9746
9747 2015-08-01  Caroline Tice  <cmtice@google.com>
9748
9749         PR 66521
9750         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
9751         global variables.
9752         (vtbl_find_mangled_name):  New function.
9753         (vtbl_register_mangled_name):  New function.
9754         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
9755         mangled name in mangled name vectors.
9756         (find_or_create_vtbl_map_node):  Ditto.
9757         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
9758         update recursion_depth on function entry; pass it to every recursive
9759         call; automatically exit if depth > 25 (give up looking at that point).
9760         (verify_bb_vtables):  Initialize recursion_depth and pass it to
9761         var_is_used_for_virtual_call_p.
9762         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
9763         global variable decls.
9764         (vtbl_register_mangled_name): New extern function decl.
9765
9766 2015-08-01  Tom de Vries  <tom@codesourcery.com>
9767
9768         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
9769         function.
9770         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
9771         Declare.
9772         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
9773         operation_no_trapping_overflow.  Allow non-overflow operations.
9774         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
9775         operations.
9776
9777 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9778
9779         PR target/67049
9780         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
9781
9782 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9783
9784         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
9785         Enable for TARGET_32BIT.
9786         (*if_move_neg): Likewise.
9787
9788 2015-07-31  Nick Clifton  <nickc@redhat.com>
9789
9790         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
9791         Returns true for __model__.
9792         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9793
9794 2015-07-31  Alan Modra  <amodra@gmail.com>
9795
9796         PR target/66870
9797         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
9798         (rs6000_emit_prologue): Set it.
9799         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
9800
9801 2015-07-31  Richard Biener  <rguenther@suse.de>
9802
9803         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
9804         -> X == (C1 ^ C2) which is already implemented in match.pd.
9805         Remove redundant dispatching to fold_relational_const.
9806         Move unordered self and NaN compares ...
9807         * match.pd: ... as patterns here.  Remove some stray captures
9808         and add a comment.
9809
9810 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
9811
9812         * config/i386/i386.c
9813         (bdesc_special_args): Convert mask type from signed to unsigned for
9814         masked builtins.
9815         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
9816         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
9817         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
9818         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
9819         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
9820         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
9821         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
9822         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
9823         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
9824         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
9825         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
9826         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
9827         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
9828         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
9829         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
9830         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
9831         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
9832         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
9833         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
9834         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
9835         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
9836         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
9837         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
9838         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
9839         * config/i386/i386-builtin-types.def
9840         (V16QI_FTYPE_V16SI): Remove.
9841         (V8DF_FTYPE_V8SI): Ditto.
9842         (V8HI_FTYPE_V8DI): Ditto.
9843         (V8SI_FTYPE_V8DI): Ditto.
9844         (V8SF_FTYPE_V8DF): Ditto.
9845         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
9846         (V16HI_FTYPE_V16SI): Ditto.
9847         (V16SF_FTYPE_V16HI): Ditto.
9848         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
9849         (V16SF_FTYPE_V16SI): Ditto.
9850         (V4DI_FTYPE_V4DI): Ditto.
9851         (V16SI_FTYPE_V16SF): Ditto.
9852         (V16SF_FTYPE_FLOAT): Ditto.
9853         (V8DF_FTYPE_DOUBLE): Ditto.
9854         (V8DI_FTYPE_INT64): Ditto.
9855         (V8DI_FTYPE_V4DI): Ditto.
9856         (V16QI_FTYPE_V8DI): Ditto.
9857         (UINT_FTYPE_V4SF): Ditto.
9858         (UINT64_FTYPE_V4SF): Ditto.
9859         (UINT_FTYPE_V2DF): Ditto.
9860         (UINT64_FTYPE_V2DF): Ditto.
9861         (V16SI_FTYPE_V16SI): Ditto.
9862         (V8DI_FTYPE_V8DI): Ditto.
9863         (V16SI_FTYPE_PV4SI): Ditto.
9864         (V16SF_FTYPE_PV4SF): Ditto.
9865         (V8DI_FTYPE_PV2DI): Ditto.
9866         (V8DF_FTYPE_PV2DF): Ditto.
9867         (V4DI_FTYPE_PV2DI): Ditto.
9868         (V4DF_FTYPE_PV2DF): Ditto.
9869         (V16SI_FTYPE_PV2SI): Ditto.
9870         (V16SF_FTYPE_PV2SF): Ditto.
9871         (V8DI_FTYPE_PV4DI): Ditto.
9872         (V8DF_FTYPE_PV4DF): Ditto.
9873         (V8SF_FTYPE_FLOAT): Ditto.
9874         (V4SF_FTYPE_FLOAT): Ditto.
9875         (V4DF_FTYPE_DOUBLE): Ditto.
9876         (V8SF_FTYPE_PV4SF): Ditto.
9877         (V8SI_FTYPE_PV4SI): Ditto.
9878         (V4SI_FTYPE_PV2SI): Ditto.
9879         (V8SF_FTYPE_PV2SF): Ditto.
9880         (V8SI_FTYPE_PV2SI): Ditto.
9881         (V16SF_FTYPE_PV8SF): Ditto.
9882         (V16SI_FTYPE_PV8SI): Ditto.
9883         (V8DI_FTYPE_V8SF): Ditto.
9884         (V4DI_FTYPE_V4SF): Ditto.
9885         (V2DI_FTYPE_V4SF): Ditto.
9886         (V64QI_FTYPE_QI): Ditto.
9887         (V32HI_FTYPE_HI): Ditto.
9888         (V8UHI_FTYPE_V8UHI): Ditto.
9889         (V16UHI_FTYPE_V16UHI): Ditto.
9890         (V32UHI_FTYPE_V32UHI): Ditto.
9891         (V2UDI_FTYPE_V2UDI): Ditto.
9892         (V4UDI_FTYPE_V4UDI): Ditto.
9893         (V8UDI_FTYPE_V8UDI): Ditto.
9894         (V4USI_FTYPE_V4USI): Ditto.
9895         (V8USI_FTYPE_V8USI): Ditto.
9896         (V16USI_FTYPE_V16USI): Ditto.
9897         (V2DF_FTYPE_V2DF_UINT64): Ditto.
9898         (V2DI_FTYPE_V2DF_V2DF): Ditto.
9899         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
9900         (V8DF_FTYPE_V8DF_V8DI): Ditto.
9901         (V4SF_FTYPE_V4SF_UINT64): Ditto.
9902         (V4SI_FTYPE_V4SF_V4SF): Ditto.
9903         (V16SF_FTYPE_V16SF_V16SI): Ditto.
9904         (V64QI_FTYPE_V32HI_V32HI): Ditto.
9905         (V32HI_FTYPE_V16SI_V16SI): Ditto.
9906         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
9907         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
9908         (V32HI_FTYPE_V64QI_V64QI): Ditto.
9909         (V32HI_FTYPE_V32HI_V32HI): Ditto.
9910         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
9911         (V16SI_FTYPE_V16SI_V4SI): Ditto.
9912         (V16SI_FTYPE_V16SI_V16SI): Ditto.
9913         (V16SI_FTYPE_V32HI_V32HI): Ditto.
9914         (V16SI_FTYPE_V16SI_SI): Ditto.
9915         (V8DI_FTYPE_V8DI_V8DI): Ditto.
9916         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
9917         (V8DI_FTYPE_V16SI_V16SI): Ditto.
9918         (V8DI_FTYPE_V8DI_V2DI): Ditto.
9919         (QI_FTYPE_QI): Ditto.
9920         (SI_FTYPE_SI): Ditto.
9921         (DI_FTYPE_DI): Ditto.
9922         (QI_FTYPE_QI_QI): Ditto.
9923         (QI_FTYPE_QI_INT): Ditto.
9924         (HI_FTYPE_HI_INT): Ditto.
9925         (SI_FTYPE_SI_INT): Ditto.
9926         (DI_FTYPE_DI_INT): Ditto.
9927         (HI_FTYPE_V16QI_V16QI): Ditto.
9928         (SI_FTYPE_V32QI_V32QI): Ditto.
9929         (DI_FTYPE_V64QI_V64QI): Ditto.
9930         (QI_FTYPE_V8HI_V8HI): Ditto.
9931         (HI_FTYPE_V16HI_V16HI): Ditto.
9932         (SI_FTYPE_V32HI_V32HI): Ditto.
9933         (QI_FTYPE_V4SI_V4SI): Ditto.
9934         (QI_FTYPE_V8SI_V8SI): Ditto.
9935         (QI_FTYPE_V2DI_V2DI): Ditto.
9936         (QI_FTYPE_V4DI_V4DI): Ditto.
9937         (QI_FTYPE_V8DI_V8DI): Ditto.
9938         (HI_FTYPE_V16SI_V16SI): Ditto.
9939         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
9940         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
9941         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
9942         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
9943         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
9944         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
9945         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
9946         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
9947         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
9948         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
9949         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
9950         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
9951         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
9952         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
9953         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
9954         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
9955         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
9956         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
9957         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
9958         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
9959         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
9960         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
9961         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
9962         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
9963         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
9964         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
9965         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
9966         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
9967         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
9968         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
9969         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
9970         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
9971         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
9972         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
9973         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
9974         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
9975         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
9976         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
9977         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
9978         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
9979         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
9980         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
9981         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
9982         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
9983         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
9984         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
9985         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
9986         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
9987         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
9988         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
9989         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
9990         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
9991         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
9992         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
9993         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
9994         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
9995         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
9996         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
9997         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
9998         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
9999         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
10000         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
10001         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
10002         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
10003         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
10004         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
10005         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
10006         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
10007         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
10008         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
10009         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
10010         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
10011         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
10012         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
10013         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
10014         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
10015         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
10016         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
10017         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
10018         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
10019         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
10020         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
10021         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
10022         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
10023         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
10024         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
10025         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
10026         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
10027         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
10028         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
10029         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
10030         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
10031         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
10032         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
10033         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
10034         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
10035         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
10036         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
10037         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
10038         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
10039         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
10040         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
10041         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
10042         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
10043         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
10044         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
10045         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
10046         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
10047         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
10048         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
10049         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
10050         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
10051         (HI_FTYPE_HI): Ditto.
10052         (HI_FTYPE_V16QI): Ditto.
10053         (SI_FTYPE_V32QI): Ditto.
10054         (DI_FTYPE_V64QI): Ditto.
10055         (QI_FTYPE_V8HI): Ditto.
10056         (HI_FTYPE_V16HI): Ditto.
10057         (SI_FTYPE_V32HI): Ditto.
10058         (QI_FTYPE_V4SI): Ditto.
10059         (QI_FTYPE_V8SI): Ditto.
10060         (HI_FTYPE_V16SI): Ditto.
10061         (QI_FTYPE_V2DI): Ditto.
10062         (QI_FTYPE_V4DI): Ditto.
10063         (QI_FTYPE_V8DI): Ditto.
10064         (V16QI_FTYPE_HI): Ditto.
10065         (V32QI_FTYPE_SI): Ditto.
10066         (V64QI_FTYPE_DI): Ditto.
10067         (V8HI_FTYPE_QI): Ditto.
10068         (V16HI_FTYPE_HI): Ditto.
10069         (V32HI_FTYPE_SI): Ditto.
10070         (V4SI_FTYPE_QI): Ditto.
10071         (V4SI_FTYPE_HI): Ditto.
10072         (V8SI_FTYPE_QI): Ditto.
10073         (V8SI_FTYPE_HI): Ditto.
10074         (V2DI_FTYPE_QI): Ditto.
10075         (V4DI_FTYPE_QI): Ditto.
10076         (HI_FTYPE_HI_HI): Ditto.
10077         (SI_FTYPE_SI_SI): Ditto.
10078         (DI_FTYPE_DI_DI): Ditto.
10079         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
10080         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
10081         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
10082         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
10083         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
10084         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
10085         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
10086         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
10087         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
10088         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
10089         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
10090         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
10091         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
10092         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
10093         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
10094         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
10095         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
10096         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
10097         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
10098         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
10099         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
10100         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
10101         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
10102         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
10103         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
10104         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
10105         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
10106         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
10107         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
10108         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
10109         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
10110         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
10111         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
10112         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
10113         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
10114         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
10115         (V16SI_FTYPE_HI): Ditto.
10116         (V8DI_FTYPE_QI): Ditto.
10117         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10118         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10119         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10120         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10121         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10122         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10123         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10124         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10125         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10126         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10127         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10128         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10129         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10130         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10131         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10132         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
10133         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
10134         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10135         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10136         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10137         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10138         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10139         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10140         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10141         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10142         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
10143         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
10144         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
10145         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10146         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10147         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10148         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10149         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10150         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
10151         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
10152         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
10153         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10154         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10155         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10156         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
10157         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10158         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10159         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
10160         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
10161         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10162         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10163         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10164         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10165         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10166         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10167         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10168         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10169         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
10170         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10171         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10172         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10173         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10174         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10175         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10176         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10177         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10178         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10179         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10180         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10181         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10182         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
10183         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
10184         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
10185         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10186         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
10187         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
10188         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
10189         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10190         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
10191         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
10192         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
10193         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
10194         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
10195         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10196         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
10197         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
10198         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10199         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10200         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10201         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10202         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10203         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10204         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10205         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10206         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10207         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10208         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10209         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10210         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10211         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10212         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10213         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10214         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10215         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10216         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10217         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10218         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10219         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10220         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10221         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10222         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10223         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10224         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10225         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10226         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10227         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10228         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10229         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10230         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10231         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10232         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
10233         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
10234         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
10235         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10236         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10237         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10238         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
10239         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10240         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10241         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10242         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10243         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10244         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10245         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10246         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10247         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
10248         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
10249         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
10250         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10251         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10252         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10253         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10254         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10255         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10256         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10257         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10258         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10259         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10260         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10261         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10262         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10263         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10264         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10265         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10266         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10267         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10268         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10269         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10270         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10271         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
10272         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
10273         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
10274         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10275         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10276         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10277         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10278         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10279         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10280         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10281         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10282         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
10283         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10284         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10285         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
10286         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10287         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10288         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
10289         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
10290         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
10291         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10292         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10293         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
10294         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10295         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10296         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10297         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10298         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10299         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10300         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10301         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10302         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10303         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10304         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
10305         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10306         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10307         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10308         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10309         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10310         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10311         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10312         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10313         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10314         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10315         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10316         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10317         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10318         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10319         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10320         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10321         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10322         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10323         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10324         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10325         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10326         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10327         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10328         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10329         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10330         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
10331         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10332         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10333         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10334         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10335         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10336         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10337         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10338         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10339         (QI_FTYPE_V8DF_INT_QI): Ditto.
10340         (QI_FTYPE_V4DF_INT_QI): Ditto.
10341         (QI_FTYPE_V2DF_INT_QI): Ditto.
10342         (HI_FTYPE_V16SF_INT_HI): Ditto.
10343         (QI_FTYPE_V8SF_INT_QI): Ditto.
10344         (QI_FTYPE_V4SF_INT_QI): Ditto.
10345         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
10346
10347 2015-07-31  Richard Biener  <rguenther@suse.de>
10348
10349         * gimple-fold.c (fold_gimple_assign): Remove folding of
10350         GIMPLE_BINARY_RHS.
10351
10352 2015-07-31  Tom de Vries  <tom@codesourcery.com>
10353
10354         PR tree-optimization/66846
10355         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
10356         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
10357         (expand_omp_target) [ENABLE_CHECKING]: Same.
10358         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
10359         cfun if !LOOPS_NEED_FIXUP.
10360         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
10361         that omp_for already has its own loop struct.
10362         * tree-parloops.c (create_phi_for_local_result)
10363         (create_call_for_reduction): Handle simple latch bb.
10364         (create_parallel_loop): Add simple latch bb to preserve
10365         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
10366         (gen_parallel_loop): Remove call to cancel_loop_tree.
10367         (parallelize_loops): Skip loops that are inner loops of parallelized
10368         loops.
10369         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
10370         verify_loop_structure.
10371
10372 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10373
10374         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
10375         * config/v850/v850.md (RV_REGNUM): New constants.
10376         * config/v850/v850.c (v850_libcall_value): New functions.
10377         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
10378         (TARGET_LIBCALL_VALUE): Define.
10379
10380 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10381
10382         * rtl.h (lowpart_subreg): Move in file.
10383         * loop-iv.c (lowpart_subreg): Move to...
10384         * simplify-rtx.c (lowpart_subreg): ...here.
10385           (simplify_binary_operation_1): Use lowpart_subreg instead of
10386           simplify_gen_subreg.
10387         * expr.c (expand_expr_real_2): Ditto.
10388         * emit-rtl.c (gen_lowpart_common): Ditto.
10389         * combine.c (gen_lowpart_for_combine): Ditto.
10390         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
10391           expand_debug_source_expr): Ditto.
10392
10393 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
10394
10395         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
10396         (expand_builtin_atomic_clear): Remove support for atomic_clear
10397         pattern.
10398
10399 2015-07-30  Richard Biener  <rguenther@suse.de>
10400
10401         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
10402         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
10403         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
10404         redundant operand canonicalization.
10405
10406 2015-07-30  David Sherwood  <david.sherwood@arm.com>
10407
10408         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
10409         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
10410         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
10411         * config/arm/arm.c (neon_valid_immediate): Likewise.
10412         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
10413         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
10414         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
10415         (expand_vec_perm_vpshufb2_vpermq): Likewise.
10416         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
10417         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
10418         * config/i386/sse.md
10419         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
10420         (*ssse3_palignr<mode>_perm): Likewise.
10421         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
10422         * config/spu/spu.c (arith_immediate_p): Likewise.
10423         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10424         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
10425
10426 2015-07-30  Richard Biener  <rguenther@suse.de>
10427
10428         * genmatch.c (decision_tree::gen_gimple): Merge with ...
10429         (decision_tree::gen_generic): ... this into ...
10430         (decision_tree::gen): ... this.
10431         (main): Adjust callers.
10432
10433 2015-07-30  Richard Biener  <rguenther@suse.de>
10434
10435         * genmatch.c (verbose): New global.
10436         (warning_at): Add overload with source_location.
10437         (capture_info::capture_info): Add bool whether generating gimple
10438         or generic.  Add gimple member.
10439         (capture_info::cinfo): Add capture member.
10440         (capture_info::walk_match): Record capture.  Warn on
10441         non-captured leafs.
10442         (capture_info::walk_c_expr): Add more fragments captures cannot
10443         escape through.  Warn on escaped captures.
10444         (dt_simplify::gen_1): Warn on operands we force to have no
10445         side-effects.
10446         (main): Initialize verbose.
10447         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
10448
10449 2015-07-30  Richard Biener  <rguenther@suse.de>
10450
10451         PR middle-end/67053
10452         * match.pd: Allow both operands to independently have conversion
10453         when simplifying compares of addresses.
10454
10455 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
10456
10457         PR target/66217
10458         PR target/67045
10459         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
10460         around those cases that need one.
10461
10462 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
10463
10464         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
10465
10466 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
10467
10468         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
10469         New.  Copied from config/i386/gnu-user.h.
10470         (ASM_COMMENT_START): Likewise.
10471         (DBX_REGISTER_NUMBER): Likewise.
10472
10473 2015-07-29  Richard Biener  <rguenther@suse.de>
10474
10475         * gimple-fold.c (fold_gimple_cond): Remove.
10476         (fold_stmt_1): Do not call it.
10477
10478 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
10479
10480         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
10481         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
10482
10483         * config/aarch64/aarch64-modes.def: Add HFmode.
10484
10485         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
10486         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
10487
10488         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
10489         aarch64_promoted_type): New.
10490
10491         (aarch64_float_const_representable_p): Disable HFmode.
10492         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
10493         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
10494         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
10495
10496         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
10497         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
10498
10499         * config/aarch64/iterators.md (GPF_F16): New.
10500
10501 2015-07-29  Richard Biener  <rguenther@suse.de>
10502
10503         * match.pd: Merge address comparison patterns and make them
10504         handle some more cases.
10505
10506 2015-07-29  Richard Biener  <rguenther@suse.de>
10507
10508         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
10509         (parser::parse_capture): Add bool argument on whether to reject
10510         unknown captures.
10511         (parser::parse_expr): Adjust.
10512         (parser::parse_op): Likewise.
10513         (parser::parse_pattern): Likewise.
10514
10515 2015-07-29  Richard Biener  <rguenther@suse.de>
10516
10517         * gimple-fold.c (has_use_on_stmt): New function.
10518         (replace_stmt_with_simplification): Use it to allow
10519         abnormals originally referenced in the stmt.
10520         (fold_stmt_1): Canonicalize operand order.
10521
10522 2015-07-28  David Sherwood  <david.sherwood@arm.com>
10523
10524         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
10525         GET_MODE_INNER unconditionally.
10526         * config/spu/spu.c (arith_immediate_p): Likewise.
10527         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
10528         * expmed.c (synth_mult): Remove check for VOIDmode result from
10529         GET_MODE_INNER.
10530         (expand_mult_const): Likewise.
10531         * fold-const.c (fold_binary_loc): Replace call to element_precision
10532         with call to GET_MODE_PRECISION.
10533         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
10534         m->name.
10535         (emit_mode_inner): Likewise.
10536         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
10537         result check.
10538         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
10539         (GET_MODE_UNIT_PRECISION): Likewise.
10540         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
10541         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10542         * stor-layout.c (bitwise_type_for_mode): Update assert.
10543         (element_precision): Remove.
10544
10545 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10546
10547         * target-insns.def (reload_load_address): New targetm instruction
10548         pattern.
10549         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
10550
10551 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10552
10553         * target-insns.def (atomic_test_and_set): New targetm instruction
10554         pattern.
10555         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
10556         HAVE_*/gen_* interface.
10557
10558 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10559
10560         * target-insns.def (can_extend, ptr_extend): New targetm instruction
10561         patterns.
10562         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
10563         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10564         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10565         * rtlanal.c (nonzero_bits1): Likewise.
10566         (num_sign_bit_copies1): Likewise.
10567
10568 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10569
10570         * target-insns.def (eh_return): New targetm instruction pattern.
10571         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
10572         interface.
10573         * function.c (thread_prologue_and_epilogue_insns): Remove
10574         preprocessor condition.
10575
10576 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10577
10578         * target-insns.def (indirect_jump): New targetm instruction pattern.
10579         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
10580         interface.
10581
10582 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10583
10584         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
10585         instead of nonimmediate_operand.  Remove C condiition.
10586
10587 2015-07-28  Richard Biener  <rguenther@suse.de>
10588
10589         * match.pd: Add more simplification of address comparisons.
10590
10591 2015-07-28  Richard Biener  <rguenther@suse.de>
10592
10593         * match.pd: Re-order two cases in comparison with max/min
10594         value simplification to make it apply for bools.
10595
10596 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10597
10598         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
10599         Handle simple SIGN_EXTEND or ZERO_EXTEND.
10600         (aarch64_rtx_costs): Properly strip extend or extract before
10601         passing down to rtx costs again.
10602
10603 2015-07-28  Nick Clifton  <nickc@redhat.com>
10604
10605         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
10606         Optimizes the case where -mes0 is active and a constant symbolic
10607         address is used.
10608         * config/rl78/rl78-protos.h: Prototype the new function.
10609         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
10610
10611 2015-07-28  Tom de Vries  <tom@codesourcery.com>
10612
10613         * tree-parloops.c (reduc_stmt_res): New function.
10614         (initialize_reductions, add_field_for_reduction)
10615         (create_phi_for_local_result, create_loads_for_reductions)
10616         (create_stores_for_reduction, build_new_reduction): Handle case that
10617         reduc_stmt is a phi.
10618         (gather_scalar_reductions): Allow double_reduc reductions.
10619
10620 2015-07-28  Richard Biener  <rguenther@suse.de>
10621
10622         * fold-const.c (fold_comparison): Remove equality folding
10623         of decl addresses ...
10624         * match.pd: ... here and merge with existing pattern.
10625
10626 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10627
10628         PR tree-optimization/66828
10629         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
10630         from int64_t to uint64_t.
10631
10632 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10633
10634         * opts-common.c (read_cmdline_option): List DriverOnly enum values
10635         as valid only in the error message of the driver, not in the
10636         messages of the language compilers.
10637
10638 2015-07-27  Tom de Vries  <tom@codesourcery.com>
10639
10640         * tree-parloops.c (gather_scalar_reductions): Simplify function
10641         structure.
10642
10643 2015-07-27  Marek Polacek  <polacek@redhat.com>
10644
10645         * ipa-devirt.c (types_same_for_odr): Fix typo.
10646
10647 2015-07-27  Jason Merrill  <jason@redhat.com>
10648
10649         PR debug/66468
10650         * dwarf2out.c (gen_inlined_subroutine_die): Check
10651         cgraph_function_possibly_inlined_p.
10652
10653 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10654
10655         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
10656         Place integer variant first.
10657         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10658
10659 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10660
10661         PR/63870
10662         * config/arm/arm-builtins.c (enum arm_builtins):
10663         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
10664         (ARM_BUILTIN_NEON_BASE): Rename macro to....
10665         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
10666         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
10667         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
10668
10669 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10670
10671         PR/63870
10672         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
10673         Add qualifier_lane_index.
10674         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
10675         (arm_getlane_qualifiers): Use qualifier_lane_index.
10676         (arm_lanemac_qualifiers): Rename to...
10677         (arm_mac_n_qualifiers): ...this.
10678         (LANEMAC_QUALIFIERS): Rename to...
10679         (MAC_N_QUALIFIERS): ...this.
10680         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
10681         (arm_setlane_qualifiers): Use qualifier_lane_index.
10682         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
10683         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
10684         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
10685         (arm_expand_neon_builtin): Handle qualifier_lane_index.
10686
10687         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
10688         * config/arm/arm.c (bounds_check): Likewise, improve error message.
10689         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
10690         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
10691         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
10692         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
10693         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
10694         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
10695         qualifiers to TERNOP_IMM.
10696         (vdup_lane): Change qualifiers to GETLANE.
10697         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
10698         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
10699         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
10700         vqdmlsl_n): Change qualifiers to MAC_N.
10701
10702         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
10703         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
10704         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
10705         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
10706         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
10707         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
10708         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
10709         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
10710         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
10711         Remove call to neon_lane_bounds.
10712
10713 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10714
10715         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10716         Place integer variant first.
10717
10718 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
10719
10720         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
10721         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
10722         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
10723         for armv6kz targets.
10724         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
10725         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
10726         (FL_FOR_ARCH6ZK): Remove.
10727         (FL_FOR_ARCH6KZ): New.
10728         (arm_arch6zk): New declaration.
10729         * config/arm/arm-tables.opt: Regenerate.
10730         * config/arm/arm.c (arm_arch6kz): New.
10731         (arm_option_override): Set arm_arch6kz.
10732         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
10733         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
10734         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
10735
10736 2015-07-27  Marek Polacek  <polacek@redhat.com>
10737
10738         PR c++/66555
10739         PR c/54979
10740         * doc/invoke.texi: Document -Wtautological-compare.
10741
10742 2015-07-27  Richard Biener  <rguenther@suse.de>
10743
10744         * genmatch.c (decision_tree::gen_gimple): Split out large
10745         subtrees into separate functions.
10746         (decision_tree::gen_generic): Likewise.
10747
10748 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
10749
10750         * config/alpha/alpha.c: Use SUBREG_P predicate.
10751         * config/alpha/predicates.md: Ditto.
10752
10753 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10754
10755         * config.host (s390*-*-*): Include driver-native.c only when
10756         building with s390* as host *and* target.
10757
10758 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
10759
10760         PR target/66930
10761         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
10762         T bit register modified_between_p check.
10763
10764 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10765
10766         * config/i386/i386.c: Use SUBREG_P predicate.
10767         * config/i386/i386.md: Ditto.
10768         * config/i386/sse.md: Ditto.
10769         * config/i386/predicates.md: Ditto.
10770
10771 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10772
10773         PR target/67004
10774         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
10775         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
10776
10777 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10778
10779         * Makefile.in: Remove use of TREEBROWSER.
10780         * config.in: Regenerated.
10781         * configure: Regenerated.
10782         * configure.ac: Remove definition of TREEBROWSER.
10783         * tree-browser.c: Removed.
10784         * tree-browser.def: Removed.
10785
10786 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10787
10788         * graphite-scop-detection.c: Include gimple-pretty-print.h.
10789         (stmt_simple_for_scop_p): Print when a stmt is not handled in
10790         Graphite.
10791         (scopdet_basic_block_info): Print when a loop or bb cannot be
10792         represented in Graphite.
10793
10794 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10795
10796         PR target/66648
10797         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
10798         execution guard when min_size is less than size_needed.
10799
10800 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10801
10802         * doc/install.texi: Document supported versions of ISL.
10803
10804 2015-07-25  Jeff Law  <law@redhat.com>
10805
10806         Revert:
10807         PR lto/66752
10808         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10809         unable to find X NE 0 in the tables, return X as the simplified
10810         condition.
10811         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10812         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10813         to VISISTED_BBS.  */
10814         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10815         after removing the control flow statement and unnecessary edges.
10816
10817 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
10818
10819         Revert:
10820         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10821
10822         PR rtl-optimization/64164
10823         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10824         * tree-ssa-copyrename.c: Removed.
10825         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10826         -ftree-coalesce-vars.
10827         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10828         * common.opt (ftree-copyrename): Ignore.
10829         (ftree-coalesce-inlined-vars): Likewise.
10830         * doc/invoke.texi: Remove the ignored options above.
10831         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10832         * tree-ssa-coalesce.h: ... here.
10833         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10834         headers required by it.
10835         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10836         across variables when flag_tree_coalesce_vars.  Check register
10837         use and promoted modes to allow coalescing.  Moved to
10838         tree-ssa-coalesce.c.
10839         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10840         with its member functions to tree-ssa-coalesce.c.
10841         (var_map_base_init): Likewise.  Renamed to
10842         compute_samebase_partition_bases.
10843         (partition_view_normal): Drop want_bases parameter.
10844         (partition_view_bitmap): Likewise.
10845         * tree-ssa-live.h: Adjust declarations.
10846         * tree-ssa-coalesce.c: Include explow.h.
10847         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10848         default defs at the entry point.
10849         (dump_part_var_map): New.
10850         (compute_optimized_partition_bases): New, called by...
10851         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10852         of compute_samebase_partition_bases.  Adjust.
10853         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10854         * cfgexpand.c (leader_merge): New.
10855         (get_rtl_for_parm_ssa_default_def): New.
10856         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10857         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10858         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10859         redundant MEM attr setting.
10860         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10861         from...
10862         (expand_one_stack_var): ... this.  New wrapper to check and
10863         skip already expanded SSA partitions.
10864         (record_alignment_for_reg_var): New, factored out of...
10865         (expand_one_var): ... this.
10866         (expand_one_ssa_partition): New.
10867         (adjust_one_expanded_partition_var): New.
10868         (expand_one_register_var): Check and skip already expanded SSA
10869         partitions.
10870         (expand_used_vars): Don't create DECLs for anonymous SSA
10871         names.  Expand all SSA partitions, then adjust all SSA names.
10872         (pass::execute): Replace the loops that set
10873         SA.partition_to_pseudo from partition leaders and cleared
10874         DECL_RTL for multi-location variables, and that which used to
10875         rename vars and set attrs, with one that clears DECL_RTL and
10876         checks that PARMs and RESULTs default_defs match DECL_RTL.
10877         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10878         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10879         * explow.c (promote_ssa_mode): New.
10880         * explow.h (promote_ssa_mode): Declare.
10881         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10882         * function.c: Include cfgexpand.h.
10883         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10884         (use_register_for_parm_decl): Wrapper for the above to
10885         special-case the result_ptr.
10886         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10887         (split_complex_args): Take assign_parm_data_all argument.
10888         Pass it to rtl_for_parm.  Set up rtl and context for split
10889         args.
10890         (assign_parms_augmented_arg_list): Adjust.
10891         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10892         multiple locations.  Recognize split complex args.
10893         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10894         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10895         (assign_parm_setup_block): Prefer SSA-assigned location.
10896         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10897         if stack_parm is NULL.
10898         (assign_parm_setup_stack): Prefer SSA-assigned location.
10899         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10900         rtl before testing for pointer bounds.  Special-case result_ptr.
10901         (expand_function_start): Maybe reset DECL_RTL of result.
10902         Prefer SSA-assigned location for result and static chain.
10903         Factor out DECL_RESULT and SET_DECL_RTL.
10904         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10905         anonymous SSA names.  Use promote_ssa_mode.
10906         (get_temp_reg): Likewise.
10907         (remove_ssa_form): Adjust.
10908         * stor-layout.c (layout_decl): Don't set mem attributes of
10909         non-MEMs.
10910         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10911         and get its reg_usage for reg invalidation.
10912         (compute_bb_dataflow): Pass it insn.
10913         (emit_notes_in_bb): Likewise.
10914
10915 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10916
10917         * config/i386/i386.c (ix86_va_start): Remove
10918         unneeded !TARGET_64BIT check.
10919         (ix86_gimplify_va_arg): Ditto.
10920
10921 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10922
10923         * graphite-sese-to-poly.c (build_poly_scop): Always call
10924         rewrite_commutative_reductions_out_of_ssa.
10925
10926 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10927
10928         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
10929         flag_associative_math to FLOAT_TYPE_P.  Honour
10930         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
10931
10932 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10933
10934         PR c++/64079
10935         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
10936         and "%qD" in warning_at instead of "%q+D" in warning.
10937
10938 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10939
10940         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
10941         (ix86_function_abi): Cleanup.
10942
10943 2015-07-24  Michael Darling  <darlingm@gmail.com>
10944
10945         PR other/66259
10946         * acinclude.m4: Reflects renaming of configure.in to configure.ac
10947         * configure: Likewise
10948         * configure.ac: Likewise
10949         * doc/install.texi: Likewise
10950         * doc/tm.texi: Likewise
10951         * doc/tm.texi.in: Likewise
10952
10953 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10954
10955         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
10956         manually swapping values.
10957         * cse.c (fold_rtx): Likewise.
10958         * lra-eliminations.c (form_sum): Likewise.
10959
10960 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10961
10962         PR target/64003
10963         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
10964         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
10965         (*jcc_1, *jcc_2, jump, simple_return_internal)
10966         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
10967         Set length_nobnd attribute instead of length attribute.
10968         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
10969         (length_nobnd): Remove attribute.
10970         (length): Remove length_nobnd processing.
10971
10972 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
10973
10974         * gimplify.c (omp_default_clause): New function.  Reorganize flow
10975         for clarity. Broken out of ...
10976         (omp_notice_variable): ... here.
10977
10978 2015-07-24  Gary Funck  <gary@intrepid.com>
10979
10980         PR middle-end/66984
10981         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
10982         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
10983
10984 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10985
10986         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
10987         exit-first loop transform.
10988
10989 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
10990
10991         PR 66714
10992         * tree-cfg.c (struct replace_decls_d): New struct.
10993         (replace_block_vars_by_duplicates_1): New function.
10994         (replace_block_vars_by_duplicates): Use it to replace the decls
10995         in the value exprs by duplicates.
10996
10997 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10998
10999         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
11000         -shared, -symbolic, -rdynamic.
11001
11002 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11003
11004         PR target/65711
11005         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
11006         -dynamic-linker within %{!static %{!shared, and -rdynamic within
11007         %{!static.
11008
11009 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
11010
11011         PR ipa/66566
11012         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
11013         edge summary is available.
11014
11015 2015-07-24  Richard Biener  <rguenther@suse.de>
11016
11017         * genmatch.c (struct dt_node): Add statistic fields.
11018         (dt_node::analyze): New method.
11019         (decision_tree::gen_gimple): Call analyze on the root node
11020         and print statistics to stderr.
11021         (decision_tree::gen_generic): Likewise.
11022
11023 2015-07-24  Richard Biener  <rguenther@suse.de>
11024
11025         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
11026         against the highest or lowest possible integer ...
11027         * match.pd: ... as patterns here.
11028
11029 2015-07-24  Richard Biener  <rguenther@suse.de>
11030
11031         * genmatch.c (struct capture_info): Add same_as field.
11032         (capture_info::capture_info): Initialize same_as.
11033         (capture_info::walk_match): Compute same_as.
11034         (capture_info::walk_result): Compute stuff for the leader.
11035         (capture_info::walk_c_expr): Likewise.
11036         (dt_simplify::gen_1): Only look at leaders when deciding
11037         to force no side-effects or emit side-effects of omitted operands.
11038
11039 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11040
11041         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
11042         reg note to the GPR -> FPR save instructions.
11043
11044 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11045
11046         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
11047         cheaper.
11048         (s390_expand_insv): Don't generate risbg pattern for constant zero
11049         sources.
11050         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
11051         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
11052         splitters.
11053
11054 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11055
11056         * config/s390/s390.c (s390_reorg): Clean up handling of processors
11057         with
11058         -mtune=
11059         (s390_issue_rate): Likewise.
11060         (s390_sched_reorder): Likewise.
11061         (s390_sched_variable_issue): Likewise.
11062         (s390_loop_unroll_adjust): Likewise.
11063         (s390_option_override):  Likewise.
11064
11065 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11066
11067         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
11068         processor capabilities with -march=native.
11069         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
11070         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
11071         (S390_TARGET_BITS_STRING): Macro to simplify specs.
11072
11073 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11074
11075         * config/s390/s390.c (s390_issue_rate): Handle
11076         PROCESSOR_2094_Z9_EC.
11077         (s390_option_override): Likewise.
11078         (s390_adjust_priority): Likewise.
11079
11080 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11081
11082         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
11083         when cross compiling.
11084
11085 2015-07-24  Richard Biener  <rguenther@suse.de>
11086
11087         * fold-const.c (maybe_canonicalize_comparison_1): Move
11088         A code CST canonicalization ...
11089         * match.pd: ... to a pattern here.
11090
11091 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
11092
11093         Revert:
11094         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11095         PR target/63521
11096         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11097         (HONOR_REG_ALLOC_ORDER): Define.
11098
11099 2015-07-24  Richard Biener  <rguenther@suse.de>
11100
11101         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
11102         * fold-const.c (fold_comparison): Move parameter does not
11103         alias &local simplification ...
11104         * match.pd: ... as a pattern here.
11105
11106 2015-07-24  Richard Biener  <rguenther@suse.de>
11107
11108         * gimple-fold.c (replace_stmt_with_simplification): Special-case
11109         valueizing call operands.
11110         * gimple-match-head.c (maybe_push_res_to_seq): Take
11111         number of call arguments from ops array.
11112         (do_valueize): New function.
11113         (gimple_simplify): Return true if valueization changed
11114         any operand even if the result didn't simplify further.
11115
11116 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11117
11118         PR middle-end/25530
11119         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
11120
11121 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11122
11123         PR middle-end/25529
11124         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
11125
11126 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11127
11128         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
11129         instruction.
11130
11131 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11132
11133         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
11134         clean up.
11135
11136 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
11137
11138         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
11139         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
11140         targets here.
11141         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
11142         ms_va_list_type_node initialization.
11143
11144 2015-07-23  Jeff Law  <law@redhat.com>
11145
11146         PR lto/66752
11147         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
11148         unable to find X NE 0 in the tables, return X as the simplified
11149         condition.
11150         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
11151         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
11152         to VISISTED_BBS.  */
11153         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
11154         after removing the control flow statement and unnecessary edges.
11155
11156 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11157
11158         * tree-pass.h (get_current_pass_name): Removed.
11159
11160 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
11161
11162         PR rtl-optimization/64164
11163         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11164         * tree-ssa-copyrename.c: Removed.
11165         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11166         -ftree-coalesce-vars.
11167         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11168         * common.opt (ftree-copyrename): Ignore.
11169         (ftree-coalesce-inlined-vars): Likewise.
11170         * doc/invoke.texi: Remove the ignored options above.
11171         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11172         * tree-ssa-coalesce.h: ... here.
11173         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11174         headers required by it.
11175         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11176         across variables when flag_tree_coalesce_vars.  Check register
11177         use and promoted modes to allow coalescing.  Moved to
11178         tree-ssa-coalesce.c.
11179         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11180         with its member functions to tree-ssa-coalesce.c.
11181         (var_map_base_init): Likewise.  Renamed to
11182         compute_samebase_partition_bases.
11183         (partition_view_normal): Drop want_bases parameter.
11184         (partition_view_bitmap): Likewise.
11185         * tree-ssa-live.h: Adjust declarations.
11186         * tree-ssa-coalesce.c: Include explow.h.
11187         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11188         default defs at the entry point.
11189         (dump_part_var_map): New.
11190         (compute_optimized_partition_bases): New, called by...
11191         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11192         of compute_samebase_partition_bases.  Adjust.
11193         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11194         * cfgexpand.c (leader_merge): New.
11195         (get_rtl_for_parm_ssa_default_def): New.
11196         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11197         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11198         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11199         redundant MEM attr setting.
11200         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11201         from...
11202         (expand_one_stack_var): ... this.  New wrapper to check and
11203         skip already expanded SSA partitions.
11204         (record_alignment_for_reg_var): New, factored out of...
11205         (expand_one_var): ... this.
11206         (expand_one_ssa_partition): New.
11207         (adjust_one_expanded_partition_var): New.
11208         (expand_one_register_var): Check and skip already expanded SSA
11209         partitions.
11210         (expand_used_vars): Don't create DECLs for anonymous SSA
11211         names.  Expand all SSA partitions, then adjust all SSA names.
11212         (pass::execute): Replace the loops that set
11213         SA.partition_to_pseudo from partition leaders and cleared
11214         DECL_RTL for multi-location variables, and that which used to
11215         rename vars and set attrs, with one that clears DECL_RTL and
11216         checks that PARMs and RESULTs default_defs match DECL_RTL.
11217         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11218         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11219         * explow.c (promote_ssa_mode): New.
11220         * explow.h (promote_ssa_mode): Declare.
11221         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11222         * function.c: Include cfgexpand.h.
11223         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11224         (use_register_for_parm_decl): Wrapper for the above to
11225         special-case the result_ptr.
11226         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11227         (split_complex_args): Take assign_parm_data_all argument.
11228         Pass it to rtl_for_parm.  Set up rtl and context for split
11229         args.
11230         (assign_parms_augmented_arg_list): Adjust.
11231         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11232         multiple locations.  Recognize split complex args.
11233         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11234         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11235         (assign_parm_setup_block): Prefer SSA-assigned location.
11236         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11237         if stack_parm is NULL.
11238         (assign_parm_setup_stack): Prefer SSA-assigned location.
11239         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11240         rtl before testing for pointer bounds.  Special-case result_ptr.
11241         (expand_function_start): Maybe reset DECL_RTL of result.
11242         Prefer SSA-assigned location for result and static chain.
11243         Factor out DECL_RESULT and SET_DECL_RTL.
11244         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11245         anonymous SSA names.  Use promote_ssa_mode.
11246         (get_temp_reg): Likewise.
11247         (remove_ssa_form): Adjust.
11248         * stor-layout.c (layout_decl): Don't set mem attributes of
11249         non-MEMs.
11250         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11251         and get its reg_usage for reg invalidation.
11252         (compute_bb_dataflow): Pass it insn.
11253         (emit_notes_in_bb): Likewise.
11254
11255 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
11256
11257         PR target/66217
11258         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
11259         prototype.
11260         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
11261         (rs6000_emit_2insn_and): Handle dot forms.
11262         * config/rs6000/rs6000.md (and<mode>3): Adjust.
11263         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
11264         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
11265
11266 2015-07-23  Richard Biener  <rguenther@suse.de>
11267
11268         * generic-match-head.c: Include cgraph.h.
11269         * gimple-match-head.c: Likewise.
11270         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
11271         SSA names.
11272         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
11273         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
11274         pattern.
11275
11276 2015-07-23  Richard Biener  <rguenther@suse.de>
11277
11278         * gimple-fold.c (fold_gimple_cond): Do not require folding
11279         results to pass valid_gimple_rhs_p.
11280         * tree-cfg.h (fold_cond_expr_cond): Remove.
11281         * tree-cfg.c (fold_cond_expr_cond): Likewise.
11282         (make_edges): Do not call it.
11283         * tree-inline.c (tree_function_versioning): Likewise.
11284
11285 2015-07-23  Tom de Vries  <tom@codesourcery.com>
11286
11287         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
11288         vect_force_simple_reduction.
11289         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
11290         (vect_is_simple_reduction_1): Add and handle
11291         need_wrapping_integral_overflow parameter.
11292         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
11293         need_wrapping_integral_overflow parameter.
11294         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
11295         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
11296         decl.
11297
11298 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
11299
11300         PR tree-optimization/66926,66951
11301         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
11302         INNER_LOOP and fix up condition for renaming virtual operands.
11303
11304 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11305
11306         * combine.c (try_combine): Use std::swap instead of manually
11307         swapping.
11308
11309 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
11310
11311         * config/mips/i6400.md: New file.
11312         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
11313         (mips64r6): Likewise.
11314         (i6400): Define.
11315         * config/mips/mips-tables.opt: Regenerate.
11316         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
11317         (mips_issue_rate): Add support for i6400.
11318         (mips_multipass_dfa_lookahead): Likewise.
11319         * config/mips/mips.h (TUNE_I6400): Define.
11320         * config/mips/mips.md: Include i6400.md.
11321         (processor): Add i6400.
11322         * doc/invoke.texi (-march=@var{arch}): Add i6400.
11323
11324 2015-07-23  Richard Biener  <rguenther@suse.de>
11325
11326         PR middle-end/66916
11327         * match.pd: Guard widen and sign-change comparison simplification
11328         with single_use.
11329
11330 2015-07-23  Richard Biener  <rguenther@suse.de>
11331
11332         PR tree-optimization/66945
11333         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
11334         ::before_dom_children): Force the propagators idea of
11335         non-executable edges to materialize, not what the folder
11336         chooses.
11337
11338 2015-07-23  Richard Biener  <rguenther@suse.de>
11339
11340         * gimple.h (gimple_cond_make_false): Use 0 != 0.
11341         (gimple_cond_make_true): Use 1 != 0.
11342
11343 2015-07-22  DJ Delorie  <dj@redhat.com>
11344
11345         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
11346         slashes.
11347
11348         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
11349         (ashrhi3): Likewise.
11350         (lshrhi3): Likewise.
11351         (movhi): Take advantage of zero-extend to load small constants.
11352         (movpsi): Likewise.
11353         (and<mode>3): Likewise.
11354         (zero_extendqihi2): Likewise.
11355         (zero_extendqisi2): New.
11356         * config/msp430/constraints.md (N,O): New.
11357         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
11358
11359 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
11360
11361         PR target/66954
11362         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
11363         to enum feature_priority and feature_list.
11364         (fold_builtin_cpu): Add F_AES to enum processor_features
11365         and isa_names_table.
11366
11367 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11368
11369         PR driver/66737
11370         * config/i386/linux-common.h (MPX_SPEC): Use linker option
11371         for 64bit target only.
11372
11373 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
11374
11375         * config/nvptx/nvptx.c: Expand some comments.
11376
11377 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
11378
11379         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
11380         (cortex_a53_advsimd): ...This.
11381
11382 2015-07-22  Richard Biener  <rguenther@suse.de>
11383
11384         * genmatch.c (expr::gen_transform): Clarify error message
11385         and display location.
11386
11387 2015-07-22  Richard Biener  <rguenther@suse.de>
11388
11389         * genmatch.c (struct operand): Add location member.
11390         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
11391         constructors.
11392         (struct simplify): Remove match_location and result_location
11393         members.
11394         (elsehwere): Adjust.
11395
11396 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
11397
11398         * config/mips/m5100.md: New file.
11399         * config/mips/mips-cpus.def (m5100, m5101): Define.
11400         * config/mips/mips-tables.opt: Regenerate.
11401         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
11402         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
11403         -march=m5101 to -mips32r5.
11404         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
11405         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
11406         !-msoft-float.
11407         * config/mips/mips.md: Include m5100.md.
11408         (processor): Add m5100.
11409         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
11410
11411 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
11412
11413         * config/mips/mips-cpus.def (interaptiv): Define.
11414         * config/mips/mips-tables.opt: Regenerate.
11415         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
11416         -mips32r2.
11417         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
11418         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
11419
11420 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11421
11422         PR target/63521
11423         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11424         (HONOR_REG_ALLOC_ORDER): Define.
11425
11426 2015-07-22  Richard Biener  <rguenther@suse.de>
11427
11428         PR tree-optimization/66952
11429         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
11430         blocks we end up executing unconditionally reset all SSA
11431         info such as range and alignment.
11432         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
11433         * tree-ssanames.c (reset_flow_sensitive_info): New function.
11434
11435 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11436
11437         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
11438         typo in attribute.
11439
11440 2015-07-22  Richard Biener  <rguenther@suse.de>
11441
11442         * genmatch.c (parser::parse_result): Properly handle
11443         match with result operands and conditions.
11444
11445 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11446
11447         PR target/63870
11448         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11449         Add qualifier_struct_load_store_lane_index.
11450         (aarch64_types_loadstruct_lane_qualifiers): Use
11451         qualifier_struct_load_store_lane_index for lane index argument for
11452         last argument.
11453         (aarch64_types_storestruct_lane_qualifiers): Ditto.
11454         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11455         (aarch64_simd_expand_args): Add new argument describing mode of
11456         builtin. Check lane bounds for arguments with
11457         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11458         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
11459         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11460         (aarch64_simd_expand_builtin): Handle arguments with
11461         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
11462         aarch64_simd_expand_args.
11463         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
11464         vst[234]_lane with BUILTIN_VALLDIF.
11465         * config/aarch64/aarch64-simd.md:
11466         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
11467         endianness reversal on lane index.
11468         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
11469         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
11470         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
11471         (vec_store_lanesci_lane<mode>): Ditto.
11472         (vec_store_lanesxi_lane<mode>): Ditto.
11473         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
11474         reversal of lane index.
11475         (aarch64_ld3_lane<mode>): Ditto.
11476         (aarch64_ld4_lane<mode>): Ditto.
11477         (aarch64_st2_lane<mode>): Ditto.
11478         (aarch64_st3_lane<mode>): Ditto.
11479         (aarch64_st4_lane<mode>): Ditto.
11480         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
11481         to qmode. Add new mode parameter. Update uses.
11482         (__LD3_LANE_FUNC): Ditto.
11483         (__LD4_LANE_FUNC): Ditto.
11484         (__ST2_LANE_FUNC): Ditto.
11485         (__ST3_LANE_FUNC): Ditto.
11486         (__ST4_LANE_FUNC): Ditto.
11487
11488 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
11489
11490         * doc/invoke.texi (Language Independent Options): Rename node to
11491         Diagnostic Message Formatting Options.
11492
11493 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
11494
11495         PR ipa/66424.
11496         * lra-remat.c (operand_to_remat): Prevent using insns with input
11497         subregs processed separately by IRA.
11498
11499 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
11500
11501         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
11502         straight loops.
11503         (single_imm_use): Check for iterator node.
11504         (num_imm_uses): Likewise.
11505         * tree-ssa-operands.c (has_zero_uses_1): Delete.
11506         (single_imm_use_1): Check for iterator node.
11507
11508 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
11509             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11510
11511         * configure.ac: Add check for new options in isl-0.15.
11512         * config.in, configure: Rebuilt.
11513         * graphite-blocking.c: Include <isl/constraint.h>
11514         * graphite-interchange.c,  graphite-poly.c: Likewise.
11515         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
11516         * graphite.c: Likewise.
11517         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
11518         <isl/union_set.h>.
11519         * graphite-dependences.c: Include <isl/constraint.h>.
11520         (max_number_of_out_dimensions): Returns isl_stat.
11521         (extend_schedule_1): Likewise
11522         (extend_schedule): Corresponding changes.
11523         * graphite-optimize-isl.c: Include <isl/constraint.h> and
11524         <isl/union_set.h>.
11525         (getSingleMap): Change return type of isl_stat.
11526         (optimize_isl): Conditionally use
11527         isl_options_set_schedule_serialize_sccs.
11528         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
11529         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
11530
11531 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
11532
11533         PR target/66956
11534         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
11535         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
11536
11537 2015-07-21  Richard Biener  <rguenther@suse.de>
11538
11539         PR tree-optimization/66948
11540         * genmatch.c (capture_info::walk_match): Also recurse to
11541         captures.  Properly compute expr state from captures of
11542         captures.
11543         * match.pd: Add single-use guards to
11544         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
11545
11546 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11547
11548         * config/nvptx/mkoffload.c (process): Add static destructor call.
11549
11550 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11551
11552         PR middle-end/66915
11553         * match.pd (A - B -> A + (-B)): Don't allow folding
11554         when type if a fixed-point type.
11555
11556 2015-07-20  DJ Delorie  <dj@redhat.com>
11557
11558         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
11559         (iorqi3_real): Likewise for set1.
11560
11561 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
11562
11563         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
11564         for !TARGET_64BIT.
11565
11566 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
11567
11568         * graphite-isl-ast-to-gimple.c:
11569         Refactor so that each function can access 'region'. This will help
11570         maintain a parameter rename_map within a region.
11571
11572 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11573
11574         * config/rs6000/rs6000.md (*lt0_disi): New.
11575
11576 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11577
11578         PR target/66217
11579         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
11580         "available letters" comment.
11581         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
11582         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
11583         and_2rld_operand):  Delete.
11584         (and_operand): Adjust.
11585         (rotate_mask_operator): New.
11586         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
11587         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
11588         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
11589         extract_ME): Delete.
11590         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11591         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
11592         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
11593         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11594         rs6000_emit_2insn_and): New.
11595         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
11596         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
11597         includes_rldic_lshift_p, includes_rldicr_lshift_p,
11598         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
11599         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11600         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
11601         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
11602         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11603         rs6000_emit_2insn_and): New.
11604         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
11605         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
11606         handling.
11607         <NOT>: Don't fall through to next case.
11608         <AND>: Handle the various rotate-and-mask cases directly.
11609         <IOR>: Always cost as one insn.
11610         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
11611         (and<mode>3): Adjust expander for the new patterns.
11612         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
11613         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
11614         (*and<mode>3_imm_dot_shifted): New.
11615         (*and<mode>3_mask): Delete, rewrite as ...
11616         (and<mode>3_mask): ... New.
11617         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
11618         (andsi3_internal0_nomc): Delete.
11619         (*andsi3_internal6): Delete.
11620         (*and<mode>3_2insn): New.
11621         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
11622         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
11623         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
11624         *insvdi_internal3): Delete.
11625         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
11626         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
11627         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
11628         *ior<mode>_mask): New.
11629         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
11630         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11631         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11632         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11633         Delete.
11634         (ashr<mode>3): Delete expander.
11635         (*ashr<mode>3): Rename to ...
11636         (ashr<mode>3): ... This.
11637         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
11638         (*rotldi3_internal4, *rotldi3_internal5 and split,
11639         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
11640         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
11641         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
11642         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
11643         (splitter for loading a mask): Adjust.
11644         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
11645
11646 2015-07-20  Marek Polacek  <polacek@redhat.com>
11647
11648         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
11649         output_add_clobbers, output_added_clobbers_hard_reg_p,
11650         gen_rtx_scratch): Remove declarations.
11651
11652 2015-07-20  Marek Polacek  <polacek@redhat.com>
11653
11654         PR c++/55095
11655         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
11656
11657 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11658
11659         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
11660         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
11661
11662 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11663
11664         * combine.c (combine_simplify_rtx): Move simplification step
11665         before various transformations/substitutions.
11666
11667 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
11668
11669         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
11670         (struct int_traits): Likewise.
11671
11672 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11673
11674         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
11675         function to vmsdbgout_function_decl.
11676
11677 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11678
11679         PR target/66922
11680         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
11681         from misaligned positions.
11682         (ix86_expand_pinsr): Reject insertions to misaligned positions.
11683
11684 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
11685
11686         PR middle-end/46851
11687         PR middle-end/60340
11688         * Makefile.in: Removed omega.o.
11689         * common.opt: Document flag fcheck-data-deps as deprecated.
11690         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
11691         its associated params: omega-max-vars, omega-max-geqs,
11692         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
11693         omega-max-keys, omega-eliminate-redundant-constraints.
11694         * doc/loop.texi: Remove all the section on Omega.
11695         * graphite-blocking.c: Include missing params.h: it used to be
11696         included through tree-data-ref.h and omega.h.
11697         * graphite-isl-ast-to-gimple.c: Same.
11698         * graphite-optimize-isl.c: Same.
11699         * graphite-sese-to-poly.c: Same.
11700         * graphite.c: Same.
11701         * omega.c: Remove.
11702         * omega.h: Remove.
11703         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11704         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11705         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
11706         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
11707         * passes.def: Remove pass_check_data_deps.
11708         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
11709         (dump_conflict_function): Same.
11710         (dump_subscript): Same.
11711         (print_direction_vector): Same.
11712         (print_dir_vectors): Same.
11713         (print_lambda_vector): Same.
11714         (print_dist_vectors): Same.
11715         (dump_data_dependence_relation): Same.
11716         (dump_data_dependence_relations): Same.
11717         (dump_dist_dir_vectors): Same.
11718         (dump_ddrs): Same.
11719         (init_omega_eq_with_af): Removed.
11720         (omega_extract_distance_vectors): Removed.
11721         (omega_setup_subscript): Removed.
11722         (init_omega_for_ddr_1): Removed.
11723         (init_omega_for_ddr): Removed.
11724         (ddr_consistent_p): Removed.
11725         (compute_affine_dependence): Do not use omega to check data
11726         dependences.
11727         (compute_data_dependences_for_bb): Removed.
11728         (analyze_all_data_dependences): Removed.
11729         (tree_check_data_deps): Removed.
11730         * tree-data-ref.h: Do not include omega.h.
11731         (compute_data_dependences_for_bb): Removed.
11732         (tree_check_data_deps): Removed.
11733         * tree-ssa-loop.c (pass_check_data_deps): Removed.
11734         (make_pass_check_data_deps): Removed.
11735         * tree-ssa-phiopt.c: Include params.h.
11736         * tree-vect-data-refs.c: Same.
11737         * tree-vect-slp.c: Same.
11738
11739 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11740
11741         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
11742         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
11743         (mem->fpreg splitters): Ditto.
11744         (general_operand->nonimmediate_operand splitter): Use explicit modes.
11745         Disable DFmode for TARGET_64BIT.
11746
11747 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
11748
11749         PR target/66906
11750         * config/i386/i386.c (ix86_expand_prologue): Replicate static
11751         chain on the stack.
11752
11753 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11754
11755         * config/nvptx/mkoffload.c (process): Constify host data.
11756         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11757         Constify host data.
11758         (generate_host_descr_file): Likewise.
11759
11760 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
11761             Sebastian Pop  <s.pop@samsung.com>
11762
11763         PR middle-end/61929
11764         * graphite-dependences.c (add_pdr_constraints): Renamed
11765         pdr->extent to pdr->subscript_sizes.
11766         * graphite-interchange.c (build_linearized_memory_access): Add
11767         back all gcc_assert's that the "isl_int to isl_val conversion"
11768         patch has removed.  Refactored.
11769         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
11770         * graphite-poly.c (new_poly_dr): Same.
11771         (free_poly_dr): Same.
11772         * graphite-poly.h (struct poly_dr): Same.
11773         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
11774         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
11775         * graphite-scop-detection.h: Fix space.
11776         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
11777         back all gcc_assert's removed by a previous patch.
11778         (wrap): Remove the_isl_ctx global variable that the same patch has
11779         added.
11780         (build_loop_iteration_domains): Same.
11781         (add_param_constraints): Same.
11782         (pdr_add_data_dimensions): Same.  Refactored.
11783         (build_poly_dr): Renamed extent to subscript_sizes.
11784
11785 2015-07-17  Marek Polacek  <polacek@redhat.com>
11786
11787         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
11788         * match.pd: ... here.
11789
11790 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11791
11792         * config/nvptx/mkoffload.c (process): Constify target data.
11793         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11794         Constify target data.
11795         (generate_target_offloadend_file): Likewise.
11796
11797 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
11798
11799         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
11800         to allow renaming of PHI arguments on edges incoming from outer
11801         loop header, add corresponding check before start PHI iterator.
11802         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
11803         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
11804         with true force_vectorize.  Set-up dominator for outer loop too.
11805         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
11806         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
11807         was marked with force_vectorize and has restricted cfg.
11808         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
11809         inner loop.
11810         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
11811         do peeling for outer loops.
11812
11813 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
11814             Matthias Klose  <doko@ubuntu.com>
11815
11816         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
11817         build-sysroot, sysroot from the `Miscenalleous configure options' to
11818         the `Directories' section and strip trailing `/' from with_sysroot.
11819         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
11820         * configure: Regenerated.
11821
11822 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11823
11824         PR target/66824
11825         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
11826         (TARGET_HARD_DF_REGS): Ditto.
11827         (TARGET_HARD_XF_REGS): Ditto.
11828         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
11829         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
11830         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
11831         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
11832         (*movsf_internal): Add alternatives 16 and 17. Enable
11833         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
11834
11835 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11836
11837         PR rtl-optimization/66891
11838         * calls.c (expand_call): Wrap precompute_register_parameters with
11839         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
11840
11841 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
11842
11843         * config/nvptx/mkoffload.c (process): Constify mapping variables.
11844         Define target data struct and initialize it.
11845
11846 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
11847
11848         PR rtl-optimization/66626
11849         * ira.h (emit-rtl.h): Include.
11850         (non_spilled_static_chain_regno_p): New.
11851         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
11852         unless it is non spilled static chain pseudo.
11853         (assign_hard_rego): Spill memory profitable allocno unless it is
11854         non spilled static chain pseudo.
11855         (allocno_spill_priority_compare): Put non spilled static chain
11856         pseudo at the end of sorted array.
11857         (improve_allocation): Do nothing if we have static chain and
11858         non-local goto.
11859         (allocno__priority_compare_func): Put non spilled static chain
11860         pseudo at the beginning of sorted array.
11861         (move_spill_restore): Ignore non spilled static chain pseudo.
11862         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
11863         to non spilled static chain pseudo.
11864         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
11865         pseudo at the beginning of sorted array.
11866         (spill_for): Spill non spilled static chain pseudo last.
11867         * lra-constraints.c (lra_constraints): Remove static chain pseudo
11868         check for equivalence.
11869
11870 2015-07-16  Martin Liska  <mliska@suse.cz>
11871
11872         PR ipa/66896.
11873         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
11874         dst_ctx if it does not exist.
11875
11876 2015-07-16  Martin Liska  <mliska@suse.cz>
11877
11878         * hash-set.h (remove): New function.
11879         (iterator): New iteration class for hash_set.
11880
11881 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11882
11883         * genattrtab.c (make_canonical): Add a file_location parameter.
11884         Use fatal_at rather than fatal.
11885         (get_attr_value): Likewise.  Update call to make_canonical.
11886         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
11887         (make_internal_attr): Update calls accordingly.
11888
11889 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11890
11891         * read-md.h (message_with_line, error_with_line): Delete.
11892         * read-md.c (message_with_line, error_with_line): Delete.
11893         * gensupport.h: Include read-md.h.
11894         (md_rtx_info): New structure.
11895         (read_md_rtx): Use it.  Return a bool success value.
11896         * gensupport.c (read_md_rtx): Likewise.
11897         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
11898         (main): Update after interface changes.
11899         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
11900         (main): Update after interface changes.
11901         * genattrtab.c (insn_code_number): Delete.
11902         (optimize_attrs): Add a max_insn_code parameter and use it instead
11903         of insn_code_number.
11904         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
11905         Use *_at rather than *_with_line functions.
11906         (gen_insn): Likewise.
11907         (gen_delay): Likewise.
11908         (gen_insn_reserv): Likewise.
11909         (gen_bypass): Take an md_rtx_info rather than an rtx.
11910         (main): Update after interface changes.  Use a local max_insn_code
11911         variable instead of insn_code_number.
11912         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
11913         an rtx.  Use fatal_at rather than fatal.
11914         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
11915         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
11916         (gen_absence_set, gen_final_absence_set, gen_automaton)
11917         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
11918         (main): Update after interface changes.
11919         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
11920         and code number.
11921         (main): Update after interface changes.
11922         * genconditions.c (main): Use new read_md_rtx interface.
11923         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
11924         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
11925         (main): Update after interface changes.
11926         * genemit.c (insn_code_number, insn_index_number): Delete.
11927         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11928         Use fatal_at rather than fatal.
11929         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
11930         rather than fatal.
11931         (gen_split): Likewise.
11932         (main): Update after interface changes.
11933         * genextract.c (line_no): Delete.
11934         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11935         Update call to walk_rtx.
11936         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
11937         rather than message_with_line.
11938         (walk_rtx): Add an md_rtx_info argument.  Update call to
11939         VEC_safe_set_locstr.
11940         (main): Update after interface changes.
11941         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
11942         and lineno.  Use error_at rather than separate message_with_line
11943         calls and have_error assignments.
11944         (main): Update after interface changes.
11945         * genmddump.c (main): Use new read_md_rtx interface.
11946         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
11947         (main): Update after interface changes.
11948         * genoutput.c (next_code_number): Delete.
11949         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11950         (gen_peephole, gen_expand, gen_split): Likewise.
11951         (note_constraint): Likewise.  Use *_at rather than *_with_line
11952         functions.
11953         (main): Update after interface changes.
11954         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
11955         rtx and lineno.
11956         (main): Update after interface changes.
11957         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
11958         than an rtx and lineno.
11959         (process_define_constraint): Likewise.
11960         (process_define_register_constraint): Likewise.
11961         (main): Update after interface changes.
11962         * genrecog.c (next_insn_code, pattern_lineno): Delete.
11963         (validate_pattern): Replace top-level rtx with an md_rtx_info.
11964         Use *_at rather than *_with_line functions.
11965         (match_pattern_2): Likewise.
11966         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
11967         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
11968         Use *_at rather than *_with_line functions.
11969         * gentarget-def.c (add_insn): New function.
11970         (main): Use it.  Use new read_md_rtx interface.
11971
11972 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11973
11974         * gensupport.h (compute_test_codes): Take a file_location rather
11975         than a line number.
11976         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
11977         rather than *_with_line functions.
11978         (process_define_predicate): Update call to compute_test_codes.
11979         * genpreds.c (validate_exp): Take a file_location rather than a
11980         line number.  Use *_at functions rather than *_with_line functions.
11981         (process_define_predicate): Update call to validate_exp.
11982         (constraint_data): Replace lineno field with a file_location.
11983         (add_constraint): Take a file_location rather than a line number.
11984         Use *_at functions rather than *_with_line functions.  Fix error
11985         message for address constraints.  Update after changes to
11986         validate_exp, constraint_data and compute_test_codes.
11987         (process_define_constraint): Update accordingly.
11988         (process_define_register_constraint): Likewise.
11989
11990 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11991
11992         * genoutput.c (data): Use a file_location to record the source
11993         position.
11994         (nothing): Delete.
11995         (idata, idata_end): Remove initialization.
11996         (constraint_data): Replace lineno with a file_location.
11997         (output_insn_data): Update after changes to data.
11998         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
11999         (scan_operands): Likewise, using *_at rather than *_with_line
12000         functions.
12001         (process_template): Likewise.
12002         (validate_insn_alternatives): Likewise.
12003         (validate_insn_operands): Likewise.
12004         (validate_optab_operands): Likewise.
12005         (init_insn_for_nothing): Initialize idata and idata_end.
12006         (note_constraint): Update after changes to constraint_data,
12007         using at rather than with_line functions.
12008         (mdep_constraint_len): Take a file_location rather than a
12009         line number.  Use at rather than with_line functions.
12010
12011 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12012
12013         * read-md.h (fatal_at): Declare.
12014         * read-md.c (fatal_at): New function.
12015         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
12016         to record the source position.
12017         (check_attr_test): Take a file_location instead of a line number.
12018         Use fatal_at instead of fatal.
12019         (check_attr_value): Update after above changes, using "at"
12020         rather than "with_line" reporting functions.
12021         (convert_set_attr_alternative): Likewise.
12022         (gen_attr): Likewise.
12023         (check_defs): Likewise.  Don't assign to read_md_filename.
12024         (gen_insn): Update initialization after above changes.
12025         (gen_delay): Likewise.
12026         (write_insn_cases): Print the filename for a define_peephole.
12027         (gen_insn_reserv): Take a line number as argument and update
12028         the call to check_attr_test.
12029         (main): Pass a line number to gen_insn_reserv.
12030
12031 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12032
12033         * read-md.h (file_location): New structure.
12034         (directive_handler_t): Take a file_location rather than a line number.
12035         (message_at, error_at): Declare.
12036         (read_skip_construct): Delete.
12037         * read-md.c (message_with_line_1): Replace with...
12038         (message_at_1): ...this new function.
12039         (message_at, error_at): New functions.
12040         (message_with_line, error_with_line): Update to use message_at_1.
12041         (handle_enum): Take a file_location rather than a line number
12042         and use error_at for error reporting.
12043         (handle_include): Likewise.
12044         (read_skip_construct): Likewise.  Make static.
12045         (handle_file): Update after above changes.  Pass a file_location
12046         rather than a line number to handle_directive.
12047         * gensupport.c (queue_elem): Replace separate filename and lineno
12048         with a file_location.
12049         (queue_pattern): Replace filename and lineno arguments with a
12050         file_location.  Update after change to queue_elem.
12051         (process_define_predicate): Replace lineno argument with a
12052         file_location and use error_at for error reporting.  Update
12053         after above changes.
12054         (process_rtx): Likewise.
12055         (subst_pattern_match): Likewise.
12056         (get_alternatives_number): Likewise.
12057         (alter_predicate_for_insn): Likewise.
12058         (rtx_handle_directive): Likewise.
12059         (is_predicable): Update after above changes, using error_at rather
12060         than error_with_line.
12061         (has_subst_attribute): Likewise.
12062         (identify_predicable_attribute): Likewise.
12063         (alter_attrs_for_subst_insn): Likewise.
12064         (process_one_cond_exec): Likewise.
12065         (process_substs_on_one_elem): Likewise.
12066         (process_define_subst): Likewise.
12067         (check_define_attr_duplicates): Likewise.
12068         (read_md_rtx): Update after change to queue_elem.
12069
12070 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12071
12072         * genoutput.c (next_index_number): Delete.
12073         (data): Remove index_number.
12074         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
12075         (main): Remove manipulation of next_index_number.
12076
12077 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
12078
12079         * genattrtab.c (check_attr_value): Remove handling of null attrs.
12080         (make_canonical): Likewise.
12081
12082 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
12083
12084         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
12085         instead of adjust_address_nv.
12086         (restore_stack_nonlocal): Likewise.
12087         (nonlocal_goto): Likewise.
12088
12089 2015-07-16  Tom de Vries  <tom@codesourcery.com>
12090
12091         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
12092         not have a corresponding loop header phi.
12093
12094 2015-07-16  Tom de Vries  <tom@codesourcery.com>
12095
12096         * tree-parloops.c (create_loads_for_reductions): Handle case that
12097         reduction is unused.
12098
12099 2015-07-16  Richard Biener  <rguenther@suse.de>
12100
12101         PR tree-optimization/66894
12102         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
12103         about deriving NE_EXPR from truncated values.
12104
12105 2015-07-16  Martin Liska  <mliska@suse.cz>
12106
12107         * alloc-pool.h
12108         (object_allocator): Add new class.
12109         (pool_allocator::initialize): Use the underlying class.
12110         (pool_allocator::allocate): Likewise.
12111         (pool_allocator::remove): Likewise.
12112         (operator new): A new generic allocator.
12113         * asan.c (struct asan_mem_ref): Remove unused members.
12114         (asan_mem_ref_new): Replace new operator with
12115         object_allocator::allocate.
12116         (free_mem_ref_resources): Change deallocation.
12117         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
12118         with object_allocator.
12119         * config/sh/sh.c (add_constant): Replace new operator with
12120         object_allocator::allocate.
12121         (sh_reorg): Change call to a release method.
12122         * cselib.c (struct elt_list): Remove unused members.
12123         (new_elt_list): Replace new operator with
12124         object_allocator::allocate.
12125         (new_elt_loc_list): Likewise.
12126         (new_cselib_val): Likewise.
12127         (unchain_one_elt_list): Change delete operator with remove method.
12128         (unchain_one_elt_loc_list): Likewise.
12129         (unchain_one_value): Likewise.
12130         (cselib_finish): Release newly added static allocators.
12131         * cselib.h (struct cselib_val): Remove unused members.
12132         (struct elt_loc_list): Likewise.
12133         * df-problems.c (df_chain_alloc): Replace pool_allocator with
12134         object_allocator.
12135         * df-scan.c (struct df_scan_problem_data): Likewise.
12136         (df_scan_alloc): Likewise.
12137         * df.h (struct dataflow): Likewise.
12138         * dse.c (struct read_info_type): Likewise.
12139         (struct insn_info_type): Likewise.
12140         (struct dse_bb_info_type): Likewise.
12141         (struct group_info): Likewise.
12142         (struct deferred_change): Likewise.
12143         (get_group_info): Likewise.
12144         (delete_dead_store_insn): Likewise.
12145         (free_read_records): Likewise.
12146         (replace_read): Likewise.
12147         (check_mem_read_rtx): Likewise.
12148         (scan_insn): Likewise.
12149         (dse_step1): Likewise.
12150         (dse_step7): Likewise.
12151         * et-forest.c (struct et_occ): Remove unused members.
12152         (et_new_occ): Use allocate instead of new operator.
12153         (et_new_tree): Likewise.
12154         (et_free_tree): Call release method explicitly.
12155         (et_free_tree_force): Likewise.
12156         (et_free_pools): Likewise.
12157         (et_split): Use remove instead of delete operator.
12158         * et-forest.h (struct et_node): Remove unused members.
12159         * ipa-cp.c: Change pool_allocator to object_allocator.
12160         * ipa-inline-analysis.c: Likewise.
12161         * ipa-profile.c: Likewise.
12162         * ipa-prop.c: Likewise.
12163         * ipa-prop.h: Likewise.
12164         * ira-build.c (initiate_cost_vectors): Cast return value.
12165         (ira_allocate_cost_vector): Likewise.
12166         * ira-color.c (struct update_cost_record): Remove unused members.
12167         * lra-int.h (struct lra_live_range): Likewise.
12168         (struct lra_copy): Likewise.
12169         (struct lra_insn_reg): Likewise.
12170         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
12171         * lra.c (new_insn_reg): Replace new operator with allocate method.
12172         (free_insn_regs): Same for operator delete.
12173         (finish_insn_regs): Release new static allocator.
12174         (finish_insn_recog_data): Likewise.
12175         (lra_free_copies): Replace delete operator with remove method.
12176         (lra_create_copy): Replace operator new with allocate method.
12177         (invalidate_insn_data_regno_info): Same for remove method.
12178         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
12179         (free_debug_insn_changes): Replace delete operator with remove method.
12180         (replace_oldest_value_reg): Replace operator new with allocate method.
12181         (pass_cprop_hardreg::execute): Release new static variable.
12182         * sched-deps.c (sched_deps_init): Change pool_allocator to
12183         object_allocator.
12184         * sel-sched-ir.c: Likewise.
12185         * sel-sched-ir.h: Likewise.
12186         * stmt.c (expand_case): Likewise.
12187         (expand_sjlj_dispatch_table): Likewise.
12188         * tree-sra.c (struct access): Remove unused members.
12189         (struct assign_link): Likewise.
12190         (sra_deinitialize): Release newly added static pools.
12191         (create_access_1):Replace operator new with allocate method.
12192         (build_accesses_from_assign): Likewise.
12193         (create_artificial_child_access): Likewise.
12194         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
12195         pool_allocator to object_allocator.
12196         * tree-ssa-pre.c: Likewise.
12197         * tree-ssa-reassoc.c: Likewise.
12198         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
12199         * tree-ssa-strlen.c: Likewise.
12200         * tree-ssa-structalias.c: Likewise.
12201         * var-tracking.c (onepart_pool_allocate): New function.
12202         (unshare_variable): Use the newly added function.
12203         (variable_merge_over_cur): Likewise.
12204         (variable_from_dropped): Likewise.
12205         (variable_was_changed): Likewise.
12206         (set_slot_part): Likewise.
12207         (emit_notes_for_differences_1): Likewise.
12208         (vt_finalize): Release newly added static pools.
12209
12210 2015-07-16  Martin Jambor  <mjambor@suse.cz>
12211
12212         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
12213         all uses.  Fix two typos in its general comment.
12214         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
12215
12216 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
12217
12218         * config/i386/linux-common.h (LINK_MPX): New.
12219         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
12220         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
12221         indicating '-z bndplt' support by linker.
12222         * configure: Regenerate.
12223         * config.in: Regenerate.
12224
12225 2015-07-16  Richard Biener  <rguenther@suse.de>
12226
12227         * fold-const.c (fold_widened_comparison): Remove.
12228         (fold_sign_changed_comparison): Likewise.
12229         (fold_comparison): Move widened and sign-changed comparison
12230         simplification ...
12231         * match.pd: ... to patterns here.
12232         * generic-match-head.c: Include target.h.
12233         * gimple-match-head.c: Likewise.
12234
12235 2015-07-16  Richard Biener  <rguenther@suse.de>
12236
12237         * tree-ssa-dom.c (dom_valueize): New function.
12238         (record_temporary_equivalences): Also record equivalences
12239         for dominating stmts that have uses of equivalences we are
12240         about to record.
12241
12242 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
12243
12244         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
12245         add_autoinc_candidates.
12246         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
12247         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
12248         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
12249         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
12250         Call new function.
12251         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
12252         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
12253         Remove parameter struct iv*.  Call add_autoinc_candidates here.
12254         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
12255         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
12256         Call new function.
12257         (find_iv_candidates): Call new functions.
12258
12259 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
12260
12261         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
12262         uninitialized-variable warning.
12263
12264 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12265
12266         PR target/65249
12267         * config/sh/sh.md (movdi): Split simple reg move to two movsi
12268         when the destination is R0.
12269
12270 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
12271
12272         PR target/66866
12273         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
12274         * config/i386/i386.c (ix86_expand_pextr): New function.
12275         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
12276         for non-lowpart subregs.
12277         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
12278         (insv<mode>): Use SWI248 mode iterator.
12279         (insv<mode>_1): Ditto.
12280
12281 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12282             Sebastian Pop  <s.pop@samsung.com>
12283
12284         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
12285         iterator to use_stmt.
12286
12287 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12288             Sebastian Pop <s.pop@samsung.com>
12289
12290         * graphite-scop-detection.c (build_scops_1): Discard scops for
12291         which entry==exit.
12292
12293 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12294             Sebastian Pop <s.pop@samsung.com>
12295
12296         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
12297         case of a return statement in scop.
12298
12299 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12300             Sebastian Pop <s.pop@samsung.com>
12301
12302         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
12303         INTEGER_TYPE parameters.
12304         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
12305         VECTOR_CST in scan_tree_for_params.
12306         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
12307
12308 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12309
12310         * gimple-pretty-print.h: Don't include pretty-print.h.
12311         * tree-streamer.h: Don't include lto-streamer.h.
12312         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
12313         * gimple-streamer-in.c: Remove redundant includes.
12314         * gimple-streamer-out.c: Likewise.
12315         * ipa-devirt.c: Likewise.
12316         * ipa-icf.c: Likewise.
12317         * ipa-inline-analysis.c: Likewise.
12318         * ipa-polymorphic-call.c: Likewise.
12319         * ipa-profile.c: Likewise.
12320         * ipa-prop.c: Likewise.
12321         * ipa-pure-const.c: Likewise.
12322         * lto-cgraph.c: Likewise.
12323         * lto-streamer-in.c: Likewise.
12324         * lto-streamer-out.c: Likewise.
12325         * lto-streamer.c: Likewise.
12326         * tree-streamer-in.c: Likewise.
12327         * tree-streamer-out.c: Likewise.
12328         * tree-streamer.c: Likewise.
12329
12330 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12331
12332         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
12333         include input.h.
12334         * opts.c: Remove multiline #include comment.
12335
12336 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
12337
12338         * config/nvptx/mkoffload.c (process): Add C++ protection to
12339         emitted code.
12340
12341 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12342
12343         PR target/66854
12344         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
12345         null before IEEE 128-bit floating point support patch.
12346
12347 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12348
12349         * simplify-rtx.c (simplify_ternary_operation): Add simplification
12350         for (!c) != {0,...,0} ? a : b for vector modes.
12351
12352 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
12353             Martin Jambor  <mjambor@suse.cz>
12354
12355         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
12356         struct func_body_info* instead of struct ipa_node_params*, expecting
12357         fbi->info to be filled in.  Replace throughout.  Adjust call to
12358         ipa_load_from_parm_agg.
12359         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
12360         instead of struct ipa_node_params*.  Adjust calls to other functions
12361         so that they pass either fbi or fbi->info.
12362         (set_switch_stmt_execution_predicate): Likewise.
12363         (will_be_nonconstant_predicate): Likewise.
12364         (compute_bb_predicates): Likewise.
12365         (estimate_function_body_sizes): Move asserts earlier.  Fill in
12366         struct func_body_info, replace parms_info with fbi.info.  Adjust
12367         calls to functions that now accept struct func_body_info.
12368         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
12369         (struct func_body_info): Likewise.
12370         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
12371         remove static.  Adjust callers.
12372         (ipa_load_from_parm_agg): Remove.
12373         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
12374         (func_body_info): Likewise.
12375         (ipa_load_from_parm_agg): Adjust prototype.
12376
12377 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12378
12379         * gensupport.c (rtx_handle_directive): Adjust.
12380         * read-rtl.c (apply_iterators): Take vector to add rtxs to
12381         instead of expr list rtx.
12382         (add_define_attr_for_define_subst): Likewise.
12383         (add_define_subst_attr): Likewise.
12384         (read_subst_mapping): Likewise.
12385         (read_rtx): Likewise.
12386         * rtl.h (read_rtx): Adjust.
12387
12388 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12389
12390         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
12391
12392 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12393
12394         PR target/58066
12395         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
12396         (*tls_local_dynamic_base_64_<mode>): Ditto.
12397         (*tls_local_dynamic_base_64_largepic): Ditto.
12398         (tls_global_dynamic_64_<mode>): Update expander pattern.
12399         (tls_local_dynamic_base_64_<mode>): Ditto.
12400
12401 2015-07-15  Richard Biener  <rguenther@suse.de>
12402
12403         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
12404         and bool_var == 1 -> bool_var simplifications ...
12405         * match.pd: ... to patterns here.  Factor out negate_expr_p
12406         cases from the A - B -> A + (-B) patterns as negate_expr_p
12407         predicate and add a -(A + B) -> (-B) - A pattern.
12408
12409 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12410
12411         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
12412
12413 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12414             Robert Suchanek  <robert.suchanek@imgtec.com>
12415
12416         * config/mips/mips.c (mips_int_mask): New enum.
12417         (mips_shadow_set): Likewise.
12418         (int_mask): New variable.
12419         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
12420         (machine_function): Add int_mask and use_shadow_register_set.
12421         (mips_attribute_table): Add attribute handlers for interrupt and
12422         use_shadow_register_set.
12423         (mips_interrupt_mask): New static function.
12424         (mips_handle_interrupt_attr): Likewise.
12425         (mips_handle_use_shadow_register_set_attr): Likewise.
12426         (mips_use_shadow_register_set): Change return type to enum
12427         mips_shadow_set.  Add argument handling for use_shadow_register_set
12428         attribute.
12429         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
12430         compare with mips_shadow_set enum.
12431         (mips_compute_frame_info): Add interrupt mask and
12432         use_shadow_register_set to per-function information structure.
12433         Add a stack slot for EPC unconditionally.
12434         (mips_expand_prologue): Compare use_shadow_register_set value
12435         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
12436         masked interrupt register but in EIC mode use K0 and save Cause in K0.
12437         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
12438         copying the stack pointer from the shadow register set.
12439         * config/mips/mips.h (SR_IM0): New define.
12440         * config/mips/mips.md (mips_rdpgpr): Rename to...
12441         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
12442         * doc/extend.texi (Declaring Attributes of Functions): Document
12443         optional arguments for interrupt and use_shadow_register_set
12444         attributes.
12445
12446 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12447
12448         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
12449         interrupt attribute.
12450         (mips_expand_prologue): Disable the floating point unit in an ISR.
12451         * config/mips/mips.h (SR_COP1): New define.
12452
12453 2015-07-15  Richard Biener  <rguenther@suse.de>
12454
12455         * genmatch.c (parser::peek, parser::peek_ident): Add argument
12456         to tell how many tokens to peek ahead (default 1).
12457         (parser::eat_token, parser::eat_ident): Return token consumed.
12458         (parser::parse_result): Parse new switch statement.
12459         * match.pd: Use case statements where appropriate.
12460
12461 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12462
12463         PR rtl-optimization/58066
12464         * calls.c (expand_call): Precompute register parameters before stack
12465         alignment is performed.
12466
12467 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12468
12469         PR rtl-optimization/66838
12470         * postreload.c (reload_cse_move2add): Also process
12471         CALL_INSN_FUNCTION_USAGE when resetting information of
12472         call-clobbered registers.
12473
12474 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12475             Cesar Philippidis  <cesar@codesourcery.com>
12476             Chung-Lin Tang  <cltang@codesourcery.com>
12477
12478         * config/nios2/constraints.md (U, v): New constraints.
12479         * config/nios2/predicates.md (rdprs_dcache_operand): New.
12480         (ldstex_memory_operand): New.
12481         * config/nios2/sync.md: New file.
12482         * config/nios2/nios2.md (unspecv): Add new builtin function
12483         UNSPECV codes.
12484         (rdprs, flushd, flushda, wrpie, eni): New patterns.
12485         (top-level): Include sync.md.
12486         * config/nios2/nios2.c (N2_FTYPES): Add function types for
12487         new builtins.
12488         (N2_BUILTINS): Add arch field setting, add new builtins.
12489         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
12490         for arch field.
12491         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
12492         Also handle ldex/stex/ldsex/stsex builtins.
12493         (nios2_expand_rdprs_builtin): New function.
12494         (nios2_expand_cache_builtin): New function.
12495         (nios2_expand_wrpie_builtin): New function.
12496         (nios2_expand_eni_builtin): New function.
12497         (nios2_expand_builtin): Add arch field handling and new builtin
12498         cases.
12499         * doc/extend.texi (Altera Nios II Built-in Functions): Document
12500         new builtins.
12501         * doc/md.texi (Machine Constraints): Document U and v constraints.
12502
12503 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12504             Cesar Philippidis  <cesar@codesourcery.com>
12505             Chung-Lin Tang  <cltang@codesourcery.com>
12506
12507         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
12508         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
12509         callee_save_reg_size and uses_anonymous_args fields.
12510         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
12511         (nios2_create_cfa_notes): New function.
12512         (nios2_adjust_stack): New function for adjusting stack.
12513         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
12514         Use nios2_adjust_stack.
12515         (nios2_expand_epilogue): Likewise.
12516         (nios2_expand_return): New function.
12517         (nios2_can_use_return_insn): Update for CDX pop.n usage.
12518         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
12519         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
12520         * config/nios2/nios2.md (return): Use nios2_expand_return.
12521
12522 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12523             Cesar Philippidis  <cesar@codesourcery.com>
12524             Chung-Lin Tang  <cltang@codesourcery.com>
12525
12526         * config/nios2/predicates.md (pop_operation): New.
12527         (ldwm_operation, stwm_operation): New.
12528         (nios2_hard_register_operand): New.
12529         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
12530         (ldstwm_operation_p): Declare.
12531         (gen_ldstwm_peep): Declare.
12532         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
12533         (base_reg_adjustment_p): New.
12534         (pop_operation_p): New.
12535         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
12536         (nios2_ldstwm_regset_p): New.
12537         (ldstwm_operation_p): New.
12538         (gen_ldst): New.
12539         (nios2_ldst_parallel): New.
12540         (struct ldswm_operand): Declare.
12541         (compare_ldstwm_operands): New.
12542         (can_use_cdx_ldstw): New.
12543         (gen_ldstwm_peep): New.
12544         * config/nios2/nios2-ldstwm.sml: New.
12545         * config/nios2/nios2.md: Include ldstwm.md.
12546         * config/nios2/ldstwm.md: Generated.
12547
12548 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12549             Cesar Philippidis  <cesar@codesourcery.com>
12550             Chung-Lin Tang  <cltang@codesourcery.com>
12551
12552         * config/nios2/nios2.h (LABEL_ALIGN): Define.
12553         (REG_ALLOC_ORDER): Define.
12554         (ADJUST_REG_ALLOC_ORDER): Define.
12555         (HONOR_REG_ALLOC_ORDER): Define.
12556         (CDX_REG_P): Define.
12557         (ANDCLEAR_INT): Define.
12558         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
12559         (nios2_label_align): Declare.
12560         (nios2_cdx_narrow_form_p): Declare.
12561         (nios2_adjust_reg_alloc_order): Declare.
12562         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
12563         operation.
12564         (nios2_large_unspec_reloc_p): New function, split from...
12565         (nios2_legitimate_pic_operand_p): ...here.
12566         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
12567         (nios2_print_operand_punct_valid_p): New.
12568         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
12569         (split_mem_address): New.
12570         (split_alu_insn): New.
12571         (cdxreg): New.
12572         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
12573         (enum nios2_add_insn_kind): New.
12574         (nios2_add_insn_names, nios2_add_insn_narrow): New.
12575         (nios2_add_insn_classify): New.
12576         (nios2_add_insn_asm): New.
12577         (nios2_cdx_narrow_form_p): New.
12578         (label_align, min_labelno, max_labelno): New.
12579         (nios2_reorg): New.
12580         (nios2_label_align): New.
12581         (nios2_adjust_reg_alloc_order): New.
12582         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12583         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12584         * config/nios2/constraints.md (P): New constraint.
12585         * config/nios2/predicates.md (const_and_operand): New.
12586         (and_operand): New.
12587         (stack_memory_operand): New.
12588         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
12589         (length): Update to use nios2_cdx_narrow_form_p().
12590         (type): Add new insn type values.
12591         (control, alu, st, ld, shift): Update insn reservations with
12592         new insn type values.
12593         (*high, *lo_sum): Define new insn patterns for constant generation.
12594         (movqi_internal, movhi_internal, movsi_internal): Reduce
12595         alternatives, update asm template to handle CDX variants, update
12596         type attributes.
12597         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
12598         template, update type attributes.
12599         (extendhisi2, extendqi<mode>2): Likewise.
12600         (addsi3): Change to use function for asm string.
12601         (subsi3): Add CDX notation to asm template, update type attributes.
12602         (negsi3, one_cmplsi3): Likewise.
12603         (andsi3): New pattern, specialized from logical patterns.
12604         (<code>si3): Remove and case, combine alternatives, update asm
12605         template.
12606         (<shift_op>si3): Add CDX notation, update type attributes.
12607         (rotrsi3): Update type attribute.
12608         (*merge, extzv, insv): New insn patterns.
12609         (return): Change to define_expand.
12610         (simple_return): Add CDX notation, update type attributes.
12611         (indirect_jump): Add CDX notation.
12612         (jump): Update asm cases, update length attribute expression.
12613         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
12614         (nios2_cbranch): Update asm cases and length attribute expression
12615         to handle CDX variants.
12616         (nios2_cmp<code>): Update asm template.
12617         (nop): Add CDX notation, update type attributes.
12618         (trap): Add CDX notation.
12619         (ctrapsi4): Update asm cases and length attribute expression to
12620         handle CDX variant.
12621         * doc/md.texi (Machine Constraints): Document P constraint.
12622
12623 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12624             Cesar Philippidis  <cesar@codesourcery.com>
12625             Chung-Lin Tang  <cltang@codesourcery.com>
12626
12627         * config/nios2/nios2.h (SMALL_INT12): New macro.
12628         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
12629         (nios2_valid_addr_expr_p): Use it.
12630         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
12631         with implicit "io" instructions on R2.
12632         * config/nios2/constraints.md (w): New constraint.
12633         * config/nios2/predicates.md (ldstio_memory_operand): New.
12634         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
12635         operand predicate and constraint.
12636         (ld<bh>io_signed, st<bhw>io>): Likewise.
12637         * doc/md.texi (Machine Constraints): Document w constraint.
12638
12639 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12640             Cesar Philippidis  <cesar@codesourcery.com>
12641             Chung-Lin Tang  <cltang@codesourcery.com>
12642
12643         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
12644         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
12645         Nios II architecture level.
12646         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
12647         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
12648         (OPTION_DEFAULT_SPECS): Define.
12649         (ASM_SPEC): Add -march= spec strings.
12650         * config/nios2/nios2.c (nios2_option_override): Check for
12651         conflicts involving new options.
12652         * config.gcc (nios2*-*-*): Support --with-arch=.
12653         * doc/invoke.texi (Option Summary, Nios II Options): Document
12654         -march=, -mbmx, and -mcdx.
12655
12656 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
12657
12658         PR rtl-optimization/66626
12659         * lra-constraints.c (lra_constraints): Prevent equivalence
12660         substitution for static chain pseudo in functions with nonlocal
12661         goto.
12662
12663 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12664
12665         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
12666         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12667         -fstack-limit-symbol as well as -fstack-limit-register.
12668         (nios2_expand_prologue): Emit only a single stack limit check,
12669         even if multiple stack adjustments are required.
12670         (nios2_option_override): Diagnose unsupported combination of -fpic
12671         and -stack-limit-symbol.
12672
12673 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
12674
12675         * Makefile.in (top_srcdir): New.
12676         * configure.ac: Use AM_ZLIB.
12677         * configure: Regeneated.
12678
12679 2015-07-14  Matthias Klose  <doko@ubuntu.com>
12680
12681         PR target/66840
12682         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
12683
12684 2015-07-14  Richard Biener  <rguenther@suse.de>
12685
12686         PR tree-optimization/66863
12687         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
12688         what we record for conversion use stmt lhs inequalities.
12689
12690 2015-07-14  Richard Biener  <rguenther@suse.de>
12691
12692         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
12693         (decision_tree::gen_gimple): Likewise.
12694
12695 2015-07-14  Tom de Vries  <tom@codesourcery.com>
12696
12697         * gcc.c (greater_than_spec_func): Declare forward.
12698         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
12699         -ftree-parallelize-loops={0,1}.
12700         (static_spec_functions): Add greater_than_spec_func function with name
12701         "gt".
12702         (greater_than_spec_func): New function.
12703
12704 2015-07-14  Richard Biener  <rguenther@suse.de>
12705
12706         * tree-ssa-dom.c (record_temporary_equivalences): Merge
12707         wideing type conversion case from record_equivalences_from_incoming_edge
12708         and use record_equality to record equivalences.
12709         (record_equivalences_from_incoming_edge): Call
12710         record_temporary_equivalences.
12711
12712 2015-07-14  Richard Biener  <rguenther@suse.de>
12713
12714         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
12715         (struct if_expr): New.
12716         (struct with_expr): Likewise.
12717         (is_a_helper): Add helpers for if_expr and with_expr.
12718         (struct simplify): Add simplify_kind enum and member.  Remove
12719         ifexpr_vec member.
12720         (simplify::simplify): Adjust.
12721         (lower_commutative): Adjust.
12722         (lower_opt_convert): Likewise.
12723         (lower_cond): Likewise.
12724         (replace_id): Handle with_expr and if_expr.
12725         (lower_for): Adjust.
12726         (dt_simplify::gen_1): New recursive worker, split out from ...
12727         (dt_simplify::gen): ... here.  Deal with if and with expansion
12728         recursively.
12729         (capture_info::capture_info): Take context argument
12730         (capture_info::walk_result): Only analyze specific result.
12731         (parser::parse_result): New function.
12732         (parser::parse_simplify): Adjust to parse ifs with then end
12733         else case.
12734         (parser::parse_if): Simplify.
12735         (parser::parse_pattern): Pass down simplify kind.
12736         * match.pd: Convert if structure to new syntax.
12737
12738 2015-07-13  Marek Polacek  <polacek@redhat.com>
12739
12740         * rtl.c (rtx_equal_p_cb): Fix typo.
12741
12742 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
12743
12744         * omega.h: Don't include config.h, don't include params.h again if
12745         omega.h has already been included.
12746         * graphite-poly.h: Include sese.h.
12747         * graphite.c: Don't include sese.h, remove needless includes and
12748         minimize includes outside #ifdef HAVE_isl block.
12749         * graphite-blocking.c: Don't include sese.h, remove needless includes,
12750         and wrap entire file in #ifdef HAVE_isl
12751         * graphite-dependences.c: Likewise.
12752         * graphite-interchange.c: Likewise.
12753         * graphite-isl-ast-to-gimple.c: Likewise.
12754         * graphite-optimize-isl.c: Likewise.
12755         * graphite-poly.c: Likewise.
12756         * graphite-scop-detection.c: Likewise.
12757         * graphite-sese-to-poly.c: Likewise.
12758
12759 2015-07-13  Tom de Vries  <tom@codesourcery.com>
12760
12761         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
12762
12763 2015-07-13  Renlin Li  <renlin.li@arm.com>
12764
12765         PR rtl/66556
12766         * simplify-rtx.c (simplify_const_relational_operation): Add
12767         side_effects_p checks.
12768
12769 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
12770
12771         * bitmap.h: Fix double word typos.
12772         * builtins.c: Same.
12773         * calls.c: Same.
12774         * cfgloopmanip.c: Same.
12775         * cgraph.c: Same.
12776         * cgraph.h: Same.
12777         * cgraphclones.c: Same.
12778         * combine.c: Same.
12779         * config/aarch64/aarch64-protos.h: Same.
12780         * config/aarch64/aarch64.c: Same.
12781         * config/aarch64/aarch64.md: Same.
12782         * config/arm/arm.md: Same.
12783         * config/arm/arm1020e.md: Same.
12784         * config/arm/arm1026ejs.md: Same.
12785         * config/arm/arm926ejs.md: Same.
12786         * config/arm/fa526.md: Same.
12787         * config/arm/fa606te.md: Same.
12788         * config/arm/fa626te.md: Same.
12789         * config/arm/fa726te.md: Same.
12790         * config/arm/fmp626.md: Same.
12791         * config/darwin.c: Same.
12792         * config/epiphany/epiphany.c: Same.
12793         * config/frv/frv.c: Same.
12794         * config/ft32/ft32.c: Same.
12795         * config/gnu-user.h: Same.
12796         * config/h8300/constraints.md: Same.
12797         * config/i386/i386.c: Same.
12798         * config/i386/i386.md: Same.
12799         * config/iq2000/iq2000.md: Same.
12800         * config/mips/mips.c: Same.
12801         * config/mmix/mmix.md: Same.
12802         * config/moxie/moxie.c: Same.
12803         * config/nds32/nds32.md: Same.
12804         * config/pa/pa.h: Same.
12805         * config/rs6000/aix.h: Same.
12806         * config/rs6000/rs6000.h: Same.
12807         * config/sh/sh.c: Same.
12808         * config/tilegx/tilegx.md: Same.
12809         * config/tilepro/gen-mul-tables.cc: Same.
12810         * cse.c: Same.
12811         * dbxout.c: Same.
12812         * doc/invoke.texi: Same.
12813         * dse.c: Same.
12814         * dwarf2out.c: Same.
12815         * final.c: Same.
12816         * gcc.c: Same.
12817         * genmatch.c: Same.
12818         * gimplify.c: Same.
12819         * hash-table.h: Same.
12820         * internal-fn.c: Same.
12821         * ipa-cp.c: Same.
12822         * ipa-devirt.c: Same.
12823         * ipa-icf.c: Same.
12824         * ipa-icf.h: Same.
12825         * ipa-profile.c: Same.
12826         * ipa-prop.c: Same.
12827         * ipa-prop.h: Same.
12828         * ira.c: Same.
12829         * omp-low.c: Same.
12830         * reg-stack.c: Same.
12831         * regcprop.c: Same.
12832         * reorg.c: Same.
12833         * rtl.h: Same.
12834         * sbitmap.h: Same.
12835         * tree-eh.c: Same.
12836         * tree-inline.c: Same.
12837         * tree-sra.c: Same.
12838         * tree-ssa-dom.c: Same.
12839         * tree-ssa-loop-ivopts.c: Same.
12840         * tree-ssa-structalias.c: Same.
12841         * tree-ssa-tail-merge.c: Same.
12842         * tree-ssa-ter.c: Same.
12843         * tree-ssa-threadupdate.c: Same.
12844         * tree-ssa-uninit.c: Same.
12845         * tree-ssanames.c: Same.
12846         * tree-vect-loop-manip.c: Same.
12847         * tree-vrp.c: Same.
12848         * tree.c: Same.
12849         * valtrack.c: Same.
12850         * vec.h: Same.
12851
12852 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12853
12854         PR middle-end/66726
12855         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
12856         tree_ssa_phiopt_worker): Call it.
12857
12858 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12859
12860         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
12861         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
12862         REG_EQUAL note.
12863
12864 2015-07-11  Marek Polacek  <polacek@redhat.com>
12865
12866         PR middle-end/66353
12867         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
12868         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
12869         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
12870         rather than bb_has_abnormal_call_pred.
12871         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
12872         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
12873         rather than bb_has_abnormal_call_pred.
12874
12875 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
12876
12877         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12878         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
12879         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12880         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
12881         v850_legitimate_address_p): New functions.
12882         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
12883
12884 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
12885
12886         PR target/66819
12887         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
12888         indirect sibcall with register arguments if register available
12889         for argument passing.
12890         (init_cumulative_args): Set cfun->machine->arg_reg_available
12891         to (cum->nregs > 0) or to true if function has a variable
12892         argument list.
12893         (function_arg_advance_32): Set cfun->machine->arg_reg_available
12894         to false if cum->nregs <= 0.
12895         * config/i386/i386.h (machine_function): Add arg_reg_available.
12896
12897 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
12898
12899         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
12900         and gen_higpart instead of gen_rtx_SUBREG.
12901         * config/i386/i386.md
12902         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
12903         (read-modify peephole2): Use gen_lowpart instead of
12904         gen_rtx_SUBREG for operand 5.
12905
12906 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12907
12908         * config/tilepro/gen-mul-tables.cc (main): Change include list for
12909         generated files.
12910         * config/tilepro/mul-tables.c: Regenerate.
12911         * config/tilegx/mul-tables.c: Regenerate.
12912
12913 2015-07-10  Richard Biener  <rguenther@suse.de>
12914
12915         * fold-const.c (distribute_bit_expr): Remove.
12916         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
12917         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
12918         to A & (B | C) and simplifying A << C1 << C2 to ...
12919         * match.pd: ... patterns here.
12920
12921 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
12922
12923         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12924         Mark mem as READONLY and NOTRAP for PIC symbol.
12925
12926 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12927
12928         * gimple-predict.h: New file.
12929         (gimple_predict_predictor, gimple_predict_set_predictor,
12930         gimple_predict_outcome, gimple_predict_set_outcome,
12931         gimple_build_predict): Relocate here.
12932         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
12933         gimple_predict_outcome, gimple_predict_set_outcome): Move to
12934         gimple-predict.h.
12935         * gimple.c (gimple_build_predict): Move to gimple-predict.h
12936         * basic-block.h: Don't include cfghooks.h.
12937         * backend.h: Don't include predict.h.
12938         * cfghooks.h: Include predict.h.
12939         * gimple-pretty-print.c: Include gimple-predict.h.
12940         * gimplify.c: Likwise.
12941         * predict.c: Adjust includes.
12942         * tree-inline.c: Likewise.
12943         * asan.c: Likewise.
12944         * auto-inc-dec.c: Likewise.
12945         * auto-profile.c: Likewise.
12946         * bb-reorder.c: Likewise.
12947         * builtins.c: Likewise.
12948         * caller-save.c: Likewise.
12949         * calls.c: Likewise.
12950         * cfganal.c: Likewise.
12951         * cfgbuild.c: Likewise.
12952         * cfg.c: Likewise.
12953         * cfgcleanup.c: Likewise.
12954         * cfgexpand.c: Likewise.
12955         * cfghooks.c: Likewise.
12956         * cfgloopanal.c: Likewise.
12957         * cfgloop.c: Likewise.
12958         * cfgloopmanip.c: Likewise.
12959         * cfgrtl.c: Likewise.
12960         * cgraph.c: Likewise.
12961         * cgraphunit.c: Likewise.
12962         * combine.c: Likewise.
12963         * cprop.c: Likewise.
12964         * cse.c: Likewise.
12965         * dce.c: Likewise.
12966         * dojump.c: Likewise.
12967         * dse.c: Likewise.
12968         * except.c: Likewise.
12969         * expmed.c: Likewise.
12970         * expr.c: Likewise.
12971         * final.c: Likewise.
12972         * fold-const.c: Likewise.
12973         * function.c: Likewise.
12974         * fwprop.c: Likewise.
12975         * gcc-plugin.h: Likewise.
12976         * gcse.c: Likewise.
12977         * genattrtab.c: Likewise.
12978         * genemit.c: Likewise.
12979         * gengtype.c: Likewise.
12980         * genopinit.c: Likewise.
12981         * genoutput.c: Likewise.
12982         * genpreds.c: Likewise.
12983         * genrecog.c: Likewise.
12984         * gimple-fold.c: Likewise.
12985         * gimple-iterator.c: Likewise.
12986         * gimple-ssa-isolate-paths.c: Likewise.
12987         * gimple-ssa-strength-reduction.c: Likewise.
12988         * graph.c: Likewise.
12989         * graphite-blocking.c: Likewise.
12990         * graphite.c: Likewise.
12991         * graphite-dependences.c: Likewise.
12992         * graphite-interchange.c: Likewise.
12993         * graphite-isl-ast-to-gimple.c: Likewise.
12994         * graphite-optimize-isl.c: Likewise.
12995         * graphite-poly.c: Likewise.
12996         * graphite-scop-detection.c: Likewise.
12997         * graphite-sese-to-poly.c: Likewise.
12998         * haifa-sched.c: Likewise.
12999         * ifcvt.c: Likewise.
13000         * internal-fn.c: Likewise.
13001         * ipa-cp.c: Likewise.
13002         * ipa-profile.c: Likewise.
13003         * ipa-split.c: Likewise.
13004         * ipa-utils.c: Likewise.
13005         * ira-build.c: Likewise.
13006         * ira-color.c: Likewise.
13007         * ira-conflicts.c: Likewise.
13008         * ira-costs.c: Likewise.
13009         * ira-emit.c: Likewise.
13010         * ira-lives.c: Likewise.
13011         * jump.c: Likewise.
13012         * loop-doloop.c: Likewise.
13013         * loop-init.c: Likewise.
13014         * loop-invariant.c: Likewise.
13015         * loop-unroll.c: Likewise.
13016         * lower-subreg.c: Likewise.
13017         * lra-assigns.c: Likewise.
13018         * lra.c: Likewise.
13019         * lra-coalesce.c: Likewise.
13020         * lra-constraints.c: Likewise.
13021         * lra-lives.c: Likewise.
13022         * lto-cgraph.c: Likewise.
13023         * lto-streamer-in.c: Likewise.
13024         * mode-switching.c: Likewise.
13025         * modulo-sched.c: Likewise.
13026         * omp-low.c: Likewise.
13027         * optabs.c: Likewise.
13028         * passes.c: Likewise.
13029         * postreload.c: Likewise.
13030         * postreload-gcse.c: Likewise.
13031         * profile.c: Likewise.
13032         * recog.c: Likewise.
13033         * regstat.c: Likewise.
13034         * reload1.c: Likewise.
13035         * reorg.c: Likewise.
13036         * rtlanal.c: Likewise.
13037         * sched-ebb.c: Likewise.
13038         * sel-sched-ir.c: Likewise.
13039         * sese.c: Likewise.
13040         * shrink-wrap.c: Likewise.
13041         * simplify-rtx.c: Likewise.
13042         * stmt.c: Likewise.
13043         * store-motion.c: Likewise.
13044         * tracer.c: Likewise.
13045         * trans-mem.c: Likewise.
13046         * tree-call-cdce.c: Likewise.
13047         * tree-cfg.c: Likewise.
13048         * tree-cfgcleanup.c: Likewise.
13049         * tree-chkp.c: Likewise.
13050         * tree-complex.c: Likewise.
13051         * tree-eh.c: Likewise.
13052         * tree-if-conv.c: Likewise.
13053         * tree-loop-distribution.c: Likewise.
13054         * tree-outof-ssa.c: Likewise.
13055         * tree-parloops.c: Likewise.
13056         * tree-predcom.c: Likewise.
13057         * tree-pretty-print.c: Likewise.
13058         * tree-profile.c: Likewise.
13059         * tree-sra.c: Likewise.
13060         * tree-ssa.c: Likewise.
13061         * tree-ssa-coalesce.c: Likewise.
13062         * tree-ssa-dce.c: Likewise.
13063         * tree-ssa-dom.c: Likewise.
13064         * tree-ssa-forwprop.c: Likewise.
13065         * tree-ssa-ifcombine.c: Likewise.
13066         * tree-ssa-loop-ch.c: Likewise.
13067         * tree-ssa-loop-im.c: Likewise.
13068         * tree-ssa-loop-ivcanon.c: Likewise.
13069         * tree-ssa-loop-ivopts.c: Likewise.
13070         * tree-ssa-loop-manip.c: Likewise.
13071         * tree-ssa-loop-prefetch.c: Likewise.
13072         * tree-ssa-loop-unswitch.c: Likewise.
13073         * tree-ssa-math-opts.c: Likewise.
13074         * tree-ssa-phiopt.c: Likewise.
13075         * tree-ssa-pre.c: Likewise.
13076         * tree-ssa-reassoc.c: Likewise.
13077         * tree-ssa-sink.c: Likewise.
13078         * tree-ssa-tail-merge.c: Likewise.
13079         * tree-ssa-threadedge.c: Likewise.
13080         * tree-ssa-threadupdate.c: Likewise.
13081         * tree-switch-conversion.c: Likewise.
13082         * tree-tailcall.c: Likewise.
13083         * tree-vect-data-refs.c: Likewise.
13084         * tree-vect-loop.c: Likewise.
13085         * tree-vect-loop-manip.c: Likewise.
13086         * tree-vectorizer.c: Likewise.
13087         * tree-vrp.c: Likewise.
13088         * ubsan.c: Likewise.
13089         * value-prof.c: Likewise.
13090         * varasm.c: Likewise.
13091         * var-tracking.c: Likewise.
13092         * config/aarch64/aarch64-builtins.c: Likewise.
13093         * config/aarch64/aarch64.c: Likewise.
13094         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13095         * config/alpha/alpha.c: Likewise.
13096         * config/arc/arc.c: Likewise.
13097         * config/arm/arm.c: Likewise.
13098         * config/avr/avr.c: Likewise.
13099         * config/bfin/bfin.c: Likewise.
13100         * config/c6x/c6x.c: Likewise.
13101         * config/cr16/cr16.c: Likewise.
13102         * config/cris/cris.c: Likewise.
13103         * config/darwin.c: Likewise.
13104         * config/darwin-c.c: Likewise.
13105         * config/epiphany/epiphany.c: Likewise.
13106         * config/epiphany/mode-switch-use.c: Likewise.
13107         * config/epiphany/resolve-sw-modes.c: Likewise.
13108         * config/fr30/fr30.c: Likewise.
13109         * config/frv/frv.c: Likewise.
13110         * config/ft32/ft32.c: Likewise.
13111         * config/h8300/h8300.c: Likewise.
13112         * config/i386/i386.c: Likewise.
13113         * config/i386/winnt.c: Likewise.
13114         * config/ia64/ia64.c: Likewise.
13115         * config/iq2000/iq2000.c: Likewise.
13116         * config/lm32/lm32.c: Likewise.
13117         * config/m32c/m32c.c: Likewise.
13118         * config/m32r/m32r.c: Likewise.
13119         * config/m68k/m68k.c: Likewise.
13120         * config/mcore/mcore.c: Likewise.
13121         * config/mep/mep.c: Likewise.
13122         * config/microblaze/microblaze.c: Likewise.
13123         * config/mips/mips.c: Likewise.
13124         * config/mmix/mmix.c: Likewise.
13125         * config/mn10300/mn10300.c: Likewise.
13126         * config/moxie/moxie.c: Likewise.
13127         * config/msp430/msp430.c: Likewise.
13128         * config/nds32/nds32.c: Likewise.
13129         * config/nds32/nds32-cost.c: Likewise.
13130         * config/nds32/nds32-fp-as-gp.c: Likewise.
13131         * config/nds32/nds32-intrinsic.c: Likewise.
13132         * config/nds32/nds32-isr.c: Likewise.
13133         * config/nds32/nds32-md-auxiliary.c: Likewise.
13134         * config/nds32/nds32-memory-manipulation.c: Likewise.
13135         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13136         * config/nds32/nds32-predicates.c: Likewise.
13137         * config/nios2/nios2.c: Likewise.
13138         * config/nvptx/nvptx.c: Likewise.
13139         * config/pa/pa.c: Likewise.
13140         * config/pdp11/pdp11.c: Likewise.
13141         * config/rl78/rl78.c: Likewise.
13142         * config/rs6000/rs6000.c: Likewise.
13143         * config/rx/rx.c: Likewise.
13144         * config/s390/s390.c: Likewise.
13145         * config/sh/sh.c: Likewise.
13146         * config/sh/sh-mem.cc: Likewise.
13147         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
13148         * config/sh/sh_treg_combine.cc: Likewise.
13149         * config/sparc/sparc.c: Likewise.
13150         * config/spu/spu.c: Likewise.
13151         * config/stormy16/stormy16.c: Likewise.
13152         * config/tilegx/tilegx.c: Likewise.
13153         * config/tilepro/tilepro.c: Likewise.
13154         * config/v850/v850.c: Likewise.
13155         * config/vax/vax.c: Likewise.
13156         * config/visium/visium.c: Likewise.
13157         * config/xtensa/xtensa.c: Likewise.
13158
13159 2015-07-10  Richard Biener  <rguenther@suse.de>
13160
13161         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
13162         (decision_tree::gen_gimple): Likewise.
13163         (decision_tree::gen_generic): Likewise.
13164
13165 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
13166
13167         PR target/66813
13168         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
13169         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
13170
13171 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
13172
13173         PR middle-end/66820
13174         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
13175         or ORT_TASK contexts.
13176         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
13177         is non-zero.
13178
13179 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13180
13181         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
13182         above function.
13183
13184 2015-07-10  Tom de Vries  <tom@codesourcery.com>
13185
13186         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
13187         insert nit + 1 bound.
13188
13189 2015-07-10  Richard Biener  <rguenther@suse.de>
13190
13191         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
13192         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
13193         (if_convertible_loop_p_1): For this always compute bb predicates.
13194         (if_convertible_loop_p): And free them.
13195
13196 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13197
13198         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
13199         in dump message.
13200
13201 2015-07-10  Richard Biener  <rguenther@suse.de>
13202
13203         PR tree-optimization/66823
13204         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
13205         inverted predicate.
13206
13207 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
13208
13209         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
13210         to handle mips[32|64]r3 and mips[32|64]r5.
13211
13212 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
13213
13214         PR middle-end/66633
13215         * tree-nested.c (get_static_chain): Or in a flag into
13216         info->static_chain_added.
13217         (get_frame_field, get_nonlocal_debug_decl): Likewise.
13218         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
13219         2015-07-01 changes.
13220         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
13221         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
13222         add it to clauses.
13223
13224         PR tree-optimization/66718
13225         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
13226         field.
13227         (vect_simd_lane_linear): New function.
13228         (vectorizable_simd_clone_call): Support using linear arguments for
13229         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
13230
13231 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13232
13233         PR target/66821
13234         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
13235
13236 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13237
13238         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
13239         Use machine mode, not enum machine_mode in the prototype.
13240
13241         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
13242         classify 128-bit floating point support.
13243         (FLOAT128_IBM_P): Likewise.
13244         (FLOAT128_VECTOR_P): Likewise.
13245         (FLOAT128_2REG_P): Likewise.
13246         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
13247         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
13248         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
13249         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
13250
13251         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
13252         tests against TFmode/TDmode, since those modes do not use VSX
13253         addresses.
13254         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
13255         support.
13256         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
13257         tests against TFmode, etc.
13258         (invalid_e500_subreg): Add tests against IFmode/KFmode.
13259         (reg_offset_addressing_ok_p): Likewise.
13260         (rs6000_legitimate_offset_address_p): Likewise.
13261         (rs6000_legitimize_address): Likewise.
13262         (rs6000_legitimize_reload_address): Likewise.
13263         (rs6000_legitimate_address_p): Clean up tests against TFmode and
13264         TDmode to use the new helper macros, which will include IFmode and
13265         KFmode.
13266         (rs6000_emit_move): Likewise.
13267         (rs6000_darwin64_record_arg_recurse): Likewise.
13268         (print_operand): Likewise.
13269         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
13270         that uses a single vector register as a vector and not as a
13271         floating point register in terms of the calling sequence.
13272         (rs6000_discover_homogeneous_aggregate): Likewise.
13273         (rs6000_return_in_memory): Likewise.
13274         (init_cumulative_args): Likewise.
13275         (rs6000_function_arg_boundary): Likewise.
13276         (rs6000_function_arg_advance_1): Likewise.
13277         (rs6000_function_arg): Likewise.
13278         (rs6000_pass_by_reference): Likewise.
13279         (rs6000_gimplify_va_arg): Likewise.
13280         (rs6000_secondary_reload_memory): Use machine_mode not enum
13281         machine mode.
13282         (rs6000_split_multireg_move): Use new helper macros.
13283         (spe_func_has_64bit_regs_p): Likewise.
13284         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
13285         (output_toc): Use new helper macros.
13286         (rs6000_register_move_cost): Likewise.
13287         (rs6000_function_value): Add IEEE 128-bit floating point calling
13288         sequence support.
13289         (rs6000_libcall_value): Likewise.
13290         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
13291         floating point support.
13292         (rs6000_vector_mode_supported_p): Likewise.
13293
13294 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
13295
13296         PR rtl-optimization/66782
13297         * lra-int.h (struct lra_insn_recog_data): Add comment about
13298         clobbered hard regs for arg_hard_regs.
13299         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
13300         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
13301         Add condition for processing used hard regs.
13302         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
13303         Process clobbered hard regs.
13304
13305 2015-07-09  Michael Matz  <matz@suse.de>
13306
13307         * genmatch.c (fprintf_indent): New function.
13308         (operand::gen_transform): Add indent parameter.
13309         (expr::gen_transform, c_expr::gen_transform,
13310         capture::gen_transform): Ditto and use fprintf_indent.
13311         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
13312         (dt_operand::gen, dt_operand::gen_predicate,
13313         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
13314         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
13315         (decision_tree::gen_gimple): Adjust calls and indent generated
13316         code.
13317         (decision_tree::gen_generic): Ditto.
13318         (write_predicate): Ditto.
13319
13320 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13321
13322         PR target/66814
13323         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
13324         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
13325         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
13326         {GENERAL,SSE,MMX}_REG_P where appropriate.
13327
13328 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13329
13330         * lto-streamer.h: Don't include target.h and alloc-pool.h.
13331         * builtins.c: Adjust includes.
13332         * gimple.c: Likewise.
13333         * ipa-icf.c: Likewise.
13334         * lto-opts.c: Likewise.
13335         * ipa-reference.c: Likewise.
13336         * lto-section-out.c: Likewise.
13337         * lto-streamer-in.c: Likewise.
13338         * lto-streamer-out.c: Likewise.
13339         * opts-global.c: Likewise.
13340         * symtab.c: Likewise.
13341         * tree-chkp.c: Likewise.
13342         * tree-ssa-live.c: Likewise.
13343         * tree-streamer-in.c: Likewise.
13344         * tree-streamer-out.c: Likewise.
13345         * config/darwin.c: Likewise.
13346         * config/i386/winnt.c: Likewise.
13347
13348 2015-07-09  Richard Biener  <rguenther@suse.de>
13349
13350         * genmatch.c (struct expr): Add force_single_use flag.
13351         (expr::expr): Add copy constructor.
13352         (capture_info::walk_match): Gather force_single_use captures.
13353         (expr::gen_transform): Use possibly NULLified sequence.
13354         (dt_simplify::gen): Apply single-use restrictions by NULLifying
13355         seq if any constrained expr is not single-use.
13356         (parser::parse_expr): Refactor to allow multiple flags.  Handle
13357         's' flag to force an expression have a single-use if the pattern
13358         simplifies to more than one statement.
13359         * match.pd: Convert most single_use conditionals to :s flags.
13360
13361 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13362
13363         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
13364         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
13365         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
13366
13367 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13368
13369         * flags.h: Don't include flag-types.h or options.h.
13370         * opts-common.c: Adjust includes.
13371         * opts-global.c: Likewise.
13372         * common/config/epiphany/epiphany-common.c: Likewise.
13373
13374 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13375
13376         PR target/66818
13377         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
13378         for IA MCU.
13379
13380 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13381
13382         PR target/66817
13383         * config/i386/i386.c (ix86_return_in_memory): Return true
13384         if int_size_in_bytes returns negative for IA MCU.
13385
13386 2015-07-09  Marek Polacek  <polacek@redhat.com>
13387
13388         PR tree-optimization/66718
13389         * Makefile.in (OBJS): Add gimple-laddress.o.
13390         * passes.def: Schedule pass_laddress.
13391         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
13392         * tree-pass.h (make_pass_laddress): Declare.
13393         * gimple-laddress.c: New file.
13394
13395 2015-07-09  Richard Biener  <rguenther@suse.de>
13396
13397         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
13398
13399 2015-07-09  Richard Biener  <rguenther@suse.de>
13400
13401         PR tree-optimization/66807
13402         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
13403
13404 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
13405
13406         * function.c (stack_protect_epilogue): Use if rather than switch for
13407         check targetm.have_stack_protect_test.
13408
13409 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13410
13411         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
13412         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
13413         * config/arc/arc.h: Likewise.
13414         * config/arm/arm.h: Likewise.
13415         * config/bfin/bfin.h: Likewise.
13416         * config/epiphany/epiphany.h: Likewise.
13417         * config/frv/frv.h: Likewise.
13418         * config/ia64/ia64.h: Likewise.
13419         * config/iq2000/iq2000.h: Likewise.
13420         * config/lm32/lm32.h: Likewise.
13421         * config/m32r/m32r.h: Likewise.
13422         * config/mcore/mcore.h: Likewise.
13423         * config/mep/mep.h: Likewise.
13424         * config/microblaze/microblaze.h: Likewise.
13425         * config/mips/mips.h: Likewise.
13426         * config/mmix/mmix.h: Likewise.
13427         * config/mn10300/mn10300.h: Likewise.
13428         * config/nds32/nds32.h: Likewise.
13429         * config/nios2/nios2.h: Likewise.
13430         * config/pa/pa.h: Likewise.
13431         * config/rl78/rl78.h: Likewise.
13432         * config/sh/sh.h: Likewise.
13433         * config/sparc/sparc.h: Likewise.
13434         * config/stormy16/stormy16.h: Likewise.
13435         * config/tilegx/tilegx.h: Likewise.
13436         * config/tilepro/tilepro.h: Likewise.
13437         * config/v850/v850.h: Likewise.
13438         * config/xtensa/xtensa.h: Likewise.
13439         * doc/tm.texi: Regenerate.
13440         * doc/tm.texi.in: Adjust.
13441         * combine.c (simplify_set): Likewise.
13442         (simplify_comparison): Likewise.
13443         * expr.c (store_constructor): Likewise.
13444         * internal-fn.c (expand_arith_overflow): Likewise.
13445         * reload.c (push_reload): Likewise.
13446         (find_reloads): Likewise.
13447         (find_reloads_subreg_address): Likewise.
13448         * reload1.c (eliminate_regs_1): Likewise.
13449         * rtlanal.c (nonzero_bits1): Likewise.
13450         (num_sign_bit_copies1): Likewise.
13451         * simplify-rtx.c (simplify_truncation): Likewise.
13452
13453 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13454
13455         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
13456         of AUTO_INC_DEC with the preprocessor.
13457         * combine.c (combine_instructions): Likewise.
13458         (can_combine_p): Likewise.
13459         (try_combine): Likewise.
13460         * emit-rtl.c (try_split): Likewise.
13461         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13462         * lower-subreg.c (resolve_simple_move): Likewise.
13463         * lra.c (update_inc_notes): Likewise.
13464         * recog.c (asm_operand_ok): Likewise.
13465         (constrain_operands): Likewise.
13466         * regrename.c (scan_rtx_address): Likewise.
13467         * reload.c (update_auto_inc_notes): Likewise.
13468         (reg_inc_found_and_valid_p): Likewise.
13469         * reload1.c (reload): Likewise.
13470         (emit_input_reload_insns): Likewise.
13471         (delete_output_reload): Likewise.
13472         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13473         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13474
13475 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13476
13477         * rtl.h: Always define AUTO_INC_DEC.
13478         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
13479         * combine.c (combine_instructions): Likewise.
13480         (can_combine_p): Likewise.
13481         (try_combine): Likewise.
13482         * emit-rtl.c (try_split): Likewise.
13483         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13484         * lower-subreg.c (resolve_simple_move): Likewise.
13485         * lra.c (update_inc_notes): Likewise.
13486         * recog.c (asm_operand_ok): Likewise.
13487         (constrain_operands): Likewise.
13488         * regrename.c (scan_rtx_address): Likewise.
13489         * reload.c (update_auto_inc_notes): Likewise.
13490         (find_equiv_reg): Likewise.
13491         * reload1.c (reload): Likewise.
13492         (reload_as_needed): Likewise.
13493         (choose_reload_regs): Likewise.
13494         (emit_input_reload_insns): Likewise.
13495         (delete_output_reload): Likewise.
13496         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13497         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13498
13499 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13500
13501         * combine.c (can_combine_def_p): Don't check the value of
13502         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
13503         (combinable_i3pat): Likewise.
13504         (mark_used_regs_combine): Likewise.
13505         * regrename.c (rename_chains): Likewise.
13506         * reload.c (find_reloads_address): Likewise.
13507         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13508
13509 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13510
13511         * combine.c (update_rsp_from_reg_equal): Don't check if
13512         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
13513         (reg_nonzero_bits_for_combine): Likewise.
13514         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
13515         1.
13516         * config/frv/frv.h: Likewise.
13517         * config/lm32/lm32.h: Likewise.
13518         * config/mep/mep.h: Likewise.
13519         * config/mips/mips.h: Likewise.
13520         * config/rs6000/rs6000.h: Likewise.
13521         * config/sh/sh.h: Likewise.
13522         * config/tilegx/tilegx.h (enum reg_class): Likewise.
13523         * config/tilepro/tilepro.h: Likewise.
13524         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
13525         * doc/tm.texi: Regenerate.
13526         * doc/tm.texi.in: Adjust.
13527         * rtlanal.c (nonzero_bits1): Likewise.
13528
13529 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13530
13531         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
13532         with the preprocessor.
13533         (combine_instructions): Likewise.
13534         (try_combine): Likewise.
13535         (subst): Likewise.
13536         (distribute_notes): Likewise.
13537
13538 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13539
13540         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
13541         defined.
13542         (simplify_set): Likewise.
13543         * cse.c (cse_insn): Likewise.
13544         * fold-const.c (fold_single_bit_test): Likewise.
13545         (fold_unary_loc): Likewise.
13546         * postreload.c (reload_cse_simplify_set): Likewise.
13547         (reload_cse_simplify_operands): Likewise.
13548
13549 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
13550
13551         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
13552         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
13553
13554 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13555
13556         PR target/66746
13557         * config/i386/x86intrin.h: Include <adxintrin.h> even if
13558         __iamcu__ is defined.
13559
13560 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13561
13562         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
13563
13564 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
13565
13566         PR target/66523
13567         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
13568         names from preservation.
13569
13570 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13571
13572         PR target/66806
13573         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
13574         change for IAMCU.
13575         (function_arg_advance_32): Don't pass vectors in registers for
13576         IAMCU.
13577         (function_arg_32): Likewise.
13578         (ix86_return_in_memory): Don't return vectors in registers for
13579         IAMCU.
13580
13581 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13582
13583         PR middle-end/66334
13584         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
13585         hard regno live at the start of BB with incoming abnormal edges.
13586         * lra-lives.c (process_bb_lives): Ditto.
13587
13588 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
13589
13590         PR libgomp/65099
13591         * config/nvptx/mkoffload.c (main): Create an offload image only in
13592         64-bit configurations.
13593
13594 2015-07-08  Martin Liska  <mliska@suse.cz>
13595
13596         PR bootstrap/66744
13597         * tree-sra.c (create_access_1): Call ctor without brackets.
13598         (create_artificial_child_access): Likewise.
13599
13600 2015-07-08  Richard Biener  <rguenther@suse.de>
13601
13602         PR tree-optimization/66793
13603         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
13604         Properly split the block after stmts ending it.
13605
13606 2015-07-08  Richard Biener  <rguenther@suse.de>
13607
13608         PR tree-optimization/66794
13609         * passes.c (execute_function_todo): Assert that post-dominators
13610         are not computed.
13611         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
13612         Free post-dominators.
13613
13614 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13615
13616         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
13617         with early exit.
13618
13619 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13620
13621         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
13622         more than or equal 8 and less than 32 when optimizing for size.
13623
13624 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13625
13626         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
13627         COSTS_N_INSNS (1) and increment it appropriately throughout the
13628         function.
13629
13630 2015-07-08  Richard Biener  <rguenther@suse.de>
13631
13632         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
13633
13634 2015-07-08  Alan Modra  <amodra@gmail.com>
13635
13636         * target.def (rtx_costs): Remove "code" param, add "mode".
13637         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
13638         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
13639         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
13640         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
13641         call.  Track mode when given in rtx.
13642         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
13643         (default_address_cost): Pass Pmode to rtx_cost.
13644         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
13645         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
13646         with NULL set.
13647         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
13648         (notreg_cost): Add mode param.  Use it.
13649         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
13650         mode param and pass to set_src_cost.  Update all calls.
13651         (hash_scan_set): Formatting.
13652         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
13653         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
13654         * hooks.h: Ditto.
13655         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
13656         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
13657         emit_store_flag): Update set_src_cost and rtx_cost calls.
13658         * auto-inc-dec.c (attempt_change): Likewise.
13659         * calls.c (precompute_register_parameters): Likewise.
13660         * combine.c (expand_compound_operation, make_extraction,
13661         force_to_mode, distribute_and_simplify_rtx): Likewise.
13662         * dojump.c (prefer_and_bit_test): Likewise.
13663         * dse.c (find_shift_sequence): Likewise.
13664         * expr.c (compress_float_constant): Likewise.
13665         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13666         * ifcvt.c (noce_try_sign_mask): Likewise.
13667         * loop-doloop.c (doloop_optimize): Likewise.
13668         * loop-invariant.c (create_new_invariant): Likewise.
13669         * lower-subreg.c (shift_cost, compute_costs): Likewise.
13670         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
13671         lshift_cheap_p): Likewise.
13672         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13673         try_replace_in_use, reload_cse_move2add): Likewise.
13674         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
13675         Likewise.
13676         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13677         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13678         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
13679         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
13680         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
13681         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
13682         to rtx_cost calls.
13683         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
13684         * config/arc/arc.c (arc_rtx_costs): Likewise.
13685         * config/arm/arm.c (arm_rtx_costs): Likewise.
13686         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
13687         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13688         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13689         * config/cris/cris.c (cris_rtx_costs): Likewise.
13690         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
13691         * config/frv/frv.c (frv_rtx_costs): Likewise.
13692         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13693         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13694         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13695         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13696         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13697         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13698         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13699         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13700         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13701         * config/mep/mep.c (mep_rtx_cost): Likewise.
13702         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13703         * config/mips/mips.c (mips_rtx_costs): Likewise.
13704         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13705         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
13706         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
13707         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
13708         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
13709         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
13710         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
13711         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13712         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13713         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
13714         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13715         * config/s390/s390.c (s390_rtx_costs): Likewise.
13716         * config/sh/sh.c (sh_rtx_costs): Likewise.
13717         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13718         * config/spu/spu.c (spu_rtx_costs): Likewise.
13719         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13720         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
13721         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
13722         * config/v850/v850.c (v850_rtx_costs): Likewise.
13723         * config/vax/vax.c (vax_rtx_costs): Likewise.
13724         * config/visium/visium.c (visium_rtx_costs): Likewise.
13725         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13726         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
13727         "code" param, and pass as outer_code to first rtx_cost call.  Pass
13728         mode to rtx_cost calls.
13729         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
13730         calls.
13731         (aarch64_rtx_costs_wrapper): Update.
13732         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
13733         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
13734         rtx_cost calls.
13735         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
13736         and rtx_cost calls.
13737         (avr_operand_rtx_cost): Similarly.
13738         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
13739         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
13740         * config/mips/mips.c (mips_stack_address_p): Comment typo.
13741         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
13742         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
13743         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
13744         rtx_cost.
13745         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
13746         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
13747         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
13748         * doc/tm.texi: Regenerate.
13749
13750 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
13751
13752         * tree-core.h: Include symtab.h.
13753         * rtl.h: Include hard-reg-set.h but not flags.h.
13754         (HARD_CONST): Remove condition compilation involving HARD_CONST since
13755         hard-reg-set.h is always included.
13756         * regs.h: Don't include hard-reg-set.h or rtl.h.
13757         * cfg.h: Include dominance.h.
13758         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
13759         * backend.h: New.  Aggregate commonly used backend header files.
13760         * gimple-ssa.h: Don't include tree-hasher.h.
13761         * ssa.h: New.  Aggregate commonly used SSA header files.
13762         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
13763         * sel-sched-ir.h: Flatten includes.
13764         * lra-int.h: Flatten completely.
13765         * sel-sched-dump.h: Flatten includes.
13766         * ira-int.h: Flatten includes.
13767         * gimple-streamer.h: Remove all includes.
13768         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
13769         * resource.h: Flatten hard-reg-set.h and df.h.
13770         * sched-int.h: Flatten insn-arrt.h and df.h.
13771         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
13772         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
13773         * genattrtab.c (write_header): Adjust generated includes.
13774         * genautomata.c (main): Likewise.
13775         * genconditions.c (write-header): Likewise.
13776         * genemit.c (main): Likewise.
13777         * gengtype.c (open_base_files): Likewise.
13778         * genopinit.c (main): Likewise.
13779         * genoutput.c (output_prologue): Likewise.
13780         * genpeep.c (main): Likewise.
13781         * genpreds.c (write_insn_preds_c): Likewise.
13782         * genrecog.c (write_header): Likewise.
13783         * alias.c: Adjust includes.
13784         * asan.c: Likewise.
13785         * attribs.c: Likewise.
13786         * auto-inc-dec.c: Likewise.
13787         * auto-profile.c: Likewise.
13788         * bb-reorder.c: Likewise.
13789         * bt-load.c: Likewise.
13790         * builtins.c: Likewise.
13791         * caller-save.c: Likewise.
13792         * calls.c: Likewise.
13793         * ccmp.c: Likewise.
13794         * cfg.c: Likewise.
13795         * cfganal.c: Likewise.
13796         * cfgbuild.c: Likewise.
13797         * cfgcleanup.c: Likewise.
13798         * cfgexpand.c: Likewise.
13799         * cfghooks.c: Likewise.
13800         * cfgloop.c: Likewise.
13801         * cfgloopanal.c: Likewise.
13802         * cfgloopmanip.c: Likewise.
13803         * cfgrtl.c: Likewise.
13804         * cgraph.c: Likewise.
13805         * cgraphbuild.c: Likewise.
13806         * cgraphclones.c: Likewise.
13807         * cgraphunit.c: Likewise.
13808         * cilk-common.c: Likewise.
13809         * combine-stack-adj.c: Likewise.
13810         * combine.c: Likewise.
13811         * compare-elim.c: Likewise.
13812         * convert.c: Likewise.
13813         * coverage.c: Likewise.
13814         * cppbuiltin.c: Likewise.
13815         * cprop.c: Likewise.
13816         * cse.c: Likewise.
13817         * cselib.c: Likewise.
13818         * data-streamer-in.c: Likewise.
13819         * data-streamer-out.c: Likewise.
13820         * data-streamer.c: Likewise.
13821         * dbxout.c: Likewise.
13822         * dce.c: Likewise.
13823         * ddg.c: Likewise.
13824         * debug.c: Likewise.
13825         * df-core.c: Likewise.
13826         * df-problems.c: Likewise.
13827         * df-scan.c: Likewise.
13828         * dfp.c: Likewise.
13829         * dojump.c: Likewise.
13830         * dominance.c: Likewise.
13831         * domwalk.c: Likewise.
13832         * double-int.c: Likewise.
13833         * dse.c: Likewise.
13834         * dumpfile.c: Likewise.
13835         * dwarf2asm.c: Likewise.
13836         * dwarf2cfi.c: Likewise.
13837         * dwarf2out.c: Likewise.
13838         * emit-rtl.c: Likewise.
13839         * et-forest.c: Likewise.
13840         * except.c: Likewise.
13841         * explow.c: Likewise.
13842         * expmed.c: Likewise.
13843         * expr.c: Likewise.
13844         * final.c: Likewise.
13845         * fixed-value.c: Likewise.
13846         * fold-const.c: Likewise.
13847         * function.c: Likewise.
13848         * fwprop.c: Likewise.
13849         * gcc-plugin.h: Likewise.
13850         * gcse-common.c: Likewise.
13851         * gcse.c: Likewise.
13852         * generic-match-head.c: Likewise.
13853         * ggc-page.c: Likewise.
13854         * gimple-builder.c: Likewise.
13855         * gimple-expr.c: Likewise.
13856         * gimple-fold.c: Likewise.
13857         * gimple-iterator.c: Likewise.
13858         * gimple-low.c: Likewise.
13859         * gimple-match-head.c: Likewise.
13860         * gimple-pretty-print.c: Likewise.
13861         * gimple-ssa-isolate-paths.c: Likewise.
13862         * gimple-ssa-strength-reduction.c: Likewise.
13863         * gimple-streamer-in.c: Likewise.
13864         * gimple-streamer-out.c: Likewise.
13865         * gimple-walk.c: Likewise.
13866         * gimple.c: Likewise.
13867         * gimplify-me.c: Likewise.
13868         * gimplify.c: Likewise.
13869         * godump.c: Likewise.
13870         * graph.c: Likewise.
13871         * graphite-blocking.c: Likewise.
13872         * graphite-dependences.c: Likewise.
13873         * graphite-interchange.c: Likewise.
13874         * graphite-isl-ast-to-gimple.c: Likewise.
13875         * graphite-optimize-isl.c: Likewise.
13876         * graphite-poly.c: Likewise.
13877         * graphite-scop-detection.c: Likewise.
13878         * graphite-sese-to-poly.c: Likewise.
13879         * graphite.c: Likewise.
13880         * haifa-sched.c: Likewise.
13881         * hw-doloop.c: Likewise.
13882         * ifcvt.c: Likewise.
13883         * init-regs.c: Likewise.
13884         * internal-fn.c: Likewise.
13885         * ipa-chkp.c: Likewise.
13886         * ipa-comdats.c: Likewise.
13887         * ipa-cp.c: Likewise.
13888         * ipa-devirt.c: Likewise.
13889         * ipa-icf-gimple.c: Likewise.
13890         * ipa-icf.c: Likewise.
13891         * ipa-inline-analysis.c: Likewise.
13892         * ipa-inline-transform.c: Likewise.
13893         * ipa-inline.c: Likewise.
13894         * ipa-polymorphic-call.c: Likewise.
13895         * ipa-profile.c: Likewise.
13896         * ipa-prop.c: Likewise.
13897         * ipa-pure-const.c: Likewise.
13898         * ipa-ref.c: Likewise.
13899         * ipa-reference.c: Likewise.
13900         * ipa-split.c: Likewise.
13901         * ipa-utils.c: Likewise.
13902         * ipa-visibility.c: Likewise.
13903         * ipa.c: Likewise.
13904         * ira-build.c: Likewise.
13905         * ira-color.c: Likewise.
13906         * ira-conflicts.c: Likewise.
13907         * ira-costs.c: Likewise.
13908         * ira-emit.c: Likewise.
13909         * ira-lives.c: Likewise.
13910         * ira.c: Likewise.
13911         * jump.c: Likewise.
13912         * langhooks.c: Likewise.
13913         * lcm.c: Likewise.
13914         * loop-doloop.c: Likewise.
13915         * loop-init.c: Likewise.
13916         * loop-invariant.c: Likewise.
13917         * loop-iv.c: Likewise.
13918         * loop-unroll.c: Likewise.
13919         * lower-subreg.c: Likewise.
13920         * lra-assigns.c: Likewise.
13921         * lra-coalesce.c: Likewise.
13922         * lra-constraints.c: Likewise.
13923         * lra-eliminations.c: Likewise.
13924         * lra-lives.c: Likewise.
13925         * lra-remat.c: Likewise.
13926         * lra-spills.c: Likewise.
13927         * lra.c: Likewise.
13928         * lto-cgraph.c: Likewise.
13929         * lto-compress.c: Likewise.
13930         * lto-opts.c: Likewise.
13931         * lto-section-in.c: Likewise.
13932         * lto-section-out.c: Likewise.
13933         * lto-streamer-in.c: Likewise.
13934         * lto-streamer-out.c: Likewise.
13935         * lto-streamer.c: Likewise.
13936         * mcf.c: Likewise.
13937         * mode-switching.c: Likewise.
13938         * modulo-sched.c: Likewise.
13939         * omega.c: Likewise.
13940         * omp-low.c: Likewise.
13941         * optabs.c: Likewise.
13942         * opts-global.c: Likewise.
13943         * passes.c: Likewise.
13944         * plugin.c: Likewise.
13945         * postreload-gcse.c: Likewise.
13946         * postreload.c: Likewise.
13947         * predict.c: Likewise.
13948         * print-rtl.c: Likewise.
13949         * print-tree.c: Likewise.
13950         * profile.c: Likewise.
13951         * real.c: Likewise.
13952         * realmpfr.c: Likewise.
13953         * recog.c: Likewise.
13954         * ree.c: Likewise.
13955         * reg-stack.c: Likewise.
13956         * regcprop.c: Likewise.
13957         * reginfo.c: Likewise.
13958         * regrename.c: Likewise.
13959         * regstat.c: Likewise.
13960         * reload.c: Likewise.
13961         * reload1.c: Likewise.
13962         * reorg.c: Likewise.
13963         * resource.c: Likewise.
13964         * rtl-chkp.c: Likewise.
13965         * rtlanal.c: Likewise.
13966         * rtlhooks.c: Likewise.
13967         * sanopt.c: Likewise.
13968         * sched-deps.c: Likewise.
13969         * sched-ebb.c: Likewise.
13970         * sched-rgn.c: Likewise.
13971         * sched-vis.c: Likewise.
13972         * sdbout.c: Likewise.
13973         * sel-sched-dump.c: Likewise.
13974         * sel-sched-ir.c: Likewise.
13975         * sel-sched.c: Likewise.
13976         * sese.c: Likewise.
13977         * shrink-wrap.c: Likewise.
13978         * simplify-rtx.c: Likewise.
13979         * stack-ptr-mod.c: Likewise.
13980         * stmt.c: Likewise.
13981         * stor-layout.c: Likewise.
13982         * store-motion.c: Likewise.
13983         * stringpool.c: Likewise.
13984         * symtab.c: Likewise.
13985         * target-globals.c: Likewise.
13986         * targhooks.c: Likewise.
13987         * toplev.c: Likewise.
13988         * tracer.c: Likewise.
13989         * trans-mem.c: Likewise.
13990         * tree-affine.c: Likewise.
13991         * tree-browser.c: Likewise.
13992         * tree-call-cdce.c: Likewise.
13993         * tree-cfg.c: Likewise.
13994         * tree-cfgcleanup.c: Likewise.
13995         * tree-chkp-opt.c: Likewise.
13996         * tree-chkp.c: Likewise.
13997         * tree-chrec.c: Likewise.
13998         * tree-complex.c: Likewise.
13999         * tree-data-ref.c: Likewise.
14000         * tree-dfa.c: Likewise.
14001         * tree-diagnostic.c: Likewise.
14002         * tree-dump.c: Likewise.
14003         * tree-eh.c: Likewise.
14004         * tree-emutls.c: Likewise.
14005         * tree-if-conv.c: Likewise.
14006         * tree-inline.c: Likewise.
14007         * tree-into-ssa.c: Likewise.
14008         * tree-iterator.c: Likewise.
14009         * tree-loop-distribution.c: Likewise.
14010         * tree-nested.c: Likewise.
14011         * tree-nrv.c: Likewise.
14012         * tree-object-size.c: Likewise.
14013         * tree-outof-ssa.c: Likewise.
14014         * tree-parloops.c: Likewise.
14015         * tree-phinodes.c: Likewise.
14016         * tree-predcom.c: Likewise.
14017         * tree-pretty-print.c: Likewise.
14018         * tree-profile.c: Likewise.
14019         * tree-scalar-evolution.c: Likewise.
14020         * tree-sra.c: Likewise.
14021         * tree-ssa-address.c: Likewise.
14022         * tree-ssa-alias.c: Likewise.
14023         * tree-ssa-ccp.c: Likewise.
14024         * tree-ssa-coalesce.c: Likewise.
14025         * tree-ssa-copy.c: Likewise.
14026         * tree-ssa-copyrename.c: Likewise.
14027         * tree-ssa-dce.c: Likewise.
14028         * tree-ssa-dom.c: Likewise.
14029         * tree-ssa-dse.c: Likewise.
14030         * tree-ssa-forwprop.c: Likewise.
14031         * tree-ssa-ifcombine.c: Likewise.
14032         * tree-ssa-live.c: Likewise.
14033         * tree-ssa-loop-ch.c: Likewise.
14034         * tree-ssa-loop-im.c: Likewise.
14035         * tree-ssa-loop-ivcanon.c: Likewise.
14036         * tree-ssa-loop-ivopts.c: Likewise.
14037         * tree-ssa-loop-manip.c: Likewise.
14038         * tree-ssa-loop-niter.c: Likewise.
14039         * tree-ssa-loop-prefetch.c: Likewise.
14040         * tree-ssa-loop-unswitch.c: Likewise.
14041         * tree-ssa-loop.c: Likewise.
14042         * tree-ssa-math-opts.c: Likewise.
14043         * tree-ssa-operands.c: Likewise.
14044         * tree-ssa-phiopt.c: Likewise.
14045         * tree-ssa-phiprop.c: Likewise.
14046         * tree-ssa-pre.c: Likewise.
14047         * tree-ssa-propagate.c: Likewise.
14048         * tree-ssa-reassoc.c: Likewise.
14049         * tree-ssa-sccvn.c: Likewise.
14050         * tree-ssa-scopedtables.c: Likewise.
14051         * tree-ssa-sink.c: Likewise.
14052         * tree-ssa-strlen.c: Likewise.
14053         * tree-ssa-structalias.c: Likewise.
14054         * tree-ssa-tail-merge.c: Likewise.
14055         * tree-ssa-ter.c: Likewise.
14056         * tree-ssa-threadedge.c: Likewise.
14057         * tree-ssa-threadupdate.c: Likewise.
14058         * tree-ssa-uncprop.c: Likewise.
14059         * tree-ssa-uninit.c: Likewise.
14060         * tree-ssa.c: Likewise.
14061         * tree-ssanames.c: Likewise.
14062         * tree-stdarg.c: Likewise.
14063         * tree-streamer-in.c: Likewise.
14064         * tree-streamer-out.c: Likewise.
14065         * tree-streamer.c: Likewise.
14066         * tree-switch-conversion.c: Likewise.
14067         * tree-tailcall.c: Likewise.
14068         * tree-vect-data-refs.c: Likewise.
14069         * tree-vect-generic.c: Likewise.
14070         * tree-vect-loop-manip.c: Likewise.
14071         * tree-vect-loop.c: Likewise.
14072         * tree-vect-patterns.c: Likewise.
14073         * tree-vect-slp.c: Likewise.
14074         * tree-vect-stmts.c: Likewise.
14075         * tree-vectorizer.c: Likewise.
14076         * tree-vrp.c: Likewise.
14077         * tree.c: Likewise.
14078         * tsan.c: Likewise.
14079         * ubsan.c: Likewise.
14080         * valtrack.c: Likewise.
14081         * value-prof.c: Likewise.
14082         * var-tracking.c: Likewise.
14083         * varasm.c: Likewise.
14084         * varpool.c: Likewise.
14085         * vmsdbgout.c: Likewise.
14086         * vtable-verify.c: Likewise.
14087         * web.c: Likewise.
14088         * wide-int.cc: Likewise.
14089         * xcoffout.c: Likewise.
14090         * config/aarch64/aarch64-builtins.c: Likewise.
14091         * config/aarch64/aarch64.c: Likewise.
14092         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
14093         * config/alpha/alpha.c: Likewise.
14094         * config/arc/arc.c: Likewise.
14095         * config/arm/aarch-common.c: Likewise.
14096         * config/arm/arm-builtins.c: Likewise.
14097         * config/arm/arm-c.c: Likewise.
14098         * config/arm/arm.c: Likewise.
14099         * config/avr/avr-c.c: Likewise.
14100         * config/avr/avr-log.c: Likewise.
14101         * config/avr/avr.c: Likewise.
14102         * config/bfin/bfin.c: Likewise.
14103         * config/c6x/c6x.c: Likewise.
14104         * config/cr16/cr16.c: Likewise.
14105         * config/cris/cris.c: Likewise.
14106         * config/darwin-c.c: Likewise.
14107         * config/darwin.c: Likewise.
14108         * config/epiphany/epiphany.c: Likewise.
14109         * config/epiphany/mode-switch-use.c: Likewise.
14110         * config/epiphany/resolve-sw-modes.c: Likewise.
14111         * config/fr30/fr30.c: Likewise.
14112         * config/frv/frv.c: Likewise.
14113         * config/ft32/ft32.c: Likewise.
14114         * config/h8300/h8300.c: Likewise.
14115         * config/i386/i386-c.c: Likewise.
14116         * config/i386/i386.c: Likewise.
14117         * config/i386/msformat-c.c: Likewise.
14118         * config/i386/winnt-cxx.c: Likewise.
14119         * config/i386/winnt-stubs.c: Likewise.
14120         * config/i386/winnt.c: Likewise.
14121         * config/ia64/ia64-c.c: Likewise.
14122         * config/ia64/ia64.c: Likewise.
14123         * config/iq2000/iq2000.c: Likewise.
14124         * config/lm32/lm32.c: Likewise.
14125         * config/m32c/m32c-pragma.c: Likewise.
14126         * config/m32c/m32c.c: Likewise.
14127         * config/m32r/m32r.c: Likewise.
14128         * config/m68k/m68k.c: Likewise.
14129         * config/mcore/mcore.c: Likewise.
14130         * config/mep/mep-pragma.c: Likewise.
14131         * config/mep/mep.c: Likewise.
14132         * config/microblaze/microblaze-c.c: Likewise.
14133         * config/microblaze/microblaze.c: Likewise.
14134         * config/mips/mips.c: Likewise.
14135         * config/mmix/mmix.c: Likewise.
14136         * config/mn10300/mn10300.c: Likewise.
14137         * config/moxie/moxie.c: Likewise.
14138         * config/msp430/msp430-c.c: Likewise.
14139         * config/msp430/msp430.c: Likewise.
14140         * config/nds32/nds32-cost.c: Likewise.
14141         * config/nds32/nds32-fp-as-gp.c: Likewise.
14142         * config/nds32/nds32-intrinsic.c: Likewise.
14143         * config/nds32/nds32-isr.c: Likewise.
14144         * config/nds32/nds32-md-auxiliary.c: Likewise.
14145         * config/nds32/nds32-memory-manipulation.c: Likewise.
14146         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14147         * config/nds32/nds32-predicates.c: Likewise.
14148         * config/nds32/nds32.c: Likewise.
14149         * config/nios2/nios2.c: Likewise.
14150         * config/nvptx/nvptx.c: Likewise.
14151         * config/pa/pa.c: Likewise.
14152         * config/pdp11/pdp11.c: Likewise.
14153         * config/rl78/rl78-c.c: Likewise.
14154         * config/rl78/rl78.c: Likewise.
14155         * config/rs6000/rs6000-c.c: Likewise.
14156         * config/rs6000/rs6000.c: Likewise.
14157         * config/rx/rx.c: Likewise.
14158         * config/s390/s390-c.c: Likewise.
14159         * config/s390/s390.c: Likewise.
14160         * config/sh/sh-c.c: Likewise.
14161         * config/sh/sh-mem.cc: Likewise.
14162         * config/sh/sh.c: Likewise.
14163         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
14164         * config/sh/sh_treg_combine.cc: Likewise.
14165         * config/sol2-c.c: Likewise.
14166         * config/sol2-cxx.c: Likewise.
14167         * config/sol2-stubs.c: Likewise.
14168         * config/sol2.c: Likewise.
14169         * config/sparc/sparc-c.c: Likewise.
14170         * config/sparc/sparc.c: Likewise.
14171         * config/spu/spu-c.c: Likewise.
14172         * config/spu/spu.c: Likewise.
14173         * config/stormy16/stormy16.c: Likewise.
14174         * config/tilegx/mul-tables.c: Likewise.
14175         * config/tilegx/tilegx-c.c: Likewise.
14176         * config/tilegx/tilegx.c: Likewise.
14177         * config/tilepro/mul-tables.c: Likewise.
14178         * config/tilepro/tilepro-c.c: Likewise.
14179         * config/tilepro/tilepro.c: Likewise.
14180         * config/v850/v850-c.c: Likewise.
14181         * config/v850/v850.c: Likewise.
14182         * config/vax/vax.c: Likewise.
14183         * config/visium/visium.c: Likewise.
14184         * config/vms/vms-c.c: Likewise.
14185         * config/vms/vms.c: Likewise.
14186         * config/vxworks.c: Likewise.
14187         * config/xtensa/xtensa.c: Likewise.
14188
14189 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
14190
14191         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
14192         Remove operand constraints.  Change operand 2 predicate to
14193         nonmemory operand.  Limit const_int values to mode bitsize.  Only
14194         allow const_int values less than 32 when optimizing for size.
14195         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
14196         Remove operand constraints.
14197         (*bt<mode>): Use SImode for const_int values less than 32.
14198         (regmode): Remove mode attribute.
14199
14200 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
14201
14202         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14203         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
14204           moxie_legitimate_address_p): New functions.
14205           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
14206
14207 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14208
14209         PR tree-optimization/66642
14210         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
14211         header comment.  Rename split_edge variable to edge_at_split.  Split
14212         exit edge to create new loop exit bb.  Insert loop exit phis in new
14213         loop exit bb.
14214
14215 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14216
14217         * tree-cfg.c (get_virtual_phi): New function.
14218         * tree-cfg.h (get_virtual_phi): Declare.
14219         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
14220         (rewrite_virtuals_into_loop_closed_ssa): New function.
14221         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
14222         Declare.
14223         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
14224         (transform_to_exit_first_loop_alt): Use
14225         rewrite_virtuals_into_loop_closed_ssa.
14226
14227 2015-07-07  Richard Biener  <rguenther@suse.de>
14228
14229         * fold-const.c (fold_binary_loc): Move
14230         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
14231         * match.pd: ... here.
14232         Add (X * C1) % C2 -> 0 simplification pattern derived from
14233         extract_muldiv_1.
14234
14235 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14236
14237         PR target/66780
14238         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
14239         change for target/65249.
14240
14241 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
14242
14243         * symtab.c (address_matters_1): Fix typo in comment above.
14244         (can_increase_alignment_p): Likewise.
14245
14246 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14247
14248         * function.c (free_after_compilation): Clear PROP_cfg in
14249         f->curr_properties.
14250
14251 2015-07-07  Richard Biener  <rguenther@suse.de>
14252
14253         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
14254         add which use to.
14255         (add_control_edge): Remove excessive vertical space in dumping.
14256         (process_ssa_edge_worklist): Simulate at most one statement and
14257         return whether we did.  Do not simulate PHIs if they are in a
14258         BB not yet simulated.
14259         (ssa_propagate): Adjust to always drain the BB worklist whenever
14260         a BB is available there, likewise the VARYING edges list before
14261         the interesting edge list.
14262
14263 2015-07-07  Christian Bruel  <christian.bruel@st.com>
14264
14265         PR target/52144
14266         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
14267
14268 2015-07-07  Richard Biener  <rguenther@suse.de>
14269
14270         PR middle-end/66739
14271         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
14272         A - B.
14273
14274 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14275
14276         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
14277         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
14278         Copy operand 0 to a temporary if !ext_register_operand.  Remove
14279         ancient extract_bit_field workaround.
14280         (insv<mode>_1): Rename from mov<mode>_insv_1.
14281         (*insvqi): Rename from *movqi_insv_2.
14282         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
14283         for renamed insvsi_1.
14284         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
14285
14286 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
14287
14288         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
14289         call to nvptx_reorg_subreg.
14290
14291 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
14292
14293         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
14294         * graphite-dependencies.c, graphite-interchange.c,
14295         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
14296         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
14297         Likewise.
14298
14299 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
14300
14301         * match.pd: Remove element_mode inside HONOR_*.
14302         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
14303         (~X | X -> -1, ~X ^ X -> -1): Merge.
14304         * tree.c (build_each_one_cst): New function.
14305         * tree.h (build_each_one_cst): Likewise.
14306
14307 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14308
14309         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14310         PROCESSOR_IAMCU.
14311
14312 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
14313
14314         * config.gcc <mips*-*-*>: Add fused-madd.opt.
14315         * config/mips/mips.opt (mfused-madd): Remove.
14316         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
14317         * config/mips/mips.h (TARGET_MIPS8000): New.
14318         (ISA_HAS_FP_MADD4_MSUB4): Remove.
14319         (ISA_HAS_FP_MADDF_MSUBF): Remove.
14320         (ISA_HAS_FP_MADD3_MSUB3): Remove.
14321         (ISA_HAS_NMADD4_NMSUB4): Remove.
14322         (ISA_HAS_NMADD3_NMSUB3): Remove.
14323         (ISA_HAS_FUSED_MADD4): New.
14324         (ISA_HAS_UNFUSED_MADD4): New.
14325         (ISA_HAS_FUSED_MADDF): New.
14326         (ISA_HAS_FUSED_MADD3): New.
14327         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
14328         (*fma<mode>4_madd3) New.
14329         (*fma<mode>4_madd4) New.
14330         (*fma<mode>4_maddf) New.
14331         (fms<mode>4) New.
14332         (*fms<mode>4_msub3) New.
14333         (*fms<mode>4_msub4) New.
14334         (fnma<mode>4) New.
14335         (*fnma<mode>4_nmadd3) New.
14336         (*fnma<mode>4_nmadd4) New.
14337         (fnms<mode>4) New.
14338         (*fnms<mode>4_nmsub3) New.
14339         (*fnms<mode>4_nmsub4) New.
14340         (*madd4<mode>) Modify to be unfused only.
14341         (*msub4<mode>) Modify to be unfused only.
14342         (*nmadd4<mode>) Modify to be unfused only.
14343         (*nmsub4<mode>) Modify to be unfused only.
14344         (*madd3<mode>) Remove.
14345         (*msub3<mode>) Remove.
14346         (*nmadd3<mode>) Remove.
14347         (*nmsub3<mode>) Remove.
14348         (*nmadd3<mode>_fastmath) Remove.
14349         (*nmsub3<mode>_fastmath) Remove.
14350         (*nmadd4<mode>_fastmath) Update condition.
14351         (*nmsub4<mode>_fastmath) Update condition.
14352
14353 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14354
14355         PR target/65956
14356         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
14357         alignment attribute, exploring one level down for records and arrays.
14358
14359 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14360
14361         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
14362         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
14363         Copy operand 1 to a temporary if !ext_register_operand.  Remove
14364         ancient extract_bit_field workaround.
14365         (*extv<mode>): Rename from *mov<mode>_extv_1.
14366         (*extvqi): Rename from *movqi_extv_1.
14367         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
14368         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
14369         to a temporary if !ext_register_operand.  Remove ancient
14370         extract_bit_field workaround.
14371         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
14372         (*extzvqi): Rename from *movqi_extzv_2.
14373         (*testqi_ext_3): Remove modes from const_int_operand predicated
14374         operands.  Add "n" constraint.
14375         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
14376         operand.  Add "J" constraint.
14377         (*btsq, *btrq, *btcq peephole2s): Remove mode from
14378         const_0_to_63 predicated operand.
14379         (regmode): New insn attribute.
14380         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
14381         to nonmemory_operand.  Use regmode insn attribute.
14382         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
14383         (*jcc_bt<mode>_mask): Remove mode from operand 3.
14384         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
14385         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
14386         operands.  Use "N" constraint instead of "n".
14387
14388 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14389
14390         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
14391
14392 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14393
14394         PR target/66749
14395         * config/i386/i386.c (iamcu_cost): New.
14396         (m_IAMCU): Likewise.
14397         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
14398         (processor_target_table): Add an entry for "iamcu".
14399         (processor_alias_table): Likewise.
14400         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
14401         (ix86_adjust_cost): Likewise.
14402         (ia32_multipass_dfa_lookahead): Likewise.
14403         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
14404         * config/i386/x86-tune.def: Updated for m_IAMCU.
14405
14406 2015-07-06  Richard Biener  <rguenther@suse.de>
14407
14408         PR tree-optimization/66772
14409         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
14410         values are available in the PHI node BB when there are
14411         still unexecutable edges.
14412
14413 2015-07-06  Richard Biener  <rguenther@suse.de>
14414
14415         PR tree-optimization/66767
14416         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
14417         Make sure to build the alignment test on a SSA name without
14418         final alignment info valid only if the alignment test
14419         evaluates to true.
14420
14421 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
14422
14423         PR target/66620
14424         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
14425         loop start when inserting LSETUP.
14426
14427 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14428
14429         PR target/53383
14430         * config/i386/i386.c (ix86_option_override_internal): Allow
14431         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
14432
14433 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14434
14435         * read-md.c (decimal_string): Rename to ...
14436         (md_decimal_string): ... this.
14437         (handle_enum): Reflect this.
14438
14439 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14440
14441         PR target/66731
14442         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
14443
14444 2015-07-06  Richard Biener  <rguenther@suse.de>
14445
14446         PR middle-end/66759
14447         * match.pd: Add missing constraint of y to REAL_CST in
14448         REAL_CST - x CMP y to y - CST CMP x simplification.
14449
14450 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
14451
14452         PR tree-optimization/66757
14453         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
14454
14455 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
14456             Sandra Loosemore <sandra@codesourcery.com>
14457
14458         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
14459         Delete extern declaration.
14460         (gprel_constant_p): Add extern declaration.
14461         * config/nios2/constraints.md ("S"): Use gprel_constant_p
14462         instead of nios2_symbol_ref_in_small_data_p.
14463         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
14464         (nios2_symbol_ref_in_small_data_p): Make static.
14465         (gprel_constant_p): Make non-static.
14466
14467 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14468
14469         * doc/fragments.texi (Target Fragment): Convert debian.org
14470         link to use https.
14471         * doc/install.texi (Configuration): Ditto.
14472
14473 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
14474
14475         PR tree-optimization/66718
14476         * tree-vect-stmts.c (vectorizable_call): Replace uses of
14477         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
14478
14479         PR tree-optimization/66718
14480         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
14481         vectorizable_load, vectorizable_condition): Move vectype,
14482         nunits, ncopies computation after checking what kind of statement
14483         stmt is.
14484
14485 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14486
14487         * target-insns.def (extv, extzv, insv): New targetm instruction
14488         patterns.
14489         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
14490         interface.
14491         * recog.c (simplify_while_replacing): Likewise.
14492
14493 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14494
14495         * target-insns.def (doloop_begin, doloop_end): New targetm
14496         instruction patterns.
14497         * loop-init.c: Include target.h.
14498         (pass_loop2::gate): Use the new targetm patterns instead of
14499         HAVE_*/gen_* interface.
14500         (pass_rtl_doloop::gate): Likewise.
14501         (pass_rtl_doloop::execute): Remove preprocessor condition.
14502         * hw-doloop.c: Build unconditionally.
14503         * loop-doloop.c: Likewise.
14504         (doloop_optimize): Use the new targetm patterns instead of
14505         HAVE_*/gen_* interface.
14506         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
14507         * modulo-sched.c (doloop_register_get): Likewise.
14508
14509 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14510
14511         * target-insns.def (clear_cache): New targetm instruction pattern.
14512         * builtins.c (expand_builtin___clear_cache): Use it instead of
14513         HAVE_*/gen_* interface.
14514
14515 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14516
14517         * target-insns.def (allocate_stack, check_stack, probe_stack)
14518         (probe_stack_address, split_stack_prologue, split_stack_space_check):
14519         New targetm instruction patterns.
14520         * explow.c (allocate_dynamic_stack_space): Use them instead of
14521         HAVE_*/gen_* interface.
14522         (emit_stack_probe): Likewise.
14523         (probe_stack_range): Likewise.
14524         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14525
14526 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14527
14528         * target-insns.def (stack_protect_set, stack_protect_test): New
14529         targetm instruction patterns.
14530         * cfgexpand.c (stack_protect_prologue): Use them instead of
14531         HAVE_*/gen_* interface.
14532         * function.c (stack_protect_epilogue): Likewise.
14533
14534 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14535
14536         * expr.h (gen_move_insn_uncast): Delete.
14537         * expr.c (gen_move_insn_uncast): Delete.
14538
14539 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14540
14541         * target-insns.def (restore_stack_block, restore_stack_function)
14542         (restore_stack_nonlocal, save_stack_block, save_stack_function)
14543         (save_stack_nonlocal): New targetm instruction patterns.
14544         * builtins.c (expand_builtin_apply): Use them instead of
14545         HAVE_*/gen_* interface.
14546         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
14547
14548 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14549
14550         * target-insns.def (trap): New targetm instruction pattern.
14551         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
14552         interface.
14553         * explow.c (allocate_dynamic_stack_space): Likewise.
14554         * ifcvt.c (find_if_header): Likewise.
14555
14556 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14557
14558         * target-insns.def (prefetch): New targetm instruction pattern.
14559         * tree-ssa-loop-prefetch.c: Include targeth.
14560         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
14561         of HAVE_*/gen_* interface.
14562         * builtins.c (expand_builtin_prefetch): Likewise.
14563         * toplev.c (process_options): Likewise.
14564
14565 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14566
14567         * target-insns.def (untyped_call, untyped_return): New targetm
14568         instruction patterns.
14569         * builtins.c (expand_builtin_apply): Use them instead of
14570         HAVE_*/gen_* interface.
14571         (result_vector): Define unconditionally.
14572
14573 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14574
14575         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
14576         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
14577         (nonlocal_goto_receiver): New targetm instruction patterns.
14578         * builtins.c (expand_builtin_setjmp_setup): Use them instead
14579         of HAVE_*/gen_* interface.
14580         (expand_builtin_setjmp_receiver): Likewise.
14581         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14582         * except.c (expand_dw2_landing_pad_for_region): Likewise.
14583
14584 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14585
14586         * target.def: Add code_for_* hooks.
14587         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
14588         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
14589         * target-insns.def (casesi, tablejump): New targetm instruction
14590         patterns.
14591         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
14592         (do_tablejump): Likewise.
14593         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
14594         (expand_sjlj_dispatch_table): Likewise.
14595         * targhooks.c (default_case_values_threshold): Likewise.
14596
14597 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
14598
14599         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
14600         Use rtx_insn * instead of rtx.
14601         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
14602         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
14603         (nios2_call_tls_get_addr): Likewise.
14604         (nios2_emit_expensive_div): Likewise.
14605         (nios2_emit_move_sequence): Change return type to bool.
14606         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
14607         Change return type to bool.
14608
14609 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14610
14611         PR target/66747
14612         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
14613
14614 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
14615
14616         PR target/66114
14617         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
14618         of register_operand.  Remove constraint.
14619
14620 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
14621
14622         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
14623         the first argument.
14624
14625 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
14626
14627         * attribs.c (decl_attributes): Guard inform with the return value
14628         of the preceding warning.
14629
14630 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14631
14632         * doc/invoke.texi (moverride): Move to correct section.
14633
14634 2015-07-03  Richard Biener  <rguenther@suse.de>
14635
14636         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
14637         Copy from tree.c
14638         (dt_operand::gen_gimple_expr): After valueizing operands
14639         re-canonicalize operand order for commutative tree codes.
14640
14641 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14642
14643         PR target/66746.
14644         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
14645         is defined.
14646         (__crc32w): Likewise.
14647         (__crc32d): Likewise.
14648         (__rdpmc): Likewise.
14649         (__rdtscp): Likewise.
14650         (_rdpmc): Likewise.
14651         (_rdtscp): Likewise.
14652         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
14653         is defined.
14654
14655 2015-07-03  Richard Biener  <rguenther@suse.de>
14656
14657         * fold-const.c (fold_mathfn_compare): Remove.
14658         (fold_inf_compare): Likewise.
14659         (fold_comparison): Move floating point comparison simplifications...
14660         * match.pd: ... to patterns here.  Introduce simple_comparisons
14661         operator list and use it for patterns formerly in fold_comparison.
14662
14663 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14664
14665         PR tree-optimization/66119
14666         * toplev.c (process_options): Don't set up default values for
14667         the sra_max_scalarization_size_{speed,size} parameters.
14668         * tree-sra (analyze_all_variable_accesses): If no values
14669         have been set for the sra_max_scalarization_size_{speed,size}
14670         parameters, call get_move_ratio to get target defaults.
14671
14672 2015-07-03  Richard Biener  <rguenther@suse.de>
14673
14674         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
14675         * match.pd: ... here.
14676
14677 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
14678
14679         PR target/37072
14680         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
14681         is not actually the default on FreeBSD.
14682
14683 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14684
14685         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
14686         definition.
14687         (CMPGE_8HI): Likewise.
14688         (CMPGE_4SI): Likewise.
14689         (CMPGE_2DI): Likewise.
14690         (CMPGE_U16QI): Likewise.
14691         (CMPGE_U8HI): Likewise.
14692         (CMPGE_U4SI): Likewise.
14693         (CMPGE_U2DI): Likewise.
14694         (CMPLE_16QI): Likewise.
14695         (CMPLE_8HI): Likewise.
14696         (CMPLE_4SI): Likewise.
14697         (CMPLE_2DI): Likewise.
14698         (CMPLE_U16QI): Likewise.
14699         (CMPLE_U8HI): Likewise.
14700         (CMPLE_U4SI): Likewise.
14701         (CMPLE_U2DI): Likewise.
14702         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14703         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
14704         ALTIVEC_BUILTIN_VEC_CMPLE.
14705         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
14706         floating-point vector modes.
14707         (vector_nlt<mode>): New define_expand.
14708         (vector_nltu<mode>): Likewise.
14709         (vector_ngt<mode>): Likewise.
14710         (vector_ngtu<mode>): Likewise.
14711
14712 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14713
14714         PR rtl-optimization/66706
14715         * combine.c (make_compound_operation): If an AND of SUBREG of
14716         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
14717
14718 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
14719
14720         * tree-pass.h (make_pass_ch_vect): New.
14721         * passes.def: Add pass_ch_vect just before pass_if_conversion.
14722
14723         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
14724         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
14725         make_pass_ch_vect): New.
14726         (pass_ch): Extend ch_base.
14727
14728         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
14729         (ch_base::copy_headers): ...here.
14730
14731 2015-07-02  Richard Biener  <rguenther@suse.de>
14732
14733         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
14734         * fold-const.c (get_pointer_modulus_and_residue): Remove.
14735         (fold_binary_loc): Implement (T)ptr & CST in terms of
14736         get_pointer_alignment_1.
14737         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
14738         Make sure to build the alignment test on a SSA name without
14739         final alignment info valid only after the prologue.
14740
14741 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
14742
14743         * config/cris/cris.md ("epilogue"): Remove condition.
14744         ("prologue"): Ditto.
14745
14746 2015-07-02  Richard Biener  <rguenther@suse.de>
14747
14748         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
14749         parameter to record a condition that is false.
14750         (record_conditions): When recording an extra NE_EXPR that is
14751         true also record a EQ_EXPR that is false.
14752
14753 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
14754
14755         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
14756         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
14757         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
14758         (set_iv, find_interesting_uses_address, add_candidate_1): New
14759         argument to alloc_iv.
14760         (find_interesting_uses_op, find_interesting_uses_cond): Don't
14761         duplicate struct iv.
14762         (free_loop_data): Don't free struct iv explicitly.
14763         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
14764
14765 2015-07-01  DJ Delorie  <dj@redhat.com>
14766
14767         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
14768         (LIB_SPEC): Add.
14769         (SUPPORTS_DISCRIMINATOR): Define.
14770
14771 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14772
14773         PR bootstrap/66685
14774         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
14775         there are no CALLs in the same pattern.
14776
14777 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14778
14779         PR rtl-optimization/61047
14780         * rtlanal.c (get_initial_register_offset): New function.
14781         (rtx_addr_can_trap_p_1): Check offsets of stack references.
14782
14783 2015-07-01  Richard Biener  <rguenther@suse.de>
14784
14785         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
14786         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
14787         ~X CMP C -> X CMP' ~C to ...
14788         * match.pd: ... patterns here.
14789
14790 2015-07-01  Nick Clifton  <nickc@redhat.com>
14791
14792         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
14793         a 16-bit value into a 20-bit memory slot.
14794
14795 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14796
14797         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14798         "aarch64_tiny", "aarch64_small", "aarch64_large",
14799         "aarch64_little_endian", "aarch64_big_endian".
14800
14801 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14802
14803         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
14804         Document "aarch64_small_fpic".
14805
14806 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14807
14808         * configure.ac: Add check for aarch64 assembler -fpic relocation
14809         modifier support.
14810         * configure: Regenerate.
14811         * config.in: Regenerate.
14812         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
14813         to -fPIC if not support of -fpic relocation modifier in assembler.
14814
14815 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14816
14817         PR bootstrap/66685
14818         * rtl.c (classify_insn): Handle returns in PARALLELs.
14819
14820 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
14821
14822         PR middle-end/66633
14823         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
14824         to true if the function is nested and if not optimizing.
14825         (convert_local_omp_clauses): Initialize need_frame to true if the
14826         function contains nested functions and if not optimizing.
14827
14828 2015-07-01  Richard Biener  <rguenther@suse.de>
14829
14830         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
14831         (X & Y) ^ Y -> ~X & Y transforms to ...
14832         * match.pd: ... here.
14833
14834 2015-07-01  Richard Biener <rguenther@suse.de>
14835
14836         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
14837         of converts to avoid uninteresting noise from the conversion
14838         simplifying patterns.
14839
14840 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
14841
14842         * config/c6x/c6x.c (try_rename_operands): Do not depend on
14843         gcc_assert evaluating its argument for side-effect.
14844
14845 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
14846
14847         PR target/64833
14848         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
14849         flag_pic is set.
14850
14851 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14852
14853         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
14854         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
14855         (hash_scc): Add this_ref_p and ref_p parameters and pass them
14856         to the inner DFS walk.
14857
14858 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14859
14860         * target-insns.def (jump): New targetm instruction pattern.
14861         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
14862         instead of gen_jump.
14863         (fix_up_crossing_landing_pad): Likewise.
14864         (add_labels_and_missing_jumps): Likewise.
14865         (fix_crossing_conditional_branches): Likewise.
14866         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14867         (force_nonfallthru_and_redirect): Likewise.
14868         * cse.c (cse_insn): Likewise.
14869         * expmed.c (expand_divmod): Likewise.
14870         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
14871         * haifa-sched.c (init_before_recovery): Likewise.
14872         (sched_create_recovery_edges): Likewise.
14873         * ifcvt.c (find_cond_trap): Likewise.
14874         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
14875         (expand_float, expand_fix): Likewise.
14876         * stmt.c (emit_jump): Likewise.
14877
14878 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14879
14880         * defaults.h (HAVE_load_multiple, gen_load_multiple)
14881         (HAVE_store_multiple, gen_store_multiple): Delete.
14882         * target-insns.def (load_multiple, store_multiple): New targetm
14883         instruction patterns.
14884         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
14885         of HAVE_*/gen_* interface.
14886
14887 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14888
14889         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
14890         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
14891         (gen_mem_signal_fence): Delete.
14892         * target-insns.def (mem_signal_fence, mem_thread_fence)
14893         (memory_barrier): New targetm instruction patterns.
14894         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
14895         interface.
14896         (expand_mem_signal_fence): Likewise.
14897
14898 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14899
14900         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
14901         * target-insns.def (epilogue, prologue, sibcall_prologue): New
14902         targetm instruction patterns.
14903         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
14904         interface.
14905         * calls.c (expand_call): Likewise.
14906         * cfgrtl.c (cfg_layout_finalize): Likewise.
14907         * df-scan.c (df_get_entry_block_def_set): Likewise.
14908         (df_get_exit_block_use_set): Likewise.
14909         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
14910         * final.c (final_start_function): Likewise.
14911         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14912         (reposition_prologue_and_epilogue_notes): Likewise.
14913         * reorg.c (find_end_label): Likewise.
14914         * toplev.c (process_options): Likewise.
14915
14916 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
14917
14918         * typed-splay-tree.h: New file.
14919
14920 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
14921
14922         PR debug/66691
14923         * lra-int.h (lra_substitute_pseudo): Add a parameter.
14924         (lra_substitute_pseudo_within_insn): Ditto.
14925         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
14926         of constant.
14927         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
14928         to lra_substitute_pseudo.
14929         * lra-lives.c (process_bb_lives): Add an argument to
14930         lra_substitute_pseudo_within_insn call.
14931         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
14932         argument to lra_substitute_pseudo and
14933         lra_substitute_pseudo_within_insn calls.
14934         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
14935
14936 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14937
14938         * configure: Regenerated.
14939
14940 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14941
14942         * config.gcc: Support i[34567]86-*-elfiamcu target.
14943         * config/i386/iamcu.h: New.
14944         * config/i386/i386.opt: Add -miamcu.
14945         * doc/invoke.texi: Document -miamcu.
14946         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
14947         off x87/MMX/SSE/AVX codegen for -miamcu.
14948         * config/i386/i386-c.c (ix86_target_macros_internal): Define
14949         __iamcu/__iamcu__ for -miamcu.
14950         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
14951         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
14952         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
14953         * config/i386/i386.c (ix86_option_override_internal): Ignore and
14954         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
14955         MCU by default.  Default long double to 64-bit for Intel MCU.
14956         Turn on -freg-struct-return for Intel MCU.  Issue an error when
14957         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
14958         AVX is turned on.
14959         (function_arg_advance_32): Pass value whose size is no larger
14960         than 8 bytes in registers for Intel MCU.
14961         (function_arg_32): Likewise.
14962         (ix86_return_in_memory): Return value whose size is no larger
14963         than 8 bytes in registers for Intel MCU.
14964         (iamcu_alignment): New function.
14965         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
14966         true.
14967         (ix86_local_alignment): Don't increase alignment for Intel MCU.
14968         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
14969         true.
14970
14971 2015-06-30  Marek Polacek  <polacek@redhat.com>
14972
14973         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
14974         both operands of the resulting expression.
14975
14976         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
14977         the final expression with the operand's type and then convert
14978         it to the type of the expression.
14979
14980 2015-06-30  Richard Biener  <rguenther@suse.de>
14981
14982         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
14983         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
14984         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
14985         * match.pd: ... to patterns here.
14986
14987 2015-06-30  Richard Biener  <rguenther@suse.de>
14988
14989         PR tree-optimization/66704
14990         * tree-vect-data-refs.c (vect_setup_realignment): Use
14991         make_ssa_name for non-SSA name source.
14992
14993 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
14994
14995         PR middle-end/66702
14996         * omp-low.c (simd_clone_adjust): Handle addressable linear
14997         or uniform parameters or non-gimple type uniform parameters.
14998
14999 2015-06-30  Richard Biener  <rguenther@suse.de>
15000
15001         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
15002         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
15003         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
15004         * match.pd: ... here.
15005         Add a few cases of A - B -> A + (-B) when B "easily" negates.
15006         Move (x & y) | x -> x and friends before
15007         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
15008
15009 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
15010
15011         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
15012         -mfix-ut699 is not specified.
15013         (leon3_load): Rename into...
15014         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
15015         is specified.
15016
15017 2015-06-30  Marek Polacek  <polacek@redhat.com>
15018
15019         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
15020         * match.pd: ... here.
15021
15022 2015-06-30  Richard Biener  <rguenther@suse.de>
15023
15024         * target-insns.def (canonicalize_funcptr_for_compare): Add.
15025         * fold-const.c (build_range_check): Replace uses of
15026         HAVE_canonicalize_funcptr_for_compare.
15027         (fold_widened_comparison): Likewise.
15028         (fold_sign_changed_comparison): Likewise.
15029         * dojump.c: Include "target.h".
15030         (do_compare_and_jump): Replace uses of
15031         HAVE_canonicalize_funcptr_for_compare and
15032         gen_canonicalize_funcptr_for_compare.
15033         * expr.c (do_store_flag): Likewise.
15034
15035 2015-06-30  Tom de Vries  <tom@codesourcery.com>
15036
15037         PR tree-optimization/66652
15038         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
15039         max_loop_iterations to determine if nit + 1 overflows.
15040
15041 2015-06-30  Richard Biener  <rguenther@suse.de>
15042
15043         * tree-vrp.c (register_edge_assert_for_2): Also register
15044         asserts for dominating conversion results.
15045
15046 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
15047
15048         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
15049         field in struct iv.
15050
15051 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
15052
15053         PR target/66509
15054         * configure.ac: Fix filds and fildq test for 64-bit.
15055         * configure: Regenerated.
15056
15057 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
15058
15059         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
15060         (nvptx_reorg): Here.  Keep the non-subreg pieces.
15061
15062 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
15063
15064         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
15065         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
15066
15067 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
15068
15069         * config/i386/i386.md (*jcc_1): Use %! in asm template.
15070         Set attribute "length_nobnd" instead of "length".
15071         (*jcc_2): Ditto.
15072         (jump): Ditto.
15073         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
15074
15075 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
15076
15077         * config/nios2/nios2.c (nios2_delegitimize_address): Make
15078         assert less restrictive.
15079
15080 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
15081
15082         PR fortran/66605
15083         * cgraphunit.c (cgraph_node::finalize_function): Do not call
15084         do_warn_unused_parameter.
15085         * function.c (do_warn_unused_parameter): Move from here.
15086         * function.h (do_warn_unused_parameter): Do not declare.
15087
15088 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15089
15090         PR target/65697
15091         * gcc.target/arm/armv-sync-comp-swap.c: New.
15092         * gcc.target/arm/armv-sync-op-acquire.c: New.
15093         * gcc.target/arm/armv-sync-op-full.c: New.
15094         * gcc.target/arm/armv-sync-op-release.c: New.
15095
15096 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15097
15098         PR target/65697
15099         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
15100         initial acquire barrier with final barrier.
15101
15102 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15103
15104         PR target/65697
15105         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
15106         initial acquire barrier with final barrier.
15107
15108 2015-06-29  Richard Henderson  <rth@redhat.com>
15109
15110         * config/i386/constraints.md (Bf): New constraint.
15111         * config/i386/i386-c.c (ix86_target_macros): Define
15112         __GCC_ASM_FLAG_OUTPUTS__.
15113         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
15114         as flags outputs.
15115         * doc/extend.texi (FlagOutputOperands): Document them.
15116
15117 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
15118
15119         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
15120         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
15121         unspec name.
15122         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
15123         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
15124         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
15125         (aarch64_symbol_context): Ditto.
15126         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
15127         and use new pattern name.
15128         (aarch64_expand_mov_immediate): Ditto.
15129         (aarch64_print_operand): Ditto.
15130         (aarch64_classify_tls_symbol): Ditto.
15131
15132 2015-06-29  Marek Polacek  <polacek@redhat.com>
15133             Marc Glisse  <marc.glisse@inria.fr>
15134
15135         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
15136         * match.pd: ... pattern here.
15137
15138 2015-06-29  Tom de Vries  <tom@codesourcery.com>
15139
15140         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
15141         function structure.
15142
15143 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15144
15145         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
15146         feature description, split out the native option, add a link to
15147         the feature documentation, rearrange and slightly rewrite text.
15148         (Aarch64 options, -mcpu): Likewise.
15149         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
15150         +rdma implies Adv. SIMD.
15151
15152 2015-06-29  Marek Polacek  <polacek@redhat.com>
15153
15154         PR c/66322
15155         * function.c (stack_protect_epilogue): Remove a cast to int.
15156         * doc/invoke.texi: Update -Wswitch-bool description.
15157
15158 2015-06-29  Richard Biener  <rguenther@suse.de>
15159
15160         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
15161         * fold-const.c (fold_binary_loc): Move &A - &B simplification
15162         via ptr_difference_const ...
15163         * match.pd: ... here.
15164         When matching (X ^ Y) == Y also match with swapped operands.
15165
15166 2015-06-29  Richard Biener  <rguenther@suse.de>
15167
15168         * lto-streamer.h (LTO_major_version): Bump to 5.
15169
15170 2015-06-29  Richard Biener  <rguenther@suse.de>
15171
15172         PR tree-optimization/66677
15173         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
15174         STMT_VINFO_VEC_STMT clobbering less strict.
15175
15176 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
15177
15178         PR middle-end/64130
15179         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
15180         division, compute max and min when value ranges for dividend and
15181         divisor are available.
15182
15183 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
15184             Sandra Loosemore <sandra@codesourcery.com>
15185
15186         * regrename.h (regrename_do_replace): Change to return bool.
15187         * regrename.c (rename_chains): Check return value of
15188         regname_do_replace.
15189         (regrename_do_replace): Re-validate the modified insns and
15190         return bool status.
15191         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
15192         Update to match rename_chains changes.
15193         * config/c6x/c6x.c (try_rename_operands): Assert that
15194         regrename_do_replace returns true.
15195
15196 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
15197
15198         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
15199         operand 2 here.  Use copy_addr_to_reg to copy non-index
15200         register operand 2 to a temporary.
15201         (<mode>_stx): Ditto for operand 1.
15202         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
15203         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
15204         (ix86_store_bounds): Ditto.
15205
15206 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
15207
15208         * print-tree.c (print_node) [TREE_VEC]: Print its length.
15209
15210 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
15211
15212         * gimple.c (gimple_call_set_fndecl): Remove.
15213         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
15214         build1_loc directly instead of build_fold_addr_expr_loc.
15215
15216 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15217
15218         * hash-map.h (hash_map::traverse): Use the definition of the
15219         Key typedef rather than the typedef itself.
15220
15221 2015-06-26  Martin Jambor  <mjambor@suse.cz>
15222
15223         PR debug/66301
15224         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
15225         NULL instead of calling dump_enabled_p.
15226
15227 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15228
15229         * config/aarch64/aarch64.opt: (override): New.
15230         * doc/invoke.texi (override): Document.
15231         * config/aarch64/aarch64.c (aarch64_flag_desc): New
15232         (aarch64_fusible_pairs): Likewise.
15233         (aarch64_tuning_flags): Likewise.
15234         (aarch64_tuning_override_function): Likewise.
15235         (aarch64_tuning_override_functions): Likewise.
15236         (aarch64_parse_one_option_token): Likewise.
15237         (aarch64_parse_boolean_options): Likewise.
15238         (aarch64_parse_fuse_string): Likewise.
15239         (aarch64_parse_tune_string): Likewise.
15240         (aarch64_parse_one_override_token): Likewise.
15241         (aarch64_parse_override_string): Likewise.
15242         (aarch64_override_options): Parse the -override string if it
15243         is present.
15244
15245 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15246
15247         * config/aarch64/aarch64-protos.h (tune_params): Remove
15248         const from members.
15249         (aarch64_tune_params): Remove const, change to no longer be
15250         a pointer.
15251         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
15252         change to no longer be a pointer, initialize to generic_tunings.
15253         (aarch64_min_divisions_for_recip_mul): Change dereference of
15254         aarch64_tune_params to member access.
15255         (aarch64_reassociation_width): Likewise.
15256         (aarch64_rtx_mult_cost): Likewise.
15257         (aarch64_address_cost): Likewise.
15258         (aarch64_branch_cost): Likewise.
15259         (aarch64_rtx_costs): Likewise.
15260         (aarch64_register_move_cost): Likewise.
15261         (aarch64_memory_move_cost): Likewise.
15262         (aarch64_sched_issue_rate): Likewise.
15263         (aarch64_builtin_vectorization_cost): Likewise.
15264         (aarch64_override_options): Take a copy of the selected tuning
15265         struct in to aarch64_tune_params, rather than just setting
15266         a pointer, change dereferences of aarch64_tune_params to member
15267         accesses.
15268         (aarch64_override_options_after_change): Change dereferences of
15269         aarch64_tune_params to member access.
15270         (aarch64_macro_fusion_p): Likewise.
15271         (aarch_macro_fusion_pair_p): Likewise.
15272         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
15273
15274 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15275
15276         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
15277         (aarch64_tune_flags): Likewise.
15278         (AARCH64_TUNE_FMA_STEERING): Likewise.
15279         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
15280         to AARCH64_FL_USE_FMA_STEERING_PASS.
15281         (cortex-a57.cortex-a53): Likewise.
15282         (cortex-a72): Use cortexa72_tunings.
15283         (cortex-a72.cortex-a53): Likewise.
15284         (exynos-m1): Likewise.
15285         * config/aarch64/aarch64-protos.h (tune_params): Add
15286         a field: extra_tuning_flags.
15287         * config/aarch64/aarch64-tuning-flags.def: New.
15288         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
15289         (aarch64_extra_tuning_flags): Likewise.
15290         (aarch64_tune_params): Declare here.
15291         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
15292         (cortexa53_tunings): Likewise.
15293         (cortexa57_tunings): Likewise.
15294         (thunderx_tunings): Likewise.
15295         (xgene1_tunings): Likewise.
15296         (cortexa72_tunings): New.
15297         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
15298          (gate): Check against aarch64_tune_params.
15299         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
15300         aarch64-protos.h.
15301
15302 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15303
15304         * config/aarch64/aarch64-fusion-pairs.def: New.
15305         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
15306         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
15307         aarch64_fusion_pairs.
15308         (AARCH64_FUSE_MOV_MOVK): Likewise.
15309         (AARCH64_FUSE_ADRP_ADD): Likewise.
15310         (AARCH64_FUSE_MOVK_MOVK): Likewise.
15311         (AARCH64_FUSE_ADRP_LDR): Likewise.
15312         (AARCH64_FUSE_CMP_BRANCH): Likewise.
15313
15314 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15315
15316         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
15317         SYMBOL_SMALL_GOT_28K.
15318         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
15319         relocation modifiers.
15320         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
15321         (ldr_got_small_28k_<mode>): New.
15322         (ldr_got_small_28k_sidi): New.
15323         * config/aarch64/iterators.md (got_modifier): New mode iterator.
15324         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
15325         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15326         SYMBOL_SMALL_GOT_28K.
15327         (aarch64_rtx_costs): Add costs for new instruction sequences.
15328         (initialize_aarch64_code_model): Initialize new model.
15329         (aarch64_classify_symbol): Recognize new model and new symbol classification.
15330         (aarch64_asm_preferred_eh_data_format): Support new model.
15331         (aarch64_load_symref_appropriately): Generate new instruction
15332         sequences for -fpic.
15333         (TARGET_USE_PSEUDO_PIC_REG): New definition.
15334         (aarch64_use_pseudo_pic_reg): New function.
15335
15336 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15337
15338         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15339         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
15340         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
15341         (aarch64_expand_mov_immediate): Ditto.
15342         (aarch64_print_operand): Ditto.
15343         (aarch64_classify_symbol): Ditto.
15344
15345 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
15346
15347         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
15348
15349 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
15350
15351         PR bootstrap/66638
15352         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
15353         assertion failed.  Remove assertion itself.
15354
15355 2015-06-26  Richard Biener  <rguenther@suse.de>
15356
15357         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
15358         and -A CMP CST -> A CMP -CST which is redundant with a pattern
15359         in match.pd.
15360         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
15361         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
15362         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
15363         * match.pd: ... patterns here.
15364
15365 2015-06-26  Marek Polacek  <polacek@redhat.com>
15366
15367         * match.pd ((x | y) & ~(x & y) -> x ^ y,
15368         (x | y) & (~x ^ y) -> x & y): New patterns.
15369
15370 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15371
15372         * rtl.h (emit): Add an optional boolean parameter to control
15373         whether barriers are emitted.
15374         * emit-rtl.c (emit): Likewise.
15375         * gensupport.c (get_emit_function): Return null rather than "emit".
15376         * genemit.c (gen_emit_seq): Handle the null return value.
15377         Don't emit barriers after the final instruction in the sequence.
15378         * gentarget-def.c (main): Don't emit barriers after the instruction.
15379
15380 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15381
15382         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
15383         TARGET_UNIFIED_ASM.
15384
15385 2015-06-26  Richard Biener  <rguenther@suse.de>
15386
15387         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
15388
15389 2015-06-26  Richard Biener  <rguenther@suse.de>
15390
15391         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
15392         irrespective on whether the inner operation has a single use
15393         of both off are constant.
15394
15395 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
15396             Segher Boessenkool  <segher@kernel.crashing.org>
15397
15398         PR target/66412
15399         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
15400         before doing PUT_MODE or PUT_CODE on operands to avoid
15401         in-place RTX modification.
15402
15403 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15404
15405         * gentarget-def.c (def_target_insn): Cast return of strtol to
15406         unsigned int.
15407
15408 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15409
15410         * gimple.h (gimple_call_set_fn): Move inline function.
15411         * gimple.c (gimple_call_set_fn): Relocate here.
15412
15413 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
15414
15415         PR target/65979
15416         PR target/66611
15417         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
15418         the replacement insn will work.
15419
15420 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15421
15422         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
15423         by default.
15424
15425 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15426
15427         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
15428         * cgraph.h: Include ipa-ref.h and plugin-api.h.
15429         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
15430         (symtab_node::address_can_be_compared_p): Move function.
15431         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
15432         definition here.
15433         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
15434         * auto-profile.c: Likewise.
15435         * bb-reorder.c: Likewise.
15436         * builtins.c: Likewise.
15437         * calls.c: Likewise.
15438         * cfgexpand.c: Likewise.
15439         * cgraphbuild.c: Likewise.
15440         * cgraphclones.c: Likewise.
15441         * cgraphunit.c: Likewise.
15442         * combine.c: Likewise.
15443         * coverage.c: Likewise.
15444         * data-streamer-in.c: Likewise.
15445         * data-streamer-out.c: Likewise.
15446         * data-streamer.c: Likewise.
15447         * dbxout.c: Likewise.
15448         * dwarf2out.c: Likewise.
15449         * except.c: Likewise.
15450         * expr.c: Likewise.
15451         * final.c: Likewise.
15452         * fold-const.c: Likewise.
15453         * ggc-page.c: Likewise.
15454         * gimple-fold.c: Likewise.
15455         * gimple-iterator.c: Likewise.
15456         * gimple-pretty-print.c: Likewise.
15457         * gimple-streamer-in.c: Likewise.
15458         * gimple-streamer-out.c: Likewise.
15459         * gimple.c: Likewise.
15460         * gimplify.c: Likewise.
15461         * ipa-chkp.c: Likewise.
15462         * ipa-comdats.c: Likewise.
15463         * ipa-cp.c: Likewise.
15464         * ipa-devirt.c: Likewise.
15465         * ipa-icf-gimple.c: Likewise.
15466         * ipa-icf.c: Likewise.
15467         * ipa-inline-analysis.c: Likewise.
15468         * ipa-inline-transform.c: Likewise.
15469         * ipa-inline.c: Likewise.
15470         * ipa-polymorphic-call.c: Likewise.
15471         * ipa-profile.c: Likewise.
15472         * ipa-prop.c: Likewise.
15473         * ipa-pure-const.c: Likewise.
15474         * ipa-ref.c: Likewise.
15475         * ipa-reference.c: Likewise.
15476         * ipa-split.c: Likewise.
15477         * ipa-utils.c: Likewise.
15478         * ipa-visibility.c: Likewise.
15479         * ipa.c: Likewise.
15480         * langhooks.c: Likewise.
15481         * lto-cgraph.c: Likewise.
15482         * lto-compress.c: Likewise.
15483         * lto-opts.c: Likewise.
15484         * lto-section-in.c: Likewise.
15485         * lto-section-out.c: Likewise.
15486         * lto-streamer-in.c: Likewise.
15487         * lto-streamer-out.c: Likewise.
15488         * lto-streamer.c: Likewise.
15489         * omp-low.c: Likewise.
15490         * opts-global.c: Likewise.
15491         * passes.c: Likewise.
15492         * predict.c: Likewise.
15493         * print-tree.c: Likewise.
15494         * profile.c: Likewise.
15495         * ree.c: Likewise.
15496         * sanopt.c: Likewise.
15497         * stor-layout.c: Likewise.
15498         * symtab.c: Likewise.
15499         * toplev.c: Likewise.
15500         * trans-mem.c: Likewise.
15501         * tree-cfg.c: Likewise.
15502         * tree-chkp.c: Likewise.
15503         * tree-eh.c: Likewise.
15504         * tree-emutls.c: Likewise.
15505         * tree-inline.c: Likewise.
15506         * tree-nested.c: Likewise.
15507         * tree-parloops.c: Likewise.
15508         * tree-pretty-print.c: Likewise.
15509         * tree-profile.c: Likewise.
15510         * tree-sra.c: Likewise.
15511         * tree-ssa-alias.c: Likewise.
15512         * tree-ssa-live.c: Likewise.
15513         * tree-ssa-loop-ivcanon.c: Likewise.
15514         * tree-ssa-loop-ivopts.c: Likewise.
15515         * tree-ssa-pre.c: Likewise.
15516         * tree-ssa-sccvn.c: Likewise.
15517         * tree-ssa-strlen.c: Likewise.
15518         * tree-ssa-structalias.c: Likewise.
15519         * tree-streamer-in.c: Likewise.
15520         * tree-streamer-out.c: Likewise.
15521         * tree-streamer.c: Likewise.
15522         * tree-switch-conversion.c: Likewise.
15523         * tree-tailcall.c: Likewise.
15524         * tree-vect-data-refs.c: Likewise.
15525         * tree-vect-stmts.c: Likewise.
15526         * tree-vectorizer.c: Likewise.
15527         * tree.c: Likewise.
15528         * tsan.c: Likewise.
15529         * ubsan.c: Likewise.
15530         * value-prof.c: Likewise.
15531         * varasm.c: Likewise.
15532         * varpool.c: Likewise.
15533         * config/arm/arm.c: Likewise.
15534         * config/bfin/bfin.c: Likewise.
15535         * config/c6x/c6x.c: Likewise.
15536         * config/cris/cris.c: Likewise.
15537         * config/darwin-c.c: Likewise.
15538         * config/darwin.c: Likewise.
15539         * config/i386/i386.c: Likewise.
15540         * config/i386/winnt.c: Likewise.
15541         * config/microblaze/microblaze.c: Likewise.
15542         * config/mips/mips.c: Likewise.
15543         * config/rs6000/rs6000.c: Likewise.
15544         * config/rx/rx.c: Likewise.
15545         * config/s390/s390.c: Likewise.
15546         * config/tilegx/mul-tables.c: Likewise.
15547
15548 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15549
15550         * config/aarch64/aarch64.c, config/alpha/alpha.c,
15551         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
15552         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
15553         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
15554         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15555         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15556         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15557         config/microblaze/microblaze.c, config/mips/mips.c,
15558         config/mmix/mmix.c, config/mn10300/mn10300.c,
15559         config/moxie/moxie.c, config/msp430/msp430.c,
15560         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15561         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15562         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15563         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15564         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15565         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15566         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
15567         target-def.h include.
15568         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
15569
15570 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15571
15572         * Makefile.in (TARGET_DEF): Add target-insns.def.
15573         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
15574         (build/gentarget-def.o): New rule.
15575         (genprogrtl): Add target-def.
15576         * target-insns.def, gentarget-def.c: New files.
15577         * target.def: Add targetm.have_* and targetm.gen_* hooks,
15578         based on the contents of target-insns.def.
15579         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
15580         (HAVE_return, gen_return): Delete.
15581         * target-def.h: Include insn-target-def.h.
15582         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
15583         instead of direct calls.  Rely on them to do the appropriate assertions.
15584         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
15585         (convert_jumps_to_returns): Use targetm interface instead of
15586         direct calls.
15587         (thread_prologue_and_epilogue_insns): Likewise.
15588         * reorg.c (find_end_label, dbr_schedule): Likewise.
15589         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
15590         * shrink-wrap.c (convert_to_simple_return): Likewise.
15591         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
15592
15593 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15594
15595         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
15596         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15597         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
15598         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
15599         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15600         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15601         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15602         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
15603         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
15604         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15605         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15606         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15607         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15608         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15609         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15610         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
15611         includes to end.
15612
15613 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15614
15615         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
15616         (unbounded_int_hashmap_traits::key_type): Likewise.
15617         * hash-map.h (hash_map): Get the key type from the traits.
15618         * hash-traits.h (default_hash_traits): By default, inherit from the
15619         template parameter.
15620         * alias.c (alias_set_traits): Delete.
15621         (alias_set_entry_d::children): Use alias_set_hash as the first
15622         template parameter.
15623         (record_alias_subset): Update accordingly.
15624         * except.c (tree_hash_traits): Delete.
15625         (type_to_runtime_map): Use tree_hash as the first template parameter.
15626         (init_eh): Update accordingly.
15627         * genmatch.c (capture_id_map_hasher): Delete.
15628         (cid_map_t): Use nofree_string_hash as first template parameter.
15629         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
15630         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
15631         Use symbol_compare_hash as the first template parameter in
15632         subdivide_hash_map.
15633         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
15634         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
15635         template parameter.
15636         * passes.c (pass_registry_hasher): Delete.
15637         (name_to_pass_map): Use nofree_string_hash as the first template
15638         parameter.
15639         (register_pass_name): Update accordingly.
15640         * sanopt.c (sanopt_tree_map_traits): Delete.
15641         (sanopt_tree_triplet_map_traits): Delete.
15642         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
15643         template parameter.
15644         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
15645         the first template parameter.
15646         * sese.c (rename_map_hasher): Delete.
15647         (rename_map_type): Use tree_ssa_name_hash as the first template
15648         parameter.
15649         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
15650         (function_summary::m_map): Use map_hash as the first template
15651         parameter.
15652         (function_summary::release): Update accordingly.
15653         * tree-if-conv.c (phi_args_hash_traits): Delete.
15654         (predicate_scalar_phi): Use tree_operand_hash as the first template
15655         parameter to phi_arg_map.
15656         * tree-inline.h (dependence_hasher): Delete.
15657         (copy_body_data::dependence_map): Use dependence_hash as the first
15658         template parameter.
15659         * tree-inline.c (remap_dependence_clique): Update accordingly.
15660         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
15661         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
15662         parameter.
15663         (addr_stridxptr): Update accordingly.
15664         * value-prof.c (profile_id_traits): Delete.
15665         (cgraph_node_map): Use profile_id_hash as the first template
15666         parameter.
15667         (init_node_map): Update accordingly.
15668         * config/alpha/alpha.c (string_traits): Delete.
15669         (machine_function::links): Use nofree_string_hash as the first
15670         template parameter.
15671         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
15672         * config/m32c/m32c.c (pragma_traits): Delete.
15673         (pragma_htab): Use nofree_string_hash as the first template parameter.
15674         (m32c_note_pragma_address): Update accordingly.
15675         * config/mep/mep.c (pragma_traits): Delete.
15676         (pragma_htab): Use nofree_string_hash as the first template parameter.
15677         (mep_note_pragma_flag): Update accordingly.
15678         * config/mips/mips.c (mips16_flip_traits): Delete.
15679         (mflip_mips16_htab): Use nofree_string_hash as the first template
15680         parameter.
15681         (mflip_mips16_use_mips16_p): Update accordingly.
15682         (local_alias_traits): Delete.
15683         (mips16_local_aliases): Use nofree_string_hash as the first template
15684         parameter.
15685         (mips16_local_alias): Update accordingly.
15686
15687 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15688
15689         * hash-map-traits.h (default_hashmap_traits): Delete.
15690
15691 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15692
15693         * hash-map-traits.h (unbounded_hashmap_traits): New class.
15694         (unbounded_int_hashmap_traits): Likewise.
15695         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
15696
15697 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15698
15699         * ipa-icf.h (symbol_compare_hash): New class.
15700         (symbol_compare_hashmap_traits): Use it.
15701         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
15702         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
15703         (mem_alloc_description::reverse_mem_map_t): Remove redundant
15704         default_hashmap_traits.
15705         * sanopt.c (sanopt_tree_triplet_hash): New class.
15706         (sanopt_tree_triplet_map_traits): Use it.
15707
15708 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15709
15710         * gengtype-parse.c (require_template_declaration): Allow '+' in
15711         template parameters.  Consolidate cases.
15712         * hash-traits.h (int_hash): New class.
15713         * alias.c (alias_set_hash): New structure.
15714         (alias_set_traits): Use it.
15715         * symbol-summary.h (function_summary::map_hash): New class.
15716         (function_summary::summary_hashmap_traits): Use it.
15717         * tree-inline.h (dependence_hash): New class.
15718         (dependence_hasher): Use it.
15719         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
15720         * value-prof.c (profile_id_hash): New class.
15721         (profile_id_traits): Use it.
15722
15723 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15724
15725         * config/mips/mips.c (mips16_flip_traits): Use it.
15726         (local_alias_traits, mips16_local_aliases): Convert from a map of
15727         rtxes to a map of symbol names.
15728         (mips16_local_alias): Update accordingly.
15729
15730 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15731
15732         * hash-traits.h (string_hash, nofree_string_hash): New classes.
15733         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
15734         * passes.c (pass_registry_hasher): Likewise.
15735         * config/alpha/alpha.c (string_traits): Likewise.
15736         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
15737         * config/m32c/m32c.c (pragma_traits): Likewise.
15738         * config/mep/mep.c (pragma_traits): Likewise.
15739
15740 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15741
15742         * tree-hash-traits.h (tree_hash): New class.
15743         * except.c: Include tree-hash-traits.h.
15744         (tree_hash_traits): Use tree_hash.
15745
15746 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15747
15748         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
15749         * sese.c: Include tree-hash-traits.h.
15750         (rename_map_hasher): Use tree_ssa_name_hasher.
15751
15752 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15753
15754         * tree-hash-traits.h (tree_decl_hash): New class.
15755         * tree-ssa-strlen.c: Include tree-hash-traits.h.
15756         (stridxlist_hash_traits): Use tree_decl_hash.
15757
15758 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15759
15760         * tree-hash-traits.h: New file.
15761         (tree_operand_hash): New class.
15762         * sanopt.c: Include tree-hash-traits.h.
15763         (sanopt_tree_map_traits): Use tree_operand_hash.
15764         * tree-if-conv.c: Include tree-hash-traits.h.
15765         (phi_args_hash_traits): Use tree_operand_hash.
15766         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
15767         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
15768
15769 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15770
15771         * hash-map-traits.h: Include hash-traits.h.
15772         (simple_hashmap_traits): New class.
15773         * mem-stats.h (hash_map): Change the default traits to
15774         simple_hashmap_traits<default_hash_traits<Key> >.
15775
15776 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15777
15778         * hash-table.h: Update comments.
15779
15780 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15781
15782         * hash-traits.h (default_hash_traits): New structure.
15783         * hash-set.h (default_hashset_traits): Delete.
15784         (hash_set): Use default_hash_traits<Key> instead of
15785         default_hashset_traits.  Delete hash_entry type and use Key directly.
15786         * ipa-devirt.c (pair_traits): Delete.
15787         (default_hash_traits <type_pair>): Override.
15788         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
15789         (odr_types_equivalent_p, add_type_duplicate): Likewise.
15790
15791 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15792
15793         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
15794
15795 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15796
15797         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
15798         (has_is_empty, is_empty_helper): Delete.
15799         (has_mark_deleted, mark_deleted_helper): Delete.
15800         (has_mark_empty, mark_empty_helper): Delete.
15801         (hash_table::is_deleted): Call the Descriptor unconditionally.
15802         (hash_table::is_empty): Likewise.
15803         (hash_table::mark_deleted): Likewise.
15804         (hash_table::mark_empty): Likewise.
15805
15806 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15807
15808         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
15809         redundant typedefs and members.
15810         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
15811         redundant typedefs.
15812         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
15813         * ipa-devirt.c (odr_name_hasher): Likewise.
15814         (polymorphic_call_target_hasher): Likewise.
15815         * ira-costs.c (cost_classes_hasher): Likewise.
15816         * statistics.c (stats_counter_hasher): Likewise.
15817         * trans-mem.c (log_entry_hasher): Likewise.
15818         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15819         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
15820         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
15821         * var-tracking.c (variable_hasher): Likewise.
15822         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
15823         Remove redundant typedefs and members.
15824
15825 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15826
15827         * hash-traits.h (ggc_cache_hasher): Rename to...
15828         (ggc_cache_remove): ...this and remove typedefs.
15829         (ggc_cache_ptr_hash): New class.
15830         * hash-table.h: Update commentary.
15831         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
15832         rather than ggc_cache_hasher.
15833         (const_wide_int_hasher, reg_attr_hasher): Likewise.
15834         (const_double_hasher, const_fixed_hasher): Likewise.
15835         * function.c (insn_cache_hasher): Likewise.
15836         * trans-mem.c (tm_wrapper_hasher): Likewise.
15837         * tree.h (tree_decl_map_cache_hasher): Likewise.
15838         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
15839         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
15840         * ubsan.c (tree_type_map_cache_hasher): Likewise.
15841         * varasm.c (tm_clone_hasher): Likewise.
15842         * config/i386/i386.c (dllimport_hasher): Likewise.
15843         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
15844         (tree_hasher): Likewise.
15845
15846 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15847
15848         * hash-traits.h (ggc_hasher): Rename to...
15849         (ggc_remover): ...this and remove typedefs.
15850         (ggc_cache_hasher): Update accordingly.  Add typedefs.
15851         (ggc_ptr_hash): New class.
15852         * hash-table.h: Update comment.
15853         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
15854         ggc_hasher.
15855         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
15856         (tree_descriptor_hasher): Likewise.
15857         * cgraph.c (function_version_hasher): Likewise.
15858         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
15859         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
15860         (dw_loc_list_hasher, addr_hasher): Likewise.
15861         * function.h (used_type_hasher): Likewise.
15862         * function.c (temp_address_hasher): Likewise.
15863         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
15864         * libfuncs.h (libfunc_hasher): Likewise.
15865         * lto-streamer.h (decl_state_hasher): Likewise.
15866         * optabs.c (libfunc_decl_hasher): Likewise.
15867         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
15868         * varasm.c (section_hasher, object_block_hasher): Likewise.
15869         (const_rtx_desc_hasher): Likewise.
15870         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
15871         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
15872
15873 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15874
15875         * hash-traits.h (free_ptr_hash): New class.
15876         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
15877         rather than typed_free_remove.  Remove redudant typedefs.
15878         (external_ref_hasher): Likewise.
15879         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
15880         (ehspec_hasher): Likewise.
15881         * ggc-common.c (saving_hasher): Likewise.
15882         * gimplify.c (gimplify_hasher): Likewise.
15883         * haifa-sched.c (delay_i2_hasher): Likewise.
15884         * loop-invariant.c (invariant_expr_hasher): Likewise.
15885         * loop-iv.c (biv_entry_hasher): Likewise.
15886         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
15887         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
15888         * tree-cfg.c (locus_discrim_hasher): Likewise.
15889         * tree-eh.c (finally_tree_hasher): Likewise.
15890         * tree-into-ssa.c (var_info_hasher): Likewise.
15891         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
15892         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
15893         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
15894         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
15895         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
15896         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
15897         (shared_bitmap_hasher): Likewise.
15898         * tree-ssa-threadupdate.c (redirection_data): Likewise.
15899         * tree-vectorizer.h (peel_info_hasher): Likewise.
15900         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
15901         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
15902
15903 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15904
15905         * hash-table.h: Update comments.
15906         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
15907         (nofree_ptr_hash): New class.
15908         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
15909         than typed_noop_remove.  Remove redudant typedefs.
15910         * attribs.c (attribute_hasher): Likewise.
15911         * cfg.c (bb_copy_hasher): Likewise.
15912         * cselib.c (cselib_hasher): Likewise.
15913         * dse.c (invariant_group_base_hasher): Likewise.
15914         * dwarf2cfi.c (trace_info_hasher): Likewise.
15915         * dwarf2out.c (macinfo_entry_hasher): Likewise.
15916         (comdat_type_hasher, loc_list_hasher): Likewise.
15917         * gcse.c (pre_ldst_expr_hasher): Likewise.
15918         * genmatch.c (id_base): Likewise.
15919         * genrecog.c (test_pattern_hasher): Likewise.
15920         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
15921         * haifa-sched.c (delay_i1_hasher): Likewise.
15922         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
15923         * ipa-icf.h (congruence_class_group_hash): Likewise.
15924         * ipa-profile.c (histogram_hash): Likewise.
15925         * ira-color.c (allocno_hard_regs_hasher): Likewise.
15926         * lto-streamer.h (string_slot_hasher): Likewise.
15927         * lto-streamer.c (tree_entry_hasher): Likewise.
15928         * plugin.c (event_hasher): Likewise.
15929         * postreload-gcse.c (expr_hasher): Likewise.
15930         * store-motion.c (st_expr_hasher): Likewise.
15931         * tree-sra.c (uid_decl_hasher): Likewise.
15932         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
15933         (ssa_name_var_hash): Likewise.
15934         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
15935         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
15936         * tree-ssa-pre.c (pre_expr_d): Likewise.
15937         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
15938         * vtable-verify.h (registration_hasher): Likewise.
15939         * vtable-verify.c (vtbl_map_hasher): Likewise.
15940         * config/arm/arm.c (libcall_hasher): Likewise.
15941         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
15942         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
15943         * config/sol2.c (comdat_entry_hasher): Likewise.
15944         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
15945         (print_fold_checksum, fold_checksum_tree): Likewise.
15946         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
15947         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
15948         (fold_build_call_array_loc): Likewise.
15949         * tree-ssa-ccp.c (gimple_htab): Likewise.
15950         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
15951         rather than pointer_type.
15952
15953 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15954
15955         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
15956         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
15957
15958 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15959
15960         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
15961         (ggc_hasher::ggc_mx): Likewise.
15962         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
15963         that duplicate ggc_hasher ones.
15964
15965 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15966
15967         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
15968         (gt_cleare_cache): Check here for deleted and empty entries.
15969         Replace handle_cache_entry with a call to keep_cache_entry.
15970         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
15971         (ggc_cache_hasher::keep_cache_entry): New function.
15972         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
15973         (tm_wrapper_hasher::keep_cache_entry): New function.
15974         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
15975         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15976         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
15977         (type_cache_hasher::keep_cache_entry): New function.
15978         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
15979         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15980         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
15981         (tree_type_map_cache_hasher::keep_cache_entry): New function.
15982         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
15983         (tm_clone_hasher::keep_cache_entry): New function.
15984         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
15985         (dllimport_hasher::keep_cache_entry): New function.
15986
15987 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15988
15989         * hash-table.h: Include hash-traits.h.
15990         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
15991         (ggc_cache_hasher): Move to...
15992         * hash-traits.h: ...this new file.
15993
15994 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15995
15996         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
15997         struct cl_optimization.
15998         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
15999         * tree.c (make_node_stat): Allocate cl_optimization struct.
16000         (copy_node_stat): Allocate and copy cl_optimization struct.
16001
16002 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16003
16004         * function.h (struct incoming_args): Move struct.
16005         (pass_by_reference, reference_callee_copied): Remove prototypes.
16006         * emit-rtl.h (struct incoming_args): Relocate struct here.
16007         * calls.h (pass_by_reference, reference_callee_copied): Relocate
16008         prototypes here.
16009         * function.c (pass_by_reference, reference_callee_copied): Move.
16010         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
16011         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
16012         * ipa-chkp.c: Include calls.h.
16013
16014 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
16015
16016         * alias.h (alias_set_type): Move typedef.
16017         * coretypes.h (alias_set_type): Relocate typedef here.
16018         * rtl.h: Don't include alias.h.
16019
16020 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
16021
16022         * cgraph.h (cgraph_rtl_info): Move to rtl.h
16023         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
16024         and instance.
16025         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
16026         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
16027         doesn't exist.
16028         * calls.c: Include hard-reg-set.h before rtl.h.
16029         * ira.c: Likewise.
16030
16031 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
16032             Vladimir Makarov  <vmakarov@redhat.com>
16033
16034         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
16035         Add assert.
16036
16037 2015-06-25  Richard Biener  <rguenther@suse.de>
16038
16039         * fold-const.c (fold_binary_loc): Move simplification of
16040         (X <<>> C1) & C2 ...
16041         * match.pd: ... here.
16042
16043 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
16044
16045         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
16046
16047 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
16048
16049         * match.pd: Add patterns for vec_conds between 1 and 0.
16050
16051 2015-06-25  Richard Biener  <rguenther@suse.de>
16052
16053         * tree-vect-stmts.c (vectorizable_conversion): Do not set
16054         STMT_VINFO_VEC_STMT for SLP.
16055         (vectorizable_store): Likewise.
16056         (vectorizable_load): Likewise.
16057         (vect_transform_stmt): Catch SLP vectorization clobbering
16058         STMT_VINFO_VEC_STMT.
16059
16060 2015-06-25  Richard Biener  <rguenther@suse.de>
16061
16062         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
16063         dumping.
16064         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
16065         cleanup resulting dead code and parameters.
16066         (vect_transform_slp_perm_load): Adjust.
16067
16068 2015-06-25  Nick Clifton  <nickc@redhat.com>
16069
16070         * config/bfin/bfin.c (bfin_expand_prologue): Set
16071         current_function_static_stack_size if flag_stack_usage_info is set.
16072         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
16073         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
16074         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
16075         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
16076
16077 2015-06-25  Tom de Vries  <tom@codesourcery.com>
16078
16079         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
16080         comment that the generated IV is unsigned.
16081
16082 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16083
16084         PR target/29693
16085         * config/arm/arm.c (arm_dbx_register_number): Return
16086         DWARF_FRAME_REGISTERS by default.
16087
16088 2015-06-25  Tom de Vries  <tom@codesourcery.com>
16089
16090         * dominance.c (calculate_dominance_info): Fix verify_dominators call
16091         argument.  Call verify_dominator when reusing dominator info.
16092
16093 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
16094
16095         PR target/66563
16096         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
16097         an additional element of the unspec vector.  Modify indices
16098         of operands.
16099         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
16100         * config/sh/sh.c (prepare_move_operands): Pass incremented
16101         const_int to gen_GOTaddr2picreg.
16102         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
16103
16104 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16105
16106         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
16107         Condition on TARGET_FLOAT.
16108
16109 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16110
16111         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
16112         and (no)crypto.
16113
16114 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16115
16116         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
16117
16118         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
16119         aarch64_err_no_fpadvsimd.
16120
16121         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
16122         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
16123         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
16124         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
16125         Turn error into assert, test TARGET_FLOAT.
16126         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
16127         TARGET_FLOAT.
16128
16129 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
16130
16131         PR debug/66482
16132         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
16133
16134 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
16135
16136         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
16137
16138 2015-06-24  Renlin Li <renlin.li@arm.com>
16139
16140         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
16141         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
16142
16143 2015-06-24  Richard Biener  <rguenther@suse.de>
16144
16145         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
16146         (main): Likewise.
16147         (lower_opt_convert): Support lowering of conditional view_convert.
16148         (parser::parse_operation): Likewise.
16149         (parser::parse_for): Likewise.
16150
16151 2015-06-24  Renlin Li  <renlin.li@arm.com>
16152
16153         * varasm.c (emit_local): Use unsigned int for align variable.
16154
16155 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16156
16157         PR target/63408
16158         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
16159         for negative numbers.
16160
16161 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16162
16163         PR rtl-optimization/66306
16164         * reload.c (find_reloads): Swap the match_dup info for
16165         commutative operands.
16166
16167 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16168
16169         * config/s390/vx-builtins.md
16170         ("vec_scatter_element<mode>_<non_vec_int>")
16171         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
16172         attribute with bhfgq.
16173
16174 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16175
16176         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
16177
16178 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16179
16180         * config/s390/s390-builtin-types.def: Add flag to indicate the
16181         options under which the function type is needed.
16182         * config/s390/s390-builtins.def: Add flag to indicate the options
16183         under which the builtin is enabled.
16184         * config/s390/s390-builtins.h: Add flags parameter to macro
16185         definitions.
16186         (bflags_for_builtin): New function.
16187         (flags_for_builtin): Renamed to ...
16188         (opflags_for_builtin): ... this.
16189         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
16190         flags_for_builtin to bflags_for_builtin and
16191         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
16192         * config/s390/s390.c: Add initialization of bflags_builtin and
16193         opflags_builtin arrays.
16194         Remove code for flags_builtin.
16195         (s390_init_builtins): Only create builtin function types if one of
16196         their flags is active.
16197         Only create builtins if all of their flags are active.
16198         (s390_expand_builtin): Rename flags_for_builtin to
16199         opflags_for_builtin.
16200
16201 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16202
16203         * config/s390/vecintrin.h: Remove internal builtins.
16204
16205 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16206
16207         * config/s390/s390.c (s390_secondary_reload): Fix check for
16208         GENERAL_REGS register class.
16209
16210 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16211
16212         * config/s390/s390.c (s390_support_vector_misalignment): Call
16213         default implementation for !TARGET_VX.
16214
16215 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16216
16217         * config/s390/s390.c (s390_legitimate_constant_p): Add
16218         TARGET_VX check.
16219
16220 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16221
16222         * config/s390/s390.c (s390_vector_abi): New variable definition.
16223         (s390_check_type_for_vector_abi): New function.
16224         (TARGET_ASM_FILE_END): New macro definition.
16225         (s390_asm_file_end): New function.
16226         (s390_function_arg): Call s390_check_type_for_vector_abi.
16227         (s390_gimplify_va_arg): Likewise.
16228         * configure: Regenerate.
16229         * configure.ac: Check for .gnu_attribute Binutils feature.
16230
16231 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
16232
16233         PR target/65803
16234         * config/bfin/bfin.c (hwloop_optimize): Initialize
16235         JUMP_LABEL for newly created jump.
16236
16237 2015-06-23  Tristan Gingold  <gingold@adacore.com>
16238
16239         * collect-utils.c (collect_wait): Unlink the response file here
16240         instead of...
16241         (do_wait): ...here.
16242         (utils_cleanup): ...and here.
16243
16244 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
16245
16246         * df-scan.c: Don't include target-def.h.
16247         * targhooks.c: Likewise.
16248         * config/arm/arm-c.c: Likewise.
16249         * config/i386/i386-c.c: Likewise.
16250         * config/nds32/nds32-cost.c: Likewise.
16251         * config/nds32/nds32-fp-as-gp.c: Likewise.
16252         * config/nds32/nds32-intrinsic.c: Likewise.
16253         * config/nds32/nds32-isr.c: Likewise.
16254         * config/nds32/nds32-md-auxiliary.c: Likewise.
16255         * config/nds32/nds32-memory-manipulation.c: Likewise.
16256         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16257         * config/nds32/nds32-predicates.c: Likewise.
16258
16259 2015-06-23  Richard Biener  <rguenther@suse.de>
16260
16261         PR tree-optimization/66636
16262         * tree-vect-stmts.c (vectorizable_store): Properly compute the
16263         def type for further defs for strided stores.
16264
16265 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
16266
16267         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
16268         conditional selects.
16269         (setcc_int<mode>, setcc_float<mode>): Reformat.
16270
16271 2015-06-23  Marek Polacek  <polacek@redhat.com>
16272
16273         * match.pd ((x + y) - (x | y) -> x & y,
16274         (x + y) - (x & y) -> x | y): New patterns.
16275
16276 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
16277
16278         PR 65711
16279         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
16280         '-dynamic-linker' within %{!shared: ...}.
16281
16282 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
16283
16284         PR target/66560
16285         * config/i386/predicates.md (addsub_vm_operator): New predicate.
16286         (addsub_vs_operator): Ditto.
16287         (addsub_vs_parallel): Ditto.
16288         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
16289         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
16290         Put minus RTX before plus and adjust vec_merge selector.
16291         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
16292         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
16293         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
16294         (addsub vec_merge splitters): New combiner splitters.
16295         (addsub vec_select/vec_concat splitters): Ditto.
16296
16297 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
16298
16299         PR tree-optimization/66449
16300         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
16301         POINTER_PLUS_EXPR for pointers.
16302
16303 2015-06-23  Alan Modra  <amodra@gmail.com>
16304
16305         * rtlanal.c (commutative_operand_precedence): Correct comments.
16306         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
16307         declaration.  Return an int.  Distinguish REG,REG return from
16308         others.
16309         (struct simplify_plus_minus_op_data): Make local to function.
16310         (simplify_plus_minus): Don't set canonicalized if merely sorting
16311         registers.  Avoid packing ops if nothing changes.  White space fixes.
16312
16313 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
16314
16315         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
16316         -fdump-ada-spec is passed but not if -fsyntax-only is.
16317
16318 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
16319
16320         PR bootstrap/63740
16321         * lra-lives.c (process_bb_lives): Check insn copying the same
16322         reload pseudo and don't create a copy for it.
16323
16324 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16325
16326         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
16327         for cond_stmt.
16328
16329 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16330
16331         * builtins.def (DEF_GOMP_BUILTIN): Test
16332         'flag_tree_parallelize_loops > 1' instead of
16333         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
16334
16335 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16336
16337         * dominance.c (calculate_dominance_info): Verify dominators if
16338         early-out.
16339
16340 2015-06-22  Marek Polacek  <polacek@redhat.com>
16341
16342         * match.pd ((x ^ y) ^ (x | y) -> x & y,
16343         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
16344         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
16345         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
16346
16347 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
16348
16349         PR target/65871
16350         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
16351         cost of embedded comparison.
16352
16353 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16354
16355         PR target/65914
16356         * config/rs6000/predicates.md (altivec_register_operand): Permit
16357         virtual stack registers.
16358         (vsx_register_operand): Likewise.
16359         (vfloat_operand): Likewise.
16360         (vint_operand): Likewise.
16361         (vlogical_operand): Likewise.
16362
16363 2015-06-22  Richard Biener  <rguenther@suse.de>
16364
16365         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
16366         and single_scalar_iteration_cost members.
16367         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
16368         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
16369         (vect_get_single_scalar_iteration_cost): Remove.
16370         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
16371         Use LOOP_VINFO_SCALAR_ITERATION_COST.
16372         * tree-vect-loop.c (destroy_loop_vec_info): Free
16373         scalar_cost_vec.
16374         (vect_get_single_scalar_iteration_cost): Compute result into
16375         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
16376         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
16377         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
16378         (vect_estimate_min_profitable_iters): Use them.
16379
16380 2015-06-22  Christian Bruel  <christian.bruel@st.com>
16381
16382         PR target/52144
16383         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
16384         (TARGET_INSERT_ATTRIBUTES): Define.
16385         (thumb_flipper): New var.
16386         * config/arm/arm.opt (-mflip-thumb): New switch.
16387
16388 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16389             Martin Liska  <mliska@suse.cz>
16390
16391         PR ipa/65908
16392         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
16393         construction of arg_types.
16394         (sem_function::sem_function): Likewise.
16395         (sem_function::~sem_function): Remove destruction of arg_types.
16396         (sem_function::compatible_parm_types_p): New function.
16397         (sem_function::equals_wpa): Reorg matching of return values
16398         and parameter types.
16399         (sem_function::equals_private): Reorg mathcing of argument types.
16400         (sem_function::parse_tree_args): Remove.
16401         * ipa-icf.h (init_wpa): Do not call it.
16402         (parse_tree_args): Remove.
16403         (compatible_parm_types_p): Declare.
16404         (result_type): Remove.
16405         (arg_types): Remove.
16406
16407 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16408
16409         PR ipa/66351
16410         * ipa-polymorphic-call.c
16411         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
16412         initializing alias oracle; fix formating; set base_alias_set if it
16413         is known.
16414
16415 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
16416
16417         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
16418         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
16419         (find_inc): Likewise.
16420         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
16421         swapping.
16422         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
16423         * df-scan.c (df_swap_refs): Remove.
16424         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
16425         * dominance.c (link_roots): Use std::swap instead of manually swapping.
16426         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
16427         * fold-const.c (fold_relational_const): Likewise.
16428         * genattrtab.c (simplify_test_exp): Likewise.
16429         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
16430         gimple_simplify): Likewise.
16431         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
16432         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
16433         * ipa-devirt.c (add_type_duplicate): Likewise.
16434         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
16435         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
16436         * lra.c (lra_create_copy): Likewise.
16437         * lto-streamer-out.c (DFS::DFS): Likewise.
16438         * modulo-sched.c (get_sched_window): Likewise.
16439         * omega.c (omega_pretty_print_problem): Likewise.
16440         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
16441         * reload1.c (reloads_unique_chain_p): Likewise.
16442         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
16443         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
16444         use std::swap.
16445         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
16446         manually swapping.
16447         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
16448         predicate_mem_writes): Likewise.
16449         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
16450         * tree-predcom.c (combine_chains): Likewise.
16451         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
16452         refs_may_alias_p_1): Likewise.
16453         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
16454         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
16455         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
16456         number_of_iterations_cond): Likewise.
16457         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
16458         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
16459         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16460         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
16461         * tree-vrp.c (extract_range_from_binary_expr_1,
16462         extract_range_from_unary_expr_1): Likewise.
16463
16464 2015-06-20  Marek Polacek  <polacek@redhat.com>
16465
16466         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
16467
16468 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16469
16470         PR target/66591
16471         * config/sh/sh.c (prepare_move_operands): Replace subreg
16472         index term with R0 for base and index addressing.
16473
16474 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
16475
16476         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
16477         op1 is an fp zero.
16478         (movsf_aarch64): Change condition from register_operand to
16479         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
16480         load1.  Change type for alternative 7 to store1.
16481         (movdf_aarch64): Likewise.
16482
16483 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
16484
16485         * config/vax/vax.md: Adjust sign/zero extend patterns to
16486         handle SUBREGs in operands[1].
16487
16488 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16489
16490         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
16491         of manually swapping.
16492         (expand_vec_perm_interleave2): Likewise.
16493
16494 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
16495
16496         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
16497         reuse bounds created for abnormal ssa names.
16498
16499 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
16500
16501         * config/nvptx/nvptx.md (allocate_stack): Rename to...
16502         (allocate_stack_<mode>): ... this, and add :P on both
16503         match_operand and unspec.
16504         (allocate_stack): New expander.
16505
16506 2015-06-19  Christian Bruel  <christian.bruel@st.com>
16507
16508         PR target/66541
16509         PR target/52144
16510         * config/arm/arm.c (arm_set_current_function): Handle
16511         explicit default options.
16512
16513 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16514
16515         * config/i386/i386.md (*movsicc_noc_zext): New insn.
16516         (zero-extended cmove with mem peephole2): New pattern.
16517         (cmove with mem peephole2): Merge patterns.
16518
16519 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16520
16521         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
16522
16523 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
16524
16525         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
16526         * config/mips/mips.md (*madd4<mode>): Ditto.
16527         (*nmadd3<mode>) Ditto.
16528         (*nmadd4<mode>_fastmath): Ditto.
16529         (*nmadd3<mode>_fastmath): Ditto.
16530         (*nmsub4<mode>): Ditto.
16531         (*nmsub3<mode>): Ditto.
16532         (*nmsub4<mode>_fastmath): Ditto.
16533         (*nmsub3<mode>_fastmath): Ditto.
16534
16535 2015-06-18  Michael Matz  <matz@suse.de>
16536
16537         PR middle-end/66253
16538         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
16539         grouped strided stores.
16540         (vectorizable_load): Don't use the DR from first_stmt in
16541         the non-SLP grouped strided case.
16542
16543 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16544
16545         PR target/66569
16546         * function.c (assign_bounds): Add arguments assign_regs,
16547         assign_special, assign_bt.
16548         (assign_parms): For vararg functions handle bounds in BT
16549         and special slots after incoming vararg bounds.
16550
16551 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16552
16553         PR middle-end/66568
16554         * cfgexpand.c (expand_return): Handle missing bounds.
16555         (expand_gimple_stmt_1): Likewise.
16556         * tree-chkp.c (chkp_expand_zero_bounds): New.
16557         * tree-chkp.h (chkp_expand_zero_bounds): New.
16558
16559 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16560
16561         PR middle-end/66567
16562         * ipa-chkp.c (chkp_maybe_create_clone): Require
16563         functions to be instrumentable.
16564         * tree-chkp.c (chkp_replace_function_pointer): Use
16565         chkp_instrumentable_p instead of attribute check.
16566
16567 2015-06-18  Richard Biener  <rguenther@suse.de>
16568
16569         PR tree-optimization/66510
16570         * tree-vect-stmts.c (vectorizable_load): Properly compute the
16571         number of vector loads for SLP permuted loads.
16572         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
16573         check the stride for loop vectorization.
16574         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
16575         vectorization factor.
16576         (vect_analyze_group_access): If the group size is not a power
16577         of two require a epilogue loop.
16578         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
16579         compute and optimizing and alias test pruning after final
16580         vectorization factor computation.
16581         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
16582         vector alignment.
16583         (vect_transform_slp_perm_load): Properly compute the original
16584         number of vector load stmts.
16585
16586 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16587
16588         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
16589         "unlikely character , in @var" warning.
16590
16591 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
16592
16593         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
16594         (ix86_function_arg_advance): Ditto.
16595         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
16596
16597 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16598
16599         * function.h (struct rtl_data): Remove struct and accessor macros.
16600         * emit-rtl.h (struct rtl_data): Relocate to here.
16601         * Makefile.in (GTFILES): Add emit-rtl.h.
16602         * df-core.c: Include emit-rtl.h.
16603         * genattrtab.c: Likewise.
16604         * genconditions.c: Likewise.
16605         * genpreds.c: Likewise.
16606         * genrecog.c: Likewise.
16607         * regcprop.c: Likewise.
16608         * resource.c: Likewise.
16609         * sched-rgn.c: Likewise.
16610         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16611         * config/i386/winnt.c: Likewise.
16612
16613 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
16614
16615         PR middle-end/66429
16616         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
16617         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
16618         and has_force_vectorize_loops flags from cfun into
16619         child_cfun.
16620         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
16621         if simduid is non-NULL.
16622         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
16623         * passes.def (pass_simduid_cleanup): Add new pass after loop
16624         passes.
16625         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
16626         indirection from htab argument's type.
16627         (shrink_simd_arrays): New function.
16628         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
16629         Don't call adjust_simduid_builtins if there are no loops.
16630         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
16631         (pass_simduid_cleanup::execute): New method.
16632         (make_pass_simduid_cleanup): New function.
16633
16634 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
16635
16636         * tree-core.h (tree_target_option): Make opts field a pointer to a
16637         cl_target_option instead of an instance of the struct.
16638         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
16639         the structure.
16640         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
16641         TARGET_OPTION_NODE.
16642         (copy_node_stat): Allocate and copy struct cl_target_option.
16643
16644 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16645
16646         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
16647         Remove conditional exposure of prototypes.
16648         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
16649         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
16650         definitions in tree.h with functions.
16651         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
16652         anon_aggrname_p.
16653         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
16654
16655 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
16656
16657         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
16658         (*cmp<mode>_signed): ... this.
16659         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
16660         (*cmp<mode>_unsigned): ... this.  Remove %b.
16661
16662 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16663
16664         * coretypes.h: Include input.h and as-a.h.
16665         * rtl.h: Include input.h and as-a.h for generator files.
16666         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
16667         * vec.c: Don't include diagnostic-core.h.
16668         * alias.c: Do not include input.h, line-map.h or is-a.h.
16669         * asan.c: Likewise.
16670         * attribs.c: Likewise.
16671         * auto-inc-dec.c: Likewise.
16672         * auto-profile.c: Likewise.
16673         * bb-reorder.c: Likewise.
16674         * bt-load.c: Likewise.
16675         * builtins.c: Likewise.
16676         * caller-save.c: Likewise.
16677         * calls.c: Likewise.
16678         * ccmp.c: Likewise.
16679         * cfg.c: Likewise.
16680         * cfganal.c: Likewise.
16681         * cfgbuild.c: Likewise.
16682         * cfgcleanup.c: Likewise.
16683         * cfgexpand.c: Likewise.
16684         * cfghooks.c: Likewise.
16685         * cfgloop.c: Likewise.
16686         * cfgloop.h: Likewise.
16687         * cfgloopanal.c: Likewise.
16688         * cfgloopmanip.c: Likewise.
16689         * cfgrtl.c: Likewise.
16690         * cgraph.c: Likewise.
16691         * cgraphbuild.c: Likewise.
16692         * cgraphclones.c: Likewise.
16693         * cgraphunit.c: Likewise.
16694         * cilk-common.c: Likewise.
16695         * combine-stack-adj.c: Likewise.
16696         * combine.c: Likewise.
16697         * compare-elim.c: Likewise.
16698         * convert.c: Likewise.
16699         * coverage.c: Likewise.
16700         * cppbuiltin.c: Likewise.
16701         * cprop.c: Likewise.
16702         * cse.c: Likewise.
16703         * cselib.c: Likewise.
16704         * data-streamer-in.c: Likewise.
16705         * data-streamer-out.c: Likewise.
16706         * data-streamer.c: Likewise.
16707         * dbxout.c: Likewise.
16708         * dce.c: Likewise.
16709         * ddg.c: Likewise.
16710         * debug.c: Likewise.
16711         * df-core.c: Likewise.
16712         * df-problems.c: Likewise.
16713         * df-scan.c: Likewise.
16714         * df.h: Likewise.
16715         * dfp.c: Likewise.
16716         * diagnostic-core.h: Likewise.
16717         * diagnostic.c: Likewise.
16718         * dojump.c: Likewise.
16719         * dominance.c: Likewise.
16720         * domwalk.c: Likewise.
16721         * double-int.c: Likewise.
16722         * dse.c: Likewise.
16723         * dumpfile.c: Likewise.
16724         * dumpfile.h: Likewise.
16725         * dwarf2asm.c: Likewise.
16726         * dwarf2cfi.c: Likewise.
16727         * dwarf2out.c: Likewise.
16728         * emit-rtl.c: Likewise.
16729         * et-forest.c: Likewise.
16730         * except.c: Likewise.
16731         * explow.c: Likewise.
16732         * expmed.c: Likewise.
16733         * expr.c: Likewise.
16734         * final.c: Likewise.
16735         * fixed-value.c: Likewise.
16736         * fold-const.c: Likewise.
16737         * function.c: Likewise.
16738         * fwprop.c: Likewise.
16739         * gcc-plugin.h: Likewise.
16740         * gcse.c: Likewise.
16741         * generic-match-head.c: Likewise.
16742         * ggc-page.c: Likewise.
16743         * gimple-builder.c: Likewise.
16744         * gimple-expr.c: Likewise.
16745         * gimple-fold.c: Likewise.
16746         * gimple-iterator.c: Likewise.
16747         * gimple-low.c: Likewise.
16748         * gimple-match-head.c: Likewise.
16749         * gimple-pretty-print.c: Likewise.
16750         * gimple-ssa-isolate-paths.c: Likewise.
16751         * gimple-ssa-strength-reduction.c: Likewise.
16752         * gimple-streamer-in.c: Likewise.
16753         * gimple-streamer-out.c: Likewise.
16754         * gimple-streamer.h: Likewise.
16755         * gimple-walk.c: Likewise.
16756         * gimple.c: Likewise.
16757         * gimplify-me.c: Likewise.
16758         * gimplify.c: Likewise.
16759         * godump.c: Likewise.
16760         * graph.c: Likewise.
16761         * graphite-blocking.c: Likewise.
16762         * graphite-dependences.c: Likewise.
16763         * graphite-interchange.c: Likewise.
16764         * graphite-isl-ast-to-gimple.c: Likewise.
16765         * graphite-optimize-isl.c: Likewise.
16766         * graphite-poly.c: Likewise.
16767         * graphite-scop-detection.c: Likewise.
16768         * graphite-sese-to-poly.c: Likewise.
16769         * graphite.c: Likewise.
16770         * haifa-sched.c: Likewise.
16771         * hw-doloop.c: Likewise.
16772         * ifcvt.c: Likewise.
16773         * init-regs.c: Likewise.
16774         * input.c: Likewise.
16775         * internal-fn.c: Likewise.
16776         * ipa-chkp.c: Likewise.
16777         * ipa-comdats.c: Likewise.
16778         * ipa-cp.c: Likewise.
16779         * ipa-devirt.c: Likewise.
16780         * ipa-icf-gimple.c: Likewise.
16781         * ipa-icf.c: Likewise.
16782         * ipa-inline-analysis.c: Likewise.
16783         * ipa-inline-transform.c: Likewise.
16784         * ipa-inline.c: Likewise.
16785         * ipa-polymorphic-call.c: Likewise.
16786         * ipa-profile.c: Likewise.
16787         * ipa-prop.c: Likewise.
16788         * ipa-pure-const.c: Likewise.
16789         * ipa-ref.c: Likewise.
16790         * ipa-reference.c: Likewise.
16791         * ipa-split.c: Likewise.
16792         * ipa-utils.c: Likewise.
16793         * ipa-visibility.c: Likewise.
16794         * ipa.c: Likewise.
16795         * ira-build.c: Likewise.
16796         * ira-color.c: Likewise.
16797         * ira-conflicts.c: Likewise.
16798         * ira-costs.c: Likewise.
16799         * ira-emit.c: Likewise.
16800         * ira-lives.c: Likewise.
16801         * ira.c: Likewise.
16802         * jump.c: Likewise.
16803         * langhooks.c: Likewise.
16804         * lcm.c: Likewise.
16805         * loop-doloop.c: Likewise.
16806         * loop-init.c: Likewise.
16807         * loop-invariant.c: Likewise.
16808         * loop-iv.c: Likewise.
16809         * loop-unroll.c: Likewise.
16810         * lower-subreg.c: Likewise.
16811         * lra-assigns.c: Likewise.
16812         * lra-coalesce.c: Likewise.
16813         * lra-constraints.c: Likewise.
16814         * lra-eliminations.c: Likewise.
16815         * lra-lives.c: Likewise.
16816         * lra-remat.c: Likewise.
16817         * lra-spills.c: Likewise.
16818         * lra.c: Likewise.
16819         * lto-cgraph.c: Likewise.
16820         * lto-compress.c: Likewise.
16821         * lto-opts.c: Likewise.
16822         * lto-section-in.c: Likewise.
16823         * lto-section-out.c: Likewise.
16824         * lto-streamer-in.c: Likewise.
16825         * lto-streamer-out.c: Likewise.
16826         * lto-streamer.c: Likewise.
16827         * mcf.c: Likewise.
16828         * mode-switching.c: Likewise.
16829         * modulo-sched.c: Likewise.
16830         * omega.c: Likewise.
16831         * omp-low.c: Likewise.
16832         * optabs.c: Likewise.
16833         * opts-global.c: Likewise.
16834         * opts.h: Likewise.
16835         * passes.c: Likewise.
16836         * plugin.c: Likewise.
16837         * postreload-gcse.c: Likewise.
16838         * postreload.c: Likewise.
16839         * predict.c: Likewise.
16840         * pretty-print.h: Likewise.
16841         * print-rtl.c: Likewise.
16842         * print-tree.c: Likewise.
16843         * profile.c: Likewise.
16844         * real.c: Likewise.
16845         * realmpfr.c: Likewise.
16846         * recog.c: Likewise.
16847         * ree.c: Likewise.
16848         * reg-stack.c: Likewise.
16849         * regcprop.c: Likewise.
16850         * reginfo.c: Likewise.
16851         * regrename.c: Likewise.
16852         * regstat.c: Likewise.
16853         * reload.c: Likewise.
16854         * reload1.c: Likewise.
16855         * reorg.c: Likewise.
16856         * resource.c: Likewise.
16857         * rtl-chkp.c: Likewise.
16858         * rtl-error.c: Likewise.
16859         * rtlanal.c: Likewise.
16860         * rtlhooks.c: Likewise.
16861         * sanopt.c: Likewise.
16862         * sched-deps.c: Likewise.
16863         * sched-ebb.c: Likewise.
16864         * sched-rgn.c: Likewise.
16865         * sched-vis.c: Likewise.
16866         * sdbout.c: Likewise.
16867         * sel-sched-dump.c: Likewise.
16868         * sel-sched-ir.c: Likewise.
16869         * sel-sched.c: Likewise.
16870         * sese.c: Likewise.
16871         * shrink-wrap.c: Likewise.
16872         * simplify-rtx.c: Likewise.
16873         * stack-ptr-mod.c: Likewise.
16874         * statistics.c: Likewise.
16875         * stmt.c: Likewise.
16876         * stor-layout.c: Likewise.
16877         * store-motion.c: Likewise.
16878         * streamer-hooks.c: Likewise.
16879         * stringpool.c: Likewise.
16880         * symtab.c: Likewise.
16881         * target-globals.c: Likewise.
16882         * targhooks.c: Likewise.
16883         * toplev.c: Likewise.
16884         * tracer.c: Likewise.
16885         * trans-mem.c: Likewise.
16886         * tree-affine.c: Likewise.
16887         * tree-browser.c: Likewise.
16888         * tree-call-cdce.c: Likewise.
16889         * tree-cfg.c: Likewise.
16890         * tree-cfgcleanup.c: Likewise.
16891         * tree-chkp-opt.c: Likewise.
16892         * tree-chkp.c: Likewise.
16893         * tree-chrec.c: Likewise.
16894         * tree-complex.c: Likewise.
16895         * tree-data-ref.c: Likewise.
16896         * tree-dfa.c: Likewise.
16897         * tree-diagnostic.c: Likewise.
16898         * tree-dump.c: Likewise.
16899         * tree-eh.c: Likewise.
16900         * tree-emutls.c: Likewise.
16901         * tree-if-conv.c: Likewise.
16902         * tree-inline.c: Likewise.
16903         * tree-into-ssa.c: Likewise.
16904         * tree-iterator.c: Likewise.
16905         * tree-loop-distribution.c: Likewise.
16906         * tree-nested.c: Likewise.
16907         * tree-nrv.c: Likewise.
16908         * tree-object-size.c: Likewise.
16909         * tree-outof-ssa.c: Likewise.
16910         * tree-parloops.c: Likewise.
16911         * tree-phinodes.c: Likewise.
16912         * tree-predcom.c: Likewise.
16913         * tree-pretty-print.c: Likewise.
16914         * tree-profile.c: Likewise.
16915         * tree-scalar-evolution.c: Likewise.
16916         * tree-sra.c: Likewise.
16917         * tree-ssa-address.c: Likewise.
16918         * tree-ssa-alias.c: Likewise.
16919         * tree-ssa-ccp.c: Likewise.
16920         * tree-ssa-coalesce.c: Likewise.
16921         * tree-ssa-copy.c: Likewise.
16922         * tree-ssa-copyrename.c: Likewise.
16923         * tree-ssa-dce.c: Likewise.
16924         * tree-ssa-dom.c: Likewise.
16925         * tree-ssa-dse.c: Likewise.
16926         * tree-ssa-forwprop.c: Likewise.
16927         * tree-ssa-ifcombine.c: Likewise.
16928         * tree-ssa-live.c: Likewise.
16929         * tree-ssa-loop-ch.c: Likewise.
16930         * tree-ssa-loop-im.c: Likewise.
16931         * tree-ssa-loop-ivcanon.c: Likewise.
16932         * tree-ssa-loop-ivopts.c: Likewise.
16933         * tree-ssa-loop-manip.c: Likewise.
16934         * tree-ssa-loop-niter.c: Likewise.
16935         * tree-ssa-loop-prefetch.c: Likewise.
16936         * tree-ssa-loop-unswitch.c: Likewise.
16937         * tree-ssa-loop.c: Likewise.
16938         * tree-ssa-math-opts.c: Likewise.
16939         * tree-ssa-operands.c: Likewise.
16940         * tree-ssa-phiopt.c: Likewise.
16941         * tree-ssa-phiprop.c: Likewise.
16942         * tree-ssa-pre.c: Likewise.
16943         * tree-ssa-propagate.c: Likewise.
16944         * tree-ssa-reassoc.c: Likewise.
16945         * tree-ssa-sccvn.c: Likewise.
16946         * tree-ssa-scopedtables.c: Likewise.
16947         * tree-ssa-sink.c: Likewise.
16948         * tree-ssa-strlen.c: Likewise.
16949         * tree-ssa-structalias.c: Likewise.
16950         * tree-ssa-tail-merge.c: Likewise.
16951         * tree-ssa-ter.c: Likewise.
16952         * tree-ssa-threadedge.c: Likewise.
16953         * tree-ssa-threadupdate.c: Likewise.
16954         * tree-ssa-uncprop.c: Likewise.
16955         * tree-ssa-uninit.c: Likewise.
16956         * tree-ssa.c: Likewise.
16957         * tree-ssanames.c: Likewise.
16958         * tree-stdarg.c: Likewise.
16959         * tree-streamer-in.c: Likewise.
16960         * tree-streamer-out.c: Likewise.
16961         * tree-streamer.c: Likewise.
16962         * tree-switch-conversion.c: Likewise.
16963         * tree-tailcall.c: Likewise.
16964         * tree-vect-data-refs.c: Likewise.
16965         * tree-vect-generic.c: Likewise.
16966         * tree-vect-loop-manip.c: Likewise.
16967         * tree-vect-loop.c: Likewise.
16968         * tree-vect-patterns.c: Likewise.
16969         * tree-vect-slp.c: Likewise.
16970         * tree-vect-stmts.c: Likewise.
16971         * tree-vectorizer.c: Likewise.
16972         * tree-vrp.c: Likewise.
16973         * tree.c: Likewise.
16974         * tsan.c: Likewise.
16975         * ubsan.c: Likewise.
16976         * valtrack.c: Likewise.
16977         * value-prof.c: Likewise.
16978         * var-tracking.c: Likewise.
16979         * varasm.c: Likewise.
16980         * varpool.c: Likewise.
16981         * vmsdbgout.c: Likewise.
16982         * vtable-verify.c: Likewise.
16983         * web.c: Likewise.
16984         * wide-int.cc: Likewise.
16985         * xcoffout.c: Likewise.
16986         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
16987         * common/common-targhooks.c: Likewise.
16988         * config/aarch64/aarch64-builtins.c: Likewise.
16989         * config/aarch64/aarch64.c: Likewise.
16990         * config/alpha/alpha.c: Likewise.
16991         * config/arc/arc.c: Likewise.
16992         * config/arm/aarch-common.c: Likewise.
16993         * config/arm/arm-builtins.c: Likewise.
16994         * config/arm/arm-c.c: Likewise.
16995         * config/arm/arm.c: Likewise.
16996         * config/avr/avr-c.c: Likewise.
16997         * config/avr/avr-log.c: Likewise.
16998         * config/avr/avr.c: Likewise.
16999         * config/bfin/bfin.c: Likewise.
17000         * config/c6x/c6x.c: Likewise.
17001         * config/cr16/cr16.c: Likewise.
17002         * config/cris/cris.c: Likewise.
17003         * config/darwin-c.c: Likewise.
17004         * config/darwin.c: Likewise.
17005         * config/default-c.c: Likewise.
17006         * config/epiphany/epiphany.c: Likewise.
17007         * config/epiphany/mode-switch-use.c: Likewise.
17008         * config/epiphany/resolve-sw-modes.c: Likewise.
17009         * config/fr30/fr30.c: Likewise.
17010         * config/frv/frv.c: Likewise.
17011         * config/ft32/ft32.c: Likewise.
17012         * config/glibc-c.c: Likewise.
17013         * config/h8300/h8300.c: Likewise.
17014         * config/i386/i386-c.c: Likewise.
17015         * config/i386/i386.c: Likewise.
17016         * config/i386/msformat-c.c: Likewise.
17017         * config/i386/winnt-cxx.c: Likewise.
17018         * config/i386/winnt-stubs.c: Likewise.
17019         * config/i386/winnt.c: Likewise.
17020         * config/ia64/ia64-c.c: Likewise.
17021         * config/ia64/ia64.c: Likewise.
17022         * config/iq2000/iq2000.c: Likewise.
17023         * config/lm32/lm32.c: Likewise.
17024         * config/m32c/m32c-pragma.c: Likewise.
17025         * config/m32c/m32c.c: Likewise.
17026         * config/m32r/m32r.c: Likewise.
17027         * config/m68k/m68k.c: Likewise.
17028         * config/mcore/mcore.c: Likewise.
17029         * config/mep/mep-pragma.c: Likewise.
17030         * config/mep/mep.c: Likewise.
17031         * config/microblaze/microblaze-c.c: Likewise.
17032         * config/microblaze/microblaze.c: Likewise.
17033         * config/mips/mips.c: Likewise.
17034         * config/mmix/mmix.c: Likewise.
17035         * config/mn10300/mn10300.c: Likewise.
17036         * config/moxie/moxie.c: Likewise.
17037         * config/msp430/msp430-c.c: Likewise.
17038         * config/msp430/msp430.c: Likewise.
17039         * config/nds32/nds32-cost.c: Likewise.
17040         * config/nds32/nds32-fp-as-gp.c: Likewise.
17041         * config/nds32/nds32-intrinsic.c: Likewise.
17042         * config/nds32/nds32-isr.c: Likewise.
17043         * config/nds32/nds32-md-auxiliary.c: Likewise.
17044         * config/nds32/nds32-memory-manipulation.c: Likewise.
17045         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
17046         * config/nds32/nds32-predicates.c: Likewise.
17047         * config/nds32/nds32.c: Likewise.
17048         * config/nios2/nios2.c: Likewise.
17049         * config/nvptx/nvptx.c: Likewise.
17050         * config/pa/pa.c: Likewise.
17051         * config/pdp11/pdp11.c: Likewise.
17052         * config/rl78/rl78-c.c: Likewise.
17053         * config/rl78/rl78.c: Likewise.
17054         * config/rs6000/rs6000-c.c: Likewise.
17055         * config/rs6000/rs6000.c: Likewise.
17056         * config/rx/rx.c: Likewise.
17057         * config/s390/s390-c.c: Likewise.
17058         * config/s390/s390.c: Likewise.
17059         * config/sh/sh-c.c: Likewise.
17060         * config/sh/sh-mem.cc: Likewise.
17061         * config/sh/sh.c: Likewise.
17062         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
17063         * config/sh/sh_treg_combine.cc: Likewise.
17064         * config/sol2-c.c: Likewise.
17065         * config/sol2-cxx.c: Likewise.
17066         * config/sol2-stubs.c: Likewise.
17067         * config/sol2.c: Likewise.
17068         * config/sparc/sparc-c.c: Likewise.
17069         * config/sparc/sparc.c: Likewise.
17070         * config/spu/spu-c.c: Likewise.
17071         * config/spu/spu.c: Likewise.
17072         * config/stormy16/stormy16.c: Likewise.
17073         * config/tilegx/mul-tables.c: Likewise.
17074         * config/tilegx/tilegx-c.c: Likewise.
17075         * config/tilegx/tilegx.c: Likewise.
17076         * config/tilepro/mul-tables.c: Likewise.
17077         * config/tilepro/tilepro-c.c: Likewise.
17078         * config/tilepro/tilepro.c: Likewise.
17079         * config/v850/v850-c.c: Likewise.
17080         * config/v850/v850.c: Likewise.
17081         * config/vax/vax.c: Likewise.
17082         * config/visium/visium.c: Likewise.
17083         * config/vms/vms-c.c: Likewise.
17084         * config/vms/vms.c: Likewise.
17085         * config/vxworks.c: Likewise.
17086         * config/winnt-c.c: Likewise.
17087         * config/xtensa/xtensa.c: Likewise.
17088
17089 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
17090
17091         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
17092         function.
17093         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
17094
17095 2015-06-17  Richard Biener  <rguenther@suse.de>
17096
17097         PR tree-optimization/66251
17098         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
17099         stmts for SLP strided stores.
17100
17101         Revert
17102         2015-05-22  Richard Biener  <rguenther@suse.de>
17103
17104         PR tree-optimization/66251
17105         * tree-vect-stmts.c (vectorizable_conversion): Properly
17106         set STMT_VINFO_VEC_STMT even for the SLP case.
17107
17108         2015-05-26  Michael Matz  <matz@suse.de>
17109
17110         PR middle-end/66251
17111         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
17112         STMT_VINFO_VEC_STMT, also with SLP.
17113
17114 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
17115
17116         PR target/56766
17117         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
17118         (*avx_addsubv4df3_1s): Ditto.
17119         (*sse3_addsubv2df3_1): Ditto.
17120         (*sse3_addsubv2df3_1s): Ditto.
17121         (*avx_addsubv8sf3_1): Ditto.
17122         (*avx_addsubv8sf3_1s): Ditto.
17123         (*sse3_addsubv4sf3_1): Ditto.
17124         (*sse3_addsubv4sf3_1s): Ditto.
17125
17126 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
17127
17128         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
17129         (SYSROOT_SUFFIX_SPEC): Update.
17130         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
17131         (STARTFILE_PREFIX_SPEC): Update.
17132         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
17133         (MULTILIB_REQUIRED): New.
17134         (MULTILIB_OSDIRNAMES): New.
17135         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
17136         (MULTILIB_REQUIRED): New.
17137         (MULTILIB_OSDIRNAMES): New.
17138
17139 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
17140
17141         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
17142         * config/aarch64/aarch64-options-extensions.def: Update "fP",
17143         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
17144         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
17145         (AARCH64_FL_PAN): New.
17146         (AARCH64_FL_LOR): New.
17147         (AARCH64_FL_RDMA): New.
17148         (AARCH64_FL_FOR_ARCH8_1): New.
17149         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
17150         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
17151
17152 2015-06-16  Martin Liska  <mliska@suse.cz>
17153
17154         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
17155         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
17156         guard.
17157
17158 2015-06-16  Richard Biener  <rguenther@suse.de>
17159
17160         * tree-vect-stmts.c (vectorizable_store): Adjust.
17161         (vectorizable_load): Likewise.
17162         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17163         Simplify.
17164         (vect_create_data_ref_ptr): Likewise.
17165         (bump_vector_ptr): Adjust.
17166
17167 2015-06-16  Richard Biener  <rguenther@suse.de>
17168
17169         * tree-vect-stmts.c (vectorizable_load): Properly start loads
17170         with the first element if this is grouped loads.
17171
17172 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
17173
17174         * config/arm/arm-protos.h (struct tune_params): Rename
17175         log_op_non_sc to log_op_non_short_circuit, and rename enum
17176         values to expand SC to SHORT_CIRCUIT.
17177         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
17178         to LOG_OP_NON_SHORT_CIRCUIT.
17179         (arm_fastmul_tune):Likewise
17180         (arm_strongarm_tune): Likewise.
17181         (arm_xscale_tune): Likewise.
17182         (arm_9e_tune): Likewise.
17183         (arm_marvell_pj4_tune): Likewise.
17184         (arm_v6t2_tune): Likewise.
17185         (arm_cortex_tune): Likewise.
17186         (arm_cortex_a8_tune): Likewise.
17187         (arm_cortex_a7_tune): Likewise.
17188         (arm_cortex_a15_tune): Likewise.
17189         (arm_cortex_a53_tune): Likewise.
17190         (arm_cortex_a57_tune): Likewise.
17191         (arm_xgene1_tune): Likewise.
17192         (arm_cortex_a5_tune): Likewise.
17193         (arm_cortex_a9_tune): Likewise.
17194         (arm_cortex_a12_tune): Likewise.
17195         (arm_v7m_tune): Likewise.
17196         (arm_cortex_m7_tune): Likewise.
17197         (arm_v6m_tune): Likewise.
17198         (arm_fa726te_tune): Likewise.
17199
17200 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
17201
17202         * altivec.md: Delete UNSPEC_VMLADDUHM.
17203         (mulv4si3_p8): New pattern.
17204         (mulv4si3): Use it for POWER8.
17205         (mulv8hi3): Use vmladduhm with zero addend.
17206         (altivec_vmladduhm): Descriptive RTL.
17207
17208 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
17209
17210         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
17211         to use neon_move instead of mov_imm.
17212         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
17213         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
17214
17215         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
17216         aarch64_float_const_zero_rtx_p check before TFmode check.
17217         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
17218         an fp zero.
17219         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
17220         code and attributes to match.  Change condition from register_operand
17221         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
17222         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
17223         to store2.
17224
17225 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
17226
17227         PR debug/66535
17228         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
17229         there is no parent.
17230
17231 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
17232
17233         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
17234         HOST_WIDE_INT parameter.
17235
17236 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
17237
17238         PR ipa/66181
17239         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
17240         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
17241         TYPE_NO_FORCE_BLK.
17242         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
17243
17244 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
17245
17246         * rtl.h (classify_insn): Declare.
17247         * emit-rtl.c (classify_insn): Move to...
17248         * rtl.c: ...here and add generator support.
17249         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
17250         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
17251         * genemit.c (gen_emit_seq): New function.
17252         (gen_expand, gen_split): Use it.
17253
17254 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
17255
17256         * tree.c (make_vector_stat): Fix comment to state that the
17257         function returns a VECTOR_CST.
17258
17259 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
17260
17261         * gensupport.h (add_implicit_parallel): Declare.
17262         * genrecog.c (add_implicit_parallel): Move to...
17263         * gensupport.c (add_implicit_parallel): ...here.
17264         (process_one_cond_exec): Use it.
17265         * genemit.c (gen_insn): Likewise.
17266
17267 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
17268
17269         PR bootstrap/66448
17270         * passes.c (rest_of_decl_compilation): Do not register globals for
17271         early debug if they are declared in built-ins.
17272
17273 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
17274
17275         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
17276
17277 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17278
17279         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
17280         manually swapping.
17281         (noce_try_cmove_arith): Likewise.
17282         (noce_get_alt_condition): Likewise.
17283
17284 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
17285
17286         * common/config/i386/i386-common.c
17287         (OPTION_MASK_ISA_MWAITX_SET): New.
17288         (ix86_handle_option): Handle mwaitx.
17289         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
17290         (x86_64-*-*): Likewise.
17291         * config/i386/mwaitxintrin.h: New header.
17292         * config/i386/cpuid.h (bit_MWAITX):  Define.
17293         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
17294         MWAITX support.
17295         * config/i386/i386.opt (mwaitx): New.
17296         * config/i386/i386-builtin-types.def
17297         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
17298         * config/i386/i386-c.c: Define __MWAITX__ if needed.
17299         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
17300         (PTA_MWAITX): New.
17301         (ix86_option_override_internal): Handle new option.
17302         (processor_alias_table): Added PTA_MWAITX.
17303         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
17304         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
17305         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
17306         IX86_BUILTIN_MONITORX  built-ins.
17307         * config/i386/i386.h (TARGET_MWAITX): New.
17308         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
17309         UNSPEC_MONITORX.
17310         (mwaitx):  New pattern.
17311         (monitorx_<mode>): New pattern.
17312         * config/i386/x86intrin.h: Include mwaitxintrin.h.
17313         * doc/extend.texi: Document monitorx and mwaitx builtins.
17314         * doc/invoke.texi: Document -mmwaitx option.
17315
17316 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
17317
17318         * emit-rtl.c (need_atomic_barrier_p): Mask model with
17319         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
17320
17321 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17322
17323         * dbxout.c (xcoff_debug_hooks): Provide a function for
17324         register_main_translation_unit hook.
17325
17326 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17327
17328         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
17329         variants cases from switch.
17330         (rs6000_post_atomic_barrier): Same.
17331         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
17332         (rs6000_expand_atomic_exchange): Same.
17333         (rs6000_expand_atomic_op): Same.
17334         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
17335         SYNC variants cases from switch.
17336         (atomic_load): Same.
17337         (atomic_store): Same.
17338
17339 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
17340
17341         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
17342         CONST_INT for goto.
17343
17344 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
17345
17346         PR bootstrap/66448
17347         * dwarf2out.c (check_die): Check for common duplicate attributes.
17348         (add_location_or_const_value_attribute): Do not add duplicate
17349         attributes.
17350         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
17351         time around.
17352         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
17353         (gen_type_die_with_usage): Call check_die.
17354         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
17355
17356 2015-06-11  Jason Merrill  <jason@redhat.com>
17357
17358         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
17359         dies.
17360
17361 2015-06-11  Marek Polacek  <polacek@redhat.com>
17362
17363         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
17364
17365 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
17366
17367         PR bootstrap/66252
17368         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
17369         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
17370         (*addx_extend_sp32): Fix pasto.
17371         (*subx_extend): Rename into...
17372         (*subx_extend_sp32): ...this.
17373         (*adddi3_extend_sp32): Add earlyclobber.
17374         (*subdi3_insn_sp32): Likewise.
17375         (*subdi3_extend_sp32): Likewise.
17376         (*and_not_di_sp32): Likewise.
17377         (*or_not_di_sp32): Likewise.
17378         (*xor_not_di_sp32): Likewise.
17379         (*negdi2_sp32): Likewise.
17380         (*one_cmpldi2_sp32): Likewise.
17381
17382 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
17383
17384         * debug.h (struct gcc_debug_hooks): Add a
17385         register_main_translation_unit hook.
17386         * debug.c (do_nothing_debug_hooks): Provide a function for this
17387         new hook.
17388         * dbxout.c (dbx_debug_hooks): Likewise.
17389         * sdbout.c (sdb_debug_hooks): Likewise.
17390         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17391         * dwarf2out.c (main_translation_unit): New global variable.
17392         (dwarf2out_register_main_translation_unit): New function
17393         implementing the new hook.
17394         (dwarf2_debug_hooks): Assign
17395         dwarf2out_register_main_translation_unit to this new hook.
17396         (dwarf2out_init): Associate any main translation unit to
17397         comp_unit_die ().
17398
17399 2015-06-11  Marek Polacek  <polacek@redhat.com>
17400
17401         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
17402
17403 2015-06-11  Marek Polacek  <polacek@redhat.com>
17404
17405         * match.pd: Use single_use throughout.
17406
17407 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17408
17409         * config/arm/arm.c (arm_option_params_internal): When optimising
17410         for speed set max_insns_skipped when arm_restrict_it.
17411
17412 2015-06-11  Christian Bruel  <christian.bruel@st.com>
17413
17414         PR target/52144
17415         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
17416          macros in ...
17417         (arm_cpu_builtins): New function.
17418         (arm_pragma_target_parse): Call arm_cpu_builtins.
17419         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
17420         (arm_register_target_pragmas): Likewise.
17421         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
17422          Call arm_register_target_pragmas.
17423         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
17424         (arm_pragma_target_parse): Likewise.
17425
17426 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17427
17428         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
17429         of the second operand.
17430
17431 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
17432
17433         PR target/66473
17434         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
17435         to prepare mask operand for AVX512 modes.
17436
17437 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17438
17439         PR target/66474
17440         * doc/md.texi (Machine Constraints): Document that on the PowerPC
17441         if you use a constraint that targets a VSX register, you must use
17442         %x<n> in the template.
17443
17444 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
17445
17446         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
17447         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
17448         (define_insn "trap"): New definition.
17449
17450 2015-06-10  Richard Biener  <rguenther@suse.de>
17451
17452         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
17453         out from ...
17454         (vect_supported_load_permutation_p): ... here.  Handle
17455         supportable permutations in reductions.
17456         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
17457         for vectorizing strided group loads.
17458
17459 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
17460
17461         PR target/66470
17462         * config/i386/i386.c (ix86_split_long_move): For collisions
17463         involving direct tls segment refs, move the UNSPEC_TP possibly
17464         wrapped in ZERO_EXTEND out of the address for lea, to each of
17465         the memory loads.
17466
17467 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17468
17469         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
17470         dmb sy. Adjust tabs.
17471
17472 2015-06-10  Tom de Vries  <tom@codesourcery.com>
17473
17474         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
17475
17476 2015-06-10  Martin Liska  <mliska@suse.cz>
17477
17478         PR bootstrap/66471
17479         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
17480         all enum values in mem_alloc_origin.
17481         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
17482         name.
17483         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
17484         * bitmap.c (bitmap_register): Likewise.
17485         (dump_bitmap_statistics): Likewise.
17486         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
17487         (ggc_record_overhead): Likewise.
17488         * hash-map.h: Likewise.
17489         * hash-set.h: Likewise.
17490         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
17491         * hash-table.h: Likewise.
17492         * vec.c (vec_prefix::register_overhead): Likewise.
17493         (vec_prefix::release_overhead): Likewise.
17494         (dump_vec_loc_statistics): Likewise.
17495
17496 2015-06-09  Christian Bruel  <christian.bruel@st.com>
17497
17498         PR target/52144
17499         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
17500         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
17501         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
17502         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
17503         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
17504         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
17505         (arm_valid_target_attribute_p): Likewise.
17506         (arm_set_current_function, arm_can_inline_p): Likewise.
17507         (arm_valid_target_attribute_rec): Likewise.
17508         (arm_previous_fndecl): New variable.
17509         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17510         (TARGET_CAN_INLINE_P): Define.
17511         (arm_asm_trampoline_template): Emit mode.
17512         (arm_file_start): Don't set unified syntax.
17513         (arm_declare_function_name): Set unified syntax and mode.
17514         (arm_option_override): Init target_option_default_node.
17515         and target_option_current_node.
17516         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
17517         (*call_symbol): Likewise.
17518         * doc/extend.texi: Document ARM/Thumb target attribute.
17519         * doc/invoke.texi: Likewise.
17520
17521 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17522
17523         Revert:
17524         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17525         PR rtl-optimization/64164
17526         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17527         * tree-ssa-copyrename.c: Removed.
17528         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17529         -ftree-coalesce-vars.
17530         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17531         * common.opt (ftree-copyrename): Ignore.
17532         (ftree-coalesce-inlined-vars): Likewise.
17533         * doc/invoke.texi: Remove the ignored options above.
17534         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17535         * tree-ssa-coalesce.h: ... here.
17536         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17537         headers required by it.
17538         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17539         across variables when flag_tree_coalesce_vars.  Check register
17540         use and promoted modes to allow coalescing.  Moved to
17541         tree-ssa-coalesce.c.
17542         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17543         with its member functions to tree-ssa-coalesce.c.
17544         (var_map_base_init): Likewise.  Renamed to
17545         compute_samebase_partition_bases.
17546         (partition_view_normal): Drop want_bases parameter.
17547         (partition_view_bitmap): Likewise.
17548         * tree-ssa-live.h: Adjust declarations.
17549         * tree-ssa-coalesce.c: Include explow.h.
17550         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17551         default defs at the entry point.
17552         (dump_part_var_map): New.
17553         (compute_optimized_partition_bases): New, called by...
17554         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17555         of compute_samebase_partition_bases.  Adjust.
17556         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17557         * cfgexpand.c (leader_merge): New.
17558         (get_rtl_for_parm_ssa_default_def): New.
17559         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17560         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17561         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17562         redundant MEM attr setting.
17563         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17564         from...
17565         (expand_one_stack_var): ... this.  New wrapper to check and
17566         skip already expanded SSA partitions.
17567         (record_alignment_for_reg_var): New, factored out of...
17568         (expand_one_var): ... this.
17569         (expand_one_ssa_partition): New.
17570         (adjust_one_expanded_partition_var): New.
17571         (expand_one_register_var): Check and skip already expanded SSA
17572         partitions.
17573         (expand_used_vars): Don't create DECLs for anonymous SSA
17574         names.  Expand all SSA partitions, then adjust all SSA names.
17575         (pass::execute): Replace the loops that set
17576         SA.partition_to_pseudo from partition leaders and cleared
17577         DECL_RTL for multi-location variables, and that which used to
17578         rename vars and set attrs, with one that clears DECL_RTL and
17579         checks that PARMs and RESULTs default_defs match DECL_RTL.
17580         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17581         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17582         * explow.c (promote_ssa_mode): New.
17583         * explow.h (promote_ssa_mode): Declare.
17584         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17585         * function.c: Include cfgexpand.h.
17586         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17587         (use_register_for_parm_decl): Wrapper for the above to
17588         special-case the result_ptr.
17589         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17590         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17591         multiple locations.
17592         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17593         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17594         (assign_parm_setup_block): Prefer SSA-assigned location.
17595         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17596         if stack_parm is NULL.
17597         (assign_parm_setup_stack): Prefer SSA-assigned location.
17598         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17599         rtl before testing for pointer bounds.  Special-case result_ptr.
17600         (expand_function_start): Maybe reset DECL_RTL of result.
17601         Prefer SSA-assigned location for result and static chain.
17602         Factor out DECL_RESULT and SET_DECL_RTL.
17603         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17604         anonymous SSA names.  Use promote_ssa_mode.
17605         (get_temp_reg): Likewise.
17606         (remove_ssa_form): Adjust.
17607         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17608         and get its reg_usage for reg invalidation.
17609         (compute_bb_dataflow): Pass it insn.
17610         (emit_notes_in_bb): Likewise.
17611         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17612         fail assert on conversion between unsigned types.
17613
17614 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17615
17616         PR tree-optimization/65460
17617         * omp-low.c (expand_omp_target): Set parallelized_function on
17618         cgraph_node for child_fn.
17619
17620 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17621
17622         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
17623         parallelized_function before add_new_function.
17624
17625 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
17626
17627         * gcc-plugin.h: Move decls to plugin.h and include it.
17628         * plugin.h: Relocate decls from gcc-plugin.h
17629         * ggc-page.c: Include required header files.
17630         * passes.c: Likewise.
17631         * cgraphunit.c: Likewise.
17632
17633 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17634
17635         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
17636
17637 2015-06-09  Jason Merrill  <jason@redhat.com>
17638
17639         PR bootstrap/66448
17640         * toplev.c (check_global_declaration): Don't warn about a clone.
17641
17642 2015-06-09  Marek Polacek  <polacek@redhat.com>
17643
17644         PR tree-optimization/66299
17645         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
17646         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
17647         patterns.
17648
17649 2015-06-09  Richard Biener  <rguenther@suse.de>
17650
17651         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
17652         (vect_analyze_slp_instance): Instead do not falsely drop
17653         load permutations.
17654
17655 2015-06-09  Richard Biener  <rguenther@suse.de>
17656
17657         PR middle-end/66423
17658         * match.pd: Handle A % (unsigned)(1 << B).
17659
17660 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
17661
17662         * varasm.c (output_object_block_htab): Remove.
17663         (output_object_block_compare): New.
17664         (output_object_blocks): Sort named object_blocks before outputting
17665         them.
17666
17667 2015-06-09  Richard Biener  <rguenther@suse.de>
17668
17669         PR tree-optimization/66419
17670         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
17671         consider GROUP_GAP when detecting a perfect subchain.
17672
17673 2015-06-09  Nick Clifton  <nickc@redhat.com>
17674
17675         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
17676         place read only data in the .frodata section.
17677
17678 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
17679
17680         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
17681         (atomic_store<mode>): Likewise.
17682
17683 2015-06-09  Richard Biener  <rguenther@suse.de>
17684
17685         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
17686
17687 2015-06-09  Richard Biener  <rguenther@suse.de>
17688
17689         PR middle-end/66413
17690         * tree-inline.c (insert_init_debug_bind): Unshare value.
17691
17692 2015-06-09  Richard Biener  <rguenther@suse.de>
17693
17694         PR tree-optimization/66396
17695         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
17696         Rename virtual operands.
17697
17698 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17699
17700         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
17701         always return false.
17702
17703 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17704
17705         PR rtl-optimization/64164
17706         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17707         * tree-ssa-copyrename.c: Removed.
17708         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17709         -ftree-coalesce-vars.
17710         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17711         * common.opt (ftree-copyrename): Ignore.
17712         (ftree-coalesce-inlined-vars): Likewise.
17713         * doc/invoke.texi: Remove the ignored options above.
17714         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17715         * tree-ssa-coalesce.h: ... here.
17716         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17717         headers required by it.
17718         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17719         across variables when flag_tree_coalesce_vars.  Check register
17720         use and promoted modes to allow coalescing.  Moved to
17721         tree-ssa-coalesce.c.
17722         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17723         with its member functions to tree-ssa-coalesce.c.
17724         (var_map_base_init): Likewise.  Renamed to
17725         compute_samebase_partition_bases.
17726         (partition_view_normal): Drop want_bases parameter.
17727         (partition_view_bitmap): Likewise.
17728         * tree-ssa-live.h: Adjust declarations.
17729         * tree-ssa-coalesce.c: Include explow.h.
17730         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17731         default defs at the entry point.
17732         (dump_part_var_map): New.
17733         (compute_optimized_partition_bases): New, called by...
17734         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17735         of compute_samebase_partition_bases.  Adjust.
17736         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17737         * cfgexpand.c (leader_merge): New.
17738         (get_rtl_for_parm_ssa_default_def): New.
17739         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17740         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17741         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17742         redundant MEM attr setting.
17743         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17744         from...
17745         (expand_one_stack_var): ... this.  New wrapper to check and
17746         skip already expanded SSA partitions.
17747         (record_alignment_for_reg_var): New, factored out of...
17748         (expand_one_var): ... this.
17749         (expand_one_ssa_partition): New.
17750         (adjust_one_expanded_partition_var): New.
17751         (expand_one_register_var): Check and skip already expanded SSA
17752         partitions.
17753         (expand_used_vars): Don't create DECLs for anonymous SSA
17754         names.  Expand all SSA partitions, then adjust all SSA names.
17755         (pass::execute): Replace the loops that set
17756         SA.partition_to_pseudo from partition leaders and cleared
17757         DECL_RTL for multi-location variables, and that which used to
17758         rename vars and set attrs, with one that clears DECL_RTL and
17759         checks that PARMs and RESULTs default_defs match DECL_RTL.
17760         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17761         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17762         * explow.c (promote_ssa_mode): New.
17763         * explow.h (promote_ssa_mode): Declare.
17764         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17765         * function.c: Include cfgexpand.h.
17766         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17767         (use_register_for_parm_decl): Wrapper for the above to
17768         special-case the result_ptr.
17769         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17770         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17771         multiple locations.
17772         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17773         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17774         (assign_parm_setup_block): Prefer SSA-assigned location.
17775         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17776         if stack_parm is NULL.
17777         (assign_parm_setup_stack): Prefer SSA-assigned location.
17778         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17779         rtl before testing for pointer bounds.  Special-case result_ptr.
17780         (expand_function_start): Maybe reset DECL_RTL of result.
17781         Prefer SSA-assigned location for result and static chain.
17782         Factor out DECL_RESULT and SET_DECL_RTL.
17783         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17784         anonymous SSA names.  Use promote_ssa_mode.
17785         (get_temp_reg): Likewise.
17786         (remove_ssa_form): Adjust.
17787         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17788         and get its reg_usage for reg invalidation.
17789         (compute_bb_dataflow): Pass it insn.
17790         (emit_notes_in_bb): Likewise.
17791         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17792         fail assert on conversion between unsigned types.
17793
17794 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17795
17796         PR debug/58315
17797         * tree-inline.c (reset_debug_binding): New.
17798         (reset_debug_bindings): Likewise.
17799         (expand_call_inline): Call it.
17800
17801 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17802
17803         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
17804         TYPE_STRING_FLAG.
17805
17806 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17807
17808         * lto-streamer-out.c (lto_output_location): Stream
17809         reserved locations correctly.
17810         * lto-streamer-in.c (lto_output_location): Likewise.
17811
17812 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
17813
17814         * coretypes.h: Include hash-table.h and hash-set.h for host files.
17815         * ggc.h: Don't include statistics.h>
17816         * hash-map.h: Remove all includes.
17817         * hash-set.h: Likewise.
17818         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
17819         the include list. Remove <new>.
17820         * inchash.h: Remove all includes.
17821         * mem-stats.h: Likewise.
17822         * vec.h: No special processing for generators or ggc.
17823         * alias.c : Adjust include files.
17824         * alloc-pool.c : Likewise.
17825         * alloc-pool.h : Likewise.
17826         * asan.c : Likewise.
17827         * attribs.c : Likewise.
17828         * auto-inc-dec.c : Likewise.
17829         * auto-profile.c : Likewise.
17830         * bb-reorder.c : Likewise.
17831         * bitmap.c : Likewise.
17832         * bitmap.h : Likewise.
17833         * bt-load.c : Likewise.
17834         * builtins.c : Likewise.
17835         * caller-save.c : Likewise.
17836         * calls.c : Likewise.
17837         * ccmp.c : Likewise.
17838         * cfg.c : Likewise.
17839         * cfganal.c : Likewise.
17840         * cfgbuild.c : Likewise.
17841         * cfgcleanup.c : Likewise.
17842         * cfgexpand.c : Likewise.
17843         * cfghooks.c : Likewise.
17844         * cfgloop.c : Likewise.
17845         * cfgloop.h : Likewise.
17846         * cfgloopanal.c : Likewise.
17847         * cfgloopmanip.c : Likewise.
17848         * cfgrtl.c : Likewise.
17849         * cgraph.c : Likewise.
17850         * cgraphbuild.c : Likewise.
17851         * cgraphclones.c : Likewise.
17852         * cgraphunit.c : Likewise.
17853         * cilk-common.c : Likewise.
17854         * combine-stack-adj.c : Likewise.
17855         * combine.c : Likewise.
17856         * compare-elim.c : Likewise.
17857         * context.c : Likewise.
17858         * convert.c : Likewise.
17859         * coverage.c : Likewise.
17860         * cppbuiltin.c : Likewise.
17861         * cprop.c : Likewise.
17862         * cse.c : Likewise.
17863         * cselib.c : Likewise.
17864         * data-streamer-in.c : Likewise.
17865         * data-streamer-out.c : Likewise.
17866         * data-streamer.c : Likewise.
17867         * data-streamer.h : Likewise.
17868         * dbxout.c : Likewise.
17869         * dce.c : Likewise.
17870         * ddg.c : Likewise.
17871         * debug.c : Likewise.
17872         * df-core.c : Likewise.
17873         * df-problems.c : Likewise.
17874         * df-scan.c : Likewise.
17875         * df.h : Likewise.
17876         * dfp.c : Likewise.
17877         * dojump.c : Likewise.
17878         * dominance.c : Likewise.
17879         * domwalk.c : Likewise.
17880         * double-int.c : Likewise.
17881         * dse.c : Likewise.
17882         * dumpfile.c : Likewise.
17883         * dwarf2asm.c : Likewise.
17884         * dwarf2cfi.c : Likewise.
17885         * dwarf2out.c : Likewise.
17886         * emit-rtl.c : Likewise.
17887         * et-forest.c : Likewise.
17888         * except.c : Likewise.
17889         * except.h : Likewise.
17890         * explow.c : Likewise.
17891         * expmed.c : Likewise.
17892         * expr.c : Likewise.
17893         * final.c : Likewise.
17894         * fixed-value.c : Likewise.
17895         * fold-const.c : Likewise.
17896         * function.c : Likewise.
17897         * fwprop.c : Likewise.
17898         * gcc-plugin.h : Likewise.
17899         * gcc.c : Likewise.
17900         * gcse-common.c : Likewise.
17901         * gcse.c : Likewise.
17902         * genattrtab.c : Likewise.
17903         * genautomata.c : Likewise.
17904         * genconditions.c : Likewise.
17905         * genemit.c : Likewise.
17906         * generic-match-head.c : Likewise.
17907         * genextract.c : Likewise.
17908         * gengtype-state.c : Likewise.
17909         * gengtype.c : Likewise.
17910         * genhooks.c : Likewise.
17911         * genmatch.c : Likewise.
17912         * genmodes.c : Likewise.
17913         * genrecog.c : Likewise.
17914         * gensupport.c : Likewise.
17915         * ggc-common.c : Likewise.
17916         * ggc-internal.h : Likewise.
17917         * ggc-none.c : Likewise.
17918         * ggc-page.c : Likewise.
17919         * gimple-builder.c : Likewise.
17920         * gimple-expr.c : Likewise.
17921         * gimple-fold.c : Likewise.
17922         * gimple-iterator.c : Likewise.
17923         * gimple-low.c : Likewise.
17924         * gimple-match-head.c : Likewise.
17925         * gimple-pretty-print.c : Likewise.
17926         * gimple-ssa-isolate-paths.c : Likewise.
17927         * gimple-ssa-strength-reduction.c : Likewise.
17928         * gimple-ssa.h : Likewise.
17929         * gimple-streamer-in.c : Likewise.
17930         * gimple-streamer-out.c : Likewise.
17931         * gimple-streamer.h : Likewise.
17932         * gimple-walk.c : Likewise.
17933         * gimple.c : Likewise.
17934         * gimplify-me.c : Likewise.
17935         * gimplify.c : Likewise.
17936         * godump.c : Likewise.
17937         * graph.c : Likewise.
17938         * graphds.c : Likewise.
17939         * graphite-blocking.c : Likewise.
17940         * graphite-dependences.c : Likewise.
17941         * graphite-interchange.c : Likewise.
17942         * graphite-isl-ast-to-gimple.c : Likewise.
17943         * graphite-optimize-isl.c : Likewise.
17944         * graphite-poly.c : Likewise.
17945         * graphite-scop-detection.c : Likewise.
17946         * graphite-sese-to-poly.c : Likewise.
17947         * graphite.c : Likewise.
17948         * haifa-sched.c : Likewise.
17949         * hard-reg-set.h : Likewise.
17950         * hw-doloop.c : Likewise.
17951         * ifcvt.c : Likewise.
17952         * inchash.c : Likewise.
17953         * incpath.c : Likewise.
17954         * init-regs.c : Likewise.
17955         * input.c : Likewise.
17956         * internal-fn.c : Likewise.
17957         * ipa-chkp.c : Likewise.
17958         * ipa-comdats.c : Likewise.
17959         * ipa-cp.c : Likewise.
17960         * ipa-devirt.c : Likewise.
17961         * ipa-icf-gimple.c : Likewise.
17962         * ipa-icf.c : Likewise.
17963         * ipa-inline-analysis.c : Likewise.
17964         * ipa-inline-transform.c : Likewise.
17965         * ipa-inline.c : Likewise.
17966         * ipa-polymorphic-call.c : Likewise.
17967         * ipa-profile.c : Likewise.
17968         * ipa-prop.c : Likewise.
17969         * ipa-pure-const.c : Likewise.
17970         * ipa-ref.c : Likewise.
17971         * ipa-reference.c : Likewise.
17972         * ipa-split.c : Likewise.
17973         * ipa-utils.c : Likewise.
17974         * ipa-visibility.c : Likewise.
17975         * ipa.c : Likewise.
17976         * ira-build.c : Likewise.
17977         * ira-color.c : Likewise.
17978         * ira-conflicts.c : Likewise.
17979         * ira-costs.c : Likewise.
17980         * ira-emit.c : Likewise.
17981         * ira-lives.c : Likewise.
17982         * ira.c : Likewise.
17983         * jump.c : Likewise.
17984         * langhooks.c : Likewise.
17985         * lcm.c : Likewise.
17986         * libfuncs.h : Likewise.
17987         * lists.c : Likewise.
17988         * loop-doloop.c : Likewise.
17989         * loop-init.c : Likewise.
17990         * loop-invariant.c : Likewise.
17991         * loop-iv.c : Likewise.
17992         * loop-unroll.c : Likewise.
17993         * lower-subreg.c : Likewise.
17994         * lra-assigns.c : Likewise.
17995         * lra-coalesce.c : Likewise.
17996         * lra-constraints.c : Likewise.
17997         * lra-eliminations.c : Likewise.
17998         * lra-lives.c : Likewise.
17999         * lra-remat.c : Likewise.
18000         * lra-spills.c : Likewise.
18001         * lra.c : Likewise.
18002         * lto-cgraph.c : Likewise.
18003         * lto-compress.c : Likewise.
18004         * lto-opts.c : Likewise.
18005         * lto-section-in.c : Likewise.
18006         * lto-section-out.c : Likewise.
18007         * lto-streamer-in.c : Likewise.
18008         * lto-streamer-out.c : Likewise.
18009         * lto-streamer.c : Likewise.
18010         * lto-streamer.h : Likewise.
18011         * mcf.c : Likewise.
18012         * mode-switching.c : Likewise.
18013         * modulo-sched.c : Likewise.
18014         * omega.c : Likewise.
18015         * omp-low.c : Likewise.
18016         * optabs.c : Likewise.
18017         * opts-global.c : Likewise.
18018         * opts.h : Likewise.
18019         * passes.c : Likewise.
18020         * plugin.c : Likewise.
18021         * postreload-gcse.c : Likewise.
18022         * postreload.c : Likewise.
18023         * predict.c : Likewise.
18024         * print-rtl.c : Likewise.
18025         * print-tree.c : Likewise.
18026         * profile.c : Likewise.
18027         * read-md.c : Likewise.
18028         * read-md.h : Likewise.
18029         * read-rtl.c : Likewise.
18030         * real.c : Likewise.
18031         * realmpfr.c : Likewise.
18032         * recog.c : Likewise.
18033         * ree.c : Likewise.
18034         * reg-stack.c : Likewise.
18035         * regcprop.c : Likewise.
18036         * reginfo.c : Likewise.
18037         * regrename.c : Likewise.
18038         * regstat.c : Likewise.
18039         * reload.c : Likewise.
18040         * reload1.c : Likewise.
18041         * reorg.c : Likewise.
18042         * resource.c : Likewise.
18043         * rtl-chkp.c : Likewise.
18044         * rtl.c : Likewise.
18045         * rtl.h : Likewise.
18046         * rtlanal.c : Likewise.
18047         * rtlhash.c : Likewise.
18048         * rtlhash.h : Likewise.
18049         * rtlhooks.c : Likewise.
18050         * sanopt.c : Likewise.
18051         * sched-deps.c : Likewise.
18052         * sched-ebb.c : Likewise.
18053         * sched-rgn.c : Likewise.
18054         * sched-vis.c : Likewise.
18055         * sdbout.c : Likewise.
18056         * sel-sched-dump.c : Likewise.
18057         * sel-sched-ir.c : Likewise.
18058         * sel-sched-ir.h : Likewise.
18059         * sel-sched.c : Likewise.
18060         * sese.c : Likewise.
18061         * shrink-wrap.c : Likewise.
18062         * shrink-wrap.h : Likewise.
18063         * simplify-rtx.c : Likewise.
18064         * stack-ptr-mod.c : Likewise.
18065         * statistics.c : Likewise.
18066         * stmt.c : Likewise.
18067         * stor-layout.c : Likewise.
18068         * store-motion.c : Likewise.
18069         * stringpool.c : Likewise.
18070         * symtab.c : Likewise.
18071         * target-globals.c : Likewise.
18072         * targhooks.c : Likewise.
18073         * tlink.c : Likewise.
18074         * toplev.c : Likewise.
18075         * tracer.c : Likewise.
18076         * trans-mem.c : Likewise.
18077         * tree-affine.c : Likewise.
18078         * tree-affine.h : Likewise.
18079         * tree-browser.c : Likewise.
18080         * tree-call-cdce.c : Likewise.
18081         * tree-cfg.c : Likewise.
18082         * tree-cfgcleanup.c : Likewise.
18083         * tree-chkp-opt.c : Likewise.
18084         * tree-chkp.c : Likewise.
18085         * tree-chrec.c : Likewise.
18086         * tree-complex.c : Likewise.
18087         * tree-data-ref.c : Likewise.
18088         * tree-dfa.c : Likewise.
18089         * tree-diagnostic.c : Likewise.
18090         * tree-dump.c : Likewise.
18091         * tree-eh.c : Likewise.
18092         * tree-eh.h : Likewise.
18093         * tree-emutls.c : Likewise.
18094         * tree-hasher.h : Likewise.
18095         * tree-if-conv.c : Likewise.
18096         * tree-inline.c : Likewise.
18097         * tree-inline.h : Likewise.
18098         * tree-into-ssa.c : Likewise.
18099         * tree-iterator.c : Likewise.
18100         * tree-loop-distribution.c : Likewise.
18101         * tree-nested.c : Likewise.
18102         * tree-nrv.c : Likewise.
18103         * tree-object-size.c : Likewise.
18104         * tree-outof-ssa.c : Likewise.
18105         * tree-parloops.c : Likewise.
18106         * tree-phinodes.c : Likewise.
18107         * tree-predcom.c : Likewise.
18108         * tree-pretty-print.c : Likewise.
18109         * tree-profile.c : Likewise.
18110         * tree-scalar-evolution.c : Likewise.
18111         * tree-sra.c : Likewise.
18112         * tree-ssa-address.c : Likewise.
18113         * tree-ssa-alias.c : Likewise.
18114         * tree-ssa-ccp.c : Likewise.
18115         * tree-ssa-coalesce.c : Likewise.
18116         * tree-ssa-copy.c : Likewise.
18117         * tree-ssa-copyrename.c : Likewise.
18118         * tree-ssa-dce.c : Likewise.
18119         * tree-ssa-dom.c : Likewise.
18120         * tree-ssa-dse.c : Likewise.
18121         * tree-ssa-forwprop.c : Likewise.
18122         * tree-ssa-ifcombine.c : Likewise.
18123         * tree-ssa-live.c : Likewise.
18124         * tree-ssa-loop-ch.c : Likewise.
18125         * tree-ssa-loop-im.c : Likewise.
18126         * tree-ssa-loop-ivcanon.c : Likewise.
18127         * tree-ssa-loop-ivopts.c : Likewise.
18128         * tree-ssa-loop-manip.c : Likewise.
18129         * tree-ssa-loop-niter.c : Likewise.
18130         * tree-ssa-loop-prefetch.c : Likewise.
18131         * tree-ssa-loop-unswitch.c : Likewise.
18132         * tree-ssa-loop.c : Likewise.
18133         * tree-ssa-math-opts.c : Likewise.
18134         * tree-ssa-operands.c : Likewise.
18135         * tree-ssa-phiopt.c : Likewise.
18136         * tree-ssa-phiprop.c : Likewise.
18137         * tree-ssa-pre.c : Likewise.
18138         * tree-ssa-propagate.c : Likewise.
18139         * tree-ssa-reassoc.c : Likewise.
18140         * tree-ssa-sccvn.c : Likewise.
18141         * tree-ssa-scopedtables.c : Likewise.
18142         * tree-ssa-sink.c : Likewise.
18143         * tree-ssa-strlen.c : Likewise.
18144         * tree-ssa-structalias.c : Likewise.
18145         * tree-ssa-tail-merge.c : Likewise.
18146         * tree-ssa-ter.c : Likewise.
18147         * tree-ssa-threadedge.c : Likewise.
18148         * tree-ssa-threadupdate.c : Likewise.
18149         * tree-ssa-uncprop.c : Likewise.
18150         * tree-ssa-uninit.c : Likewise.
18151         * tree-ssa.c : Likewise.
18152         * tree-ssanames.c : Likewise.
18153         * tree-stdarg.c : Likewise.
18154         * tree-streamer-in.c : Likewise.
18155         * tree-streamer-out.c : Likewise.
18156         * tree-streamer.c : Likewise.
18157         * tree-streamer.h : Likewise.
18158         * tree-switch-conversion.c : Likewise.
18159         * tree-tailcall.c : Likewise.
18160         * tree-vect-data-refs.c : Likewise.
18161         * tree-vect-generic.c : Likewise.
18162         * tree-vect-loop-manip.c : Likewise.
18163         * tree-vect-loop.c : Likewise.
18164         * tree-vect-patterns.c : Likewise.
18165         * tree-vect-slp.c : Likewise.
18166         * tree-vect-stmts.c : Likewise.
18167         * tree-vectorizer.c : Likewise.
18168         * tree-vectorizer.h : Likewise.
18169         * tree-vrp.c : Likewise.
18170         * tree.c : Likewise.
18171         * tsan.c : Likewise.
18172         * ubsan.c : Likewise.
18173         * valtrack.c : Likewise.
18174         * valtrack.h : Likewise.
18175         * value-prof.c : Likewise.
18176         * var-tracking.c : Likewise.
18177         * varasm.c : Likewise.
18178         * varpool.c : Likewise.
18179         * vec.c: Likewise.
18180         * vmsdbgout.c : Likewise.
18181         * vtable-verify.c : Likewise.
18182         * vtable-verify.h : Likewise.
18183         * web.c : Likewise.
18184         * wide-int.cc : Likewise.
18185         * xcoffout.c : Likewise.
18186         * config/aarch64/aarch64-builtins.c : Likewise.
18187         * config/aarch64/aarch64.c : Likewise.
18188         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
18189         * config/alpha/alpha.c : Likewise.
18190         * config/arc/arc.c : Likewise.
18191         * config/arm/aarch-common.c : Likewise.
18192         * config/arm/arm-builtins.c : Likewise.
18193         * config/arm/arm-c.c : Likewise.
18194         * config/arm/arm.c : Likewise.
18195         * config/avr/avr-c.c : Likewise.
18196         * config/avr/avr-log.c : Likewise.
18197         * config/avr/avr.c : Likewise.
18198         * config/bfin/bfin.c : Likewise.
18199         * config/c6x/c6x.c : Likewise.
18200         * config/cr16/cr16.c : Likewise.
18201         * config/cris/cris.c : Likewise.
18202         * config/darwin-c.c : Likewise.
18203         * config/darwin.c : Likewise.
18204         * config/default-c.c : Likewise.
18205         * config/epiphany/epiphany.c : Likewise.
18206         * config/epiphany/mode-switch-use.c : Likewise.
18207         * config/epiphany/resolve-sw-modes.c : Likewise.
18208         * config/fr30/fr30.c : Likewise.
18209         * config/frv/frv.c : Likewise.
18210         * config/ft32/ft32.c : Likewise.
18211         * config/glibc-c.c : Likewise.
18212         * config/h8300/h8300.c : Likewise.
18213         * config/i386/i386-c.c : Likewise.
18214         * config/i386/i386.c : Likewise.
18215         * config/i386/msformat-c.c : Likewise.
18216         * config/i386/winnt-cxx.c : Likewise.
18217         * config/i386/winnt-stubs.c : Likewise.
18218         * config/i386/winnt.c : Likewise.
18219         * config/ia64/ia64-c.c : Likewise.
18220         * config/ia64/ia64.c : Likewise.
18221         * config/iq2000/iq2000.c : Likewise.
18222         * config/lm32/lm32.c : Likewise.
18223         * config/m32c/m32c-pragma.c : Likewise.
18224         * config/m32c/m32c.c : Likewise.
18225         * config/m32r/m32r.c : Likewise.
18226         * config/m68k/m68k.c : Likewise.
18227         * config/mcore/mcore.c : Likewise.
18228         * config/mep/mep-pragma.c : Likewise.
18229         * config/mep/mep.c : Likewise.
18230         * config/microblaze/microblaze-c.c : Likewise.
18231         * config/microblaze/microblaze.c : Likewise.
18232         * config/mips/mips.c : Likewise.
18233         * config/mmix/mmix.c : Likewise.
18234         * config/mn10300/mn10300.c : Likewise.
18235         * config/moxie/moxie.c : Likewise.
18236         * config/msp430/msp430-c.c : Likewise.
18237         * config/msp430/msp430.c : Likewise.
18238         * config/nds32/nds32-cost.c : Likewise.
18239         * config/nds32/nds32-fp-as-gp.c : Likewise.
18240         * config/nds32/nds32-intrinsic.c : Likewise.
18241         * config/nds32/nds32-isr.c : Likewise.
18242         * config/nds32/nds32-md-auxiliary.c : Likewise.
18243         * config/nds32/nds32-memory-manipulation.c : Likewise.
18244         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
18245         * config/nds32/nds32-predicates.c : Likewise.
18246         * config/nds32/nds32.c : Likewise.
18247         * config/nios2/nios2.c : Likewise.
18248         * config/nvptx/nvptx.c : Likewise.
18249         * config/pa/pa.c : Likewise.
18250         * config/pdp11/pdp11.c : Likewise.
18251         * config/rl78/rl78-c.c : Likewise.
18252         * config/rl78/rl78.c : Likewise.
18253         * config/rs6000/rs6000-c.c : Likewise.
18254         * config/rs6000/rs6000.c : Likewise.
18255         * config/rx/rx.c : Likewise.
18256         * config/s390/s390-c.c : Likewise.
18257         * config/s390/s390.c : Likewise.
18258         * config/sh/sh-c.c : Likewise.
18259         * config/sh/sh-mem.cc : Likewise.
18260         * config/sh/sh.c : Likewise.
18261         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
18262         * config/sh/sh_treg_combine.cc : Likewise.
18263         * config/sol2-c.c : Likewise.
18264         * config/sol2-cxx.c : Likewise.
18265         * config/sol2-stubs.c : Likewise.
18266         * config/sol2.c : Likewise.
18267         * config/sparc/sparc-c.c : Likewise.
18268         * config/sparc/sparc.c : Likewise.
18269         * config/spu/spu-c.c : Likewise.
18270         * config/spu/spu.c : Likewise.
18271         * config/stormy16/stormy16.c : Likewise.
18272         * config/tilegx/mul-tables.c : Likewise.
18273         * config/tilegx/tilegx-c.c : Likewise.
18274         * config/tilegx/tilegx.c : Likewise.
18275         * config/tilepro/mul-tables.c : Likewise.
18276         * config/tilepro/tilepro-c.c : Likewise.
18277         * config/tilepro/tilepro.c : Likewise.
18278         * config/v850/v850-c.c : Likewise.
18279         * config/v850/v850.c : Likewise.
18280         * config/vax/vax.c : Likewise.
18281         * config/visium/visium.c : Likewise.
18282         * config/vms/vms-c.c : Likewise.
18283         * config/vms/vms.c : Likewise.
18284         * config/vxworks.c : Likewise.
18285         * config/winnt-c.c : Likewise.
18286         * config/xtensa/xtensa.c : Likewise.
18287
18288 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
18289
18290         PR lto/65378
18291         * ipa-utils.h (warn_types_mismatch): Update prototype.
18292         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
18293         parameters.
18294         (type_mismatch_p): New function.
18295         (warn_types_mismatch): Reorg to work better on non-C++ types.
18296         (odr_types_equivalent_p): Add loc1/loc2 parameters.
18297         (add_type_duplicate): Update.
18298
18299 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18300
18301         PR rtl-optimization/66444
18302         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
18303         call_used_regs.
18304
18305 2015-06-08  Richard Biener  <rguenther@suse.de>
18306
18307         PR tree-optimization/66422
18308         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
18309         block after inserted gcc_unreachable.
18310
18311 2015-06-08  Nick Clifton  <nickc@redhat.com>
18312
18313         * config/rx/rx.c (rx_function_value): Do not promote vector types.
18314         (rx_promote_function_mode): Likewise.
18315         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
18316
18317 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
18318
18319         * genattrtab.c (insn_alternatives): Change type from int *
18320         to uint64_t *.
18321         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
18322         (get_attr_value): Change type of num_alt to uint64_t.
18323         (compute_alternative_mask): Change return type from
18324         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
18325         (make_alternative_compare, mk_attr_alt): Change argument type
18326         from int to uint64_t.
18327         (simplify_test_exp): Change type of i from int to uint64_t.
18328         Shift ((uint64_t) 1) instead of 1 up.
18329         (main): Adjust oballocvec first argument from int to uint64_t.
18330         Shift ((uint64_t) 1) instead of 1 up.
18331
18332 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
18333
18334         PR other/65366
18335         * gdbhooks.py: Import sys.
18336         (intptr): New function.  Replace int(...) by intptr(...).
18337
18338 2015-06-08  Richard Biener  <rguenther@suse.de>
18339
18340         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
18341         adjustment for gaps at the end of a SLP load group properly.
18342         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
18343         all permutations we can generate.
18344         (vect_transform_slp_perm_load): Use the correct group-size.
18345
18346 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
18347
18348         * genmatch.c (expr::gen_transform): For conditions, guess the type
18349         from the second operand.
18350
18351 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18352
18353         PR tree-optimization/66442
18354         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
18355         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
18356         if the loop latch is not a singleton.  Use
18357         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
18358
18359 2015-06-08  Marek Polacek  <polacek@redhat.com>
18360
18361         PR sanitizer/66452
18362         * toplev.c (check_global_declaration): Don't warn about artificial
18363         decls.
18364
18365 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18366
18367         PR tree-optimization/66436
18368         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
18369         dump file.
18370         * gimplify.c: Add tree-dump.h include.
18371         (gimplify_function_tree): Dump function to gimple dump file.
18372         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
18373         dump file.
18374
18375 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18376
18377         PR tree-optimization/66435
18378         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
18379         function.
18380
18381 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
18382
18383         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
18384         of ptr_type_node to not be ptr_to_node.
18385         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
18386         TREE_TYPE of pointers.
18387         * gimple-expr.c (useless_type_conversion): Reorder the check for
18388         function pointers and TYPE_CANONICAL.
18389
18390 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
18391
18392         PR bootstrap/66319
18393         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
18394         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
18395         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
18396         later.
18397         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
18398         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
18399         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
18400         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
18401         and non iso if unix2003.
18402
18403 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
18404
18405         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
18406
18407 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
18408
18409         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
18410         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
18411         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
18412         except.c, final.c, function.c, gcse-common.c, genemit.c,
18413         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
18414         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
18415         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
18416         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
18417         more derived ones.
18418
18419 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
18420
18421         * combine.c (combine_split_insns): Remove cast.
18422         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
18423         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
18424         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
18425         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
18426         * genemit.c (gen_split): Change return type of generated functions to
18427         rtx_insn.
18428         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
18429         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
18430         gen_peephole2_* functions.
18431         (print_subroutine, main): Likewise.
18432         * recog.c (peephole2_optimize): Remove cast.
18433         (peep2_next_insn): Promote return type to rtx_insn.
18434         * recog.h (peep2_next_insn): Fix prototype.
18435         * rtl.h (try_split, split_insns): Likewise.
18436
18437 2015-06-06  DJ Delorie  <dj@redhat.com>
18438
18439         * config/msp430/msp430.c (msp430_asm_integer): Support addition
18440         and subtraction too.
18441
18442 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18443
18444         PR target/66410
18445         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
18446         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
18447         instead of Snd.  Disparage Sid/z alternative with '^'.
18448
18449 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
18450
18451         * dwarf2out.c: Remove deferred_locations*.
18452         (dwarf2_debug_hooks): Add early_finish hook.
18453         Remove global_decl hook.
18454         Add early_global_decl and late_global_decl hook.
18455         New global early_dwarf.
18456         New structure set_early_dwarf.
18457         (output_die): Indicate whether a DIE was generated early
18458         when generating assembly with -dA.
18459         (struct limbo_die_struct): Document created_for field.
18460         Remove file_table_last_lookup.
18461         (remove_AT): Return TRUE if successful.
18462         (remove_child_TAG): Clear die_parent.
18463         (reparent_child): New function abstracted from...
18464         (splice_child_die): ...here.
18465         (new_die): ICE if a DIE ends up in limbo too late.
18466         (check_die): New.
18467         (defer_location): Remove.
18468         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
18469         (fill_variable_array_bounds): New.
18470         (decl_start_label): Call fill_variable_array_bounds.
18471         (gen_formal_parameter_die): Rewrite to reuse previously generated
18472         DIEs.
18473         (gen_subprogram_die): Same.
18474         (gen_variable_die): Same.
18475         (gen_const_die): Same.
18476         (gen_label_die): Same.
18477         (gen_lexical_block_die): Same.
18478         (decl_will_get_specification_p): New.
18479         (local_function_static): New.
18480         (gen_struct_or_union_type_die): Fill in variable-length fields.
18481         (gen_typedef_die): Fill in variable-length typedefs.
18482         (gen_tagged_type_die): Gracefully return on error_mark_node.
18483         Handle re-entrancy.
18484         (gen_type_die_with_usage): Handle variable-length types.
18485         Remove duplicate code for ARRAY_TYPE case.
18486         (process_scope_var): Only process imported modules during early
18487         dwarf.
18488         (dwarf2out_early_global_decl): New.
18489         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
18490         (dwarf2out_type_decl): Set early_dwarf while calling
18491         dwarf2out_decl.
18492         (dwarf2out_decl): Verify that we did not recreate a previously
18493         generated DIE.
18494         Do not return on DECL_EXTERNALs in VAR_DECLs.
18495         Abstract some code to local_function_static.
18496         (lookup_filename): Remove use of file_table_last_lookup.
18497         Gracefully exit on missing file_name.
18498         (dwarf2out_finish): Verify limbo list.
18499         Remove deferred_locations_list use.
18500         Move deferred_asm_name and limbo flushing to...
18501         (dwarf2out_early_finish): ...here.  New.
18502         (dwarf2out_c_finalize): Remove set of deferred_location_list,
18503         deferred_asm_name, and file_table_last_lookup.
18504         * cgraph.h (referred_to_p): Add default argument.
18505         * cgraphunit.c (referred_to_p): Add and handle include_self
18506         argument.
18507         (analyze_functions): Add first_time argument.
18508         Call check_global_declaration for all symbols.
18509         Call late_global_decl for nodes for moribund nodes.
18510         (finalize_compilation_unit): Add new argument to
18511         analyze_functions.
18512         Call early_global_decl for functions.
18513         Call early_finish debug hook.
18514         * dbxout.c (dbxout_early_global_decl): New.
18515         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
18516         (dbx_debug_hooks): Add new hooks.
18517         (xcoff_debug_hooks): Same.
18518         * debug.c (do_nothing_debug_hooks): Add early_finish field.
18519         Add early and late debug hooks.
18520         Remove global_decl hook.
18521         * debug.h (struct gcc_debug_hooks): Add early_finish,
18522         early_global_decl, and late_global_decl fields.
18523         Remove global_decl field.
18524         Document gcc_debug_hooks.
18525         * gengtype.c (output_typename): Remove.
18526         * godump.c (go_early_global_decl): New.
18527         (go_late_global_decl): New.
18528         (go_global_decl): Remove.
18529         (dump_go_spec_init): Remove global_decl.  Add
18530         {early,late}_global_decl.
18531         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
18532         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
18533         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
18534         (write_global_declarations): Remove.
18535         (global_decl_processing): New.
18536         * langhooks.h (struct lang_hooks_for_decls): Remove
18537         final_write_globals field.
18538         Add post_compilation_parsing_cleanups field.
18539         * passes.c (rest_of_decl_compilation): Call early_global_decl.
18540         * sdbout.c: Add early and late_global_decl hooks.  Remove
18541         sdbout_global_decl hook.
18542         Add early_finish field for sdb_debug_hooks.
18543         (sdbout_global_decl): Remove.
18544         (sdbout_early_global_decl): New.
18545         (sdbout_late_global_decl): New.
18546         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
18547         * toplev.c (check_global_declaration): Rename from
18548         check_global_declaration_1.
18549         Adapt to use symtab infrastructure.
18550         (check_global_declarations): Remove.
18551         (emit_debug_global_declarations): Remove.
18552         (compile_file): Remove call to final_write_globals langhook.
18553         Run the actual compilation process.
18554         Perform any post compilation parser cleanups.
18555         Generate late debug info.
18556         * toplev.h (check_global_declaration): New.
18557         (check_global_declaration_1): Remove.
18558         (check_global_declarations): Remove.
18559         (write_global_declarations): Remove.
18560         (emit_debug_global_declarations): Remove.
18561         (global_decl_processing): New.
18562         * tree-core.h (struct tree_block): Add DIE field.
18563         * tree.h (BLOCK_DIE): New.
18564         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
18565         throughout.
18566         (vmsdbgout_early_global_decl): New.
18567         (vmsdbgout_late_global_decl): New.
18568         Add early_finish debug hook field to vmsdbg_debug_hooks.
18569         Remove vmsdbgout_decl to vmsdbgout_function_decl.
18570         Add early and late_global_decl debug hooks.
18571
18572 2015-06-05  Julian Brown  <julian@codesourcery.com>
18573             Sandra Loosemore  <sandra@codesourcery.com>
18574
18575         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
18576         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
18577         to print-sysroot-suffix.sh script.
18578
18579 2015-06-05  Tom de Vries  <tom@codesourcery.com>
18580
18581         merge from gomp4 branch:
18582         2015-05-28  Tom de Vries  <tom@codesourcery.com>
18583
18584         PR tree-optimization/65443
18585         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
18586         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
18587         (try_transform_to_exit_first_loop_alt): New function.
18588         (transform_to_exit_first_loop): Use
18589         try_transform_to_exit_first_loop_alt.
18590
18591 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
18592
18593         * builtins.c (expand_builtin_atomic_compare_exchange): Call
18594         emit_cmp_and_jump_insns with the mode of target.
18595
18596 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18597
18598         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
18599
18600 2015-06-04  DJ Delorie  <dj@redhat.com>
18601
18602         * config/msp430/msp430.md (movsi_s): New.  Special case for
18603         storing a 20-bit symbol into a 32-bit register.
18604         * config/msp430/msp430.c (msp430_subreg): Add support for it.
18605         * config/msp430/predicates.md (msp430_symbol_operand): New.
18606
18607 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
18608
18609         * c-family/c-common.c (noplt): New attribute.
18610         (handle_noplt_attribute): New handler.
18611         * calls.c (prepare_call_address): Check for noplt
18612         attribute.
18613         * config/i386/i386.c (ix86_expand_call): Check
18614         for noplt attribute.
18615         (ix86_nopic_noplt_attribute_p): New function.
18616         (ix86_output_call_insn): Output indirect call for non-pic
18617         no plt calls.
18618         * doc/extend.texi (noplt): Document new attribute.
18619         * doc/invoke.texi: Document new attribute.
18620
18621 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
18622
18623         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
18624         real.h, and fixed-value.h when included in host source files.
18625         * double-int.h: Remove redundant #includes listed above.
18626         * fixed-value.h: Likewise.
18627         * real.h: Likewise.
18628         * wide-int.h: Likewise.
18629         * inchash.h: Likewise.
18630         * rtl.h: Add some include files When included from a generator file.
18631         * target.h: Remove wide-int.h and insn-modes.h from the include list.
18632         * internal-fn.h: Don't include coretypes.h.
18633         * alias.c: Adjust includes for restructured coretypes.h.
18634         * asan.c: Likewise.
18635         * attribs.c: Likewise.
18636         * auto-inc-dec.c: Likewise.
18637         * auto-profile.c: Likewise.
18638         * bb-reorder.c: Likewise.
18639         * bt-load.c: Likewise.
18640         * builtins.c: Likewise.
18641         * caller-save.c: Likewise.
18642         * calls.c: Likewise.
18643         * ccmp.c: Likewise.
18644         * cfg.c: Likewise.
18645         * cfganal.c: Likewise.
18646         * cfgbuild.c: Likewise.
18647         * cfgcleanup.c: Likewise.
18648         * cfgexpand.c: Likewise.
18649         * cfghooks.c: Likewise.
18650         * cfgloop.c: Likewise.
18651         * cfgloop.h: Likewise.
18652         * cfgloopanal.c: Likewise.
18653         * cfgloopmanip.c: Likewise.
18654         * cfgrtl.c: Likewise.
18655         * cgraph.c: Likewise.
18656         * cgraphbuild.c: Likewise.
18657         * cgraphclones.c: Likewise.
18658         * cgraphunit.c: Likewise.
18659         * cilk-common.c: Likewise.
18660         * combine-stack-adj.c: Likewise.
18661         * combine.c: Likewise.
18662         * compare-elim.c: Likewise.
18663         * convert.c: Likewise.
18664         * coverage.c: Likewise.
18665         * cppbuiltin.c: Likewise.
18666         * cprop.c: Likewise.
18667         * cse.c: Likewise.
18668         * cselib.c: Likewise.
18669         * data-streamer-in.c: Likewise.
18670         * data-streamer-out.c: Likewise.
18671         * data-streamer.c: Likewise.
18672         * dbxout.c: Likewise.
18673         * dce.c: Likewise.
18674         * ddg.c: Likewise.
18675         * debug.c: Likewise.
18676         * df-core.c: Likewise.
18677         * df-problems.c: Likewise.
18678         * df-scan.c: Likewise.
18679         * df.h: Likewise.
18680         * dfp.c: Likewise.
18681         * dojump.c: Likewise.
18682         * dominance.c: Likewise.
18683         * domwalk.c: Likewise.
18684         * double-int.c: Likewise.
18685         * dse.c: Likewise.
18686         * dumpfile.c: Likewise.
18687         * dwarf2asm.c: Likewise.
18688         * dwarf2cfi.c: Likewise.
18689         * dwarf2out.c: Likewise.
18690         * dwarf2out.h: Likewise.
18691         * emit-rtl.c: Likewise.
18692         * et-forest.c: Likewise.
18693         * except.c: Likewise.
18694         * explow.c: Likewise.
18695         * expmed.c: Likewise.
18696         * expr.c: Likewise.
18697         * final.c: Likewise.
18698         * fixed-value.c: Likewise.
18699         * fold-const.c: Likewise.
18700         * function.c: Likewise.
18701         * fwprop.c: Likewise.
18702         * gcc-plugin.h: Likewise.
18703         * gcse.c: Likewise.
18704         * generic-match-head.c: Likewise.
18705         * ggc-page.c: Likewise.
18706         * gimple-builder.c: Likewise.
18707         * gimple-expr.c: Likewise.
18708         * gimple-fold.c: Likewise.
18709         * gimple-iterator.c: Likewise.
18710         * gimple-low.c: Likewise.
18711         * gimple-match-head.c: Likewise.
18712         * gimple-pretty-print.c: Likewise.
18713         * gimple-ssa-isolate-paths.c: Likewise.
18714         * gimple-ssa-strength-reduction.c: Likewise.
18715         * gimple-streamer-in.c: Likewise.
18716         * gimple-streamer-out.c: Likewise.
18717         * gimple-streamer.h: Likewise.
18718         * gimple-walk.c: Likewise.
18719         * gimple.c: Likewise.
18720         * gimplify-me.c: Likewise.
18721         * gimplify.c: Likewise.
18722         * godump.c: Likewise.
18723         * graph.c: Likewise.
18724         * graphite-blocking.c: Likewise.
18725         * graphite-dependences.c: Likewise.
18726         * graphite-interchange.c: Likewise.
18727         * graphite-isl-ast-to-gimple.c: Likewise.
18728         * graphite-optimize-isl.c: Likewise.
18729         * graphite-poly.c: Likewise.
18730         * graphite-scop-detection.c: Likewise.
18731         * graphite-sese-to-poly.c: Likewise.
18732         * graphite.c: Likewise.
18733         * haifa-sched.c: Likewise.
18734         * hooks.h: Likewise.
18735         * hw-doloop.c: Likewise.
18736         * ifcvt.c: Likewise.
18737         * incpath.c: Likewise.
18738         * init-regs.c: Likewise.
18739         * internal-fn.c: Likewise.
18740         * ipa-chkp.c: Likewise.
18741         * ipa-comdats.c: Likewise.
18742         * ipa-cp.c: Likewise.
18743         * ipa-devirt.c: Likewise.
18744         * ipa-icf-gimple.c: Likewise.
18745         * ipa-icf.c: Likewise.
18746         * ipa-inline-analysis.c: Likewise.
18747         * ipa-inline-transform.c: Likewise.
18748         * ipa-inline.c: Likewise.
18749         * ipa-polymorphic-call.c: Likewise.
18750         * ipa-profile.c: Likewise.
18751         * ipa-prop.c: Likewise.
18752         * ipa-pure-const.c: Likewise.
18753         * ipa-ref.c: Likewise.
18754         * ipa-reference.c: Likewise.
18755         * ipa-split.c: Likewise.
18756         * ipa-utils.c: Likewise.
18757         * ipa-visibility.c: Likewise.
18758         * ipa.c: Likewise.
18759         * ira-build.c: Likewise.
18760         * ira-color.c: Likewise.
18761         * ira-conflicts.c: Likewise.
18762         * ira-costs.c: Likewise.
18763         * ira-emit.c: Likewise.
18764         * ira-lives.c: Likewise.
18765         * ira.c: Likewise.
18766         * jump.c: Likewise.
18767         * langhooks.c: Likewise.
18768         * lcm.c: Likewise.
18769         * loop-doloop.c: Likewise.
18770         * loop-init.c: Likewise.
18771         * loop-invariant.c: Likewise.
18772         * loop-iv.c: Likewise.
18773         * loop-unroll.c: Likewise.
18774         * lower-subreg.c: Likewise.
18775         * lra-assigns.c: Likewise.
18776         * lra-coalesce.c: Likewise.
18777         * lra-constraints.c: Likewise.
18778         * lra-eliminations.c: Likewise.
18779         * lra-lives.c: Likewise.
18780         * lra-remat.c: Likewise.
18781         * lra-spills.c: Likewise.
18782         * lra.c: Likewise.
18783         * lto-cgraph.c: Likewise.
18784         * lto-compress.c: Likewise.
18785         * lto-opts.c: Likewise.
18786         * lto-section-in.c: Likewise.
18787         * lto-section-out.c: Likewise.
18788         * lto-streamer-in.c: Likewise.
18789         * lto-streamer-out.c: Likewise.
18790         * lto-streamer.c: Likewise.
18791         * mcf.c: Likewise.
18792         * mode-switching.c: Likewise.
18793         * modulo-sched.c: Likewise.
18794         * omega.c: Likewise.
18795         * omp-low.c: Likewise.
18796         * optabs.c: Likewise.
18797         * opts-global.c: Likewise.
18798         * passes.c: Likewise.
18799         * plugin.c: Likewise.
18800         * postreload-gcse.c: Likewise.
18801         * postreload.c: Likewise.
18802         * predict.c: Likewise.
18803         * print-rtl.c: Likewise.
18804         * print-tree.c: Likewise.
18805         * profile.c: Likewise.
18806         * real.c: Likewise.
18807         * realmpfr.c: Likewise.
18808         * realmpfr.h: Likewise.
18809         * recog.c: Likewise.
18810         * ree.c: Likewise.
18811         * reg-stack.c: Likewise.
18812         * regcprop.c: Likewise.
18813         * reginfo.c: Likewise.
18814         * regrename.c: Likewise.
18815         * regs.h: Likewise.
18816         * regstat.c: Likewise.
18817         * reload.c: Likewise.
18818         * reload1.c: Likewise.
18819         * reorg.c: Likewise.
18820         * resource.c: Likewise.
18821         * rtl-chkp.c: Likewise.
18822         * rtlanal.c: Likewise.
18823         * rtlhooks.c: Likewise.
18824         * sanopt.c: Likewise.
18825         * sched-deps.c: Likewise.
18826         * sched-ebb.c: Likewise.
18827         * sched-rgn.c: Likewise.
18828         * sched-vis.c: Likewise.
18829         * sdbout.c: Likewise.
18830         * sel-sched-dump.c: Likewise.
18831         * sel-sched-ir.c: Likewise.
18832         * sel-sched.c: Likewise.
18833         * sese.c: Likewise.
18834         * shrink-wrap.c: Likewise.
18835         * shrink-wrap.h: Likewise.
18836         * simplify-rtx.c: Likewise.
18837         * stack-ptr-mod.c: Likewise.
18838         * statistics.c: Likewise.
18839         * stmt.c: Likewise.
18840         * stor-layout.c: Likewise.
18841         * store-motion.c: Likewise.
18842         * stringpool.c: Likewise.
18843         * symtab.c: Likewise.
18844         * target-globals.c: Likewise.
18845         * targhooks.c: Likewise.
18846         * toplev.c: Likewise.
18847         * tracer.c: Likewise.
18848         * trans-mem.c: Likewise.
18849         * tree-affine.c: Likewise.
18850         * tree-affine.h: Likewise.
18851         * tree-browser.c: Likewise.
18852         * tree-call-cdce.c: Likewise.
18853         * tree-cfg.c: Likewise.
18854         * tree-cfgcleanup.c: Likewise.
18855         * tree-chkp-opt.c: Likewise.
18856         * tree-chkp.c: Likewise.
18857         * tree-chrec.c: Likewise.
18858         * tree-complex.c: Likewise.
18859         * tree-data-ref.c: Likewise.
18860         * tree-dfa.c: Likewise.
18861         * tree-diagnostic.c: Likewise.
18862         * tree-dump.c: Likewise.
18863         * tree-eh.c: Likewise.
18864         * tree-emutls.c: Likewise.
18865         * tree-if-conv.c: Likewise.
18866         * tree-inline.c: Likewise.
18867         * tree-into-ssa.c: Likewise.
18868         * tree-iterator.c: Likewise.
18869         * tree-loop-distribution.c: Likewise.
18870         * tree-nested.c: Likewise.
18871         * tree-nrv.c: Likewise.
18872         * tree-object-size.c: Likewise.
18873         * tree-outof-ssa.c: Likewise.
18874         * tree-parloops.c: Likewise.
18875         * tree-phinodes.c: Likewise.
18876         * tree-predcom.c: Likewise.
18877         * tree-pretty-print.c: Likewise.
18878         * tree-pretty-print.h: Likewise.
18879         * tree-profile.c: Likewise.
18880         * tree-scalar-evolution.c: Likewise.
18881         * tree-sra.c: Likewise.
18882         * tree-ssa-address.c: Likewise.
18883         * tree-ssa-alias.c: Likewise.
18884         * tree-ssa-ccp.c: Likewise.
18885         * tree-ssa-coalesce.c: Likewise.
18886         * tree-ssa-copy.c: Likewise.
18887         * tree-ssa-copyrename.c: Likewise.
18888         * tree-ssa-dce.c: Likewise.
18889         * tree-ssa-dom.c: Likewise.
18890         * tree-ssa-dse.c: Likewise.
18891         * tree-ssa-forwprop.c: Likewise.
18892         * tree-ssa-ifcombine.c: Likewise.
18893         * tree-ssa-live.c: Likewise.
18894         * tree-ssa-loop-ch.c: Likewise.
18895         * tree-ssa-loop-im.c: Likewise.
18896         * tree-ssa-loop-ivcanon.c: Likewise.
18897         * tree-ssa-loop-ivopts.c: Likewise.
18898         * tree-ssa-loop-manip.c: Likewise.
18899         * tree-ssa-loop-niter.c: Likewise.
18900         * tree-ssa-loop-prefetch.c: Likewise.
18901         * tree-ssa-loop-unswitch.c: Likewise.
18902         * tree-ssa-loop.c: Likewise.
18903         * tree-ssa-loop.h: Likewise.
18904         * tree-ssa-math-opts.c: Likewise.
18905         * tree-ssa-operands.c: Likewise.
18906         * tree-ssa-phiopt.c: Likewise.
18907         * tree-ssa-phiprop.c: Likewise.
18908         * tree-ssa-pre.c: Likewise.
18909         * tree-ssa-propagate.c: Likewise.
18910         * tree-ssa-reassoc.c: Likewise.
18911         * tree-ssa-sccvn.c: Likewise.
18912         * tree-ssa-scopedtables.c: Likewise.
18913         * tree-ssa-sink.c: Likewise.
18914         * tree-ssa-strlen.c: Likewise.
18915         * tree-ssa-structalias.c: Likewise.
18916         * tree-ssa-tail-merge.c: Likewise.
18917         * tree-ssa-ter.c: Likewise.
18918         * tree-ssa-threadedge.c: Likewise.
18919         * tree-ssa-threadupdate.c: Likewise.
18920         * tree-ssa-uncprop.c: Likewise.
18921         * tree-ssa-uninit.c: Likewise.
18922         * tree-ssa.c: Likewise.
18923         * tree-ssanames.c: Likewise.
18924         * tree-stdarg.c: Likewise.
18925         * tree-streamer-in.c: Likewise.
18926         * tree-streamer-out.c: Likewise.
18927         * tree-streamer.c: Likewise.
18928         * tree-switch-conversion.c: Likewise.
18929         * tree-tailcall.c: Likewise.
18930         * tree-vect-data-refs.c: Likewise.
18931         * tree-vect-generic.c: Likewise.
18932         * tree-vect-loop-manip.c: Likewise.
18933         * tree-vect-loop.c: Likewise.
18934         * tree-vect-patterns.c: Likewise.
18935         * tree-vect-slp.c: Likewise.
18936         * tree-vect-stmts.c: Likewise.
18937         * tree-vectorizer.c: Likewise.
18938         * tree-vrp.c: Likewise.
18939         * tree.c: Likewise.
18940         * tsan.c: Likewise.
18941         * ubsan.c: Likewise.
18942         * valtrack.c: Likewise.
18943         * value-prof.c: Likewise.
18944         * var-tracking.c: Likewise.
18945         * varasm.c: Likewise.
18946         * varpool.c: Likewise.
18947         * vmsdbgout.c: Likewise.
18948         * vtable-verify.c: Likewise.
18949         * web.c: Likewise.
18950         * wide-int-print.cc: Likewise.
18951         * wide-int-print.h: Likewise.
18952         * wide-int.cc: Likewise.
18953         * xcoffout.c: Likewise.
18954         * config/aarch64/aarch64-builtins.c: Likewise.
18955         * config/aarch64/aarch64.c: Likewise.
18956         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
18957         * config/alpha/alpha.c: Likewise.
18958         * config/arc/arc.c: Likewise.
18959         * config/arm/aarch-common.c: Likewise.
18960         * config/arm/arm-builtins.c: Likewise.
18961         * config/arm/arm-c.c: Likewise.
18962         * config/arm/arm.c: Likewise.
18963         * config/avr/avr-c.c: Likewise.
18964         * config/avr/avr-log.c: Likewise.
18965         * config/avr/avr.c: Likewise.
18966         * config/bfin/bfin.c: Likewise.
18967         * config/c6x/c6x.c: Likewise.
18968         * config/cr16/cr16.c: Likewise.
18969         * config/cris/cris.c: Likewise.
18970         * config/darwin-c.c: Likewise.
18971         * config/darwin.c: Likewise.
18972         * config/default-c.c: Likewise.
18973         * config/epiphany/epiphany.c: Likewise.
18974         * config/epiphany/mode-switch-use.c: Likewise.
18975         * config/epiphany/resolve-sw-modes.c: Likewise.
18976         * config/fr30/fr30.c: Likewise.
18977         * config/frv/frv.c: Likewise.
18978         * config/ft32/ft32.c: Likewise.
18979         * config/glibc-c.c: Likewise.
18980         * config/h8300/h8300.c: Likewise.
18981         * config/i386/i386-c.c: Likewise.
18982         * config/i386/i386.c: Likewise.
18983         * config/i386/msformat-c.c: Likewise.
18984         * config/i386/winnt-cxx.c: Likewise.
18985         * config/i386/winnt-stubs.c: Likewise.
18986         * config/i386/winnt.c: Likewise.
18987         * config/ia64/ia64-c.c: Likewise.
18988         * config/ia64/ia64.c: Likewise.
18989         * config/iq2000/iq2000.c: Likewise.
18990         * config/lm32/lm32.c: Likewise.
18991         * config/m32c/m32c-pragma.c: Likewise.
18992         * config/m32c/m32c.c: Likewise.
18993         * config/m32r/m32r.c: Likewise.
18994         * config/m68k/m68k.c: Likewise.
18995         * config/mcore/mcore.c: Likewise.
18996         * config/mep/mep-pragma.c: Likewise.
18997         * config/mep/mep.c: Likewise.
18998         * config/microblaze/microblaze-c.c: Likewise.
18999         * config/microblaze/microblaze.c: Likewise.
19000         * config/mips/mips.c: Likewise.
19001         * config/mmix/mmix.c: Likewise.
19002         * config/mn10300/mn10300.c: Likewise.
19003         * config/moxie/moxie.c: Likewise.
19004         * config/msp430/msp430-c.c: Likewise.
19005         * config/msp430/msp430.c: Likewise.
19006         * config/nds32/nds32-cost.c: Likewise.
19007         * config/nds32/nds32-fp-as-gp.c: Likewise.
19008         * config/nds32/nds32-intrinsic.c: Likewise.
19009         * config/nds32/nds32-isr.c: Likewise.
19010         * config/nds32/nds32-md-auxiliary.c: Likewise.
19011         * config/nds32/nds32-memory-manipulation.c: Likewise.
19012         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19013         * config/nds32/nds32-predicates.c: Likewise.
19014         * config/nds32/nds32.c: Likewise.
19015         * config/nios2/nios2.c: Likewise.
19016         * config/nvptx/nvptx.c: Likewise.
19017         * config/pa/pa.c: Likewise.
19018         * config/pdp11/pdp11.c: Likewise.
19019         * config/rl78/rl78-c.c: Likewise.
19020         * config/rl78/rl78.c: Likewise.
19021         * config/rs6000/rs6000-c.c: Likewise.
19022         * config/rs6000/rs6000.c: Likewise.
19023         * config/rx/rx.c: Likewise.
19024         * config/s390/s390-c.c: Likewise.
19025         * config/s390/s390.c: Likewise.
19026         * config/sh/sh-c.c: Likewise.
19027         * config/sh/sh-mem.cc: Likewise.
19028         * config/sh/sh.c: Likewise.
19029         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19030         * config/sh/sh_treg_combine.cc: Likewise.
19031         * config/sol2-c.c: Likewise.
19032         * config/sol2-cxx.c: Likewise.
19033         * config/sol2-stubs.c: Likewise.
19034         * config/sol2.c: Likewise.
19035         * config/sparc/sparc-c.c: Likewise.
19036         * config/sparc/sparc.c: Likewise.
19037         * config/spu/spu-c.c: Likewise.
19038         * config/spu/spu.c: Likewise.
19039         * config/stormy16/stormy16.c: Likewise.
19040         * config/tilegx/mul-tables.c: Likewise.
19041         * config/tilegx/tilegx-c.c: Likewise.
19042         * config/tilegx/tilegx.c: Likewise.
19043         * config/tilepro/mul-tables.c: Likewise.
19044         * config/tilepro/tilepro-c.c: Likewise.
19045         * config/tilepro/tilepro.c: Likewise.
19046         * config/v850/v850-c.c: Likewise.
19047         * config/v850/v850.c: Likewise.
19048         * config/vax/vax.c: Likewise.
19049         * config/visium/visium.c: Likewise.
19050         * config/vms/vms-c.c: Likewise.
19051         * config/vms/vms.c: Likewise.
19052         * config/vxworks.c: Likewise.
19053         * config/winnt-c.c: Likewise.
19054         * config/xtensa/xtensa.c: Likewise.
19055         * common/config/bfin/bfin-common.c: Likewise.
19056
19057 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
19058
19059         * tree.h (tree_code_for_canonical_type_merging): New function.
19060         * tree.c (gimple_canonical_types_compatible_p): Use
19061         tree_code_for_canonical_type_merging..
19062
19063 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19064
19065         PR c++/66192
19066         PR target/66200
19067         * doc/tm.texi: Regenerate.
19068         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
19069         * target.def (TARGET_RELAXED_ORDERING): Likewise.
19070         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
19071         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
19072         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
19073         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
19074         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
19075         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
19076         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
19077
19078 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19079
19080         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
19081         register fma steering pass.
19082         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
19083         AARCH64_TUNE_FMA_STEERING.
19084
19085 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
19086
19087         * tree.c (verify_type_variant): Verify that type and variant is
19088         compatible.
19089         (gimple_canonical_types_compatible_p): Look for main variants.
19090
19091 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
19092
19093         * config.gcc (powerpc*-*-*): Add support for a new configure
19094         option --with-advance-toolchain=<xxx> which overrides using the
19095         default header files, libraries and dynamic linker.
19096
19097         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
19098         specs to support the configure --with-advance-toolchain=<xxx>
19099         option.
19100         (INCLUDE_EXTRA_SPEC): Likewise.
19101         (LINK_OS_EXTRA_SPEC32): Likewise.
19102         (LINK_OK_EXTRA_SPEC64): Likewise.
19103         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
19104         (DYNAMIC_LINKER_PREFIX): Likewise.
19105         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
19106         toolchain support.
19107         (GLIBC_DYNAMIC_LINKER32): Likewise.
19108         (GLIBC_DYNAMIC_LINKER64): Likewise.
19109         (LINK_OS_LINUX_SPEC32): Likewise.
19110         (LINK_OS_LINUX_SPEC64): Likewise.
19111
19112         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
19113         configuration option.
19114
19115 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
19116
19117         PR target/66275
19118         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
19119         to determine current function ABI.
19120         (ix86_function_value_regno_p): Ditto.
19121
19122 2015-06-03  Martin Liska  <mliska@suse.cz>
19123
19124         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
19125         * bitmap.h (struct bitmap_usage): Likewise.
19126         * ggc-common.c (struct ggc_usage): Likewise.
19127         * mem-stats.h (struct mem_location): Likewise.
19128         (struct mem_usage): Likewise.
19129         * vec.c (struct vec_usage): Likewise.
19130
19131 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
19132
19133         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
19134         -Bsymbolic.
19135
19136 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
19137
19138         * doc/plugins.texi (enum plugin_event): New event.
19139         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
19140         and PLUGIN_FINISH_FUNCTION.
19141         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
19142         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
19143
19144 2015-06-03  Richard Biener  <rguenther@suse.de>
19145
19146         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19147         compute GROUP_GAP for the first element.
19148         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
19149         on in-group gaps.
19150
19151 2015-06-03  Nick Clifton  <nickc@redhat.com>
19152
19153         * config/rl78/rl78-real.md: Add peepholes to avoid a register
19154         copy when calling a function.
19155         * config/rl78/rl78.c (need_to_save): Do not push the frame
19156         pointer in an interrupt handler prologue if it is never used.
19157
19158 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19159
19160         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
19161
19162 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19163
19164         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
19165         reference when cloning alias node.
19166
19167 2015-06-03  Martin Liska  <mliska@suse.cz>
19168
19169         * alloc-pool.h (struct pool_usage): Correct space padding.
19170         * ggc-page.c (ggc_print_statistics): Align columns in a report.
19171         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
19172         * tree.c (dump_tree_statistics): Align columns in a report.
19173
19174 2015-06-03  Martin Liska  <mliska@suse.cz>
19175
19176         * alloc-pool.c (allocate_pool_descriptor): Remove.
19177         (struct pool_output_info): Likewise.
19178         (print_alloc_pool_statistics): Likewise.
19179         (dump_alloc_pool_statistics): Likewise.
19180         * alloc-pool.h (struct pool_usage): New struct.
19181         (pool_allocator::initialize): Change usage of memory statistics
19182         to a new interface.
19183         (pool_allocator::release): Likewise.
19184         (pool_allocator::allocate): Likewise.
19185         (pool_allocator::remove): Likewise.
19186         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
19187         for a pool allocator.
19188         * mem-stats.h (struct mem_location): Add new ctor.
19189         (struct mem_usage): Add counter for number of
19190         instances.
19191         (mem_alloc_description::register_descriptor): New overload of
19192         * mem-stats.h (mem_location::to_string): New function.
19193         * bitmap.h (struct bitmap_usage): Use this new function.
19194         * ggc-common.c (struct ggc_usage): Likewise.
19195         the function.
19196
19197 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19198
19199         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
19200         of GCC_INSN_FLAGS_H block.
19201
19202 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
19203
19204         * explow.c (plus_constant): Update check after force_const_mem call
19205         to see if the value returned is not a NULL_RTX.
19206
19207 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19208
19209         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
19210         remove instumentation thunks calling reachable functions.
19211         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
19212         * lto/lto-partition.c (privatize_symbol_name_1): New.
19213         (privatize_symbol_name): Privatize both decl and orig_decl
19214         names for instrumented functions.
19215         * cgraph.c (cgraph_node::verify_node): Add transparent
19216         alias chain check for instrumented node.
19217
19218 2015-06-03  Marek Polacek  <polacek@redhat.com>
19219
19220         PR c/64223
19221         PR c/29358
19222         * tree.c (attribute_value_equal): Handle attribute format.
19223         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
19224
19225 2015-06-03  Richard Biener  <rguenther@suse.de>
19226
19227         PR tree-optimization/63916
19228         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19229         Forward-propagate non-invariant addresses by splicing their
19230         reference ops if the result isn't going to be used by PRE.
19231         (vn_reference_lookup_3): Remove pointless assert.
19232
19233 2015-06-03  Richard Biener  <rguenther@suse.de>
19234
19235         PR tree-optimization/66375
19236         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
19237         add to the evolution before following SSA edges.
19238
19239 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
19240
19241         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
19242         (dump_use, dump_cand, find_induction_variables): Pass new argument
19243         to dump_iv.
19244         (record_use): Preserve the ssa name information in IV.
19245
19246 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19247
19248         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
19249         NO_MODE_TEST.
19250         (add_mode_tests): Don't add mode tests if the predicate only
19251         accepts scalar constant integers.  Otherwise, allow the mode
19252         of "op" to be VOIDmode if the predicate does accept such integers.
19253
19254 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
19255
19256         PR target/66258
19257         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
19258         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
19259         (aarch64_secondary_reload): Likewise
19260         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
19261         to !TARGET_FLOAT.
19262         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
19263         Likewise.
19264
19265 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
19266             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19267
19268         PR target/65768
19269         * cprop.c (try_replace_reg): Check cost of constants before propagating.
19270
19271 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
19272
19273         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
19274         provide access to the IBM extended double floating point mode if
19275         long double is IEEE 128-bit floating point.
19276         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
19277         point if long double is the IBM extended double type.
19278
19279         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
19280         enable adding IEEE 128-bit floating point support.
19281         (-mfloat128-software): Likewise.
19282         (-mfloat128-sw): Likewise.
19283
19284         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
19285         128-bit floating point types to occupy any register if
19286         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
19287         -mfloat128-software is enabled.
19288         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
19289         support.
19290         (rs6000_option_override_internal): Add -mfloat128-* support.
19291         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
19292
19293         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
19294         and float128 type nodes.
19295         (ieee128_float_type_node): Likewise.
19296         (ibm128_float_type_node): Likewise.
19297
19298 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19299
19300         PR target/66136
19301         * config/aarch64/geniterators.sh: Rewrite in awk.
19302
19303 2015-06-02  Martin Liska  <mliska@suse.cz>
19304
19305         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
19306         values to avoid -Wmaybe-uninitialized errors.
19307
19308 2015-06-02  Richard Biener  <rguenther@suse.de>
19309
19310         PR debug/65549
19311         * dwarf2out.c (lookup_context_die): New function.
19312         (resolve_addr): Avoid forcing a full DIE for the
19313         target of a DW_TAG_GNU_call_site during late compilation.
19314         Instead create a stub DIE without a type if we have a
19315         context DIE present.
19316
19317 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
19318
19319         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
19320
19321 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19322
19323         PR tree-optimization/48052
19324         * cfgloop.h (struct control_iv): New.
19325         (struct loop): New field control_ivs.
19326         * tree-ssa-loop-niter.c : Include "stor-layout.h".
19327         (number_of_iterations_lt): Set no_overflow information.
19328         (number_of_iterations_exit): Init control iv in niter struct.
19329         (record_control_iv): New.
19330         (estimate_numbers_of_iterations_loop): Call record_control_iv.
19331         (loop_exits_before_overflow): New.  Interface factored out of
19332         scev_probably_wraps_p.
19333         (scev_probably_wraps_p): Factor loop niter related code into
19334         loop_exits_before_overflow.
19335         (free_numbers_of_iterations_estimates_loop): Free control ivs.
19336         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
19337
19338 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
19339
19340         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
19341         the target doesn't belong to the current function.
19342
19343 2015-06-02  Marek Polacek  <polacek@redhat.com>
19344
19345         PR middle-end/66345
19346         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
19347         get_maxval_strlen does not produce an INTEGER_CST.
19348
19349 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
19350
19351         * config/arc/constraints.md: Use lower-case names in match_code.
19352         * config/mmix/constraints.md: Likewise.
19353
19354 2015-06-02  Richard Biener  <rguenther@suse.de>
19355
19356         PR tree-optimization/65961
19357         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
19358         check and clarify dump message.
19359         (vect_build_slp_tree): If all children are built up from scalars
19360         build up the parent from scalars instead.
19361         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
19362
19363 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
19364
19365         PR other/65366
19366         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
19367         instead of print ... .
19368
19369 2015-06-02  Alan Modra  <amodra@gmail.com>
19370
19371         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
19372         2014-08-11 change.
19373
19374 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19375
19376         PR tree-optimization/52563
19377         PR tree-optimization/62173
19378         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
19379         (alloc_iv, set_iv): New parameter.
19380         (determine_biv_step): Delete.
19381         (find_bivs): Inline original determine_biv_step.  Pass new
19382         argument to set_iv.
19383         (idx_find_step): Use no_overflow information for conversion.
19384         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
19385         resolve_mixers handle folded_casts.
19386         (instantiate_scev_name): Change bool parameter to bool pointer.
19387         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
19388         (instantiate_array_ref, instantiate_scev_not): Ditto.
19389         (instantiate_scev_3, instantiate_scev_2): Ditto.
19390         (instantiate_scev_1, instantiate_scev_r): Ditto.
19391         (instantiate_scev_convert, ): Change parameter.  Pass argument
19392         to chrec_convert_aggressive.
19393         (instantiate_scev): Change argument.
19394         (resolve_mixers): New parameter and set it.
19395         (scev_const_prop): New argument.
19396         * tree-scalar-evolution.h (resolve_mixers): New parameter.
19397         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
19398         of chrec_conert_1.
19399         (chrec_convert): New parameter.  Move definition below.
19400         (chrec_convert_aggressive): New parameter and set it.  Call
19401         convert_affine_scev.
19402         * tree-chrec.h (chrec_convert): New parameter.
19403         (chrec_convert_aggressive): Ditto.
19404
19405 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19406
19407         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
19408         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
19409         the LHS of a no-return call if its type has variable size.
19410         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
19411         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
19412
19413 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
19414
19415         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
19416         * config.in: Regenerate.
19417
19418 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
19419
19420         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19421         consecutive accesses within outer-loop with force_vectorize
19422         for references with zero step in inner-loop.
19423
19424 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19425
19426         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
19427         rather than from gcc/build directory.
19428
19429 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19430
19431         PR target/65697
19432         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
19433         for __sync memory models, emit initial loads and final barriers as
19434         appropriate.
19435
19436 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19437
19438         PR target/65697
19439         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
19440         (aarch64_split_atomic_op): Check for __sync memory models, emit
19441         appropriate initial loads and final barriers.
19442
19443 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19444
19445         * Makefile.in: Fix gcov dependencies that should
19446         not point to a build folder.
19447
19448 2015-06-01  Richard Biener  <rguenther@suse.de>
19449
19450         Revert
19451         2015-05-29  Richard Biener  <rguenther@suse.de>
19452
19453         PR tree-optimization/66314
19454         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19455         parameter that says which loop the new block belongs to.
19456         (ssa_create_duplicates): Blocks duplicated for the threaded
19457         path belong to the loop of the thread destination.
19458
19459 2015-06-01  Martin Liska  <mliska@suse.cz>
19460
19461         * sched-deps.c: Include pool-alloc.h before
19462         cselib.h header file is included.
19463
19464 2015-06-01  Richard Biener  <rguenther@suse.de>
19465
19466         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
19467         functions.
19468
19469 2015-06-01  Martin Liska  <mliska@suse.cz>
19470
19471         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
19472         a function local variable.
19473
19474 2015-06-01  Martin Liska  <mliska@suse.cz>
19475
19476         * alloc-pool.c (create_alloc_pool): Remove.
19477         (empty_alloc_pool): Likewise.
19478         (free_alloc_pool): Likewise.
19479         (free_alloc_pool_if_empty): Likewise.
19480         (pool_alloc): Likewise.
19481         (pool_free): Likewise.
19482         * alloc-pool.h: Remove old declarations.
19483
19484 2015-06-01  Martin Liska  <mliska@suse.cz>
19485
19486         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
19487         (ira_create_object): Likewise.
19488         (ira_create_allocno): Likewise.
19489         (ira_create_live_range): Likewise.
19490         (copy_live_range): Likewise.
19491         (ira_finish_live_range): Likewise.
19492         (ira_free_allocno_costs): Likewise.
19493         (finish_allocno): Likewise.
19494         (finish_allocnos): Likewise.
19495         (initiate_prefs): Likewise.
19496         (ira_create_pref): Likewise.
19497         (finish_pref): Likewise.
19498         (finish_prefs): Likewise.
19499         (initiate_copies): Likewise.
19500         (ira_create_copy): Likewise.
19501         (finish_copy): Likewise.
19502         (finish_copies): Likewise.
19503         (finish_prefs): Likewise.
19504
19505 2015-06-01  Martin Liska  <mliska@suse.cz>
19506
19507         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
19508         (allocate_and_init_ipcp_value): Likewise.
19509         (ipcp_lattice::add_value): Likewise.
19510         (merge_agg_lats_step): Likewise.
19511         (ipcp_driver): Likewise.
19512         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
19513         (ipa_free_all_structures_after_iinln): Likewise.
19514         * ipa-prop.h: Likewise.
19515
19516 2015-06-01  Martin Liska  <mliska@suse.cz>
19517
19518         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
19519         pool allocator.
19520         (set_hint_predicate): Likewise.
19521         (inline_summary_alloc): Likewise.
19522         (reset_inline_edge_summary): Likewise.
19523         (reset_inline_summary): Likewise.
19524         (set_cond_stmt_execution_predicate): Likewise.
19525         (set_switch_stmt_execution_predicate): Likewise.
19526         (compute_bb_predicates): Likewise.
19527         (estimate_function_body_sizes): Likewise.
19528         (inline_free_summary): Likewise.
19529
19530 2015-06-01  Martin Liska  <mliska@suse.cz>
19531
19532         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
19533         (ipa_edge_duplication_hook): Likewise.
19534         (ipa_free_all_structures_after_ipa_cp): Likewise.
19535         (ipa_free_all_structures_after_iinln): Likewise.
19536
19537 2015-06-01  Martin Liska  <mliska@suse.cz>
19538
19539         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
19540         (ipa_profile_generate_summary): Likewise.
19541         (ipa_profile_read_summary): Likewise.
19542         (ipa_profile): Likewise.
19543
19544 2015-06-01  Martin Liska  <mliska@suse.cz>
19545
19546         * tree-ssa-structalias.c (new_var_info): Use new type-based
19547         pool allocator.
19548         (new_constraint): Likewise.
19549         (init_alias_vars): Likewise.
19550         (delete_points_to_sets): Likewise.
19551
19552 2015-06-01  Martin Liska  <mliska@suse.cz>
19553
19554         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
19555         (free_strinfo): Likewise.
19556         (pass_strlen::execute): Likewise.
19557
19558 2015-06-01  Martin Liska  <mliska@suse.cz>
19559
19560         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
19561         pool allocator.
19562         (vn_reference_insert_pieces): Likewise.
19563         (vn_phi_insert): Likewise.
19564         (visit_reference_op_call): Likewise.
19565         (copy_phi): Likewise.
19566         (copy_reference): Likewise.
19567         (process_scc): Likewise.
19568         (allocate_vn_table): Likewise.
19569         (free_vn_table): Likewise.
19570
19571 2015-06-01  Martin Liska  <mliska@suse.cz>
19572
19573         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
19574         pool allocator.
19575         (add_repeat_to_ops_vec): Likewise.
19576         (get_ops): Likewise.
19577         (maybe_optimize_range_tests): Likewise.
19578         (init_reassoc): Likewise.
19579         (fini_reassoc): Likewise.
19580
19581 2015-06-01  Martin Liska  <mliska@suse.cz>
19582
19583         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
19584         pool allocator.
19585         (bitmap_set_new): Likewise.
19586         (get_or_alloc_expr_for_constant): Likewise.
19587         (get_or_alloc_expr_for): Likewise.
19588         (phi_translate_1): Likewise.
19589         (compute_avail): Likewise.
19590         (init_pre): Likewise.
19591         (fini_pre): Likewise.
19592
19593 2015-06-01  Martin Liska  <mliska@suse.cz>
19594
19595         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
19596         (delete_dep_node): Likewise.
19597         (create_deps_list): Likewise.
19598         (free_deps_list): Likewise.
19599         (sched_deps_init): Likewise.
19600         (sched_deps_finish): Likewise.
19601
19602 2015-06-01  Martin Liska  <mliska@suse.cz>
19603
19604         * regcprop.c (free_debug_insn_changes): Use new type-based
19605         pool allocator.
19606         (replace_oldest_value_reg): Likewise.
19607         (pass_cprop_hardreg::execute): Likewise.
19608
19609 2015-06-01  Martin Liska  <mliska@suse.cz>
19610
19611         * ira-build.c (initiate_cost_vectors): Use new type-based
19612         pool allocator.
19613         (ira_allocate_cost_vector): Likewise.
19614         (ira_free_cost_vector): Likewise.
19615         (finish_cost_vectors): Likewise.
19616
19617 2015-06-01  Martin Liska  <mliska@suse.cz>
19618
19619         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
19620         pool allocator.
19621         (free_sched_pools): Likewise.
19622         * sel-sched-ir.h (_list_alloc): Likewise.
19623         (_list_remove): Likewise.
19624
19625 2015-06-01  Martin Liska  <mliska@suse.cz>
19626
19627         * stmt.c (add_case_node): Use new type-based pool allocator.
19628         (expand_case): Likewise.
19629         (expand_sjlj_dispatch_table): Likewise.
19630
19631 2015-06-01  Martin Liska  <mliska@suse.cz>
19632
19633         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
19634         (free_bb): Likewise.
19635         (pass_cse_reciprocals::execute): Likewise.
19636
19637 2015-06-01  Martin Liska  <mliska@suse.cz>
19638
19639         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
19640         (sra_deinitialize) Likewise.
19641         (create_access_1) Likewise.
19642         (build_accesses_from_assign) Likewise.
19643         (create_artificial_child_access) Likewise.
19644
19645 2015-06-01  Martin Liska  <mliska@suse.cz>
19646
19647         * dse.c (get_group_info):Use new type-based pool allocator.
19648         (dse_step0) Likewise.
19649         (free_store_info) Likewise.
19650         (delete_dead_store_insn) Likewise.
19651         (free_read_records) Likewise.
19652         (record_store) Likewise.
19653         (replace_read) Likewise.
19654         (check_mem_read_rtx) Likewise.
19655         (scan_insn) Likewise.
19656         (dse_step1) Likewise.
19657         (dse_step7) Likewise.
19658
19659 2015-06-01  Martin Liska  <mliska@suse.cz>
19660
19661         * df-scan.c (struct df_scan_problem_data):Use new type-based
19662         pool allocator.
19663         (df_scan_free_internal) Likewise.
19664         (df_scan_alloc) Likewise.
19665         (df_grow_reg_info) Likewise.
19666         (df_free_ref) Likewise.
19667         (df_insn_create_insn_record) Likewise.
19668         (df_mw_hardreg_chain_delete) Likewise.
19669         (df_insn_info_delete) Likewise.
19670         (df_free_collection_rec) Likewise.
19671         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
19672         (df_sort_and_compress_mws) Likewise.
19673         (df_ref_create_structure) Likewise.
19674         (df_ref_record) Likewise.
19675
19676 2015-06-01  Martin Liska  <mliska@suse.cz>
19677
19678         * df-problems.c (df_chain_create):Use new type-based pool allocator.
19679         (df_chain_unlink_1) Likewise.
19680         (df_chain_unlink) Likewise.
19681         (df_chain_remove_problem) Likewise.
19682         (df_chain_alloc) Likewise.
19683         (df_chain_free) Likewise.
19684         * df.h (struct dataflow) Likewise.
19685
19686 2015-06-01  Martin Liska  <mliska@suse.cz>
19687
19688         * cselib.c (new_elt_list):Use new type-based pool allocator.
19689         (new_elt_loc_list) Likewise.
19690         (unchain_one_elt_list) Likewise.
19691         (unchain_one_elt_loc_list) Likewise.
19692         (unchain_one_value) Likewise.
19693         (new_cselib_val) Likewise.
19694         (cselib_init) Likewise.
19695         (cselib_finish) Likewise.
19696
19697 2015-06-01  Martin Liska  <mliska@suse.cz>
19698
19699         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
19700         (sh_reorg) Likewise.
19701
19702 2015-06-01  Martin Liska  <mliska@suse.cz>
19703
19704         * cfg.c (initialize_original_copy_tables):Use new type-based
19705         pool allocator.
19706         (free_original_copy_tables) Likewise.
19707         (copy_original_table_clear) Likewise.
19708         (copy_original_table_set) Likewise.
19709
19710 2015-06-01  Martin Liska  <mliska@suse.cz>
19711
19712         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
19713         pool allocator.
19714         (asan_mem_ref_new) Likewise.
19715         (free_mem_ref_resources) Likewise.
19716
19717 2015-06-01  Martin Liska  <mliska@suse.cz>
19718
19719         * var-tracking.c (variable_htab_free):Use new type-based
19720         pool allocator.
19721         (attrs_list_clear) Likewise.
19722         (attrs_list_insert) Likewise.
19723         (attrs_list_copy) Likewise.
19724         (shared_hash_unshare) Likewise.
19725         (shared_hash_destroy) Likewise.
19726         (unshare_variable) Likewise.
19727         (var_reg_delete_and_set) Likewise.
19728         (var_reg_delete) Likewise.
19729         (var_regno_delete) Likewise.
19730         (drop_overlapping_mem_locs) Likewise.
19731         (variable_union) Likewise.
19732         (insert_into_intersection) Likewise.
19733         (canonicalize_values_star) Likewise.
19734         (variable_merge_over_cur) Likewise.
19735         (dataflow_set_merge) Likewise.
19736         (remove_duplicate_values) Likewise.
19737         (variable_post_merge_new_vals) Likewise.
19738         (dataflow_set_preserve_mem_locs) Likewise.
19739         (dataflow_set_remove_mem_locs) Likewise.
19740         (variable_from_dropped) Likewise.
19741         (variable_was_changed) Likewise.
19742         (set_slot_part) Likewise.
19743         (clobber_slot_part) Likewise.
19744         (delete_slot_part) Likewise.
19745         (loc_exp_insert_dep) Likewise.
19746         (notify_dependents_of_changed_value) Likewise.
19747         (emit_notes_for_differences_1) Likewise.
19748         (vt_emit_notes) Likewise.
19749         (vt_initialize) Likewise.
19750         (vt_finalize) Likewise.
19751
19752 2015-06-01  Martin Liska  <mliska@suse.cz>
19753
19754         * ira-color.c (init_update_cost_records):Use new type-based
19755         pool allocator.
19756         (get_update_cost_record) Likewise.
19757         (free_update_cost_record_list) Likewise.
19758         (finish_update_cost_records) Likewise.
19759         (initiate_cost_update) Likewise.
19760
19761 2015-06-01  Martin Liska  <mliska@suse.cz>
19762
19763         * lra.c (init_insn_regs): Use new type-based pool allocator.
19764         (new_insn_reg) Likewise.
19765         (free_insn_reg) Likewise.
19766         (free_insn_regs) Likewise.
19767         (finish_insn_regs) Likewise.
19768         (init_insn_recog_data) Likewise.
19769         (init_reg_info) Likewise.
19770         (finish_reg_info) Likewise.
19771         (lra_free_copies) Likewise.
19772         (lra_create_copy) Likewise.
19773         (invalidate_insn_data_regno_info) Likewise.
19774
19775 2015-06-01  Martin Liska  <mliska@suse.cz>
19776
19777         * lra-lives.c (free_live_range): Use new type-based pool allocator.
19778         (free_live_range_list) Likewise.
19779         (create_live_range) Likewise.
19780         (copy_live_range) Likewise.
19781         (lra_merge_live_ranges) Likewise.
19782         (remove_some_program_points_and_update_live_ranges) Likewise.
19783         (lra_live_ranges_init) Likewise.
19784         (lra_live_ranges_finish) Likewise.
19785
19786 2015-06-01  Martin Liska  <mliska@suse.cz>
19787
19788         * et-forest.c (et_new_occ): Use new type-based pool allocator.
19789         (et_new_tree): Likewise.
19790         (et_free_tree): Likewise.
19791         (et_free_tree_force): Likewise.
19792         (et_free_pools): Likewise.
19793         (et_split): Likewise.
19794
19795 2015-06-01  Martin Liska  <mliska@suse.cz>
19796
19797         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
19798         to header file.
19799         * alloc-pool.h (pool_allocator::pool_allocator): New function.
19800         (pool_allocator::release): Likewise.
19801         (inline pool_allocator::release_if_empty): Likewise.
19802         (inline pool_allocator::~pool_allocator): Likewise.
19803         (pool_allocator::allocate): Likewise.
19804         (pool_allocator::remove): Likewise.
19805
19806 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19807
19808         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
19809         in comment.
19810
19811 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19812
19813         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
19814         to fusible_ops.
19815         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
19816         (arm_macro_fusion_p): Likewise.
19817         (arm_macro_fusion_pair_p): Likewise.
19818
19819 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19820
19821         * config/aarch64/aarch64-protos.h (tune_params): Rename
19822         fuseable_ops to fusible_ops.
19823         * config/aarch64/aarch64.c (generic_tunings): Rename
19824         fuseable_ops to fusible_ops.
19825         (cortexa53_tunings): Likewise.
19826         (cortexa57_tunings): Likewise.
19827         (thunderx_tunings): Likewise.
19828         (xgene1_tunings): Likewise.
19829         (aarch64_macro_fusion_p): Likewise.
19830         (aarch64_macro_fusion_pair_p): Likewise.
19831
19832 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19833
19834         * config/s390/driver-native.c: New file.
19835         * config/s390/x-native: New file.
19836         * config.host: Add new files for s390.
19837         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
19838         and -march=native
19839         * config.gcc: Likewise.
19840         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
19841         * config/s390/s390-opts.h (enum processor_type): Ditto.
19842         * config/s390/s390.c (s390_option_override): Catch unhandled
19843         PROCESSOR_NATIVE
19844
19845 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
19846
19847         PR target/65527
19848         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
19849         redirection for instrumented calls.
19850         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
19851         (append_compiler_options): Append -fcheck-pointer-bounds.
19852         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
19853         (chkp_redirect_edge): New.
19854         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
19855         (chkp_redirect_edge): New.
19856
19857 2015-06-01  Richard Biener  <rguenther@suse.de>
19858
19859         PR tree-optimization/66280
19860         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
19861         def-use walking.
19862
19863 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19864
19865         * config/aarch64/aarch64.md
19866         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
19867         logic_shift_imm.
19868
19869 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19870
19871         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
19872         Remove obsolete kludge.
19873
19874 2015-06-01  Richard Biener  <rguenther@suse.de>
19875
19876         * tree-ssa-reassoc.c (get_rank): Simplify.
19877
19878 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
19879
19880         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
19881         * configure: Regenerated.
19882
19883 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
19884
19885         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
19886         issue (add space between string literal and macro).
19887         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
19888
19889 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
19890
19891         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
19892         implict or explicit -fPIE or -fpie.
19893
19894 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
19895
19896         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
19897
19898 2015-05-28  DJ Delorie  <dj@redhat.com>
19899
19900         * expmed.c (extract_bit_field_1): Avoid clobbering a
19901         yet-to-be-used base/index register.
19902
19903 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
19904
19905         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
19906         (alias_stats): Add num_universal.
19907         (alias_set_subset_of): Special case pointers; be ready for NULL
19908         children.
19909         (alias_sets_conflict_p): Special case pointers; be ready for NULL
19910         children.
19911         (init_alias_set_entry): Break out from ...
19912         (record_alias_subset): ... here; propagate new fields;
19913         allocate children only when really needed.
19914         (get_alias_set): Do less generous pointer globbing.
19915         (dump_alias_stats_in_alias_c): Update statistics.
19916
19917 2015-05-30  Alan Modra  <amodra@gmail.com>
19918
19919         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
19920         correct block for use of r12.
19921         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
19922
19923 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19924
19925         PR target/66215
19926         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
19927         with -mhotpatch=.
19928
19929 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
19930
19931         PR tree-optimization/66142
19932         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
19933         virtual phis that feed themselves.
19934
19935 2015-05-29  Richard Biener  <rguenther@suse.de>
19936
19937         PR tree-optimization/66314
19938         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19939         parameter that says which loop the new block belongs to.
19940         (ssa_create_duplicates): Blocks duplicated for the threaded
19941         path belong to the loop of the thread destination.
19942
19943 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19944
19945         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
19946         to cleanup-saved-temps.
19947         * doc/sourcebuild.texi (Clean up generated test files): Expand
19948         introduction.
19949         (dg-keep-saved-temps): Document new proc.
19950         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
19951         cleanup-saved-temps): Remove.
19952
19953 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
19954
19955         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
19956         gcc_AC_CHECK_DECLS.
19957         * configure: Regenerate.
19958
19959 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19960
19961         * config/nios2/linux.h (CPP_SPEC): Define.
19962
19963 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19964
19965         * config/microblaze/linux.h (CPP_SPEC): Define.
19966
19967 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19968
19969         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
19970         -pthread is specified.
19971
19972 2015-05-28  Richard Biener  <rguenther@suse.de>
19973
19974         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
19975         (vect_fixup_scalar_cycles_with_patterns): Likewise.
19976         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
19977         after pattern recog.
19978         (vect_create_epilog_for_reduction): Properly handle reductions
19979         with patterns.
19980         (vectorizable_reduction): Likewise.
19981         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
19982         reduction chains.
19983         (vect_get_constant_vectors): Create the correct number of
19984         initial values for reductions.
19985         (vect_schedule_slp_instance): Handle reduction chains that are
19986         type changing properly.
19987         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
19988
19989 2015-05-28  Richard Biener  <rguenther@suse.de>
19990
19991         PR tree-optimization/66142
19992         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
19993         values better in memcpy destination handling.  Handle non-aliasing
19994         we discover here.
19995
19996 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
19997
19998         PR target/63810
19999         * config/darwin-c.c (version_components): New global enum.
20000         (parse_version, version_as_legacy_macro)
20001         (version_as_modern_macro, macosx_version_as_macro): New functions.
20002         (version_as_macro): Remove.
20003         (darwin_cpp_builtins): Use new function.
20004
20005 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
20006
20007         * builtins.c (expand_builtin_acc_on_device): Mark parameters
20008         with ATTRIBUTE_UNUSED.
20009
20010 2015-05-28  Julian Brown  <julian@codesourcery.com>
20011
20012         PR libgomp/65742
20013
20014         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
20015         sequence for !ACCEL_COMPILER.
20016
20017 2015-05-28  Nick Clifton  <nickc@redhat.com>
20018
20019         * config/rx/rx.c (push_regs): New function.  Extracts code from...
20020         (rx_expand_prologue): ... here.  Use push_regs to push even small
20021         spans of registers.
20022         (pop_regs): New function.
20023         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
20024         registers.
20025
20026 2015-05-28  Richard Biener  <rguenther@suse.de>
20027
20028         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
20029         member.
20030         (SLP_INSTANCE_BODY_COST_VEC): Remove.
20031         (vect_update_slp_costs_according_to_vf): Likewise.
20032         (vect_slp_analyze_operations): Update prototype.
20033         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
20034         vect_update_slp_costs_according_to_vf, adjust.
20035         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
20036         (vect_analyze_slp_cost_1): Likewise.
20037         (vect_analyze_slp_cost): Likewise.  Properly deal with
20038         widening reduction ops.  Commit body costs.
20039         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
20040         cost for loops from here.
20041         (vect_slp_analyze_operations): But do it from here when
20042         the vectorization factor is known and stmts are analyzed.
20043         (vect_bb_vectorization_profitable_p): Simplify.
20044         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
20045         (vect_update_slp_costs_according_to_vf): Remove.
20046
20047 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
20048             H.J. Lu  <hongjiu.lu@intel.com>
20049
20050         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
20051         (BUILD_CFLAGS): Likewise.
20052         (BUILD_CXXFLAGS): Likewise.
20053         (LINKER): Add @NO_PIE_FLAG@.
20054         (BUILD_LDFLAGS): Likewise.
20055         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
20056         --enable-default-pie.
20057         * common.opt (fPIE): Initialize to -1.
20058         (fpie): Likewise.
20059         (no-pie): New option.
20060         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
20061         * configure.ac: Add --enable-default-pie.
20062         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
20063         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
20064         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
20065         * gcc.c (NO_PIE_SPEC): New.
20066         (PIE_SPEC): Likewise.
20067         (NO_FPIE1_SPEC): Likewise.
20068         (FPIE1_SPEC): Likewise.
20069         (NO_FPIE2_SPEC): Likewise.
20070         (FPIE2_SPEC): Likewise.
20071         (NO_FPIE2_SPEC): Likewise.
20072         (FPIE_SPEC): Likewise.
20073         (NO_FPIE_SPEC): Likewise.
20074         (NO_FPIC1_SPEC): Likewise.
20075         (FPIC1_SPEC): Likewise.
20076         (NO_FPIC2_SPEC): Likewise.
20077         (FPIC2_SPEC): Likewise.
20078         (NO_FPIC2_SPEC): Likewise.
20079         (FPIC_SPEC): Likewise.
20080         (NO_FPIC_SPEC): Likewise.
20081         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
20082         (FPIE1_OR_FPIC1_SPEC): Likewise.
20083         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
20084         (FPIE2_OR_FPIC2_SPEC): Likewise.
20085         (NO_FPIE_AND_FPIC_SPEC): Likewise.
20086         (FPIE_OR_FPIC_SPEC): Likewise.
20087         (LD_PIE_SPEC): Likewise.
20088         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
20089         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
20090         * config/darwin.h (PIE_SPEC): Renamed to ...
20091         (DARWIN_PIE_SPEC): This.
20092         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
20093         * config/darwin9.h (PIE_SPEC): Renamed to ...
20094         (DARWIN_PIE_SPEC): This.
20095         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
20096         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
20097         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
20098         FPIE2_OR_FPIC2_SPEC.
20099         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
20100         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
20101         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
20102         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20103         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20104         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
20105         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
20106         * config/m32r/m32r.h (ASM_SPEC): Likewise.
20107         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
20108         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
20109         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
20110         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
20111         * config/sparc/linux.h (ASM_SPEC): Likewise.
20112         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20113         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
20114         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
20115         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20116         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20117         * config/sparc/sparc.h (ASM_SPEC): Likewise.
20118         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
20119         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
20120         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
20121         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
20122         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
20123         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
20124         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
20125         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
20126         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
20127         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
20128         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
20129         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
20130         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20131         * config/vax/linux.h (ASM_SPEC): Likewise.
20132         * doc/install.texi: Document --enable-default-pie.
20133         * doc/invoke.texi: Document -no-pie.
20134         * config.in: Regenerated.
20135         * configure: Likewise.
20136
20137 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20138
20139         PR rtl-optimization/66168
20140         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
20141         can_move_invariant_reg.
20142
20143 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
20144
20145         PR target/66148
20146         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
20147         REG_EQUAL note when doing insert.
20148
20149         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
20150         instead of "%d" for 'o' operand.
20151
20152 2015-05-27  Nathan Sidwell  <nathan@acm.org>
20153
20154         PR c++/66270
20155         * tree.c (build_pointer_type_for_mode): Canonical type does not
20156         inherit can_alias_all.
20157         (build_reference_type_for_mode): Likewise.
20158
20159 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
20160
20161         * expr.h (array_at_struct_end_p): Move to...
20162         (array_ref_element_size): Likewise.
20163         (component_ref_field_offset): Likewise.
20164         * tree.h (array_ref_element_size): ...here.
20165         (array_at_struct_end_p): Likewise.
20166         (component_ref_field_offset): Likewise.
20167         * expr.c (array_ref_element_size): Move to...
20168         (array_ref_low_bound): Likewise.
20169         (array_at_struct_end_p): Likewise.
20170         (array_ref_up_bound): Likewise.
20171         (component_ref_field_offset): Likewise.
20172         * tree.c (array_ref_element_size): ...here.
20173         (array_ref_low_bound): Likewise.
20174         (array_ref_up_bound): Likewise.
20175         (array_at_struct_end_p): Likewise.
20176         (component_ref_field_offset): Likewise.
20177
20178 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20179             Szabolcs Nagy  <szabolcs.nagy@arm.com>
20180
20181         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
20182
20183 2015-05-27  Jason Merrill  <jason@redhat.com>
20184
20185         PR bootstrap/66304
20186         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
20187         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
20188         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
20189
20190 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
20191
20192         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
20193         is true.
20194
20195         * statistics.c (statistics_fini_pass): Print pass name.
20196
20197 2015-05-27  Richard Biener  <rguenther@suse.de>
20198
20199         PR tree-optimization/66272
20200         Revert parts of
20201         2014-08-15  Richard Biener  <rguenther@suse.de>
20202
20203         PR tree-optimization/62031
20204         * tree-data-ref.c (dr_analyze_indices): Do not set
20205         DR_UNCONSTRAINED_BASE.
20206         (dr_may_alias_p): All indirect accesses have to go the
20207         formerly DR_UNCONSTRAINED_BASE path.
20208         * tree-data-ref.h (struct indices): Remove
20209         unconstrained_base member.
20210         (DR_UNCONSTRAINED_BASE): Remove.
20211
20212 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
20213
20214         * dwarf2out.c: Remove block_map.
20215         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
20216         (gen_lexical_block_die): Same.
20217         (dwarf2out_function_decl): Remove block_map use.
20218         (dwarf2out_c_finalize): Same.
20219         * tree-core.h (struct tree_block): Add die field.
20220         * tree.h (BLOCK_DIE): New.
20221
20222 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20223
20224         PR target/65358
20225         * expr.c (memory_load_overlap): New function.
20226         (emit_push_insn): When pushing partial args to the stack would
20227         clobber the register part load the overlapping part into a pseudo
20228         and put it into the hard reg after pushing.  Change return type
20229         to bool.  Add bool argument.
20230         * expr.h (emit_push_insn): Change return type to bool.
20231         Add bool argument.
20232         * calls.c (expand_call): Cancel sibcall optimization when encountering
20233         partial argument on targets with ARGS_GROW_DOWNWARD and
20234         !STACK_GROWS_DOWNWARD.
20235         (emit_library_call_value_1): Update callsite of emit_push_insn.
20236         (store_one_arg): Likewise.
20237
20238 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20239
20240         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
20241
20242 2015-05-27  Martin Liska  <mliska@suse.cz>
20243
20244         * Makefile.in: Add additional dependencies related to memory report
20245         enhancement.
20246         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
20247         * bitmap.c (struct bitmap_descriptor_d): Remove.
20248         (struct loc): Likewise.
20249         (struct bitmap_desc_hasher): Likewise.
20250         (bitmap_desc_hasher::hash): Likewise.
20251         (bitmap_desc_hasher::equal): Likewise.
20252         (get_bitmap_descriptor): Likewise.
20253         (bitmap_register): User new memory descriptor API.
20254         (register_overhead): Likewise.
20255         (bitmap_find_bit): Register nsearches and search_iter statistics.
20256         (struct bitmap_output_info): Remove.
20257         (print_statistics): Likewise.
20258         (dump_bitmap_statistics): Use new memory descriptor.
20259         * bitmap.h (struct bitmap_usage): New class.
20260         * genmatch.c: Extend header file inclusion.
20261         * genpreds.c: Likewise.
20262         * ggc-common.c (struct ggc_usage): New class.
20263         (struct ggc_loc_desc_hasher): Remove.
20264         (ggc_loc_desc_hasher::hash): Likewise.
20265         (ggc_loc_desc_hasher::equal): Likewise.
20266         (struct ggc_ptr_hash_entry): Likewise.
20267         (struct ptr_hash_hasher): Likewise.
20268         (ptr_hash_hasher::hash): Likewise.
20269         (ptr_hash_hasher::equal): Likewise.
20270         (make_loc_descriptor): Likewise.
20271         (ggc_prune_ptr): Likewise.
20272         (dump_ggc_loc_statistics): Use new memory descriptor.
20273         (ggc_record_overhead): Likewise.
20274         (ggc_free_overhead): Likewise.
20275         (final_cmp_statistic): Remove.
20276         (cmp_statistic): Likewise.
20277         (ggc_add_statistics): Liekwise.
20278         (ggc_prune_overhead_list): Likewise.
20279         * hash-map-traits.h: New file.
20280         * hash-map.h (struct default_hashmap_traits): Move the traits to a
20281         separate header file.
20282         * hash-set.h: Pass memory statistics info to ctor.
20283         * hash-table.c (void dump_hash_table_loc_statistics): New function.
20284         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
20285         (hash_table::~hash_table): Register memory release operation.
20286         (hash_table::alloc_entries): Handle memory allocation operation.
20287         (hash_table::expand): Likewise.
20288         * inchash.c (iterative_hash_hashval_t): Move implementation to header
20289         file.
20290         (iterative_hash_host_wide_int): Likewise.
20291         * inchash.h (class hash): Likewise.
20292         * mem-stats-traits.h: New file.
20293         * mem-stats.h: New file.
20294         (mem_location): Add new class.
20295         (mem_usage): Likewise.
20296         (mem_alloc_description): Likewise.
20297         * sese.c: Add new header file inclusision.
20298         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
20299         and hash_set.
20300         * tree-sra.c: Add new header file inclusision.
20301         * vec.c (struct vec_descriptor): Remove.
20302         (hash_descriptor): Likewise.
20303         (struct vec_usage): Likewise.
20304         (struct ptr_hash_entry): Likewise.
20305         (hash_ptr): Likewise.
20306         (eq_ptr): Likewise.
20307         (vec_prefix::register_overhead): Use new memory descriptor API.
20308         (vec_prefix::release_overhead): Likewise.
20309         (add_statistics): Remove.
20310         (dump_vec_loc_statistics): Use new memory descriptor API.
20311         * vec.h (struct vec_prefix): Likewise.
20312         (va_heap::reserve): Likewise.
20313         (va_heap::release): Likewise.
20314         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
20315
20316 2015-05-27  Richard Biener  <rguenther@suse.de>
20317
20318         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
20319         earlier and remove ??? comment.
20320         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
20321         and got called from loop analysis bail out.  Always pass the SLP
20322         node to the vectorizable_* functions.
20323         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
20324         the premature SLP check here.
20325         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
20326         detected SLP stmts.
20327         (vect_detect_hybrid_slp_1): Likewise.
20328
20329 2015-05-26  Jeff Law  <law@redhat.com>
20330
20331         * combine.c (find_split_point): Verify that the shift count is a
20332         constant when choosing (plus (ashift ...)) as a split point.
20333
20334         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
20335         No functional changes.
20336
20337 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
20338
20339         * ipa-polymorphic-call.c
20340         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
20341         case when call target is already known.
20342
20343 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
20344
20345         PR target/65979
20346         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
20347         take into account the case that operands[1] and operands[2]
20348         are the same register.
20349
20350 2015-05-26  Michael Matz  <matz@suse.de>
20351
20352         PR middle-end/66251
20353
20354         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
20355         stores.
20356         (vect_create_vectorized_demotion_stmts): Always set
20357         STMT_VINFO_VEC_STMT, also with SLP.
20358         (vectorizable_store): Handle strided group stores.
20359
20360 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20361
20362         PR target/66049
20363         * config/aarch64/aarch64.md
20364         (*adds_shift_imm_<mode>):  New pattern.
20365         (*subs_shift_imm_<mode>):  Likewise.
20366         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
20367         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
20368         (*add_uxt<mode>_shift2): Likewise.
20369         (*add_uxtsi_shift2_uxtw): Likewise.
20370         (*sub_uxt<mode>_shift2): Likewise.
20371         (*sub_uxtsi_shift2_uxtw): Likewise.
20372
20373 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
20374
20375         * config/rs6000/constraints.md (Y, U): Use match_test.
20376
20377 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20378
20379         PR target/52144
20380         * config/arm/arm.c (arm_option_check_internal)
20381         (arm_option_params_internal): Check opts->target_flags to set macros.
20382         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20383         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
20384         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20385         (builtin_define): Replaced with def_or_undef_macro.
20386         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20387         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
20388         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20389         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
20390         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
20391         (TARGET_ARM_FEATURE_LDREX_P)
20392         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
20393         * config/arm/arm-c.c (def_or_undef_macro): New function.
20394         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
20395
20396 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20397
20398         * c-common.h (builtin_define_with_int_value)
20399         (builtin_define_type_sizeof): Declare.
20400         * c-cppbuiltin.c (builtin_define_with_int_value)
20401         (builtin_define_type_sizeof): Externalize.
20402         (builtin_define_std): Cleanup declaration.
20403         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
20404         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
20405         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
20406         (builtin_define, builtin_assert): New macros.
20407
20408 2015-05-26  Richard Biener  <rguenther@suse.de>
20409
20410         PR tree-optimization/66142
20411         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
20412         MEM_REFs for the same base address.
20413
20414 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20415
20416         PR ipa/66181
20417         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
20418
20419 2015-05-26  Jason Merrill  <jason@redhat.com>
20420
20421         * configure.ac: Set CXXFLAGS for ISL test.
20422         * configure: Regenerate.
20423
20424         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
20425         strstr and basename.
20426         * configure: Regenerate.
20427
20428 2015-05-26  Richard Biener  <rguenther@suse.de>
20429
20430         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
20431         X % C -> X & (C - 1) for C being a power-of two to ...
20432         * match.pd: ... patterns.
20433
20434 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
20435
20436         * match.pd (swapped_tcc_comparison): New operator list.
20437         (-A CMP -B): New simplification.
20438         * fold-const.c (fold_comparison): Remove corresponding code.
20439
20440 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20441
20442         * caller-save.c (init_caller_save): Base temporary register numbers
20443         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
20444         * cfgloopanal.c (init_set_costs): Likewise.
20445         * dojump.c (prefer_and_bit_test): Likewise.
20446         * expr.c (init_expr_target): Likewise.
20447         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20448         * lower-subreg.c (init_lower_subreg): Likewise.
20449         * postreload.c (reload_cse_regs_1): Likewise.
20450
20451 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20452
20453         * gensupport.h (compute_test_codes): Declare.
20454         * gensupport.c (compute_predicate_codes): Rename to...
20455         (compute_test_codes): ...this.  Generalize error message.
20456         (process_define_predicate): Update accordingly.
20457         * genpreds.c (compute_maybe_allows): Delete.
20458         (add_constraint): Use compute_test_codes to determine whether
20459         something can accept a SUBREG, REG or MEM.
20460
20461 2015-05-26  Torvald Riegel  <triegel@redhat.com>
20462
20463         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
20464         'memory model' to align with C++11; fix description of memory orders;
20465         fix a few typos.
20466
20467 2015-05-26  Richard Biener  <rguenther@suse.de>
20468
20469         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
20470         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
20471         detect whether we apply SLP.  Remove call to
20472         vect_update_slp_costs_according_to_vf.
20473         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
20474         vect_update_slp_costs_according_to_vf from here.  Dispatch
20475         to vect_slp_analyze_operations to analyze SLP stmts.
20476         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
20477         unused bb_vec_info parameter, adjust assert.
20478         (vect_slp_analyze_operations): Pass in the slp instance tree
20479         instead of bb_vec_info.
20480         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
20481         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
20482
20483 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20484
20485         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
20486         Q_REGS.  Expand comment.
20487         (REG_CLASS_NAMES): Ditto.
20488         (REG_CLASS_CONTENTS): Ditto.
20489
20490 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
20491
20492         PR target/66274
20493         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
20494         when LEGACY_INT_REGNO_P is processed.
20495
20496 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20497
20498         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
20499
20500 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
20501
20502         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
20503         register if not marked dead/unused, before return.
20504
20505 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20506
20507         PR lto/66180
20508         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
20509         is set; check for assembler name at LTO time.
20510         (type_in_anonymous_namespace): Remove hacks, check that all
20511         anonymous types are called "<anon>"
20512         (odr_type_p): Simplify; add check for "<anon>"
20513         (odr_subtypes_equivalent): Add odr_type_p check.
20514         * tree.c (need_assembler_name_p): Even anonymous namespace needs
20515         assembler name.
20516
20517 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20518
20519         * ipa-utils.h (method_class_type): Remove.
20520         * cgraphunit.c (walk_polymorphic_call_targets): Use
20521         TYPE_METHOD_BASETYPE.
20522         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
20523         on main variants only.
20524         (method_class_type): Remove.
20525         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
20526         (build_type_inheritance_graph): Likewise.
20527         * ipa-icf.c (sem_function::equals_wpa): Likewise.
20528         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
20529         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
20530
20531 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20532
20533         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
20534         is_typedef_decl, typedef_variant_p): Constify.
20535         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
20536         is_typedef_decl, typedef_variant_p): Constify.
20537
20538 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20539
20540         * defaults.h (gen_tablejump): New function.
20541         (HAVE_tablejump): Add default value.
20542         * expr.c: Adjust.
20543         * stmt.c: Likewise.
20544
20545 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20546
20547         * defaults.h (gen_store_multiple): New function.
20548         (HAVE_store_multiple): Add default value.
20549         * expr.c (move_block_from_reg): Adjust.
20550
20551 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20552
20553         * defaults.h (gen_load_multiple): New function.
20554         (HAVE_load_multiple): Add default value.
20555         * expr.c (move_block_to_reg): Adjust.
20556
20557 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20558
20559         * defaults.h (gen_mem_signal_fence): New function.
20560         (HAVE_mem_signal_fence): Add default value.
20561         * optabs.c: Adjust.
20562
20563 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20564
20565         * defaults.h (gen_memory_barrier): New function.
20566         (HAVE_memory_barrier): Add default value.
20567         * optabs.c: Adjust.
20568
20569 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20570
20571         * defaults.h (gen_mem_thread_fence): New function.
20572         (HAVE_mem_thread_fence): Add default definition.
20573         * optabs.c: Adjust.
20574
20575 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20576
20577         * combine.c (find_split_point): Check the value of HAVE_lo_sum
20578         instead of if it is defined.
20579         (combine_simplify_rtx): Likewise.
20580         * lra-constraints.c (process_address_1): Likewise.
20581         * config/darwin.c: Adjust.
20582         * genconfig.c (main): Always define HAVE_lo_sum.
20583
20584 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20585
20586         * genmatch.c (parser::parse_operation): Reject expanding
20587         operator-list inside 'for'.
20588
20589 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20590
20591         * genmatch.c (parser::parse_for): Reject iterator if used as
20592         operator-list.
20593
20594 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20595
20596         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
20597         after end of id-list.
20598
20599 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20600
20601         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
20602         we do not try to compute canonical type for type that does not need
20603         alias set.
20604         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
20605         FUNCITON_TYPE.
20606         * tree.h (type_with_alias_set_p): New.
20607
20608 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20609
20610         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
20611         function attributes.
20612         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
20613
20614 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
20615
20616         * Makefile.in (check_gcc_parallelize): Delete.
20617         (lang_checks_parallelized): Update comment.
20618
20619 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
20620
20621         PR rtl-optimization/66237
20622         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
20623         location of an "as_a" cast.
20624
20625 2015-05-22  Jeff Law  <law@redhat.com>
20626
20627         * config/pa/pa.md (non-canonical shift-add insns): Remove.
20628         (peepholes with non-canonical RTL sources): Remove.
20629         (peepholes for indexed stores of FP regs in integer modes): Match and
20630         generate canonical RTL.
20631
20632 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20633
20634         PR tree-optimization/63387
20635         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
20636         ((x ord x) & (y ord y) -> (x ord y),
20637         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20638         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
20639         vectors like scalars.
20640
20641 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20642
20643         * convert.c (convert_to_integer, convert_to_vector): Include the
20644         types in the error message.
20645
20646 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20647
20648         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
20649         simplifications.
20650
20651 2015-05-22  Jeff Law  <law@redhat.com>
20652
20653         * config/pa/pa.md (integer_indexed_store splitters): Use
20654         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
20655         insns -- adjusting the constant 2nd operand accordingly.
20656
20657         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
20658         (plus (ashift X log2) Y) if it is a split point.
20659
20660         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
20661         out of hppa_legitimize_address to handle both forms of a multiply
20662         by 2, 4 or 8.
20663         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
20664         Always generate the ASHIFT variant as the result is not directly
20665         used in a MEM.  Update comments and refactor slightly to improve
20666         readability.
20667
20668 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20669
20670         PR target/65491
20671         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
20672         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
20673         (aarch64_composite_type_p): Return false if given type and mode are
20674         for a short vector.
20675
20676 2015-05-22  Richard Biener  <rguenther@suse.de>
20677
20678         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
20679         member.
20680         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
20681         patterns when determining whether SLP is pure.
20682         (vect_is_slp_reduction): Remove check for pattern stmts.
20683         (vect_is_simple_reduction_1): Remove dead code.
20684         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
20685         (vect_get_and_check_slp_defs): Pass in the stmt number.
20686         Allow the first def in a reduction to be not a pattern stmt when
20687         the rest of the stmts def are patterns.
20688         (vect_build_slp_tree_1): Allow tcc_expression codes like
20689         SAD_EXPR and DOT_PROD_EXPR.
20690         (vect_build_slp_tree): Adjust.
20691         (vect_analyze_slp): Refactor and move BB vect error message ...
20692         (vect_slp_analyze_bb_1): ... here.
20693
20694 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
20695
20696         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
20697         for CSWTCH temporary.
20698
20699 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20700
20701         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
20702         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
20703         unknown unspecs.
20704
20705 2015-05-22  Richard Biener  <rguenther@suse.de>
20706
20707         PR tree-optimization/66251
20708         * tree-vect-stmts.c (vectorizable_conversion): Properly
20709         set STMT_VINFO_VEC_STMT even for the SLP case.
20710
20711 2015-05-22  Marek Polacek  <polacek@redhat.com>
20712
20713         * doc/extend.texi: Use @pxref instead of @xref.
20714
20715 2015-05-22  hiraditya  <hiraditya@msn.com>
20716
20717         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
20718         redundant if.
20719
20720 2015-05-22  Richard Biener  <rguenther@suse.de>
20721
20722         PR tree-optimization/65701
20723         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20724         Move peeling cost models into one place.  Peel for alignment
20725         for single loads only if an aligned load is cheaper than
20726         an unaligned load.
20727
20728 2015-05-22  Marek Polacek  <polacek@redhat.com>
20729
20730         PR c/47043
20731         * doc/extend.texi (Enumerator Attributes): New section.
20732         Document syntax of enumerator attributes.
20733
20734 2015-05-22  Richard Biener  <rguenther@suse.de>
20735
20736         * tree-vect-loop.c (get_reduction_op): New function.
20737         (vect_model_reduction_cost): Use it, add reduc_index parameter.
20738         Make ready for BB reductions.
20739         (vect_create_epilog_for_reduction): Use get_reduction_op.
20740         (vectorizable_reduction): Init reduc_index to a valid value.
20741         Adjust vect_model_reduction_cost call.
20742         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
20743         operand for reduction defaults.  Add SAD_EXPR support.
20744         Assert we have a neutral op for SLP reductions.
20745         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
20746         walking pattern stmt ops only recurse to SSA names.
20747
20748 2015-05-22  Richard Biener  <rguenther@suse.de>
20749
20750         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
20751         assert with guard, remove check on detected reduction.
20752         (vect_recog_sad_pattern): Likewise.
20753         (vect_recog_widen_sum_pattern): Likewise.
20754
20755 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20756
20757         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
20758         __always_inline__ attribute.
20759         (vaesdq_u8): Likewise.
20760         (vaesmcq_u8): Likewise.
20761         (vaesimcq_u8): Likewise.
20762         (vsha1cq_u32): Likewise.
20763         (vsha1mq_u32): Likewise.
20764         (vsha1pq_u32): Likewise.
20765         (vsha1h_u32): Likewise.
20766         (vsha1su0q_u32): Likewise.
20767         (vsha1su1q_u32): Likewise.
20768         (vsha256hq_u32): Likewise.
20769         (vsha256h2q_u32): Likewise.
20770         (vsha256su0q_u32): Likewise.
20771         (vsha256su1q_u32): Likewise.
20772         (vmull_p64): Likewise.
20773         (vmull_high_p64): Likewise.
20774
20775 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20776
20777         * final.c (final_scan_insn): Don't check HAVE_peephole with the
20778         preprocessor.
20779         * output.h: Likewise.
20780         * genconfig.c (main): Alwways define HAVE_peephole.
20781         * genpeep.c: Don't emit checks of HAVE_peephole.
20782
20783 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20784
20785         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
20786         check HAVE_conditional_move with the preprocessor.
20787
20788 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20789
20790         * genconfig.c (main): Always define HAVE_conditional_move.
20791         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
20792         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
20793         is defined.
20794
20795 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20796
20797         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
20798         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
20799         and FRAME_POINTER_REGNUM with the preprocessor.
20800
20801 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20802
20803         * defaults.h: Add default for STACK_PUSH_CODE.
20804         * expr.c: Don't redefine STACK_PUSH_CODE.
20805         * recog.c: Likewise.
20806
20807 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20808
20809         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
20810         sched-deps.c: Use if instead of preprocessor checks with
20811         STACK_GROWS_DOWNWARD.
20812
20813 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20814
20815         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
20816         is defined.
20817         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
20818         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
20819         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
20820         * doc/tm.texi: Regenerate.
20821
20822 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
20823
20824         PR target/66232
20825         * config/i386/constraints.md (Bg): New constraint for GOT memory
20826         operand.
20827         * config/i386/i386.md (*call_got_x32): New pattern.
20828         (*call_value_got_x32): Likewise.
20829         * config/i386/predicates.md (GOT_memory_operand): New predicate.
20830
20831 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
20832
20833         PR tree-optimization/66233
20834         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
20835         Simplify.
20836
20837 2015-05-21  Jeff Law  <law@redhat.com>
20838
20839         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
20840         than MULT for shadd sequences.
20841
20842 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
20843
20844         * alias.c (alias_stats): New static var.
20845         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
20846         (dump_alias_stats_in_alias_c): New function.
20847         * alias.h (dump_alias_stats_in_alias_c): Declare.
20848         * tree-ssa-alias.c (dump_alias_stats): Call it.
20849
20850 2015-05-08  Michael Matz  <matz@suse.de>
20851
20852         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
20853         to strided_p.
20854         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
20855         (STMT_VINFO_STRIDED_P): ... this.
20856         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
20857         (vect_verify_datarefs_alignment): Likewise.
20858         (vect_enhance_data_refs_alignment): Likewise.
20859         (vect_analyze_data_ref_access): Likewise.
20860         (vect_analyze_data_refs): Accept strided stores.
20861         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
20862         (vect_model_load_cost): Adjust for macro rename.
20863         (vectorizable_mask_load_store): Likewise.
20864         (vectorizable_load): Likewise.
20865         (vectorizable_store): Open code strided stores.
20866
20867 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20868
20869         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
20870         Document sqrt_insn.
20871
20872 2015-05-21  Richard Biener  <rguenther@suse.de>
20873
20874         PR c++/66211
20875         * match.pd: Guard pattern optimzing (int)(float)int
20876         conversions to apply only on GIMPLE.
20877
20878 2015-05-21  Jeff Law  <law@redhat.com>
20879
20880         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
20881         multiply-accumulate/shift-add insn generation.
20882
20883 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
20884
20885         PR target/54236
20886         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
20887         operands[1] are the same.
20888
20889 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
20890
20891         PR middle-end/66221
20892         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
20893         build_distinct_type_copy to copy bounds.
20894
20895 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
20896
20897         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
20898         Change to unsigned int.
20899
20900 2015-05-20  Jeff Law  <law@redhat.com>
20901
20902         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
20903         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
20904         (pa_shadd_constant_p): Allow constants for shadd insns rather
20905         than valid scaling constants for memory addresses.
20906         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
20907         * config/pa/predicates.md (mem_shadd_operand): New predicate.
20908         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
20909         (shift-add insns using ASHIFT): New patterns.
20910
20911 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
20912
20913         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
20914         feasible.
20915         (fix_up_fall_thru_edges): Likewise.
20916         (fix_crossing_conditional_branches): Likewise. Promote jump targets
20917         from to rtx_insn to rtx_code_label where feasible.
20918         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
20919         gen_move_insn (returned type changed to rtx_insn).
20920         * builtins.c (expand_errno_check): Fix arguments of
20921         do_compare_rtx_and_jump (now expects rtx_code_label).
20922         (expand_builtin_acc_on_device): Likewise.
20923         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
20924         invert_jump (now exprects rtx_jump_insn).
20925         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
20926         (construct_init_block): Use rtx_code_label.
20927         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
20928         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
20929         calling redirect_jump.
20930         (patch_jump_insn): Likewise.
20931         (redirect_branch_edge): Likewise.
20932         (force_nonfallthru_and_redirect): Likewise.
20933         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
20934         when suitable.
20935         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
20936         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
20937         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
20938         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
20939         to store the value retured by gen_label_rtx.
20940         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
20941         rtx_jump_insn.
20942         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
20943         (split_branches): Fix calls of redirect_jump.
20944         * dojump.c (jumpifnot): Promote argument type from rtx to
20945         rtx_code_label.
20946         (jumpifnot_1): Likewise.
20947         (jumpif): Likewise.
20948         (jumpif_1): Likewise.
20949         (do_jump_1): Likewise.
20950         (do_jump): Likewise. Use rtx_code_label when feasible.
20951         (do_jump_by_parts_greater_rtx): Likewise.
20952         (do_jump_by_parts_zero_rtx): Likewise.
20953         (do_jump_by_parts_equality_rtx): Likewise.
20954         (do_compare_rtx_and_jump): Likewise.
20955         * dojump.h: Update function prototypes.
20956         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
20957         returns rtx_insn).
20958         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
20959         rtx_jump_insn.
20960         (emit_label_before): Likewise.
20961         (emit_jump_insn_after_noloc): Likewise.
20962         (emit_jump_insn_after_setloc): Likewise.
20963         (emit_jump_insn_after): Likewise
20964         (emit_jump_insn_before_setloc): Likewise.
20965         (emit_jump_insn_before): Likewise.
20966         (emit_label_before): Promote return type to rtx_code_label.
20967         (emit_label): Likewise.
20968         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
20969         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
20970         gen_move_insn.
20971         (emit_stack_restore): Likewise.
20972         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
20973         (do_cmp_and_jump): Likewise.
20974         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
20975         from rtx to rtx_code_label.
20976         (gen_move_insn_uncast): New function.
20977         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
20978         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
20979         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
20980         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
20981         invert_jump_1 and redirect_jump_1.
20982         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
20983         do_compare_rtx_and_jump.
20984         (expand_addsub_overflow): Likewise.
20985         (expand_neg_overflow): Likewise.
20986         (expand_mul_overflow): Likewise.
20987         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
20988         return value of gen_move_insn.
20989         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
20990         * loop-doloop.c (add_test): Use rtx_code_label.
20991         (doloop_modify): Likewise.
20992         (doloop_optimize): Likewise.
20993         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
20994         * lra-constraints.c (emit_spill_move): Remove cast of value returned
20995         by gen_move_insn.
20996         (inherit_reload_reg): Add cast when calling dump_insn_slim.
20997         (split_reg): Likewise.
20998         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
20999         gen_move_insn.
21000         * optabs.c (expand_binop_directly): Remove casts of values returned by
21001         maybe_gen_insn.
21002         (expand_unop_direct): Likewise.
21003         (expand_abs): Likewise.
21004         (maybe_emit_unop_insn): Likewise.
21005         (maybe_gen_insn): Promote return type to rtx_insn.
21006         * optabs.h: Update prototype of maybe_gen_insn.
21007         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
21008         redundant cast.
21009         * recog.c (struct peep2_insn_data): Promote type of insn field to
21010         rtx_insn.
21011         (peep2_reinit_state): Use NULL instead of NULL_RTX.
21012         (peep2_attempt): Remove casts of insn in peep2_insn_data.
21013         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
21014         * recog.h (struct insn_gen_fn): Promote return types of function
21015         pointers and operator ().from rtx to rtx_insn.
21016         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
21017         (fill_eager_delay_slots): Likewise.
21018         (relax_delay_slots): Likewise.
21019         (make_return_insns): Likewise.
21020         (dbr_schedule): Likewise.
21021         (optimize_skips): Likewise.
21022         (reorg_redirect_jump): Likewise.
21023         (fill_slots_from_thread): Likewise.
21024         * reorg.h: Update prototypes.
21025         * resource.c (find_dead_or_set_registers): Use dyn_cast to
21026         rtx_jump_insn instead of check.  Use it's jump_target method.
21027         * rtl.h (rtx_jump_insn::jump_label): Define new method.
21028         (rtx_jump_insn::jump_target): Define new method.
21029         (rtx_jump_insn::set_jump_target): Define new method.
21030         * rtlanal.c (tablejump_p): Promote type of one local variable.
21031         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
21032         (sched_analyze_insn): Likewise.
21033         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
21034         (print_insn): Likewise.
21035         * stmt.c (label_rtx): Promote return type to rtx_insn.
21036         (force_label_rtx): Likewise.
21037         (jump_target_rtx): Define new function.
21038         (expand_label): Use it, get rid of one cast.
21039         (expand_naked_return): Promote rtx to rtx_code_label.
21040         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
21041         (expand_case): Use rtx_code_label instread of rtx where feasible.
21042         (expand_sjlj_dispatch_table): Likewise.
21043         (emit_case_nodes): Likewise.
21044         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
21045         * store-motion.c (insert_store): Make use of new return type of
21046         gen_move_insn and remove a cast.
21047         (replace_store_insn): Likewise.
21048
21049 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
21050
21051         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
21052         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
21053
21054 2015-05-20  Jeff Law  <law@redhat.com>
21055
21056         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
21057         dispose of the jump thread path when the jump threading
21058         opportunity is cancelled.
21059
21060 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21061
21062         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
21063         when printing the caret character.
21064
21065 2015-05-20  Marek Polacek  <polacek@redhat.com>
21066
21067         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
21068
21069 2015-05-20  Marek Polacek  <polacek@redhat.com>
21070
21071         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
21072         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
21073         * gimple-fold.c (canonicalize_bool): Likewise.
21074         (same_bool_result_p): Likewise.
21075         * tree-if-conv.c (parse_predicate): Likewise.
21076
21077 2015-05-20  Marek Polacek  <polacek@redhat.com>
21078
21079         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
21080         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
21081
21082 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21083
21084         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
21085         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
21086         values.
21087
21088 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
21089
21090         * config/mips/mips.h (micromips_globals): Declare.
21091
21092 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
21093
21094         * timevar.def (TV_INITIALIZE_RTL): New.
21095         * toplev.c (initialize_rtl): Use an auto_timevar to account this
21096         function's time to TV_INITIALIZE_RTL.
21097
21098 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
21099
21100         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
21101         gimple_build_nop calls.
21102         (chkp_find_bounds_for_elem): Likewise.
21103         (chkp_get_zero_bounds): Likewise.
21104         (chkp_get_none_bounds): Likewise.
21105         (chkp_get_bounds_by_definition): Likewise.
21106         (chkp_generate_extern_var_bounds): Likewise.
21107         (chkp_get_bounds_for_decl_addr): Likewise.
21108         (chkp_get_bounds_for_string_cst): Likewise.
21109
21110 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
21111
21112         PR tree-optimization/65447
21113         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
21114         (dump_use, dump_uses): Support to dump sub use.
21115         (record_use): New parameters to support sub use.  Remove call to
21116         dump_use.
21117         (record_sub_use, record_group_use): New functions.
21118         (compute_max_addr_offset, split_all_small_groups): New functions.
21119         (group_address_uses, rewrite_use_address): New functions.
21120         (strip_offset): New declaration.
21121         (find_interesting_uses_address): Call record_group_use.
21122         (add_candidate): New assertion.
21123         (infinite_cost_p): Move definition forward.
21124         (add_costs): Check INFTY cost and return immediately.
21125         (get_computation_cost_at): Clear setup cost and dependent bitmap
21126         for sub uses.
21127         (determine_use_iv_cost_address): Compute cost for sub uses.
21128         (rewrite_use_address_1): Rename from old rewrite_use_address.
21129         (free_loop_data): Free sub uses.
21130         (tree_ssa_iv_optimize_loop): Call group_address_uses.
21131
21132 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21133             Jim Wilson  <jim.wilson@linaro.org>
21134
21135         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
21136         new  fields loadv and storev.
21137         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
21138         Initialize loadv and storev.
21139         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
21140         (cortexa53_extra_costs): Likewise.
21141         (cortexa57_extra_costs): Likewise.
21142         (xgene1_extra_costs): Likewise.
21143         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
21144         rtx_costs.
21145
21146 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21147
21148         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
21149          storev.
21150         (cortexa8_extra_costs): Likewise.
21151         (cortexa5_extra_costs): Likewise.
21152         (cortexa7_extra_costs): Likewise.
21153         (cortexa12_extra_costs): Likewise.
21154         (cortexa15_extra_costs): Likewise.
21155         (v7m_extra_costs): Likewise.
21156
21157 2015-05-20  Jeff Law  <law@redhat.com>
21158
21159         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
21160         instead of open-coded version.  Also delete the jump thread created
21161         within this function.
21162
21163 2015-05-20  Alan Modra  <amodra@gmail.com>
21164
21165         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
21166         stack adjusting insn.  Formatting.
21167         (rs6000_emit_prologue): Track stack adjusting insn, and use of
21168         r12.  If possible, emit first -fsplit-stack arg pointer insn
21169         before stack adjust.  Don't use r12 to save cr if split-stack.
21170
21171 2015-05-20  Alan Modra  <amodra@gmail.com>
21172
21173         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
21174         Define.
21175         (rs6000_supports_split_stack): New function.
21176         * gcc/config/rs6000/rs6000.c (machine_function): Add
21177         split_stack_arg_pointer.
21178         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
21179         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
21180         rather than virtual_incoming_args_rtx.
21181         (rs6000_va_start): Likewise.
21182         (split_stack_arg_pointer_used_p): New function.
21183         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
21184         (morestack_ref): New var.
21185         (gen_add3_const, rs6000_expand_split_stack_prologue,
21186         rs6000_internal_arg_pointer, rs6000_live_on_entry,
21187         rs6000_split_stack_space_check): New functions.
21188         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
21189         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
21190         (UNSPECV_SPLIT_STACK_RETURN): Define.
21191         (split_stack_prologue, load_split_stack_limit,
21192         load_split_stack_limit_di, load_split_stack_limit_si,
21193         split_stack_return, split_stack_space_check): New expands and insns.
21194         * gcc/config/rs6000/rs6000-protos.h
21195         (rs6000_expand_split_stack_prologue): Declare.
21196         (rs6000_split_stack_space_check): Declare.
21197
21198 2015-05-20  Alan Modra  <amodra@gmail.com>
21199
21200         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
21201         (direct_return): Test vrsave_size rather than vrsave_mask.
21202         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
21203         (rs6000_emit_epilogue): Likewise.
21204
21205 2015-05-20  Alan Modra  <amodra@gmail.com>
21206
21207         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
21208         when not saving registers.
21209         (debug_stack_info): Adjust to omit printing unused offsets,
21210         as before.
21211         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
21212         expression.
21213
21214 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21215
21216         PR c++/65835
21217         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
21218         value_type to const char *.
21219
21220 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
21221
21222         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
21223         to build a biarch toolchain again.
21224
21225 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21226
21227         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
21228         or implicit declarations.
21229         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
21230         into it.
21231         (get_odr_type): Check type has linkage before adding bases.
21232         (register_odr_type): Check that type has linkage before adding it.
21233         (type_known_to_have_no_deriavations_p): Rename to ..
21234         (type_known_to_have_no_derivations_p): This one.
21235         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
21236         (type_known_to_have_no_derivations_p): This one.
21237         * ipa-polymorphic-call.c
21238         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
21239         type has linkage.
21240
21241 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21242
21243         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
21244         (layout_type): Use RECORD_OR_UNION_TYPE_P.
21245
21246 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21247
21248         * config/s390/s390.c (s390_vector_bool_type_p): New function.
21249         (s390_invalid_binary_op): New function.
21250         (TARGET_INVALID_BINARY_OP): Define macro.
21251
21252 2015-05-19  David Sherwood  <david.sherwood@arm.com>
21253
21254         * loop-invariant.c (create_new_invariant): Don't calculate address cost
21255         if mode is not a scalar integer.
21256         (get_inv_cost): Increase computational cost for unused invariants.
21257
21258 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21259
21260         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
21261         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
21262         * config/s390/s390-builtin-types.def: New file.
21263         * config/s390/s390-builtins.def: New file.
21264         * config/s390/s390-builtins.h: New file.
21265         * config/s390/s390-c.c: New file.
21266         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
21267         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
21268         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
21269         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
21270         prototypes.
21271         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
21272         Include.
21273         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
21274         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
21275         variable definitions.
21276         (s390_const_operand_ok): New function.
21277         (s390_expand_builtin): Rewrite.
21278         (s390_init_builtins): New function.
21279         (s390_handle_vectorbool_attribute): New function.
21280         (s390_attribute_table): Add s390_vector_bool attribute.
21281         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
21282         (s390_branch_condition_mask): Generate masks for new modes.
21283         (s390_expand_vec_compare_cc): New function.
21284         (s390_mangle_type): Add mangling for vector bool types.
21285         (enum s390_builtin): Remove.
21286         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
21287         efpc builtins.
21288         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
21289         s390_cpu_cpp_builtins.
21290         (REGISTER_TARGET_PRAGMAS): New macro.
21291         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
21292         (insn_cmp mode attribute): Add new CC modes.
21293         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
21294         (lcbb): New pattern definition.
21295         * config/s390/s390intrin.h: Include vecintrin.h.
21296         * config/s390/t-s390: New file.
21297         * config/s390/vecintrin.h: New file.
21298         * config/s390/vector.md: Include vx-builtins.md.
21299         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
21300         support.
21301
21302 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21303
21304         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
21305         CCVFHE.
21306         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
21307         (s390_select_ccmode): Likewise.
21308         (s390_canonicalize_comparison): Swap operands if necessary.
21309         (s390_expand_vec_compare_scalar): Expand DFmode compare using
21310         single element vector instructions.
21311         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
21312         (s390_branch_condition_mask): Generate CC masks for the new modes.
21313         * config/s390/s390.md (v0, vf, vd): New mode attributes.
21314         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
21315         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
21316         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
21317         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
21318         (*extend<DSF:mode><BFP:mode>2): New insn definition.
21319         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
21320         (extend<DSF:mode><BFP:mode>2): Turn into expander.
21321         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
21322         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
21323         (sqrt<mode>2): Add vector instruction.
21324
21325 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21326
21327         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
21328         constraints.
21329         * config/s390/predicates.md (const0_operand, constm1_operand)
21330         (constable_operand): Accept vector operands.
21331         * config/s390/s390-modes.def: Add supported vector modes.
21332         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
21333         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
21334         (s390_bytemask_vector_p, s390_expand_vec_strlen)
21335         (s390_expand_vec_compare, s390_expand_vcond)
21336         (s390_expand_vec_init): Add prototypes.
21337         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
21338         (s390_vector_mode_supported_p): New function.
21339         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
21340         (s390_contiguous_bitmask_vector_p): New function.
21341         (s390_bytemask_vector_p): New function.
21342         (s390_split_ok_p): Vector regs don't work either.
21343         (regclass_map): Add VEC_REGS.
21344         (s390_legitimate_constant_p): Handle vector constants.
21345         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
21346         (legitimate_reload_vector_constant_p): New function.
21347         (s390_preferred_reload_class): Handle CONST_VECTOR.
21348         (s390_reload_symref_address):  Likewise.
21349         (s390_secondary_reload): Vector memory instructions only support
21350         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
21351         (s390_emit_ccraw_jump): New function.
21352         (s390_expand_vec_strlen): New function.
21353         (s390_expand_vec_compare): New function.
21354         (s390_expand_vcond): New function.
21355         (s390_expand_vec_init): New function.
21356         (s390_dwarf_frame_reg_mode): New function.
21357         (print_operand): Handle addresses with 'O' and 'R' constraints.
21358         (NR_C_MODES, constant_modes): Add vector modes.
21359         (s390_output_pool_entry): Handle vector constants.
21360         (s390_hard_regno_mode_ok): Handle vector registers.
21361         (s390_class_max_nregs): Likewise.
21362         (s390_cannot_change_mode_class): New function.
21363         (s390_invalid_arg_for_unprototyped_fn): New function.
21364         (s390_function_arg_vector): New function.
21365         (s390_function_arg_float): Remove size variable.
21366         (s390_pass_by_reference): Handle vector arguments.
21367         (s390_function_arg_advance): Likewise.
21368         (s390_function_arg): Likewise.
21369         (s390_return_in_memory): Vector values are returned in a VR if
21370         possible.
21371         (s390_function_and_libcall_value): Handle vector arguments.
21372         (s390_gimplify_va_arg): Likewise.
21373         (s390_call_saved_register_used): Consider the arguments named.
21374         (s390_conditional_register_usage): Disable v16-v31 for non-vec
21375         targets.
21376         (s390_preferred_simd_mode): New function.
21377         (s390_support_vector_misalignment): New function.
21378         (s390_vector_alignment): New function.
21379         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
21380         (TARGET_VECTOR_MODE_SUPPORTED_P)
21381         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
21382         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
21383         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
21384         (TARGET_VECTOR_ALIGNMENT): Define target macro.
21385         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
21386         (FIRST_PSEUDO_REGISTER): Increase value.
21387         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
21388         (VECTOR_REG_P): Define macros.
21389         (FIXED_REGISTERS, CALL_USED_REGISTERS)
21390         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
21391         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
21392         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
21393         Add vector registers.
21394         (CANNOT_CHANGE_MODE_CLASS): Call C function.
21395         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
21396         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
21397         memory.
21398         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
21399         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
21400         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
21401         (VR*_REGNUM): New constants.
21402         (ALL): New mode iterator.
21403         (INTALL): Remove mode iterator.
21404         Include vector.md.
21405         (movti): Implement TImode moves for VRs.
21406         Disable TImode splitter for VR targets.
21407         Implement splitting TImode GPR<->VR moves.
21408         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
21409         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
21410         reload<mode>_la_in, reload<mode>_la_out.
21411         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
21412         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
21413         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
21414         (mov<mode> SF SD): Prefer lder, lde for loading.
21415         Add lrl and strl instructions.
21416         Add vector instructions.
21417         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
21418         Call s390_expand_vec_strlen on z13.
21419         (*cc_to_int): Change predicate to nonimmediate_operand.
21420         (addti3): Rename to *addti3.  New expander.
21421         (subti3): Rename to *subti3.  New expander.
21422         * config/s390/vector.md: New file.
21423
21424 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21425
21426         * common/config/s390/s390-common.c (processor_flags_table): Add
21427         z13.
21428         * config.gcc: Add z13.
21429         * config/s390/s390-opts.h (enum processor_type): Add
21430         PROCESSOR_2964_Z13.
21431         * config/s390/s390.c (s390_adjust_priority): Check for
21432         PROCESSOR_2964_Z13.
21433         (s390_reorg): Likewise.
21434         (s390_sched_reorder): Likewise.
21435         (s390_sched_variable_issue): Likewise.
21436         (s390_loop_unroll_adjust): Likewise.
21437         (s390_option_override): Likewise. Default to -mvx when available.
21438         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
21439         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
21440         (TARGET_VX_ABI): Define macros.
21441         macros.
21442         (TARGET_DEFAULT): Add MASK_OPT_VX.
21443         * config/s390/s390.md ("cpu" attribute): Add z13.
21444         ("cpu_facility" attribute): Add vec.
21445         * config/s390/s390.opt (processor_type): Add z13.
21446         (mvx): New options.
21447         * doc/invoke.texi: Add z13 option for -march.
21448
21449 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21450
21451         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
21452         mode check to make sure that only scalar integer values are
21453         accepted.
21454
21455 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21456
21457         * tree.c (verify_type_variant): Fix #undef.
21458         (gimple_canonical_types_compatible_p): Move here from lto.c
21459         (verify_type): Verify TYPE_CANONICAL compatibility.
21460         * tree.h (gimple_canonical_types_compatible_p): Declare.
21461
21462 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21463
21464         PR middle-end/66199
21465         * tree.h (OMP_TEAMS_COMBINED): Define.
21466         * gimplify.c (enum gimplify_omp_var_data): Add
21467         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
21468         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
21469         (omp_notice_variable): Accept both ORT_TEAMS
21470         and ORT_COMBINED_TEAMS.  Don't recurse if
21471         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
21472         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
21473         GOVD_FIRSTPRIVATE.
21474         (omp_no_lastprivate): New function.
21475         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
21476         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
21477         notice_outer and set appropriate bits, otherwise make
21478         sure default(none) combined constructs won't complain.
21479         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
21480         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
21481         omp_no_lastprivate either remove the clause or turn it
21482         into OMP_CLAUSE_PRIVATE.
21483         (gimplify_omp_for): Fix up handling of implicit
21484         lastprivate or linear iterators.
21485         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
21486         ORT_COMBINED_TEAMS.
21487         * omp-low.c (lower_omp_for_lastprivate): For combined
21488         for simd use fd.loop.n2 from the for rather than simd.
21489
21490 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21491
21492         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
21493         instead of gen_rtx_raw_REG.
21494         (cris_expand_epilogue): Likewise.
21495         * config/microblaze/microblaze.c (microblaze_classify_address):
21496         Likewise.
21497         * config/sparc/sparc.md: Likewise.
21498
21499 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
21500
21501         * config/alpha/alpha.c (alpha_legitimize_reload_address)
21502         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
21503         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
21504         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
21505         Use CASE_CONST_SCALAR_INT.
21506         (print_operand) <case 'M'>: Use mode_width_operand to check the
21507         value of the constant.
21508         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
21509         * config/alpha/predicates.md (input_operand): Use general_operand
21510         instead of match_code as operand check.
21511         (symbolic_operand): Use match_code with subexpression digits.
21512         * config/alpha/constraints.md (Q): Ditto.
21513
21514 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21515
21516         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
21517
21518 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21519
21520         * config/s390/s390.c (s390_secondary_reload): Fix check for
21521         load/store relative.
21522
21523 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21524
21525         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
21526         alternative_mask to uint64_t.
21527
21528 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21529
21530         PR tree-optimization/66187
21531         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
21532         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
21533         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
21534
21535 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
21536
21537         * diagnostic.c (diagnostic_report_current_module): Strengthen
21538         local "new_map" from const line_map * to
21539         const line_map_ordinary *.
21540         * genmatch.c (error_cb): Likewise for local "map".
21541         (output_line_directive): Likewise for local "map".
21542         * input.c (expand_location_1): Likewise for local "map".
21543         Pass NULL rather than &map to
21544         linemap_unwind_to_first_non_reserved_loc, since the value is never
21545         read from there, and the value written back not read from here.
21546         (is_location_from_builtin_token): Strengthen local "map" from
21547         const line_map * to const line_map_ordinary *.
21548         (dump_location_info): Strengthen locals "map" from
21549         line_map *, one to const line_map_ordinary *, the other
21550         to const line_map_macro *.
21551         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
21552         const line_map * to const line_map_macro *.
21553         (maybe_unwind_expanded_macro_loc): Add a call to
21554         linemap_check_macro when writing to the "map" field of the
21555         loc_map_pair.
21556         Introduce local const line_map_ordinary * "ord_map", using it in
21557         place of "map" in the part of the function where we know we have
21558         an ordinary map.  Strengthen local "m" from const line_map * to
21559         const line_map_ordinary *.
21560
21561 2015-05-19  Nick Clifton  <nickc@redhat.com>
21562
21563         PR target/66156
21564         * config/msp430/msp430.md (zero_extendhisi2): Add support for
21565         separate source and destination registers.
21566
21567 2015-05-19  Richard Biener  <rguenther@suse.de>
21568
21569         PR tree-optimization/66165
21570         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
21571         for no load permutation.
21572
21573         PR tree-optimization/66185
21574         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
21575         when building the SLP node from scalars.
21576
21577 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21578             Tristan Gingold  <gingold@adacore.com>
21579
21580         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
21581         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
21582         (expand_stack_restore): Call record_new_stack_level.
21583         (expand_stack_save): Do not call do_pending_stack_adjust.
21584         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
21585         * calls.c (expand_call): Call record_new_stack_level for alloca.
21586         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
21587         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
21588         (update_sjlj_context): New global function.
21589         * except.h (update_sjlj_context): Declare.
21590         * explow.c (record_new_stack_level): New global function.
21591         (allocate_dynamic_stack_space): Call record_new_stack_level.
21592         * explow.h (record_new_stack_level): Declare.
21593         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
21594         * cfgrtl.c (duplicate_insn_chain): Likewise.
21595
21596 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21597
21598         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
21599         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
21600         STACK_GROWS_DOWNWARD as normal if.
21601         (expand_call): Likewise.
21602
21603 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
21604
21605         PR target/54236
21606         * config/sh/sh.md (*round_int_even): New insn_and_split and
21607         accompanying new unnamed split.
21608
21609 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21610
21611         * bitmap.c (bitmap_set_range): Handle count==1 specially.
21612         (bitmap_clear_range): Likewise.
21613         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
21614         bitmap_set_range unconditionally.
21615         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21616         * df-scan.c (df_mark_reg): Likewise.
21617         * haifa-sched.c (setup_ref_regs): Likewise.
21618         * sched-rgn.c (update_live_1): Likewise.
21619
21620 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21621
21622         * regs.h (END_HARD_REGNO): Delete.
21623         (END_REGNO): Move to...
21624         * rtl.h: ...here.
21625         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
21626         * caller-save.c (mark_set_regs): Likewise.
21627         * combine.c (move_deaths, distribute_notes): Likewise.
21628         * cse.c (invalidate, invalidate_for_call): Likewise.
21629         * df-scan.c (df_ref_record): Likewise.
21630         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
21631         (record_last_reg_set_info): Likewise.
21632         * reg-stack.c (convert_regs_exit): Likewise.
21633         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
21634         * resource.c (update_live_status): Likewise.
21635         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
21636
21637 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21638
21639         * rtl.h (reg_info): Add an nregs field.
21640         (REG_NREGS): Use it.
21641         (SET_REGNO_RAW): Delete.
21642         (set_regno_raw): New function.
21643         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
21644         (END_REGNO): Redefine in terms of REG_NREGS.
21645         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
21646         SET_REGNO_RAW.
21647         * emit-rtl.c (set_mode_and_regno): Likewise.
21648         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
21649         instead of SET_REGNO_RAW.
21650
21651 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21652
21653         * rtl.h (PUT_MODE_RAW): New macro.
21654         (PUT_REG_NOTE_KIND): Use it.
21655         (set_mode_and_regno): Declare.
21656         (gen_raw_REG): Change regno to "unsigned int".
21657         (gen_rtx_REG): Change "unsigned" to "unsigned int".
21658         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
21659         use set_mode_and_regno to change the mode of registers.
21660         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
21661         * emit-rtl.c (set_mode_and_regno): New function.
21662         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
21663         * caller-save.c (reg_save_code): Use set_mode_and_regno.
21664         * expr.c (init_expr_target): Likewise.
21665         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21666         * postreload.c (reload_cse_simplify_operands): Likewise.
21667
21668 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21669
21670         * caller-save.c (init_caller_save): Use word_mode and
21671         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
21672         * expr.c (init_expr_target): Likewise.
21673         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21674         * postreload.c (reload_cse_regs_1): Likewise.
21675
21676 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21677
21678         * rtl.def (REG): Change format to "r".
21679         * rtl.h (rtunion): Remove rt_reg.
21680         (reg_info): New structure.
21681         (rtx_def): Add reg field to main union.
21682         (X0REGATTR): Delete.
21683         (REG_CHECK): New macro.
21684         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
21685         * rtl.c (rtx_format): Document "r".
21686         (rtx_code_size): Handle REG specially.
21687         * gengenrtl.c (special_format): Return true for formats
21688         that include 'r'.
21689         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
21690         Deal with REG_ATTRS after the field loop.
21691         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
21692         * expmed.c (init_expmed): Call gen_raw_REG instead of
21693         gen_rtx_raw_REG.
21694         * expr.c (init_expr_target): Likewise.
21695         * regcprop.c (maybe_mode_change): Likewise.
21696         * varasm.c (make_decl_rtl): Likewise.
21697         * final.c (leaf_renumber_regs_insn): Return early after
21698         handling REGs.
21699         * genemit.c (gen_exp): Handle 'r' fields.
21700         * genpeep.c (match_rtx): Likewise.
21701         * gensupport.c (subst_pattern_match): Likewise.
21702         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
21703         (alter_constraints, subst_dup): Likewise.
21704         * read-rtl.c (read_rtx_code): Likewise.
21705         * print-rtl.c (print_rtx): Likewise.
21706         * genrecog.c (find_operand, find_matching_operand): Likewise.
21707         (validate_pattern, match_pattern_2): Likewise.
21708         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
21709         (rtx_test::regno_field): New function.
21710         (operator ==, safe_to_hoist_p, transition_parameter_type)
21711         (parameter_type_string, print_parameter_value)
21712         (print_nonbool_test, print_test): Handle new enum values.
21713         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
21714         * lra-constraints.c (operands_match_p): Likewise.
21715
21716 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21717
21718         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
21719         Change type of new_regno to unsigned int.
21720         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
21721         new_regno to unsigned int.
21722         (df_ref_change_reg_with_loc): Remove old_regno parameter.
21723         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
21724         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
21725         (SET_REGNO_RAW): Add space after ",".
21726
21727 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21728
21729         * rtl.h (REG_NREGS): New macro
21730         * alias.c (record_set): Use it.
21731         * cfgcleanup.c (mark_effect): Likewise.
21732         * combine.c (likely_spilled_retval_1): Likewise.
21733         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
21734         (move_deaths, distribute_notes): Likewise.
21735         * cselib.c (cselib_record_set): Likewise.
21736         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21737         * df-scan.c (df_mark_reg): Likewise.
21738         * dse.c (look_for_hardregs): Likewise.
21739         * dwarf2out.c (reg_loc_descriptor): Likewise.
21740         (multiple_reg_loc_descriptor): Likewise.
21741         * expr.c (write_complex_part, read_complex_part): Likewise.
21742         (emit_move_complex): Likewise.
21743         * haifa-sched.c (setup_ref_regs): Likewise.
21744         * ira-lives.c (mark_hard_reg_live): Likewise.
21745         * lra.c (lra_set_insn_recog_data): Likewise.
21746         * mode-switching.c (create_pre_exit): Likewise.
21747         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
21748         (reload_combine_recognize_pattern): Likewise.
21749         (reload_combine_note_use, move2add_record_mode): Likewise.
21750         (reload_cse_move2add): Likewise.
21751         * reg-stack.c (subst_stack_regs_pat): Likewise.
21752         * regcprop.c (kill_value, copy_value): Likewise.
21753         (copyprop_hardreg_forward_1): Likewise.
21754         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
21755         (build_def_use): Likewise.
21756         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
21757         (deps_analyze_insn): Likewise.
21758         * sched-rgn.c (check_live_1, update_live_1): Likewise.
21759         * sel-sched.c (count_occurrences_equiv): Likewise.
21760         * valtrack.c (dead_debug_insert_temp): Likewise.
21761
21762 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21763
21764         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
21765         * dse.c (note_add_store): Likewise.
21766         * ira-lives.c (mark_hard_reg_dead): Likewise.
21767         * loop-invariant.c (mark_reg_store): Likewise.
21768         (mark_reg_death): Likewise.
21769         * postreload.c (reload_combine): Likewise.
21770         (reload_combine_note_store): Likewise.
21771         (reload_combine_note_use): Likewise.
21772         * recog.c (peep2_reg_dead_p): Likewise.
21773
21774 2015-05-19  Alan Modra  <amodra@gmail.com>
21775
21776         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
21777         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
21778         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
21779         unused predicates.
21780         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
21781         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
21782         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
21783         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
21784
21785 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
21786
21787         * config/mips/mips.md (JOIN_MODE): New mode iterator.
21788         (join2_load_Store<JOIN_MODE:mode>): New pattern.
21789         (join2_loadhi): Likewise.
21790         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
21791         load-load and store-stores.
21792         * config/mips/mips.opt (mload-store-pairs): New option.
21793         (TARGET_LOAD_STORE_PAIRS): New macro.
21794         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
21795         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
21796         * config/mips/mips.c (mips_load_store_bonding_p): New function.
21797
21798 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
21799
21800         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
21801         explicit swaps.
21802         * dojump.c (do_compare_rtx_and_jump): Likewise.
21803         * expmed.c (emit_store_flag_1): Likewise.
21804         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
21805         * final.c (sprint_ul): Use std::reverse for reversing a string.
21806         * fold-const.c (extract_muldiv_1): Use std::swap.
21807         * genmodes.c (emit_mode_int_n): Likewise.
21808         * ifcvt.c (dead_or_predicable): Likewise.
21809         * ira-build.c (ira_merge_live_ranges): Likewise.
21810         (swap_allocno_copy_ends_if_necessary): Likewise.
21811         * ira.c (ira_setup_alts): Likewise.
21812         * loop-iv.c (iv_analyze_expr): Likewise.
21813         (implies_p): Likewise.
21814         (canon_condition): Likewise.
21815         * lra-constraints.c (swap_operands): Likewise.
21816         * lra-lives.c (lra_merge_live_ranges): Likewise.
21817         * omega.c (swap): Remove.
21818         (bswap): Remove.
21819         (omega_unprotect_1): Use std::swap.
21820         (omega_solve_geq): Likewise.
21821         * optabs.c (expand_binop_directly): Likewise.
21822         (expand_binop): Likewise.
21823         (emit_conditional_move): Likewise.
21824         (emit_conditional_add): Likewise.
21825         * postreload.c (reload_cse_simplify_operands): Likewise.
21826         * reg-stack.c (emit_swap_insn): Likewise.
21827         (swap_to_top): Likewise.
21828         (compare_for_stack_reg): Likewise.
21829         (subst_asm_stack_regs): Likewise.
21830         * reload.c (find_reloads): Likewise.
21831         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
21832         * sel-sched.c (invoke_reorder_hooks): Likewise.
21833         (create_block_for_bookkeeping): Likewise.
21834         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
21835         (lambda_matrix_right_hermite): Use std::swap.
21836         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
21837         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21838         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
21839         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
21840         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
21841         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
21842         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21843         * tree-vrp.c (compare_ranges): Likewise.
21844         * var-tracking.c (add_with_sets): Likewise.
21845         (vt_find_locations): Likewise.
21846
21847 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
21848
21849         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
21850         pie executables.
21851         (FBSD_ENDFILE_SPEC): Likewise.
21852         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
21853         config/freebsd-spec.h.
21854         (ENDFILE_SPEC): Likewise.
21855
21856 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
21857             Richard Henderson  <rth@redhat.com>
21858
21859         PR target/57032
21860         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
21861         Check for a memory location that is not a reference (using an AND)
21862         to an unaligned location here.
21863         * config/alpha/predicates.md (normal_memory_operand): Remove.
21864
21865 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
21866
21867         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
21868         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
21869
21870 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21871
21872         * config/mips/mips.c (micromips_globals): New variable.
21873         (mips_set_compression_mode): Save and reinitialize target-dependent
21874         state for microMIPS.
21875
21876 2015-05-18  Martin Liska  <mliska@suse.cz>
21877
21878         * dbgcnt.def: Add new counter.
21879         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
21880
21881 2015-05-18  Martin Liska  <mliska@suse.cz>
21882
21883         * dbgcnt.def: Sort counters.
21884         * opts.c (common_handle_option): Do not compile if
21885         -fdbg-cnt-list is enabled.
21886
21887 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21888
21889         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
21890         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
21891         address operator to va_list operand.
21892         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
21893         unconditionally.
21894         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
21895         operand.
21896         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
21897         * config/s390/s390.c (s390_gimplify_va_arg): Same.
21898         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
21899
21900 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21901
21902         * tree-ssa-tail-merge.c: Fix whitespace.
21903
21904 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
21905
21906         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
21907         cortex-a17, and cortex-a17.cortex-a7.
21908
21909 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
21910
21911         PR target/54236
21912         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
21913
21914 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
21915
21916         PR target/66174
21917         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
21918         QImode inner modes for TARGET_AVX512BW.  Force mask operand
21919         to a register for AVX512F modes.
21920
21921 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21922
21923         * toplev.c (emit_debug_global_declarations): Do not output debug info
21924         when doing slim LTO objects.
21925
21926 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21927
21928         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
21929         odr_types_equivalent_p): Declare.
21930         (odr_type_p): Use gcc_checking_assert.
21931         (type_in_anonymous_namespace_p) Declare.
21932         (type_with_linkage_p): Declare.
21933         * common.opt (Wlto-type-mismatch): New warning.
21934         * ipa-devirt.c (compound_type_base): New function.
21935         (odr_or_derived_type_p): New function.
21936         (odr_types_equivalent_p): New function.
21937         (add_type_duplicate): Simplify.
21938         (type_with_linkage_p): Add hack to prevent false positives on C types
21939         (type_in_anonymous_namespace_p): Likewise.
21940         * tree.c (need_assembler_name_p): Use type_with_linkage.
21941         * tree.h (type_in_anonymous_namespace_p): Remove.
21942         * doc/invoke.texi (-Wlto-type-mismatch): Document
21943
21944 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21945
21946         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
21947         (verify_type): Verify STRING_FLAG.
21948
21949 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21950
21951         PR fortran/44054
21952         * tree-pretty-print.c (percent_K_format): Replace locus pointer
21953         with accessor function.
21954         * tree-diagnostic.c (diagnostic_report_current_function): Use
21955         diagnostic_location function.
21956         (maybe_unwind_expanded_macro_loc): Likewise.
21957         (virt_loc_aware_diagnostic_finalizer): Likewise.
21958         (default_tree_printer): Replace locus pointer with accessor function.
21959         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
21960         (diagnostic_set_info_translated): Initialize second location.
21961         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
21962         (diagnostic_show_locus): Handle two locations. Call
21963         diagnostic_print_caret_line.
21964         (diagnostic_print_caret_line): New.
21965         (default_diagnostic_starter): Use diagnostic_location function.
21966         (diagnostic_report_diagnostic): Use diagnostic_location function.
21967         (verbatim): Do not set text.locus.
21968         * diagnostic.h (struct diagnostic_info): Remove location field.
21969         (struct diagnostic_context): Make caret_chars an array of two.
21970         (diagnostic_location): New inline.
21971         (diagnostic_expand_location): Handle two locations.
21972         (diagnostic_same_line): New inline.
21973         (diagnostic_print_caret_line): Declare.
21974         (CARET_LINE_MARGIN): New constant.
21975         * pretty-print.c (pp_printf): Do not set text.locus.
21976         (pp_verbatim): Do not set text.locus.
21977         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
21978         (struct text_info): Replace locus pointer with locations
21979         array. Add accessor functions.
21980
21981 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
21982             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21983
21984         PR target/65768
21985         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
21986         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
21987          large constants in register instead of splitting them.
21988
21989 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
21990
21991         PR target/66140
21992         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
21993         replacements in memory addresses.
21994         (get_unaligned_address): Ditto.
21995
21996 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
21997
21998         * config/ft32/*: New files for FT32 port.
21999         * doc/install.texi: Add FT32 information.
22000         * doc/invoke.texi: Add FT32 information.
22001         * doc/md.texi: Add FT32 information.
22002         * doc/contrib.texi: Self added.
22003
22004 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
22005
22006         PR tree-optimization/64454
22007         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
22008         (-1 - A -> ~A): Remove unnecessary condition.
22009
22010 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
22011
22012         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
22013         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
22014         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
22015
22016 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
22017
22018         * ipa-chkp.h (chkp_wrap_function): New.
22019         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
22020         (chkp_wrap_function_name): New.
22021         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
22022         to get wrapper name.
22023         * lto-cgraph.c: Include ipa-chkp.h.
22024         (input_cgraph_1): Avoid alias chain for wrappers.
22025
22026 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
22027
22028         PR middle-end/66134
22029         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
22030         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
22031
22032 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22033
22034         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
22035         (AARCH64_FL_SLOWMUL): Delete.
22036         (AARCH64_FL_CRC): Redefine to 1<<3.
22037         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
22038
22039 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22040
22041         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
22042         casting.
22043
22044 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
22045
22046         * config/alpha/alpha.md (extendqidi2): Use general_operand
22047         instead of some_operand for operand[1] predicate.
22048         (extendhidi2): Ditto.
22049         (cbranchdi4): Use general_operand instead of some_operand
22050         for operand[1] and operands[2] predicates.
22051         (cstoredi4): Ditto.
22052         * config/alpha/predicates.md (some_operand): Remove unused predicate.
22053         (some_ni_operand): Ditto.
22054
22055 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
22056
22057         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
22058         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
22059         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
22060         low part of the constant using alpha_emit_set_const_1.
22061         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
22062
22063 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
22064
22065         * varasm.c (output_constant_pool_1): Pass down alignment from
22066         constant pool entry's descriptor to output_constant_pool_2.
22067         (output_object_block): Add comment prior to call to
22068         output_constant_pool_1.
22069
22070 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
22071
22072         PR rtl-optimization/65862
22073         * target.def (ira_change_pseudo_allocno_class): New hook.
22074         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
22075         value of the hook.
22076         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
22077         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
22078         hook.
22079         * ira-costs.c (find_costs_and_classes): Call the hook and change
22080         classes when it is necessary.
22081         * doc/tm.texi: Update.
22082
22083 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
22084
22085         * config/i386/i386.md (sibcall_memory): Check that register with
22086         callee address is not also used as one of the arguments, instead
22087         of checking that it is not live after the sibcall.
22088         (sibcall_pop_memory): Ditto.
22089         (sibcall_value_memory): Ditto.
22090         (sibcall_value_pop_memory): Ditto.
22091
22092 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
22093
22094         * generic-match-head.c (types_match): Handle non-types.
22095         * gimple-match-head.c (types_match): Likewise.
22096         * match.pd: Remove unnecessary TREE_TYPE for types_match.
22097
22098 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
22099
22100         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
22101         (csneg3<mode>_insn): Enable expansion of pattern.
22102
22103 2015-05-14  Nick Clifton  <nickc@redhat.com>
22104
22105         * config/rl78/rl78.c (rl78_select_section): Select the correct
22106         default section based upon the category of the decl.
22107
22108 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22109
22110         PR rtl-optimization/30967
22111         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
22112         destination mode for the cost of scc patterns.
22113
22114 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22115
22116         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
22117         using SWIM248 mode iterator.
22118         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
22119         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
22120         for operand[2] constraint.
22121         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
22122
22123 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22124
22125         PR middle-end/66133
22126         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
22127         make sure it is never noreturn, even when the task body does not
22128         return.
22129         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
22130         right before GIMPLE_OMP_RETURN.
22131         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
22132         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
22133         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
22134
22135 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22136
22137         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
22138         * tree-ssa-math-opts.c: Include params.h
22139         (pow_synth_sqrt_info): New struct.
22140         (representable_as_half_series_p): New function.
22141         (get_fn_chain): Likewise.
22142         (print_nested_fn): Likewise.
22143         (dump_fractional_sqrt_sequence): Likewise.
22144         (dump_integer_part): Likewise.
22145         (expand_pow_as_sqrts): Likewise.
22146         (gimple_expand_builtin_pow): Use above to attempt to expand
22147         pow as series of square roots.  Removed now unused variables.
22148
22149 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22150
22151         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
22152         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
22153         Remove *p0 and *p1 arguments.  Rewrite function.
22154         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
22155         (alpha_split_const_mov): Update calls to alpha_extract_integer and
22156         alpha_emit_set_long_const.
22157         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
22158         (alpha_output_mi_thunk_osf): Ditto.
22159         * config/alpha/alpha.md (movti): Do not check operands[1]
22160         for CONST_DOUBLE.
22161
22162 2015-05-13  Richard Biener  <rguenther@suse.de>
22163
22164         PR tree-optimization/66129
22165         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
22166         commutative.
22167         (vect_schedule_slp_instance): Fix typo.
22168
22169 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
22170
22171         * common.opt (fdump-internal-locations): New option.
22172         * input.c: Include diagnostic-core.h.
22173         (get_end_location): New function.
22174         (write_digit): New function.
22175         (write_digit_row): New function.
22176         (dump_location_range): New function.
22177         (dump_labelled_location_range): New function.
22178         (dump_location_info): New function.
22179         * input.h (dump_location_info): New prototype.
22180         * toplev.c (compile_file): Handle flag_dump_locations.
22181
22182 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
22183
22184         * gimple-expr.h (is_gimple_constant): Reorder.
22185         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
22186
22187 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22188
22189         * combine.c (simplify_set): When generating a CC set, if the
22190         source already is in the correct mode, do not wrap it in a
22191         compare.  Simplify the rest of that code.
22192
22193 2015-05-13  Richard Biener  <rguenther@suse.de>
22194
22195         PR tree-optimization/66123
22196         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
22197         a taken edge.
22198
22199 2015-05-13  Richard Biener  <rguenther@suse.de>
22200
22201         PR middle-end/66110
22202         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
22203         specially.
22204         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
22205
22206 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
22207
22208         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
22209         * aclocal.m4: Regenerated with automake-1.11.6.
22210
22211 2015-05-13  Tom de Vries  <tom@codesourcery.com>
22212
22213         PR tree-optimization/66010
22214         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
22215         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
22216         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
22217         and rval based on do_deref.
22218
22219 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22220
22221         PR target/65103
22222         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
22223         link time constants into adress expressions and therefore set
22224         their cost to 0.
22225
22226 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22227
22228         PR target/66112
22229         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
22230         Use SWI248 iterator instead of SWI.
22231         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
22232         Use eq_attr "alternative" "0" instead of match_test in
22233         length_immediate attribute computation.
22234         (*mulvhi4, *mulvhi4_1): New define_insns.
22235
22236         PR target/66112
22237         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
22238         SIGNED to get precision of non-negative value.
22239
22240 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22241
22242         PR target/66048
22243         * function.c (diddle_return_value_1): Process bounds first.
22244         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
22245         register.
22246
22247 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22248
22249         PR rtl-optimization/64616
22250         * loop-invariant.c (can_move_invariant_reg): New.
22251         (move_invariant_reg): Call above new function to decide whether
22252         instruction can just be moved, skipping creation of temporary
22253         register.
22254
22255 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22256
22257         PR target/pr66047.c
22258         * i386.c (ix86_function_sseregparm): Only return -1 if local function
22259         with implied regparm is called from -mno-sse function.
22260         (init_cumulative_args): Output error if ix86_function_sseregparm
22261         return -1 and SSE register would be needed.
22262         (function_arg_advance_32): Likewise.
22263         (function_arg_32): Likewise.
22264         * i386.h (ix86_args): Add decl field.
22265
22266 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22267
22268         PR ipa/65873
22269         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
22270         inlines across optimization boundary.
22271
22272 2015-05-12  Jason Merrill  <jason@redhat.com>
22273
22274         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
22275         string literal and macro name.
22276
22277 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
22278
22279         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
22280         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
22281         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
22282
22283 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22284
22285         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
22286         (-Wmisleading-indentation): New option.
22287         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
22288
22289 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
22290
22291         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
22292         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
22293         (alpha_extract_integer): Ditto.
22294         (alpha_legitimate_constant_p): Ditto.
22295         (alpha_split_tmode_pair): Ditto.
22296         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
22297         (alpha_expand_mov): Ditto.
22298         (print_operand): Remove handling of 'H' modifier.
22299         <case 'm'>: Remove CONST_DOUBLE handling.
22300         (summarize_insn): Handle CONST_WIDE_INT.
22301         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
22302         (anddi3): Ditto.
22303         (movti): Handle CONST_WIDE_INT.
22304         * config/alpha/constraints.md ('H'): Remove constraint definition.
22305         ('G'): Do not match MODE_FLOAT class.
22306         * config/alpha/predicates.md (const0_operand): Also match
22307         const_wide_int.
22308         (non_add_const_operand): Ditto.
22309         (non_zero_const_operand): Ditto.
22310         (some_operand): Ditto.
22311         (input_operand): Ditto.  Handle CONST_WIDE_INT.
22312         (and_operand): Do not match const_double.
22313         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
22314
22315 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
22316
22317         PR target/65697
22318         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
22319         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
22320         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
22321         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
22322         is_mm_seq_cst, is_mm_sync): New accessor functions.
22323         * builtins.c (expand_builtin_sync_operation,
22324         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
22325         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
22326         (get_memmodel,  expand_builtin_atomic_compare_exchange,
22327         expand_builtin_atomic_load, expand_builtin_atomic_store,
22328         expand_builtin_atomic_clear): Use new accessor routines.
22329         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
22330         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
22331         (maybe_emit_sync_lock_test_and_set): Use new accessors and
22332         MEMMODEL_SYNC_ACQUIRE.
22333         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
22334         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
22335         expand_atomic_store): Use new accessors.
22336         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
22337         * tsan.c (instrument_builtin_call): Update check for memory model beyond
22338         final enum to use MEMMODEL_LAST.
22339         * c-family/c-common.c: Use new accessor for memmodel_base.
22340         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
22341         accessors.
22342         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
22343         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
22344         mem_thread_fence, *dmb): Likewise.
22345         * config/alpha/alpha.c (alpha_split_compare_and_swap,
22346         alpha_split_compare_and_swap_12): Likewise.
22347         * config/arm/arm.c (arm_expand_compare_and_swap,
22348         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
22349         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
22350         atomic_loaddi): Likewise.
22351         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
22352         Likewise.
22353         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
22354         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
22355         use new accessors.
22356         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
22357         atomic_store<mode>, atomic_compare_and_swap<mode>,
22358         atomic_exchange<mode>): Use new accessors.
22359         * config/mips/mips.c (mips_process_sync_loop): Likewise.
22360         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
22361         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
22362         rs6000_post_atomic_barrier): Add new cases.
22363         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
22364         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
22365         (atomic_load<mode>): Add new cases and use new accessors.
22366         (store_quadpti): Add new cases.
22367         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
22368         accessors.
22369         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
22370         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
22371         model, not 8.
22372
22373 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22374
22375         * ipa-devirt.c (type_with_linkage_p): New function.
22376         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
22377         type has linkage.
22378         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
22379         (can_be_name_hashed_p): Simplify.
22380         (hash_odr_name): Check that type has linkage before checking if it is
22381         anonymous.
22382         (types_same_for_odr): Likewise.
22383         (odr_name_hasher::equal): Likewise.
22384         (odr_subtypes_equivalent_p): Likewise.
22385         (warn_types_mismatch): Likewise.
22386         (get_odr_type): Likewise.
22387         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
22388         * ipa-utils.h (odr_type_p): Move offline.
22389         * tree.c (need_assembler_name_p): Fix handling of types
22390         without linkages.
22391         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
22392
22393 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22394
22395         * timevar.c (timevar_enable): Delete in favor of...
22396         (g_timer): New global.
22397         (struct timevar_def): Move to timevar.h inside class timer.
22398         (struct timevar_stack_def): Likewise.
22399         (timevars): Delete global in favor of field "m_timevars" within
22400         class timer in timevar.h
22401         (stack): Likewise, in favor of field "m_stack".
22402         (unused_stack_instances): Likewise, in favor of field
22403         "m_unused_stack_instances".
22404         (start_time): Likewise, in favor of field "m_start_time".
22405         (get_time): Eliminate check for timevar_enable.
22406         (timer::timer): New function, built from part of timevar_init.
22407         (timevar_init): Rewrite idempotency test from using
22408         "timevar_enable" bool to using dynamic allocation of "g_timer".
22409         Move rest of implementation into timer's constructor.
22410         (timevar_push_1): Rename to...
22411         (timer::push): ...this, adding "m_" prefixes to variables that
22412         are now fields of timer.
22413         (timevar_pop_1): Likewise, rename to...
22414         (timer::pop): ...this, and add "m_" prefixes.
22415         (timevar_start): Replace test for "timevar_enable" with one for
22416         "g_timer", and move bulk of implementation to...
22417         (timer::start): ...here, adding "m_" prefixes.
22418         (timevar_stop): Likewise, from here...
22419         (timer::stop): ...to here.
22420         (timevar_cond_start): Likewise, from here...
22421         (timer::cond_start): ...to here.
22422         (timevar_cond_stop): Likewise, from here...
22423         (timer::cond_stop): ...to here.
22424         (validate_phases): Rename to...
22425         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
22426         locals "total" and "tv" const.
22427         (timevar_print): Rename to...
22428         (timer::print): ...this, and add "m_" prefixes.  Make locals
22429         "total" and "tv" const.  Eliminate test for timevar_enable.
22430         * timevar.h (timevar_enable): Eliminate.
22431         (g_timer): New declaration.
22432         (timevar_push_1): Eliminate.
22433         (timevar_pop_1): Eliminate.
22434         (timevar_print): Eliminate.
22435         (class timer): New class.
22436         (timevar_push): Rewrite to use g_timer.
22437         (timevar_pop): Likewise.
22438         * toplev.c (toplev::~toplev): Likewise.
22439
22440 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
22441
22442         * arm-protos.h (arm_sched_autopref): Delete.
22443         (tune_params): Re-organize, use enums for flag values.
22444         (FUSE_OPS): New macro.
22445         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
22446         (ARM_PREFETCH_BENEFICIAL): Likewise.
22447         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
22448         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22449         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
22450         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
22451         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
22452         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
22453         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
22454         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
22455         format.
22456         (arm_option_override, thumb2_reorg, arm_print_tune_info)
22457         (aarch_macro_fusion_pair_p): Update uses of current_tune.
22458         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
22459
22460 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
22461
22462         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
22463         "break".
22464
22465 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
22466             Sandra Loosemore <sandra@codesourcery.com>
22467
22468         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
22469         value.
22470         (REG_CLASS_NAMES): Add "IJMP_REGS".
22471         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
22472         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
22473         use new "c" register constraint.
22474         * config/nios2/constraint.md (c): New register constraint
22475         corresponding to IJMP_REGS.
22476
22477 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22478
22479         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
22480         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
22481         define_splits): Delete, revamp, transmogrify into ...
22482         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22483         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22484         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22485         New.
22486
22487 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22488
22489         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
22490         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
22491
22492 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22493
22494         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
22495         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
22496         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
22497         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
22498         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
22499         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
22500         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
22501         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
22502         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
22503         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
22504         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
22505         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
22506         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
22507         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
22508         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
22509         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
22510         and 30 corresponding splitters): Delete.
22511
22512 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22513
22514         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
22515         zero_extract.
22516
22517 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22518
22519         * combine.c (recog_for_combine_1): New function, factored out
22520         from recog_for_combine.
22521         (change_zero_ext): New function.
22522         (recog_for_combine): If recog fails, try again with the pattern
22523         modified by change_zero_ext; if that still fails, restore the
22524         pattern.
22525
22526 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22527
22528         * combine.c (get_undo_marker): New function.
22529         (undo_to_marker): New function, largely factored out from ...
22530         (undo_all): ... this.  Adjust.
22531
22532 2015-05-12  Richard Biener  <rguenther@suse.de>
22533
22534         PR tree-optimization/66101
22535         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
22536         fixup if we turn a loop exit edge to a fallthru edge.
22537
22538 2015-05-12  Richard Biener  <rguenther@suse.de>
22539
22540         PR tree-optimization/37021
22541         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
22542         (SLP_TREE_TWO_OPERATORS): New define.
22543         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
22544         SLP_TREE_TWO_OPERATORS.
22545         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
22546         SLP node.
22547         (vect_build_slp_tree): Adjust.
22548         (vect_analyze_slp_cost_1): Likewise.
22549         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
22550         emitting two vector stmts and mixing the results.
22551
22552 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22553
22554         * call.c (print_z_candidates): Remove dead code.
22555
22556 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22557
22558         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
22559         and zEC12_simple_fp.
22560         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
22561         to 1.
22562
22563 2015-05-12  Tom de Vries  <tom@codesourcery.com>
22564
22565         PR tree-optimization/66010
22566         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
22567         ifn_va_arg.
22568         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
22569         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
22570         va_lists are passed, and remove corresponding handling.
22571         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
22572         do_deref argument to ifn_va_arg.
22573         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
22574         ifn_va_arg.
22575
22576 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22577
22578         PR target/65955
22579         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
22580         REG before taking its REGNO.
22581
22582 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22583
22584         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
22585         rsp->sign_bit_copies and rsp->nonzero_bits into ...
22586         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
22587         present to get more accurate information about the number of sign bit
22588         copies and non zero bits.
22589
22590 2015-05-12  Richard Biener  <rguenther@suse.de>
22591
22592         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
22593         do not allow unrolling.
22594
22595 2015-05-11  Richard Henderson  <rth@redhat.com>
22596
22597         * config/i386/i386-modes.def (CCP): New.
22598         * config/i386/i386.c (put_condition_code): Handle it.
22599         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
22600
22601 2015-05-11  Richard Henderson  <rth@redhat.com>
22602
22603         * target.def (md_asm_clobbers): Replace with...
22604         (md_asm_adjust): this.
22605         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
22606         (TARGET_MD_ASM_ADJUST): New.
22607         * tm.texi: Rebuild.
22608         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
22609         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
22610         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
22611
22612         * cfgexpand.c (check_operand_nalternatives): Accept vector of
22613         constraints instead of lists of outputs and inputs.
22614         (expand_asm_stmt): Save and restore input_location around the
22615         body of the function.  Move asm data into vectors instead of
22616         building tree lists.  Generate cleanup sequences as needed,
22617         rather than waiting til the end.  Use new md_asm_adjust hook.
22618
22619         * config/vxworks.c: Include vec.h before target.h.
22620         * gimple.c: Likewise.
22621         * incpath.c: Likewise.
22622         * mode-switching.c: Likewise.
22623
22624         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
22625         (cris_md_asm_adjust): this.
22626         (TARGET_MD_ASM_CLOBBERS): Remove.
22627         (TARGET_MD_ASM_ADJUST): New.
22628         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
22629         (ix86_md_asm_adjust): this.
22630         (TARGET_MD_ASM_CLOBBERS): Remove.
22631         (TARGET_MD_ASM_ADJUST): New.
22632         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
22633         (mn10300_md_asm_adjust): this.
22634         (TARGET_MD_ASM_CLOBBERS): Remove.
22635         (TARGET_MD_ASM_ADJUST): New.
22636         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
22637         (rs6000_md_asm_adjust): this.
22638         (TARGET_MD_ASM_CLOBBERS): Remove.
22639         (TARGET_MD_ASM_ADJUST): New.
22640         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
22641         (visium_md_asm_adjust): this.
22642         (TARGET_MD_ASM_CLOBBERS): Remove.
22643         (TARGET_MD_ASM_ADJUST): New.
22644
22645 2015-05-11  Richard Henderson  <rth@redhat.com>
22646
22647         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
22648         if noutputs is zero.
22649         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
22650
22651         * cfgexpand.c (expand_asm_operands): Merge into...
22652         (expand_asm_stmt): ... here.
22653
22654         * cfgexpand.c (expand_asm_operands): Don't call
22655         resolve_asm_operand_names.
22656         * stmt.c (resolve_asm_operand_names): Clarify block comment.
22657
22658 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
22659
22660         * dwarf2out.c (gen_member_die): Sanity check that we access
22661         TYPE_MAIN_VARIANT for TYPE_METHODS.
22662         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
22663         checking TYPE_METHODS.
22664         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
22665         if non-null.
22666         (build_distinct_type_copy): Clear TYPE_METHODS.
22667         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
22668         (verify_type): Allow TYPE_METHODS to be error_mark_node.
22669         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
22670
22671 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
22672
22673         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
22674         (emit_pattern_before_setloc): Likewise.
22675
22676 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22677
22678         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
22679         for define_peephole2s.
22680         (get_peephole2_pattern): New function.
22681         (main): Use it.  Call validate_pattern.
22682
22683 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22684
22685         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
22686         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
22687         (Last callee saved reg is different for AVR_TINY architecture)
22688
22689 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22690
22691         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
22692         when looking for memory references.
22693
22694 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22695
22696         PR target/65753
22697         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
22698         via function pointers.
22699
22700 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22701
22702         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
22703         indirect call by forcing address into a pseudo with -fno-plt.
22704         * common.opt (flag_plt): New option.
22705         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
22706         ([-fno-plt]): Document.
22707
22708 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
22709
22710         PR bootstrap/66105
22711         * config/rs6000/option-defaults.h: Add space between string literal
22712         and macro name.
22713
22714 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22715
22716         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
22717         accross ARM targets.
22718
22719 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22720
22721         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
22722         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
22723
22724 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22725
22726         PR rtl-optimization/66076
22727         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
22728         Don't grow the heap array if it is already big enough from a
22729         previous iteration.
22730
22731 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22732
22733         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
22734         (is_called_in_ARM_mode): Remove.
22735         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
22736         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
22737         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
22738          arm_declare_function_name.
22739
22740 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22741
22742         * config/arm/arm.c (arm_option_override): Reoganized and split into :
22743         (arm_option_params_internal); New function.
22744         (arm_option_check_internal): New function.
22745         (arm_option_override_internal): New function.
22746         (thumb_code, thumb1_code): Remove.
22747         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
22748         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
22749         (thumb_code, thumb1_code): Remove.
22750         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
22751
22752 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22753
22754         * config/alpha/alpha.c (alpha_emit_set_const_1)
22755         (alpha_emit_set_long_const, alpha_extract_integer)
22756         (alpha_legitimate_constant_p, alpha_split_const_mov)
22757         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
22758         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22759         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
22760         HOST_WIDE_INT_1U.
22761         * config/alpha/predicates.md (mode_mask_operand): Do not match
22762         const_double RTX.
22763         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22764         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
22765         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
22766         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22767         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
22768
22769 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
22770
22771         PR target/65780
22772         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
22773         default_binds_local_p_2.
22774         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
22775         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
22776
22777 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22778
22779         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
22780
22781 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22782
22783         Patch by Richard Biener
22784         * coverage.c (coverage_obj_init): Delay building of type variant
22785         until the type is finished.
22786
22787 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22788
22789         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
22790         mismatch between C and C++ type; compoare correctly ARG_TYPES
22791         for non-prototypes and output correctly parameter index for METHOD_TYPE.
22792         (odr_types_equivalent_p): Fix wording of warning about attributes;
22793         it is OK to match prototype and non-prototype.
22794
22795 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22796
22797         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
22798         TYPE_ARG_TYPES list.
22799         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
22800         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
22801
22802 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22803
22804         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
22805         * tree.h (is_lang_specific): Constify.
22806
22807 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
22808
22809         PR tree-optimization/64454
22810         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
22811         Rewrite.
22812
22813 2015-05-08  Jason Merrill  <jason@redhat.com>
22814
22815         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
22816         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
22817         config/darwin.h, config/darwin9.h, config/elfos.h,
22818         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
22819         config/microblaze/microblaze.h, config/mips/mips.h,
22820         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
22821         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
22822         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
22823         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
22824         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
22825         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
22826         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
22827         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
22828         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
22829         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
22830         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
22831         between string literal and macro name.
22832
22833 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22834
22835         * jump.c: Change argument types to rtx_insn *.
22836         * rtl.h: Adjust.
22837
22838 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22839
22840         * lra-constraints.c: Change argument type to rtx_insn *.
22841
22842 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22843
22844         * df-problems.c: Change argument type to rtx_insn *.
22845
22846 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22847
22848         * combine.c: Change argument type to rtx_insn *.
22849
22850 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22851
22852         * rtl.h: Adjust.
22853         * rtlanal.c: Change argument type to rtx_insn *.
22854
22855 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22856
22857         * sched-deps.c: Change argument types to rtx_insn *.
22858         * sched-int.h: Adjust.
22859
22860 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22861
22862         * dwarf2cfi.c: Change argument type to rtx_insn *.
22863
22864 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22865
22866         * ira.c (decrease_live_ranges_number): Changetype of local
22867         variable to rtx_insn *.
22868         * recog.c: Change argument types to rtx_insn *.
22869         * recog.h: Adjust.
22870
22871 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22872
22873         * reorg.c: Change argument types to rtx_insn *.
22874
22875 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22876
22877         * ira-color.c: Change argument types to rtx_insn *.
22878         * lra-eliminations.c: Likewise.
22879         * ira.h: Adjust.
22880
22881 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22882
22883         * gcse.c: Change argument types to rtx_insn *.
22884
22885 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22886
22887         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
22888
22889 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22890
22891         * emit-rtl.c (emit_debug_insn_before): Change argument type to
22892         rtx_insn *.
22893         * rtl.h: Adjust.
22894
22895 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22896
22897         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
22898         * rtl.h: Adjust.
22899
22900 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22901
22902         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
22903         * rtl.h: Adjust.
22904
22905 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22906
22907         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
22908         * rtl.h: Adjust.
22909
22910 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22911
22912         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
22913         * rtl.h: Adjust.
22914
22915 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22916
22917         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
22918         to rtx_insn *.
22919         * rtl.h: Adjust.
22920
22921 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22922
22923         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
22924         to rtx_insn *.
22925         * rtl.h: Likewise.
22926
22927 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22928
22929         * except.c (can_nonlocal_goto): Change type of argument to
22930         rtx_insn *.
22931         * rtl.h: Adjust.
22932
22933 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22934
22935         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
22936         * rtl.h: Adjust.
22937
22938 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22939
22940         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
22941         * cfgrtl.c (can_delete_label_p): Adjust.
22942         * rtl.h: likewise.
22943
22944 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22945
22946         * reorg.c (stop_search_p): Change argument to rtx_insn *.
22947
22948 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22949
22950         * except.c (make_reg_eh_region_note): Change argument to
22951         rtx_insn *.
22952         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
22953         * except.h: Adjust.
22954
22955 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22956
22957         * mode-switching.c (commit_mode_sets): Change type of local
22958         variable from rtx to rtx_insn *.
22959
22960 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
22961
22962         * doc/install.texi (--enable-languages): Add missing jit and lto info.
22963         Add ^ to grep command.
22964         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
22965         arg to last gimple_simplify declaration.  Add missing gimple_build
22966         declaration for built-in function case with four tree args.
22967
22968 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22969             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22970
22971         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
22972         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
22973         (GNU_USER_DYNAMIC_LINKERN32): Update.
22974
22975 2015-05-08  Richard Biener  <rguenther@suse.de>
22976
22977         PR tree-optimization/66036
22978         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
22979         Handle strided group loads.
22980         (vect_verify_datarefs_alignment): Likewise.
22981         (vect_enhance_data_refs_alignment): Likewise.
22982         (vect_analyze_group_access): Likewise.
22983         (vect_analyze_data_ref_access): Likewise.
22984         (vect_analyze_data_ref_accesses): Likewise.
22985         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
22986         (vectorizable_load): Likewise.
22987
22988 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
22989
22990         * config/rs6000/rs6000.md: Require operand inequality in one
22991         of the peepholes.
22992
22993 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
22994             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22995
22996         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
22997         from (set ...).
22998         * config/rx/rx.md (movdi, movdf): Likewise.
22999         Likewise for define_peephole2s.
23000
23001 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23002
23003         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
23004         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
23005         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
23006         vtst_u64): Rewrite using gcc vector extensions.
23007
23008 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23009
23010         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
23011         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
23012
23013 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
23014
23015         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
23016
23017 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23018
23019         * config/glibc-stdint.h (OPTION_MUSL): Define.
23020         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
23021         Change the definition based on OPTION_MUSL for 64 bit targets.
23022         * config/linux.h (OPTION_MUSL): Redefine.
23023         * config/alpha/linux.h (OPTION_MUSL): Redefine.
23024         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
23025         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
23026
23027 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
23028             Szabolcs Nagy  <szabolcs.nagy@arm.com>
23029
23030         * config.gcc (LIBC_MUSL): New tm_defines macro.
23031         * config/linux.h (OPTION_MUSL): Define.
23032         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
23033         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
23034         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
23035         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
23036         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
23037         * config/linux.opt (mmusl): New option.
23038         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
23039         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
23040         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
23041         * configure: Regenerate.
23042
23043 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
23044             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
23045
23046         PR target/48904
23047         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
23048         * config/i386/knetbsd-gnu64.h: New file.
23049
23050 2015-05-08  Marek Polacek  <polacek@redhat.com>
23051
23052         PR c/64918
23053         * doc/invoke.texi: Document -Woverride-init-side-effects.
23054
23055 2015-05-07  Marek Polacek  <polacek@redhat.com>
23056
23057         PR c/65179
23058         * doc/invoke.texi: Document -Wshift-negative-value.
23059
23060 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
23061
23062         * gcov-tool.c (do_merge): Refactore to remove int ret.
23063         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
23064         !type == FUNC to type != FUNC.
23065         * reload.h (struct target_reload): Changee to type of
23066         x_spill_indirect_levels from bool to unsigned char.
23067
23068 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
23069
23070         * rtl.h (always_void_p): New function.
23071         * gengenrtl.c (always_void_p): Likewise.
23072         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
23073         with code foo are always VOIDmode.
23074         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
23075         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
23076         compare-elim.c, config/aarch64/aarch64.c,
23077         config/aarch64/aarch64.md, config/alpha/alpha.c,
23078         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
23079         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
23080         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
23081         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
23082         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
23083         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
23084         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
23085         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
23086         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
23087         config/ia64/vect.md, config/iq2000/iq2000.c,
23088         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
23089         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
23090         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
23091         config/mep/mep.c, config/microblaze/microblaze.c,
23092         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
23093         config/mn10300/mn10300.c, config/msp430/msp430.c,
23094         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
23095         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
23096         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
23097         config/rs6000/altivec.md, config/rs6000/rs6000.c,
23098         config/rs6000/rs6000.md, config/rs6000/vector.md,
23099         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
23100         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
23101         config/sh/sh.md, config/sh/sh_treg_combine.cc,
23102         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
23103         config/spu/spu.md, config/stormy16/stormy16.c,
23104         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
23105         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
23106         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
23107         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
23108         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
23109         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
23110         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
23111         var-tracking.c: Update calls accordingly.
23112
23113 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
23114
23115         PR middle-end/192
23116         PR middle-end/54303
23117         * varasm.c (function_mergeable_rodata_prefix): New function.
23118         (mergeable_string_section): Use it.
23119         (mergeable_constant_section): Use it.
23120
23121 2015-05-07  Jeff Law  <law@redhat.com>
23122
23123         PR target/39726
23124         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23125         simplifier to narrow arithmetic.
23126         * generic-match-head.c: (types_match, single_use): New functions.
23127         * gimple-match-head.c: (types_match, single_use): New functions.
23128
23129 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
23130
23131         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
23132         rtx type.
23133
23134 2015-05-07  Richard Biener  <rguenther@suse.de>
23135
23136         PR tree-optimization/66002
23137         * passes.def: Schedule another pass_merge_phi after ifcombine, right
23138         before phiopt.
23139
23140 2015-05-07  Marek Polacek  <polacek@redhat.com>
23141             Martin Uecker  <uecker@eecs.berkeley.edu>
23142
23143         * doc/invoke.texi: Document -fsanitize=bounds-strict.
23144         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
23145         into SANITIZE_NONDEFAULT.
23146         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
23147
23148 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
23149
23150         PR target/66015
23151         * config/alpha/alpha.c (alpha_override_options_after_change): New.
23152         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
23153         (alpha_override_options): Move align_loops, align_jumps and
23154         align_functions handling into alpha_override_options_after_change.
23155
23156 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
23157             Chris Jones  <chrisj@nvidia.com>
23158             Joshua Conner  <jconner@nvidia.com>
23159
23160         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
23161         linking of crtfastmath.o.
23162         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
23163
23164 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23165
23166         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
23167         (cstore<mode>4_unsigned_imm): New expander.
23168         (cstore<mode>4): Remove empty constraint strings.  Use the new
23169         expanders.
23170
23171 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
23172
23173         PR target/64208
23174         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
23175         alternatives.
23176
23177 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23178
23179         * config/aarch64/geniterators.sh: Use standard BRE in sed.
23180
23181 2015-05-06  Alan Modra  <amodra@gmail.com>
23182
23183         PR target/66033
23184         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
23185         (UNSPEC_NOP): Define.
23186         (reload_vsx_from_gpr<mode>): Add missing DONE.
23187         (reload_gpr_from_vsx<mode>): Likewise.
23188         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
23189         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
23190
23191 2015-05-06  Christian Bruel  <christian.bruel@st.com>
23192
23193         PR target/66015
23194         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
23195         align_jumps, align_functions into aarch64_override_options_after_change.
23196
23197 2015-05-06  Richard Biener  <rguenther@suse.de>
23198
23199         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
23200         vect_transform_slp_perm_load to check if we support a permutation
23201         for basic-block vectorization.
23202
23203 2015-05-06  Nick Clifton  <nickc@redhat.com>
23204
23205         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
23206         used, even if it is not being used as a frame pointer.
23207
23208 2015-05-05  Jason Merrill  <jason@redhat.com>
23209
23210         * dwarf2out.c (gen_member_die): Don't emit anything for an
23211         anonymous class constructor.
23212
23213 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
23214
23215         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
23216         that it reflects the block structure.
23217         (afdo_propagate_edge): Likewise.
23218         (afdo_calculate_branch_prob): Likewise.
23219         (afdo_annotate_cfg): Likewise.
23220         * cfgcleanup.c (equal_different_set_p): Likewise.
23221         (try_crossjump_to_edge): Likewise.
23222         * cgraph.c (cgraph_node::verify_node): Likewise.
23223         * cgraphunit.c (expand_all_functions): Likewise.
23224         * config/i386/i386.c (ix86_expand_copysign): Likewise.
23225         (exact_dependency_1): Likewise.
23226         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
23227         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
23228         * gensupport.c (process_define_subst): Likewise.
23229         * lto-wrapper.c (merge_and_complain): Likewise.
23230         * tree-if-conv.c (if_convertible_bb_p): Likewise.
23231         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
23232         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
23233         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
23234         * tree-vect-loop.c (vectorizable_reduction): Likewise.
23235         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
23236         * tree-vect-stmts.c (vectorizable_shift): Likewise.
23237         * tree-vrp.c (vrp_finalize): Likewise.
23238         * tree.c (variably_modified_type_p): Likewise.
23239
23240 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
23241
23242         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
23243         on darwin12 and later.
23244         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
23245         file to pass -rdynamic on darwin12 and later.
23246         * config/darwin.opt (rdynamic): Add.
23247
23248 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23249
23250         * doc/extend.texi (C Extensions): Update menu for moved Variable
23251         Attributes and Type Attributes sections.
23252
23253 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23254
23255         PR target/65990
23256         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
23257         if rep_8byte stringop strategy was specified for 32-bit target.
23258
23259 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
23260
23261         PR target/65915
23262         * config/i386/i386.md (vector convert to float spltiter): Check for
23263         xmm16+, when splitting scalar float conversion.
23264         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
23265
23266 2015-05-05  Nick Clifton  <nickc@redhat.com>
23267
23268         * config/msp430/msp430-opts.h (enum msp430_regions): New.
23269         * config/msp430/msp430.c (msp430_override_options): Complain if
23270         -mcode-region or -mdata-region is used on a non MSP430X.
23271         (msp430_section_attr): New function.  Checks lower, upper and
23272         either attributes.
23273         (msp430_attribute_table): Add lower, upper and either.
23274         (gen_prefix): New function.  Generates a prefix for a section
23275         name.
23276         (msp430_select_section): New function - handles the choice of
23277         section for an object.  Takes into account memory region
23278         attributes and options.
23279         (msp430_function_section): Use gen_prefix.
23280         (TARGET_SECTION_TYPE_FLAGS): Define.
23281         (msp430_section_type_flags): New function.
23282         (TARGET_ASM_UNIQUE_SECTION): Define.
23283         (msp430_unique_section): New function.
23284         (msp430_output_aligned_decl_common): New function.
23285         (msp430_do_not_relax_short_jumps): New function.
23286         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
23287         Define.
23288         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
23289         * config/msp430/msp430-protos.h
23290         (msp430_do_not_relax_short_jumps): New prototype.
23291         (msp430_output_aligned_decl_common): New prototype.
23292         * config/msp430/msp430.md (length): New attribute.
23293         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
23294         then use a long code sequence for short jumps.
23295         * config/msp430/msp430.opt (mcode-region): New.
23296         (mdata-region): New.
23297         * doc/invoke.texi: Document new options.
23298         * doc/extend.texi: Document new attributes.
23299
23300 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23301
23302         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
23303         (tune_params): Add field branch_costs.
23304         (aarch64_branch_cost): Declare.
23305         * gcc/config/aarch64.c (generic_branch_cost): New.
23306         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
23307         (cortexa53_tunings): Likewise.
23308         (cortexa57_tunings): Likewise.
23309         (thunderx_tunings): Likewise.
23310         (xgene1_tunings): Likewise.
23311         (aarch64_branch_cost): Define.
23312         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
23313
23314 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23315
23316         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
23317         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
23318         * config/i386/i386.md: Ditto.
23319         * config/i386/winnt.c: Ditto.
23320
23321 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23322
23323         * doc/extend.texi (__atomic Builtins): Move implementation details
23324         to the end of the description, rewrite opening paragraphs, state
23325         difference with __sync builtins, state C11/C++11 assumptions,
23326         weaken itemized descriptions, add explanation of memory model
23327         behaviour, expand description of compare-exchange, simplify text.
23328
23329 2015-05-05  Renlin Li  <renlin.li@arm.com>
23330
23331         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
23332
23333 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
23334
23335         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
23336         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23337         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
23338         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23339         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
23340         * configure: Regenerate.
23341         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
23342         * doc/install.texi (aarch64*-*-*): Document new
23343         --enable-fix-cortex-a53-843419 option.
23344         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
23345         and -mno-fix-cortex-a53-843419 options.
23346
23347 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23348
23349         PR target/65871
23350         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
23351
23352 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
23353
23354         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
23355         fix overactive TYPE_MIN_VALUE check and add FIXME for type
23356         compatibility problems.
23357
23358 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23359
23360         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
23361         constraints.
23362         (cbranchsi4_reg): New.
23363         * config/microblaze/microblaze.c
23364         (microblaze_expand_conditional_branch_reg): New.
23365         * config/microblaze/microblaze-protos.h
23366         (microblaze_expand_conditional_branch_reg): New prototype.
23367
23368 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23369
23370         * config/microblaze/microblaze.md (peephole2): New.
23371
23372 2015-05-04  Jeff Law  <law@redhat.com>
23373
23374         Revert:
23375         2015-05-04  Jeff Law  <law@redhat.com>
23376
23377         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23378         simplifier to narrow arithmetic.
23379         * generic-match-head.c: (types_match, single_use): New functions.
23380         * gimple-match-head.c: (types_match, single_use): New functions.
23381
23382 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
23383
23384         PR target/65987
23385         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
23386         (split_branches): Likewise.
23387
23388 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
23389
23390         * common.opt (fdelete-null-pointer-checks): Init to -1.
23391         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
23392         override flag_delete_null_pointer_checks default.
23393         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
23394         behavior re address zero.  Better document target-specific behavior.
23395         (-fisolate-errneous-paths-dereference): Mention relationship to
23396         -fdelete-null-pointer-checks.
23397
23398 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23399
23400         PR tree-optimization/65984
23401         * ubsan.c: Include tree-cfg.h.
23402         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
23403         stmt_could_throw_p test, rename can_throw variable to ends_bb.
23404
23405 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23406
23407         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
23408         to CONST_DOUBLE_P predicate.
23409         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
23410         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
23411         allow only operands that satisfy standard_sse_constant_p predicate.
23412         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
23413         to CONST_DOUBLE_P predicate.
23414
23415 2015-05-04  Jeff Law  <law@redhat.com>
23416
23417         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23418         simplifier to narrow arithmetic.
23419         * generic-match-head.c: (types_match, single_use): New functions.
23420         * gimple-match-head.c: (types_match, single_use): New functions.
23421
23422 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
23423
23424         * config/arm/arm.c: Restore bootstrap.
23425
23426 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23427
23428         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
23429         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
23430         as CONST_WIDE_INT, not CONST_DOUBLE.
23431         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
23432         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
23433         (ix86_find_base_term): Do not check for CONST_DOUBLE.
23434         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
23435         (ix86_build_signbit_mask): Rewrite using wide ints.
23436         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
23437         (ix86_rtx_costs): Handle CONST_WIDE_INT.
23438         (find_constant): Ditto.
23439         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
23440         using gen_int_mode.
23441         * config/i386/predicates.md (x86_64_immediate_operand)
23442         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23443         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
23444         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23445         (const0_operand): Also match const_wide_int.
23446         (constm1_operand): Ditto.
23447         (const1_operand): Ditto.
23448
23449 2015-05-04  Richard Biener  <rguenther@suse.de>
23450
23451         PR tree-optimization/65965
23452         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
23453         store groups at gaps.
23454
23455 2015-05-04  Richard Biener  <rguenther@suse.de>
23456
23457         PR tree-optimization/65935
23458         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
23459         then make sure to apply that swapping to the IL.
23460
23461 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23462
23463         * Makefile.in (PATCHLEVEL_c): New variable.
23464         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
23465         expand the same way as if DEVPHASE_c was non-empty.
23466
23467 2015-05-04  Kai Tietz  <ktietz@redhat.com>
23468
23469         PR target/65559
23470         * lto-wrapper.c (run_gcc): Open filename
23471         in binary-mode.
23472
23473 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
23474
23475         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
23476         sections up in file, to immediately after the Function Attributes
23477         section.
23478
23479 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
23480
23481         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
23482
23483 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23484
23485         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
23486         (insert_partition_copy_on_edge): Adjust.
23487         (insert_rtx_to_part_on_edge): Likewise.
23488         (insert_part_to_rtx_on_edge): Likewise.
23489
23490 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23491
23492         * function.c (set_return_jump_label): Change type of argument to
23493         rtx_insn *.
23494         * function.h (set_return_jump_label): Adjust.
23495
23496 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23497
23498         * reload.h (struct reg_equivs_t): Change type of init to
23499         rtx_insn *.
23500         * ira.c (fix_reg_equiv_init): Adjust.
23501         * reload1.c (eliminate_regs_1): Likewise.
23502         (init_eliminable_invariants): Likewise.
23503
23504 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23505
23506         * cselib.c (fp_setter_insn): Take a rtx_insn *.
23507         * cselib.h (fp_setter_insn): Adjust.
23508
23509 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23510
23511         * recog.c (struct validate_replace_src_data): Change type of
23512         insn field to rtx_insn *.
23513         (validate_replace_src_group): Change type of argument to rtx_insn *.
23514         * recog.h (validate_replace_src_group): Adjust.
23515
23516 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23517
23518         * haifa-sched.c: Change the type of some variables to rtx_insn *.
23519         * sched-deps.c: Likewise.
23520         * sched-int.h: Likewise.
23521         * sched-rgn.c: Likewise.
23522         * sel-sched.c: Likewise.
23523
23524 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23525
23526         to rtx_insn *.
23527         * config/i386/i386.c: Change the type of some arguments to
23528         rtx_insn *.
23529         * config/arm/arm.c: Likewise.
23530
23531 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23532
23533         * lra-constraints.c: Change type of some arguments to rtx_insn *.
23534
23535 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23536
23537         * regcprop.c (kill_autoinc_value): Change type of argument to
23538         rtx_insn *.
23539
23540 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23541
23542         * genrecog.c (print_subroutine): Adjust.
23543         * recog.c (get_bool_attr_mask_uncached): Likewise.
23544         * recog.h (struct recog_data_d): Change the type of insn to
23545         rtx_insn *.
23546
23547 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23548
23549         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
23550
23551 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23552
23553         * df-problems.c (df_set_note): Change type of argument to
23554         rtx_insn *.
23555
23556 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23557
23558         * builtins.c (expand_builtin_trap): Change type of local
23559         variable to rtx_insn *.
23560         (add_sched_insns_for_speculation): Likewise.
23561         (ix86_emit_save_regs): Likewise.
23562         (get_scratch_register_on_entry): Likewise.
23563         (ix86_emit_restore_reg_using_pop): Likewise.
23564         (ix86_emit_leave): Likewise.
23565         (ix86_emit_restore_regs_using_mov): Likewise.
23566         (ix86_expand_epilogue): Likewise.
23567         Likewise.
23568         (rl78_alloc_physical_registers_umul): Likewise.
23569         * cselib.c (discard_useless_locs): Likewise.
23570         (cselib_invalidate_regno): Likewise.
23571         (cselib_invalidate_mem): Likewise.
23572         * function.c (expand_function_start): Likewise.
23573         (emit_use_return_register_into_block): Likewise.
23574         * gcse.c: Likewise.
23575         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
23576         * ifcvt.c (noce_get_alt_condition): Likewise.
23577         * loop-doloop.c (doloop_condition_get): Likewise.
23578         * lra-constraints.c (inherit_in_ebb): Likewise.
23579         * modulo-sched.c (sms_schedule_by_order): Likewise.
23580         * recog.c (next_insn_tests_no_inequality): Likewise.
23581         * reorg.c (emit_delay_sequence): Likewise.
23582         (update_reg_dead_notes): Likewise.
23583         (fix_reg_dead_note): Likewise.
23584         (fill_slots_from_thread): Likewise.
23585         (delete_computation): Likewise.
23586
23587 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
23588
23589         * doc/extend.texi (Variable Attributes): Add menu and proper
23590         @nodes to subsections.  Move Microsoft Windows attributes to
23591         their own subsection.
23592         (Type Attributes): Reorganize introduction to remove duplicate
23593         list of attributes.  Add menu and proper @nodes to subsections.
23594         Alphabetize the main table of common attributes.
23595
23596 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
23597
23598         * match.pd: New simplification patterns.
23599         (x + (x & 1))  -> ((x + 1) & ~1)
23600         (x & ~(x & y)) -> ((x & ~y))
23601         (x | ~(x | y)) -> ((x | ~y))
23602
23603 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23604
23605         * target.def (attribute_table): Mention that struct attribute_spec
23606         is defined in tree-core.h rather than tree.h
23607         * doc/tm.texi: Regenerate.
23608
23609 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
23610
23611         * genrecog.c (test): Rename to rtx_test.  Update rest of file
23612         accordingly.
23613
23614 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
23615
23616         PR translation/65959
23617         * params.h (DEFPARAM): Rename msgid to nocmsgid.
23618
23619 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23620
23621         * gcc/config/aarch64/aarch64-protos.h (tune_params):
23622         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
23623         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
23624         Return value depending on target.
23625         (generic_tunings): Initialize new target settings.
23626         (cortexa53_tunings): Likewise.
23627         (cortexa57_tunings): Likewise.
23628         (thunderx_tunings): Likewise.
23629         (xgene1_tunings): Likewise.
23630
23631 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23632
23633         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
23634         Make Cortex-A53 shift costs more accurate.
23635
23636 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23637
23638         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
23639         UNSIGNED_FLOAT.
23640
23641 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23642
23643         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
23644         Calculate cost of op0 and op1 in PLUS and MINUS cases.
23645
23646 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23647
23648         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23649         Add cost of op0 in the compare-with-fpzero case.
23650
23651 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
23652
23653         * builtins.c (fold_builtin_1): Remove spurious second
23654         semicolon.
23655         * cgraph.h (symtab_node::get_availability): Likewise.
23656         * opts.c (common_handle_option): Remove spurious second semicolon.
23657         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23658         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
23659
23660 2015-04-30  Caroline Tice  <cmtice@google.com>
23661
23662         PR gcov-profile/65929
23663         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
23664         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
23665         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
23666         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
23667         * doc/tm.texi: Regenerate.
23668         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
23669         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
23670         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
23671         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
23672
23673 2015-04-30  Marek Polacek  <polacek@redhat.com>
23674
23675         * varasm.c (handle_cache_entry): Fix logic.
23676
23677 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23678
23679         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
23680         (*extrsi5_insn_uxtw_alt): Likewise.
23681         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
23682         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
23683         operations.
23684
23685 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23686
23687         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
23688         fabd in ABS case.
23689
23690 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23691
23692         * config/aarch64/aarch64.md
23693         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
23694         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
23695         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
23696         appropriately.  Handle alternative EON form.
23697
23698 2015-04-30  Renlin Li  <renlin.li@arm.com>
23699
23700         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
23701         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
23702
23703 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23704
23705         PR ipa/65873
23706         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
23707         -fstrict-aliasing boundaries.
23708
23709 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23710
23711         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
23712         and [SU]MNEGL patterns.
23713
23714 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23715
23716         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
23717         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
23718         combined arithmetic-shift ops.  Properly handle all shift and extend
23719         operations that can occur in combination with PLUS/MINUS.
23720         Rename maybe_fma to compound_p.
23721         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
23722         arithmetic and shift operations.
23723
23724 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23725
23726         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
23727         rather than arith_shift cost when costing ADD/MINUS of an
23728         extended value.
23729
23730 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23731
23732         PR lto/65948
23733         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
23734         to itself.
23735
23736 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
23737
23738         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
23739         are for the same position.
23740
23741 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
23742
23743         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
23744         vectorize_loops.
23745         (vectorize_loops): Use it.
23746
23747 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23748
23749         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
23750         for aggregate types.
23751         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
23752         type to be non_ODR.
23753         * tree.c (need_assembler_name_p): Compute mangled name for
23754         non-fundamental types and integer types.
23755
23756 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
23757
23758         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
23759         manual swaps.
23760         * expr.c (expand_expr_real_2): Likewise.
23761
23762 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23763
23764         * tree.c (build_common_builtin_nodes): Do not build
23765         __builtin_alloca_with_align as equivalent of library alloca.
23766
23767 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23768
23769         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
23770         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
23771         bugus variants.
23772         * tree.c: Include print-tree.h and ipa-utils.h
23773         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
23774         (free_lang_data_in_cgraph): Call verify_type.
23775         (verify_type_variant): New function.
23776         (verify_type): New function.
23777         * tree.h (verify_type): Declare.
23778
23779 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
23780
23781         * config/mips/mips-cpus.def: (mips4): Change default processor
23782         from PROCESSOR_R8000 to PROCESSOR_R10000.
23783
23784 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
23785
23786         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
23787         la/jalr instead of jal.
23788
23789 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
23790
23791         PR target/65871
23792         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
23793         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
23794         (setcc+movzbl peephole2): Check also clobbered reg.
23795         (setcc+andl peephole2): Ditto.
23796
23797 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23798
23799         PR libgomp/65099
23800         * config/nvptx/mkoffload.c (target_ilp32): New variable.
23801         (main): Set it depending on "-foffload-abi=[...]".
23802         (compile_native, main): Use it to pass "-m32" or "-m64" to the
23803         compiler.
23804
23805 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23806
23807         PR target/65770
23808         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
23809         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
23810         Flip lane index back at assembly time for bigendian.
23811
23812 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23813
23814         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
23815         * gimplify.c (gimplify_omp_workshare): Use it.
23816
23817 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23818
23819         * Makefile.in (build/genrecog.o): Depend on inchash.h.
23820         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
23821         build/inchash.o
23822         * genrecog.c: Rewrite most of the code except for the third page.
23823
23824 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23825
23826         * inchash.h, inchash.c: Include bconfig.h for build objects.
23827         * Makefile.in (build/inchash.o): New rule.
23828
23829 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
23830
23831         PR target/65924
23832         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
23833         number in type attribute expression.
23834
23835 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23836
23837         * loop-iv.c (canon_condition): Generalize to all types of integer
23838         constant.
23839
23840 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
23841
23842         * gimple-walk.c: Prune duplicate or unneeded includes.
23843         (walk_gimple_asm): Only call parse_input_constraint or
23844         parse_output_constraint if their findings are used.
23845         Honour parse_input_constraint and parse_output_constraint
23846         result.
23847
23848 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23849
23850         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
23851
23852 2015-04-29  Tom de Vries  <tom@codesourcery.com>
23853
23854         PR tree-optimization/65893
23855         * passes.def (pass_all_optimizations): Move pass_stdarg to after
23856         pass_dce.
23857
23858 2015-04-29  Richard Biener  <rguenther@suse.de>
23859
23860         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
23861         compute GROUP_SIZE for basic-block SLP.
23862         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
23863         take into account gaps.
23864         (vect_get_mask_element): Properly reject references to previous
23865         vectors.
23866         (vect_transform_slp_perm_load): Likewise.
23867
23868 2015-04-29  Christian Bruel  <christian.bruel@st.com>
23869
23870         PR target/64835
23871         * config/i386/i386.c (ix86_default_align): New function.
23872         (ix86_override_options_after_change): Call ix86_default_align.
23873         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
23874         (ix86_override_options_after_change): New function.
23875
23876 2015-04-28  Jeff Law  <law@redhat.com>
23877
23878         * tree-ssa-dom.c (record_equality); Fix comment typos.
23879
23880 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23881
23882         PR tree-optimization/65887
23883         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
23884
23885 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
23886
23887         * doc/extend.texi (Declaring Attributes of Functions): Split into
23888         subsections by target.  Alphabetize the table of common attributes.
23889         Rewrite some of the introductory text to reflect the new structure.
23890         Update some cross-references to point to the new subsections.
23891         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
23892         duplicate copies in the discussion of function, label, and type
23893         attributes.
23894
23895 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
23896
23897         PR bootstrap/65910
23898         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
23899
23900 2015-04-28  Jason Merrill  <jason@redhat.com>
23901
23902         PR c++/65734
23903         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
23904         (finalize_type_size): Respect TYPE_USER_ALIGN.
23905         (layout_type) [ARRAY_TYPE]: Likewise.
23906
23907 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
23908
23909         * config/arm/arm.md (*arm_movt): Fix type attribute.
23910         (*cmpsi_shiftsi): Likewise.
23911         (*cmpsi_shiftsi_swp): Likewise.
23912         (*movsicc_insn): Likewise.
23913         (*cond_move): Likewise.
23914         (*if_plus_move): Likewise.
23915         (*if_move_plus): Likewise.
23916         (*if_arith_move): Likewise.
23917         (*if_move_arith): Likewise.
23918         (*if_shift_move): Likewise.
23919         (*if_move_shift): Likewise.
23920         (*arm_movtas_ze): Likewise.
23921         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
23922         redundancy and type attribute.
23923         (*thumb2_movsi_insn): Fix type attribute.
23924         (*thumb2_addsi_short): Likewise.
23925         (thumb2_addsi3_compare0): Likewise.
23926         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
23927         attributes accordingly.
23928
23929 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
23930
23931         PR other/65911
23932         * function.c (pad_to_arg_alignment): Add parentheses.
23933
23934 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
23935
23936         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
23937         libgcc/config/frv/elf-lib.h.
23938
23939 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23940
23941         * tree-call-cdce.c: Fix example in header comment.
23942
23943 2015-04-28  Richard Biener  <rguenther@suse.de>
23944
23945         PR tree-optimization/62283
23946         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
23947         fails fatally and we are vectorizing a basic-block simply
23948         cause the child to be constructed piecewise.
23949         (vect_analyze_slp_cost_1): Adjust.
23950         (vect_detect_hybrid_slp_stmts): Likewise.
23951         (vect_bb_slp_scalar_cost): Likewise.
23952         (vect_get_constant_vectors): For piecewise constructed
23953         constants place them after the last def.
23954         (vect_get_slp_defs): Adjust.
23955         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
23956         externals for basic-block vectorization.
23957
23958 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23959
23960         PR target/63503
23961         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
23962         aarch64-*-*.
23963         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
23964         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
23965         (AARCH64_TUNE_FMA_STEERING): Likewise.
23966         * config/aarch64/aarch64-cores.def: Set
23967         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
23968         FMUL/FMADD instructions.
23969         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
23970         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
23971         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
23972         * config/aarch64/cortex-a57-fma-steering.h: New file.
23973         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23974
23975 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
23976
23977         * gensupport.c (std_preds): Add missing codes to address_operand entry.
23978
23979 2015-04-28  Richard Biener  <rguenther@suse.de>
23980
23981         PR tree-optimization/65851
23982         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
23983         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
23984         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
23985         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
23986         (ccp_visit_phi_node): Adjust.
23987         (evaluate_stmt): For simplifications to SSA names return its
23988         lattice value if that isn't VARYING.  Return immediately when
23989         simplified to a constant.
23990         (visit_assignment): Adjust.
23991         (ccp_visit_stmt): Likewise.
23992
23993 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23994
23995         PR tree-optimization/65818
23996         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
23997         evaluated.
23998
23999 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24000
24001         * calls.c (save_fixed_argument_area): Don't check
24002         ARGS_GROW_DOWNWARD with the preprocessor.
24003         (restore_fixed_argument_area): Likewise.
24004         (mem_overlaps_already_clobbered_arg_p): Likewise.
24005         (check_sibcall_argument_overlap): Likewise.
24006         (expand_call): Likewise.
24007         (emit_library_call_value_1): Likewise.
24008         (store_one_arg): Likewise.
24009         * function.c (assign_parms): Likewise.
24010         (locate_and_pad_parm): Likewise.
24011         (pad_to_arg_alignment): Likewise.
24012         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
24013
24014 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24015
24016         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
24017         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
24018         * calls.c (save_fixed_argument_area): Don't chekc if
24019         ARGS_GROW_DOWNWARD is defined.
24020         (restore_fixed_argument_area): Likewise.
24021         (mem_overlaps_already_clobbered_arg_p): Likewise.
24022         (check_sibcall_argument_overlap): Likewise.
24023         (expand_call): Likewise.
24024         (emit_library_call_value_1): Likewise.
24025         (store_one_arg): Likewise.
24026         * function.c (assign_parms): Likewise.
24027         (locate_and_pad_parm): Likewise.
24028         (pad_to_arg_alignment): Likewise.
24029         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
24030
24031 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24032
24033         * defaults.h (gen_epilogue): New function.
24034         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
24035         defined.
24036         * cfgrtl.c (cfg_layout_finalize): Likewise.
24037         * df-scan.c: Likewise.
24038         * function.c (thread_prologue_and_epilogue_insns): Likewise.
24039         (reposition_prologue_and_epilogue_notes): Likewise.
24040         * reorg.c (find_end_label): Likewise.
24041         * toplev.c: Likewise.
24042
24043 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24044
24045         * bb-reorder.c (HAVE_return): Don't check if its undefined.
24046         * defaults.h (gen_simple_return): New function.
24047         (gen_simple_return): Likewise.
24048         (HAVE_return): Add default definition to false.
24049         (HAVE_simple_return): Likewise.
24050         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
24051         HAVE_return and HAVE_simple_return are defined.
24052         * function.c (gen_return_pattern): Likewise.
24053         (convert_jumps_to_returns): Likewise.
24054         (thread_prologue_and_epilogue_insns): Likewise.
24055         * reorg.c (find_end_label): Likewise.
24056         (dbr_schedule): Likewise.
24057         * shrink-wrap.c: Likewise.
24058         * shrink-wrap.h: Likewise.
24059
24060 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24061
24062         * defaults.h (EPILOGUE_USES): Add default definition of false.
24063         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
24064         * resource.c (init_resource_info): Likewise.
24065
24066 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24067
24068         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
24069         to false.
24070         * dwarf2out.c (field_byte_offset): REmove check if
24071         PCC_BITFIELD_TYPE_MATTERS is defined.
24072         * stor-layout.c (layout_decl): Likewise.
24073         (update_alignment_for_field): Likewise.
24074         (place_field): Likewise.
24075
24076 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24077
24078         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
24079         true.
24080         * regrename.c (check_new_reg_p): Remove check if
24081         HARD_REGNO_RENAME_OK is defined.
24082         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
24083
24084 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24085
24086         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
24087         * cse.c (fold_rtx): Likewise.
24088         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
24089         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
24090         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
24091         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
24092         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
24093         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
24094         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
24095         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
24096         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
24097         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
24098         * Likewise.
24099         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
24100         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
24101         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
24102         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
24103         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
24104         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
24105         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
24106         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
24107         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
24108         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
24109         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
24110         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
24111         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
24112         * doc/tm.texi: Regenerate.
24113         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
24114         either true or false.
24115
24116 2015-04-27  Jeff Law  <law@redhat.com>
24117
24118         PR tree-optimization/65217
24119         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
24120         of them has a single use, make sure it is the LHS of the implied
24121         copy.
24122
24123 2015-04-28  Alan Modra  <amodra@gmail.com>
24124
24125         PR target/65810
24126         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
24127         (offsettable_ok_by_alignment): Use minimum of decl and toc
24128         pointer alignment.  Replace dead code with assertion.
24129         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
24130         case if size exceeds toc pointer alignment.
24131         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
24132         (rs6000_emit_move): Likewise.
24133         * configure.ac: Add linker toc pointer alignment check.
24134         * configure: Regenerate.
24135         * config.in: Regenerate.
24136
24137 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
24138
24139         * config.gcc: Add h8300-*-linux.
24140         * config/h8300/linux.h: New.
24141         * config/h8300/t-linux: New.
24142         * config/h8300/h8300.c (h8300_option_override): Normal mode
24143         is not supported for h8300-*-linux.
24144         (h8300_file_start): Target priority change.
24145         (get_shift_alg): Likewise.
24146         (h8300_shift_need_scratch_p): Likewise.
24147         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
24148         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
24149
24150 2015-04-27  Caroline Tice  <cmtice@google.com>
24151
24152         * final.c (final_scan_insn):  Output cold_function_name as function
24153         type.
24154         * varasm.c (cold_function_name):  Make global.
24155         (assemble_start_function):  Re-set cold_function_name.
24156         (assemble_end_function): Output cold partition size.
24157         * varasm.h (cold_function_name):  Declare global.
24158
24159 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
24160
24161         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
24162         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
24163         constraint.
24164         (*movxi_internal_avx512f): Ditto.
24165         (define_split): Check for xmm16+, when splitting scalar float_extend.
24166         (*extendsfdf2_mixed): Use "v" constraint.
24167         (define_split): Check for xmm16+, when splitting scalar float_truncate.
24168         (*truncdfsf_fast_sse): Use "v" constraint.
24169         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
24170         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
24171         (define_peephole2): Check for xmm16+, when converting scalar
24172         float_truncate.
24173         (define_peephole2): Check for xmm16+, when converting scalar
24174         float_extend.
24175         (*fop_<mode>_comm_mixed): Use "v" constraint.
24176         (*fop_<mode>_comm_sse): Ditto.
24177         (*fop_<mode>_1_mixed): Ditto.
24178         (*sqrt<mode>2_sse): Ditto.
24179         (*ieee_s<ieee_maxmin><mode>3): Ditto.
24180
24181 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24182
24183         * combine.c (simplify_if_then_else): Use std::swap instead
24184         of manually swapping.
24185         (known_cond): Likewise.
24186         (simplify_comparison): Likewise.
24187
24188 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
24189
24190         PR target/64579
24191         * config/rs6000/htm.md: Remove all define_expands.
24192         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
24193         UNSPECV_HTM_TABORTWCI): Remove.
24194         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
24195         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
24196         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
24197         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
24198         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
24199         tabortwci_internal): Remove define_insns.
24200         (tabort<wd>c, tabort<wd>ci): New define_insns.
24201         (tabort): Use gpc_reg_operand.
24202         (tcheck): Remove operand.
24203         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
24204         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
24205         expected value.
24206         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
24207         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
24208         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
24209         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
24210         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
24211         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
24212         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
24213         (tcheck): Remove builtin argument.
24214         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
24215         not TARGET_64BIT.
24216         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
24217         tabortdc and tabortdci builtins when not in 64-bit mode.
24218         Modify code to handle the loss of the HTM define_expands.
24219         Emit code to copy the CR register to TARGET.
24220         (htm_init_builtins): Modify code to handle the loss of the HTM
24221         define_expands.
24222         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
24223         (RS6000_BTC_64BIT): Likewise.
24224         (RS6000_BTC_CR): New macro.
24225         * doc/extend.texi: Update documentation for htm builtins.
24226
24227 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24228
24229         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
24230         of manually swapping.
24231         (simplify_associative_operation): Likewise.
24232         (simplify_binary_operation): Likewise.
24233         (simplify_plus_minus): Likewise.
24234         (simplify_relational_operation): Likewise.
24235         (simplify_ternary_operation): Likewise.
24236
24237 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24238
24239         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
24240         (xs_hi_nonmemory_operand): Remove error.
24241         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
24242         general_operand rather than xs_hi_general_operand.
24243
24244 2015-04-27  Richard Biener  <rguenther@suse.de>
24245
24246         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
24247         (record_equivalences_from_stmt): Valueize rhs.
24248         (record_equality): Canonicalize x and y order via
24249         tree_swap_operands_p.  Do not swap operands for same loop depth.
24250
24251 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
24252
24253         PR target/65296
24254         PR target/65895
24255         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
24256         Add hint how to use own spec file.
24257
24258 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
24259
24260         PR tree-optimization/65875
24261         * tree-vrp.c (update_value_range): If in is_new case setting
24262         old_vr to VR_VARYING, also set new_vr to it.  Remove
24263         old_vr->type == VR_VARYING test.
24264         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
24265         SSA_PROP_INTERESTING if update_value_range returned true,
24266         but new range is VR_VARYING.
24267
24268 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24269
24270         * combine.c (sign_extend_short_imm): New.
24271         (set_nonzero_bits_and_sign_copies): Use above new function for sign
24272         extension of src short immediate.
24273         (reg_nonzero_bits_for_combine): Likewise for tem.
24274
24275 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24276
24277         * stor-layout.c (self_referential_component_ref_p): New predicate.
24278         (copy_self_referential_tree_r): Use it.
24279         (self_referential_size): Punt for simple operations directly involving
24280         self-referential component references.
24281         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
24282
24283 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24284
24285         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
24286
24287 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24288
24289         * vec.h (vec): Make splice arguments const.  Update definitions
24290         accordingly.
24291
24292 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
24293
24294         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
24295         alternatives.
24296
24297 2015-04-26  Tom de Vries  <tom@codesourcery.com>
24298
24299         PR tree-optimization/65826
24300         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
24301
24302 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
24303
24304         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
24305         (*madd3<mode>): Ditto.
24306         (*msub4<mode>): Ditto.
24307         (*msub3<mode>): Ditto.
24308         (*nmadd4<mode>): Ditto.
24309         (*nmadd3<mode>): Ditto.
24310         (*nmadd4<mode>_fastmath): Ditto.
24311         (*nmadd3<mode>_fastmath): Ditto.
24312         (*nmsub4<mode>): Ditto.
24313         (*nmsub3<mode>): Ditto.
24314         (*nmsub4<mode>_fastmath): Ditto.
24315         (*nmsub3<mode>_fastmath): Ditto.
24316
24317 2015-04-24  Jason Merrill  <jason@redhat.com>
24318
24319         PR c++/50800
24320         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
24321         down when building TYPE_CANONICAL.
24322         (build_pointer_type_for_mode): Likewise.
24323
24324 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
24325
24326         * genrecog.c (validate_pattern): Check matching constraint refers
24327         to a lower numbered operand.
24328
24329 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24330
24331         PR target/65849
24332         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
24333         save to independent variables use the Save attribute.  This will
24334         allow these options to be modified with the #pragma/attribute
24335         target support.
24336         (-mallow-movmisalign): Likewise.
24337         (-mallow-df-permute): Likewise.
24338         (-msched-groups): Likewise.
24339         (-malways-hint): Likewise.
24340         (-malign-branch-targets): Likewise.
24341         (-mvectorize-builtins): Likewise.
24342         (-msave-toc-indirect): Likewise.
24343
24344         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
24345         can be set via the #pragma/attribute target support.
24346         (rs6000_opt_vars): Likewise.
24347         (rs6000_inner_target_options): If VSX was set, also set
24348         -mno-avoid-indexed-addresses.
24349
24350 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24351
24352         * config/arm/iterators.md (shiftable_ops): Rename to...
24353         (SHIFTABLE_OPS): ... This.  Update use in comments.
24354         (ior_xor): Rename to...
24355         (IOR_XOR): ... This.
24356         (vqh_ops): Rename to...
24357         (VQH_OPS): ... This.
24358         (vqhs_ops): Rename to...
24359         (VQHS_OPS): ... This.
24360         (rshifts): Rename to...
24361         (RSHIFTS): ... This.
24362         (returns): Rename to...
24363         (RETURNS): ... This.
24364         * config/arm/arm.md: Update uses of the above.
24365         * config/arm/neon.md: Likewise.
24366
24367 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24368
24369         * config.host (case ${host}): Add aarch64*-*-linux case.
24370         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
24371         fields to all the cores.
24372         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
24373         Add MCPU_MTUNE_NATIVE_SPECS.
24374         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
24375         field to all extensions.
24376         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
24377         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
24378         Adjust definition of AARCH64_OPT_EXTENSION.
24379         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
24380         (MCPU_MTUNE_NATIVE_SPECS): Define.
24381         * config/aarch64/driver-aarch64.c: New file.
24382         * config/aarch64/x-arch64: New file.
24383         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
24384         -mtune and -march.
24385
24386 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24387             Wei Mi  <wmi@google.com>
24388
24389         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
24390         * config/i386/i386.c (extract_base_offset_in_addr): New function.
24391         (ix86_operands_ok_for_move_multiple): Ditto.
24392         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
24393         (movlpd/movhpd to movupd peephole2): Ditto.
24394
24395 2015-04-24  Marek Polacek  <polacek@redhat.com>
24396
24397         PR c/61534
24398         * input.h (from_macro_expansion_at): Define.
24399
24400         PR c/63357
24401         * doc/invoke.texi: Update description of -Wlogical-op.
24402
24403 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24404
24405         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
24406         ternary operator in fprintf and harmonize spacing.
24407
24408 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24409
24410         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
24411         Mark operand1 commutative.
24412
24413 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24414
24415         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
24416         input operands in memory.
24417         (*vec_concatv2si_sse4_1): Ditto.
24418         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
24419         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
24420         register_operand.
24421         (vec_extract_hi_v32hi): Ditto.
24422         (vec_extract_hi_v64hi): Ditto.
24423         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
24424
24425 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24426             Steven Bosscher <steven@gcc.gnu.org>
24427
24428         PR rtl-optimization/34503
24429         * cprop.c (cprop_reg_p): New.
24430         (hash_scan_set): Use above function to check if register can be
24431         propagated.
24432         (find_avail_set): Return up to two sets, one whose source is a
24433         register and one whose source is a constant.  Sets are returned in an
24434         array passed as parameter rather than as a return value.
24435         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
24436         sets returned by find_avail_set, starting with the one whose source is
24437         a constant. Use cprop_reg_p to check if register can be propagated.
24438         (do_local_cprop): Use cprop_reg_p to check if register can be
24439         propagated.
24440         (implicit_set_cond_p): Likewise.
24441
24442 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24443
24444         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
24445         (sem_function::equals): IGNORED_NODES parameter is now unused;
24446         update call of equals_private.
24447         (sem_function::equals_private): Do not call equals_wpa; skip
24448         gimple body matching if there is no body.
24449         (sem_function::init): Add logic to hash tthunk info.
24450         (sem_function::parse): Also parse thunks.
24451         * ipa-icf.h (equals_private): Update declaration.
24452
24453 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24454
24455         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
24456         asterisk from name so this can be generated directly.
24457         (*altivec_stvx_<mode>_internal): Likewise.
24458         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
24459         that this is never called during or after reload/lra.
24460         (rs6000_frame_related): Remove split_reg
24461         argument and logic that references it.
24462         (emit_frame_save): Remove last parameter from call to
24463         rs6000_frame_related.
24464         (rs6000_emit_prologue): Remove last parameter from eight calls to
24465         rs6000_frame_related.  Force generation of stvx instruction for
24466         Altivec register saves.  Remove split_reg handling, which is no
24467         longer needed.
24468         (rs6000_emit_epilogue):  Force generation of lvx instruction for
24469         Altivec register restores.
24470
24471 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24472
24473         * config/rs6000/rs6000.opt (mcrypto): Change option description to
24474         match category changes in ISA 2.07B.
24475
24476 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24477
24478         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
24479         iterators.
24480         (cmp_op, cmp_type): New code attributes.
24481         (NEON_VCMP, NEON_VACMP): New int iterators.
24482         (cmp_op_unsp): New int attribute.
24483         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
24484         (neon_vceq<mode>): Delete.
24485         (neon_vc<cmp_op><mode>_insn): New pattern.
24486         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
24487         (neon_vcgeu<mode>): Delete.
24488         (neon_vcle<mode>): Likewise.
24489         (neon_vclt<mode>: Likewise.
24490         (neon_vcage<mode>): Likewise.
24491         (neon_vcagt<mode>): Likewise.
24492         (neon_vca<cmp_op><mode>): New define_expand.
24493         (neon_vca<cmp_op><mode>_insn): New pattern.
24494         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
24495
24496 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24497
24498         * tree.h (attribute_value_equal): Declare.
24499         * tree.c (attribute_value_equal): Export.
24500
24501 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24502
24503         * ipa-icf.c (sem_item::compare_attributes): New function.
24504         (sem_item::compare_referenced_symbol_properties): Compare variable
24505         attributes.
24506         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
24507         (sem_function::param_used_p): New function.
24508         (sem_function::equals_wpa): Fix attribute comparsion; match
24509         parameter type codes; do not compare paremter flags when
24510         they are not used; compare edge flags; compare indirect calls.
24511         (sem_item::update_hash_by_addr_refs): Hash reference type.
24512         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
24513         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
24514         reference use type.
24515         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
24516         * ipa-icf.h (compare_attributes, param_used_p): Declare.
24517
24518 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24519
24520         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
24521         cleanup.
24522         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
24523         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
24524         (sem_item::compare_referenced_symbol_properties): New.
24525         (sem_item::hash_referenced_symbol_properties): New.
24526         (sem_item::compare_cgraph_references): Rename to ...
24527         (sem_item::compare_symbol_references): ... this one; use
24528         compare_referenced_symbol_properties.
24529         (sem_function::equals_wpa): Do not compare
24530         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
24531         DECL_IS_OPERATOR_NEW; compare pointer sizes.
24532         (sem_item::update_hash_by_addr_refs): Call
24533         hash_referenced_symbol_properties.
24534         (sem_item::update_hash_by_local_refs): Cleanup.
24535         (sem_function::merge): Do not mix up symbol properties.
24536         (sem_variable::equals_wpa): Use compare_symbol_references.
24537         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
24538         (sem_item::hash_referenced_symbol_properties): New.
24539         (sem_item::compare_symbol_references): New.
24540         (sem_item::compare_cgraph_references): Remove.
24541
24542 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
24543
24544         PR target/26702
24545         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
24546         Emit size of local.
24547
24548 2015-04-23  Nick Clifton  <nickc@redhat.com>
24549
24550         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
24551         ATTRIBUTE_UNUSED to x parameter.
24552         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
24553
24554 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24555
24556         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
24557         TARGET_CRYPTO to TARGET_P8_VECTOR>
24558         (crypto_vpermxor_<mode>): Likewise.
24559         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
24560         (BU_CRYPTO_3A): Likewise.
24561         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
24562         (BU_CRYPTO_OVERLOAD_3A): New #define.
24563         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
24564         (VPMSUMH): Likewise.
24565         (VPMSUMW): Likewise.
24566         (VPMSUMD): Likewise.
24567         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
24568         (VPERMXOR_V4SI): Likewise.
24569         (VPERMXOR_V8HI): Likewise.
24570         (VPERMXOR_V16QI): Likewise.
24571         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
24572         BU_CRYPTO_OVERLOAD_2A.
24573         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
24574         BU_CRYPTO_OVERLOAD_3A.
24575         * config/rs6000/rs6000.opt (mcrypto): Change description of
24576         option.
24577
24578 2015-04-23  Richard Biener  <rguenther@suse.de>
24579
24580         * passes.def: Remove copy propagation passes run directly after CCP.
24581         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
24582         SSA names.
24583         (ccp_visit_phi_node): Rework to handle first executable edge
24584         specially.
24585
24586 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
24587
24588         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24589         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24590         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24591         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
24592         (thumb_legimitimize_reload_address): Remove.
24593         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
24594         Remove.
24595         (thumb_legimitimize_reload_address): Remove.
24596
24597 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24598
24599         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
24600
24601 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24602
24603         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
24604         MAX_LDM_STM_OPS.
24605         (store_multiple): Likewise.
24606
24607 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24608
24609         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
24610         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
24611         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
24612         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
24613         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
24614         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
24615         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
24616         Specify issue_rate value.
24617         (arm_issue_rate): Look up issue rate from tuning structs. Remove
24618         large switch statement.
24619         (arm_marvell_pj4_tune): New struct.
24620         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
24621         struct.
24622
24623 2015-04-23  Richard Biener  <rguenther@suse.de>
24624
24625         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
24626         (vect_find_last_store_in_slp_instance): Rename to ...
24627         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
24628         (vect_analyze_slp_cost_1): Use vector_load for constant defs
24629         and vec_construct for external defs when estimating prologue cost.
24630         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
24631         Compute costs here only when vectorizing loops.
24632         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
24633         have been determined.
24634         (vect_schedule_slp_instance): Simplify vectorized code placement
24635         and prepare for in-BB external defs.
24636         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
24637         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
24638         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
24639         guard.
24640         (vect_model_load_cost): Likewise.
24641         (vectorizable_store): Instead add it here.
24642         (vectorizable_load): Likewise.
24643         (vect_is_simple_use): Dump def type textually.
24644
24645 2015-04-23  Richard Biener  <rguenther@suse.de>
24646
24647         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
24648         * cfgloop.c (verify_loop_structure): Verify the root loop node.
24649         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
24650         instead of get_eh_region_from_lp_number.
24651         * loop-init.c (fix_loop_structure): If we removed a loop, reset
24652         the SCEV cache.
24653
24654 2015-04-23  Anton Blanchard  <anton@samba.org>
24655
24656         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
24657         need for -mprofile-kernel to save LR to stack.
24658
24659 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24660
24661         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
24662         adjustments.
24663         (insn_is_swappable_p): Return 1 for a convert from double to
24664         single precision when all of its uses are splats of BE element
24665         zero.
24666
24667 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24668
24669         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
24670
24671 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24672
24673         PR target/65456
24674         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
24675         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
24676         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
24677         option.
24678         (rs6000_builtin_mask_for_load): Return 0 for targets with
24679         efficient unaligned VSX accesses so that the vectorizer will use
24680         direct unaligned loads.
24681         (rs6000_builtin_support_vector_misalignment): Always return true
24682         for targets with efficient unaligned VSX accesses.
24683         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
24684         stores on targets with efficient unaligned VSX accesses is almost
24685         always the same as the cost of an aligned load or store, so model
24686         it that way.
24687         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
24688         unaligned vectors if we have efficient unaligned VSX accesses.
24689         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
24690         undocumented option.
24691
24692 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24693
24694         Revert:
24695         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24696
24697         * config.gcc (LIBC_MUSL): New tm_defines macro.
24698         * config/linux.h (OPTION_MUSL): Define.
24699         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24700         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24701         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24702
24703         * config/linux.opt (mmusl): New option.
24704         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24705         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24706
24707         * configure: Regenerate.
24708
24709 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24710
24711         * config.gcc (LIBC_MUSL): New tm_defines macro.
24712         * config/linux.h (OPTION_MUSL): Define.
24713         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24714         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24715         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24716
24717         * config/linux.opt (mmusl): New option.
24718         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24719         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24720
24721         * configure: Regenerate.
24722
24723 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
24724
24725         * doc/invoke.texi (-fsanitize-sections): Update description.
24726         * asan.c (set_sanitized_sections): Parse incoming arg.
24727         (section_sanitized_p): Support wildcards.
24728
24729 2015-04-22  Tom de Vries  <tom@codesourcery.com>
24730
24731         PR tree-optimization/65823
24732         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
24733         equality between ap_copy and ap.
24734
24735 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24736
24737         PR target/47098
24738         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
24739
24740 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24741
24742         PR target/47122
24743         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
24744
24745 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24746
24747         PR target/55144
24748         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
24749         remove already contained t-files.
24750
24751 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24752
24753         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
24754         Remove unneeded forward declarations.
24755         (suitable_for_tail_call_opt_p): Commentary typo fix.
24756
24757 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24758
24759         * varasm.c (emit_bss): Remove redundant guard.
24760
24761 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24762
24763         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
24764
24765 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24766
24767         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
24768
24769 2015-04-22  Hale Wang  <hale.wang@arm.com>
24770             Terry Guo  <terry.guo@arm.com>
24771
24772         PR rtl-optimization/64818
24773         * combine.c (can_combine_p): Don't combine user-specified
24774         register if it is in an asm input.
24775
24776 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
24777
24778         PR ipa/65076
24779         * passes.def (early_optimizations): Add pass_dse.
24780
24781 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24782
24783         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
24784         * reorg.c (redundant_insn): Remove ifdef
24785         INSN_REFERENCES_ARE_DELAYED.
24786         * resource.c (mark_referenced_resources): Likewise.
24787
24788 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24789
24790         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
24791         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
24792         * resource.c (mark_set_resources): Likewise.
24793
24794 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24795
24796         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
24797         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24798         (flow_find_head_matching_sequence): Likewise.
24799         (try_head_merge_bb): Likewise.
24800         * combine.c (can_combine_p): Likewise.
24801         (try_combine): Likewise.
24802         (distribute_notes): Likewise.
24803         * df-problems.c (can_move_insns_across): Likewise.
24804         * final.c (final): Likewise.
24805         * gcse.c (insert_insn_end_basic_block): Likewise.
24806         * ira.c (find_moveable_pseudos): Likewise.
24807         * reorg.c (try_merge_delay_insns): Likewise.
24808         (fill_simple_delay_slots): Likewise.
24809         (fill_slots_from_thread): Likewise.
24810         * sched-deps.c (sched_analyze_2): Likewise.
24811
24812 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24813
24814         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
24815         PIC_OFFSET_TABLE_REGNUM.
24816
24817 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24818
24819         * alias.c (init_alias_target): Remove ifdef
24820         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
24821         * df-scan.c (df_insn_refs_collect): Likewise.
24822         (df_get_regular_block_artificial_uses): Likewise.
24823         (df_get_eh_block_artificial_uses): Likewise.
24824         (df_get_entry_block_def_set): Likewise.
24825         (df_get_exit_block_use_set): Likewise.
24826         * emit-rtl.c (gen_rtx_REG): Likewise.
24827         * ira.c (ira_setup_eliminable_regset): Likewise.
24828         * reginfo.c (init_reg_sets_1): Likewise.
24829         * regrename.c (rename_chains): Likewise.
24830         * reload1.c (reload): Likewise.
24831         (eliminate_regs_in_insn): Likewise.
24832         * resource.c (mark_referenced_resources): Likewise.
24833         (init_resource_info): Likewise.
24834
24835 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24836
24837         * defaults.h (MASK_RETURN_ADDR): New definition.
24838         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24839         MASK_RETURN_ADDR.
24840
24841 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24842
24843         * defaults.h (RETURN_ADDR_OFFSET): New definition.
24844         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24845         RETURN_ADDR_OFFSET.
24846         (expand_builtin_frob_return_addr): Likewise.
24847
24848 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24849
24850         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
24851         (try_redirect_by_replacing_jump): Likewise.
24852         (rtl_tidy_fallthru_edge): Likewise.
24853         * combine.c (insn_a_feeds_b): Likewise.
24854         (find_split_point): Likewise.
24855         (simplify_set): Likewise.
24856         * cprop.c (cprop_jump): Likewise.
24857         * cse.c (cse_extended_basic_block): Likewise.
24858         * df-problems.c (can_move_insns_across): Likewise.
24859         * function.c (emit_use_return_register_into_block): Likewise.
24860         * haifa-sched.c (sched_init): Likewise.
24861         * ira.c (find_moveable_pseudos): Likewise.
24862         * loop-invariant.c (find_invariant_insn): Likewise.
24863         * lra-constraints.c (curr_insn_transform): Likewise.
24864         * postreload.c (reload_combine_recognize_const_pattern):
24865         * Likewise.
24866         * reload.c (find_reloads): Likewise.
24867         * reorg.c (delete_scheduled_jump): Likewise.
24868         (steal_delay_list_from_target): Likewise.
24869         (steal_delay_list_from_fallthrough): Likewise.
24870         (redundant_insn): Likewise.
24871         (fill_simple_delay_slots): Likewise.
24872         (fill_slots_from_thread): Likewise.
24873         (delete_computation): Likewise.
24874         * sched-rgn.c (add_branch_dependences): Likewise.
24875
24876 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24877
24878         * genconfig.c (main): Always define HAVE_cc0.
24879         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
24880         HAVE_cc0.
24881         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24882         (flow_find_head_matching_sequence): Likewise.
24883         (try_head_merge_bb): Likewise.
24884         * cfgrtl.c (rtl_merge_blocks): Likewise.
24885         (try_redirect_by_replacing_jump): Likewise.
24886         (rtl_tidy_fallthru_edge): Likewise.
24887         * combine.c (do_SUBST_MODE): Likewise.
24888         (insn_a_feeds_b): Likewise.
24889         (combine_instructions): Likewise.
24890         (can_combine_p): Likewise.
24891         (try_combine): Likewise.
24892         (find_split_point): Likewise.
24893         (subst): Likewise.
24894         (simplify_set): Likewise.
24895         (distribute_notes): Likewise.
24896         * cprop.c (cprop_jump): Likewise.
24897         * cse.c (cse_extended_basic_block): Likewise.
24898         * df-problems.c (can_move_insns_across): Likewise.
24899         * final.c (final): Likewise.
24900         (final_scan_insn): Likewise.
24901         * function.c (emit_use_return_register_into_block): Likewise.
24902         * gcse.c (insert_insn_end_basic_block): Likewise.
24903         * haifa-sched.c (sched_init): Likewise.
24904         * ira.c (find_moveable_pseudos): Likewise.
24905         * loop-invariant.c (find_invariant_insn): Likewise.
24906         * lra-constraints.c (curr_insn_transform): Likewise.
24907         * optabs.c (prepare_cmp_insn): Likewise.
24908         * postreload.c (reload_combine_recognize_const_pattern):
24909         * Likewise.
24910         * reload.c (find_reloads): Likewise.
24911         (find_reloads_address_1): Likewise.
24912         * reorg.c (delete_scheduled_jump): Likewise.
24913         (steal_delay_list_from_target): Likewise.
24914         (steal_delay_list_from_fallthrough): Likewise.
24915         (try_merge_delay_insns): Likewise.
24916         (redundant_insn): Likewise.
24917         (fill_simple_delay_slots): Likewise.
24918         (fill_slots_from_thread): Likewise.
24919         (delete_computation): Likewise.
24920         (relax_delay_slots): Likewise.
24921         * sched-deps.c (sched_analyze_2): Likewise.
24922         * sched-rgn.c (add_branch_dependences): Likewise.
24923
24924 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24925
24926         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
24927         that is trivially ded on non cc0 targets.
24928         (simplify_set): Likewise.
24929         (mark_used_regs_combine): Likewise.
24930         * cse.c (new_basic_block): Likewise.
24931         (fold_rtx): Likewise.
24932         (cse_insn): Likewise.
24933         (cse_extended_basic_block): Likewise.
24934         (set_live_p): Likewise.
24935         * rtlanal.c (canonicalize_condition): Likewise.
24936         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
24937
24938 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24939
24940         * conditions.h: Define macros even if HAVE_cc0 is undefined.
24941         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
24942         * final.c: Likewise.
24943         * jump.c: Likewise.
24944         * recog.c: Likewise.
24945         * recog.h: Declare functions even when HAVE_cc0 is undefined.
24946         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
24947
24948 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24949
24950         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
24951         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
24952         * builtins.c (expand_builtin): Remove check if
24953         EH_RETURN_DATA_REGNO is defined.
24954         * df-scan.c (df_bb_refs_collect): Likewise.
24955         (df_get_exit_block_use_set): Likewise.
24956         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
24957         * ira-lives.c (process_bb_node_lives): Likewise.
24958         * lra-lives.c (process_bb_lives): Likewise.
24959
24960 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24961
24962         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
24963         FIRST_PSEUDO_REG): New.
24964         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
24965         (ARG_POINTER_REGNUM): Define to ARGP_REG.
24966         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
24967         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
24968         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
24969         (FIRST_INT_REG): New.
24970         (LAST_INT_REG): New.
24971         (FIRST_*_REG): Define using *_REG.
24972         (LAST_*_REG): Ditto.
24973         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
24974         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
24975         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
24976
24977 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24978
24979         * expmed.c: (synth_mult): Only assume overlapping
24980         shift with previous steps in alg_sub_t_m2 case.
24981
24982 2015-04-21  Richard Biener  <rguenther@suse.de>
24983
24984         PR tree-optimization/65650
24985         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
24986         transitions involving copies.
24987         (set_lattice_value): Adjust for copy lattice state.
24988         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
24989         if that doesn't dominate the merge point.
24990         (bit_value_unop): Adjust what we treat as varying mask.
24991         (bit_value_binop): Likewise.
24992         (bit_value_assume_aligned): Likewise.
24993         (evaluate_stmt): When we simplified to a SSA name record a copy
24994         instead of dropping to varying.
24995         (visit_assignment): Simplify.
24996
24997         * gimple-match.h (gimple_simplify): Add another callback.
24998         * gimple-fold.c (fold_stmt_1): Adjust caller.
24999         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
25000         for the 2nd callback.
25001         * gimple-match-head.c (gimple_simplify): Add a callback that is
25002         used to valueize the stmt operands and use it that way.
25003
25004 2015-04-21  Richard Biener  <rguenther@suse.de>
25005
25006         PR tree-optimization/65788
25007         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
25008
25009 2015-04-21  Richard Biener  <rguenther@suse.de>
25010
25011         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
25012         vec_construct cost by vec_stmt_cost.
25013
25014 2015-04-21  Richard Biener  <rguenther@suse.de>
25015
25016         * cfghooks.h (create_basic_block): Replace with two overloads
25017         for RTL and GIMPLE.
25018         (split_block): Likewise.
25019         * cfghooks.c (split_block): Rename to ...
25020         (split_block_1): ... this.
25021         (split_block): Add two type-safe overloads for RTL and GIMPLE.
25022         (split_block_after_labels): Call split_block_1.
25023         (create_basic_block): Rename to ...
25024         (create_basic_block_1): ... this.
25025         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
25026         (create_empty_bb): Call create_basic_block_1.
25027         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
25028         split_block_after_labels.
25029         * omp-low.c (expand_parallel_call): Likewise.
25030         (expand_omp_target): Likewise.
25031         (simd_clone_adjust): Likewise.
25032         * tree-chkp.c (chkp_get_entry_block): Likewise.
25033         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
25034         create_basic_block overload.
25035         (cgraph_node::expand_thunk): Likewise.
25036         * tree-cfg.c (make_blocks): Likewise.
25037         (handle_abnormal_edges): Likewise.
25038         * tree-inline.c (copy_bb): Likewise.
25039
25040 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25041
25042         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
25043         New pattern.
25044         (*xor_one_cmplsidi3_ze): Likewise.
25045
25046 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25047
25048         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
25049         use df_remove_problem rather than manually removing problems, leaving
25050         holes in df->problems_in_order[].
25051
25052 2015-04-21  Tom de Vries  <tom@codesourcery.com>
25053
25054         PR tree-optimization/65802
25055         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
25056
25057 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25058
25059         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
25060         Increase to 128.
25061         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
25062         at '.'.  Assert that there's enough space for everything.
25063
25064 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
25065
25066         PR tree-optimization/64950
25067         Revert:
25068         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
25069
25070         PR target/41089
25071         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
25072         as volatile.
25073
25074 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
25075
25076         PR rtl-optimization/64916
25077         * cfgcleanup.c (values_equal_p): New function.
25078         (can_replace_by): Use it.
25079
25080 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
25081
25082         PR c++/65801
25083         * doc/invoke.texi ([-Wnarrowing]): Update.
25084
25085 2015-04-20  Jeff Law  <law@redhat.com>
25086
25087         PR tree-optimization/65658
25088         * tree-ssa-threadupdate.c (redirection_block_p): Remove
25089         redundant test for GIMPLE_ASSIGN in last change.
25090
25091 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
25092
25093         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
25094         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
25095         (legitimize_tls_address): Ditto.
25096         (ix86_expand_move): Ditto.
25097         (ix86_expand_binary_operator): Remove reload_in_progress checks.
25098         (ix86_expand_unary_operator): Ditto.
25099         * config/i386/predicates.md (index_register_operand): Ditto.
25100
25101 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
25102
25103         * reorg.c (try_merge_delay_insns): Improve correctness checking
25104         for targets with multiple delay slots.
25105
25106 2015-04-20  Jeff Law  <law@redhat.com>
25107
25108         PR tree-optimization/65658
25109         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
25110         statements too.
25111
25112 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25113
25114         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
25115         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
25116         Delete.
25117
25118 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
25119
25120         PR debug/65807
25121         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
25122
25123 2015-04-20  Richard Biener  <rguenther@suse.de>
25124
25125         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
25126         * gimple-fold.c (gimple_build_valueize): New function.
25127         (gimple_build): Always use gimple_build_valueize as valueize hook.
25128
25129 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25130
25131         PR target/64134
25132         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
25133         and overwrite variable parts if <= 1/2 the elements are variable.
25134
25135 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
25136
25137         PR rtl-optimization/65805
25138         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
25139         Don't use difference of offset and previous offset if
25140         update_sp_offset is non-zero.
25141         (eliminate_regs_in_insn): Ditto.
25142         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
25143         lra_eliminate_regs_1 call.
25144         * lra-constraints.c (get_equiv_with_elimination): Ditto.
25145
25146 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
25147
25148         * hash-table.h: Remove version of hash_table that stored value_type *.
25149         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
25150         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
25151         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
25152         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
25153         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
25154         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
25155         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
25156         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
25157         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
25158         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
25159         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
25160         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
25161         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
25162         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
25163         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
25164         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
25165
25166 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25167             Jakub Jelinek  <jakub@redhat.com>
25168
25169         PR target/65787
25170         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
25171         subsequent SH_NONE operand does not overwrite an existing *special
25172         value.
25173         (adjust_extract): Handle case where a vec_extract operation is
25174         wrapped in a PARALLEL.
25175
25176 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25177
25178         PR target/65780
25179         * config/i386/i386.c (ix86_binds_local_p): Define only if
25180         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
25181
25182 2015-04-17  Jeff Law  <law@redhat.com>
25183
25184         PR tree-optimization/47679
25185         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
25186         * tree-ssa-scopedtables.c: New file.
25187         * tree-ssa-scopedtables.h: New file.
25188         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
25189         (const_and_copies): Change name/type.
25190         (record_const_or_copy): Move into tree-ssa-scopedtables.c
25191         (record_const_or_copy_1): Similarly.
25192         (restore_vars_to_original_value): Similarly.
25193         (pass_dominator::execute): Create and destroy const_and_copies table.
25194         (thread_across_edge): Update passing of const_and_copies.
25195         (record_temporary_equivalence): Use method calls rather than
25196         manipulating const_and_copies directly.
25197         (record_equality, cprop_into_successor_phis): Similarly.
25198         (dom_opt_dom_walker::before_dom_children): Similarly.
25199         (dom_opt_dom_walker::after_dom_children): Similarly.
25200         (eliminate_redundant_computations): Similarly.
25201         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
25202         (record_temporary_equivalence): Likewise.
25203         (invalidate_equivalences): Likewise.
25204         (record_temporary_equivalences_from_phis): Update due to type
25205         change of const_and_copies.  Use method calls rather than
25206         manipulating the stack directly.
25207         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
25208         (thread_through_normal_block, thread_across_edge): Likewise.
25209         (thread_across_edge): Likewise.
25210         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
25211         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
25212         of equiv_stack.
25213         (identify_jump_threads): Update due to type change of equiv_stack.
25214         (finalize_jump_threads): Delete the equiv_stack when complete.
25215
25216 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
25217
25218         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
25219         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
25220         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
25221
25222 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
25223
25224         PR target/65535
25225         * config.gcc: Exit with a comment when we do not have a major version
25226         number for the FreeBSD target.
25227
25228 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25229
25230         PR target/65689
25231         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
25232         maybe_allows_mem bitfields.
25233         (maybe_allows_none_start, maybe_allows_none_end,
25234         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
25235         maybe_allows_mem_end): New variables.
25236         (compute_maybe_allows): New function.
25237         (add_constraint): Use it to initialize maybe_allows_reg and
25238         maybe_allows_mem fields.
25239         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
25240         is_address constraints such that those that allow neither mem nor
25241         reg come first, then those that only allow reg but not mem, then
25242         those that only allow mem but not reg, then the rest.
25243         (write_allows_reg_mem_function): New function.
25244         (write_tm_preds_h): Call it.
25245         * stmt.c (parse_output_constraint, parse_input_constraint): Use
25246         the generated insn_extra_constraint_allows_reg_mem function
25247         instead of always setting *allows_reg = true; *allows_mem = true;
25248         for unknown extra constraints.
25249
25250 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25251
25252         PR target/65780
25253         * output.h (default_binds_local_p_3): New.
25254         * varasm.c (default_binds_local_p_3): Make it public.  Take an
25255         argument to indicate if common symbol may be local.  If common
25256         symbol may be local, treat non-external variable as defined
25257         locally.
25258         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
25259         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
25260         * config/i386/i386.c (ix86_binds_local_p): New.
25261         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
25262         ix86_binds_local_p.
25263
25264 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25265
25266         PR debug/65771
25267         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
25268         trying mem_loc_descriptor on XEXP (rtl, 0).
25269
25270 2015-04-17  Martin Liska  <mliska@suse.cz>
25271
25272         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
25273         Release symbol_compare_collection.
25274         * ipa-reference.c: Add TODO that a vector should be released.
25275
25276 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
25277
25278         PR target/65296
25279         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
25280         to new AVR-LibC file layout (bug #44574).
25281         (*avrlibc_devicelib): Same.
25282         * config/avr/avr-mcus.def: Adjust comments.
25283         * config/avr/avr.opt (nodevicelib): Adjust help.
25284
25285 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
25286
25287         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
25288
25289 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
25290
25291         PR c++/64527
25292         * gimplify.c (gimplify_init_constructor): Always emit a
25293         side-effecting constructor.
25294
25295 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25296
25297         PR tree-optimization/64950
25298         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
25299         in cfun->curr_properties.
25300         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
25301         if we generate an IFN_VA_ARG.
25302         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
25303         function if PROP_gimple_lva is not set in src function.
25304
25305 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25306             Michael Matz  <matz@suse.de>
25307
25308         PR tree-optimization/64950
25309         * gimple-iterator.c (update_modified_stmts): Remove static.
25310         * gimple-iterator.h (update_modified_stmts): Declare.
25311         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
25312         (gimplify_va_arg_internal): New function.
25313         (gimplify_va_arg_expr): Use IFN_VA_ARG.
25314         * gimplify.h (gimplify_va_arg_internal): Declare.
25315         * internal-fn.c (expand_VA_ARG): New unreachable function.
25316         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
25317         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
25318         (expand_ifn_va_arg): New function.
25319         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
25320         (pass_stdarg::execute): Call expand_ifn_va_arg.
25321         (pass_data_lower_vaarg): New pass_data.
25322         (pass_lower_vaarg): New gimple_opt_pass.
25323         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
25324         (make_pass_lower_vaarg): New function.
25325         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
25326         properties_required field.
25327         * passes.def (all_passes): Add pass_lower_vaarg.
25328         * tree-pass.h (PROP_gimple_lva): Add define.
25329         (make_pass_lower_vaarg): Declare.
25330
25331 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25332
25333         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
25334         * calls.c (call_expr_flags): Same.
25335
25336 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25337
25338         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
25339         (pass_stdarg::execute): ... here.
25340
25341 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25342             Michael Matz  <matz@suse.de>
25343
25344         * tree-cfg.c (make_blocks_1): Factor out of ...
25345         (make_blocks): ... here.
25346         (make_edges_bb): Factor out of ...
25347         (make_edges): ... here.
25348         (gimple_find_sub_bbs): New function.
25349         * tree-cfg.h (gimple_find_sub_bbs): Declare.
25350
25351 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25352
25353         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
25354
25355 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
25356
25357         * asan.c (set_sanitized_sections): New function.
25358         (section_sanitized_p): Ditto.
25359         (asan_protect_global): Optionally sanitize user-defined
25360         sections.
25361         * asan.h (set_sanitized_sections): Declare new function.
25362         * common.opt (fsanitize-sections): New option.
25363         * doc/invoke.texi (-fsanitize-sections): Document new option.
25364         * opts-global.c (handle_common_deferred_options): Handle new
25365         option.
25366
25367 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25368
25369         PR debug/65771
25370         * dwarf2out.c (loc_list_from_tree): Return NULL
25371         for DEBUG_EXPR_DECL.
25372
25373 2015-04-17  Christian Bruel  <christian.bruel@st.com>
25374
25375         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
25376         same attributes.
25377
25378 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
25379
25380         * ira-color.c (setup_left_conflict_sizes_p): Do not process
25381         node itself when computing left conflict subnode size.
25382
25383 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25384
25385         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
25386         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
25387         *fop_<mode>_1_sse using enabled attribute.  Use
25388         register_mixssei387nonimm_operand operand 1 predicate. Change
25389         alternative 3 constraints from "x" to "v".
25390
25391 2015-04-16  Richard Biener  <rguenther@suse.de>
25392
25393         PR tree-optimization/65774
25394         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
25395         bit-value tracking on.
25396
25397 2015-04-16  Richard Biener  <rguenther@suse.de>
25398
25399         PR tree-optimization/64277
25400         * tree-vrp.c (check_array_ref): Fix anti-range handling,
25401         simplify upper bound handling.
25402         (search_for_addr_array): Simplify.
25403         (check_array_bounds): Handle ADDR_EXPRs here.
25404         (check_all_array_refs): Simplify.
25405
25406 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25407
25408         * config/i386/i386.c (print_reg): Rewrite function.
25409
25410 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25411
25412         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
25413         Invert the condition.
25414
25415 2015-04-16  Renlin Li  <renlin.li@arm.com>
25416
25417         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
25418         simplifications for UNSIGNED_FLOAT.
25419
25420 2015-04-16  Nick Clifton  <nickc@redhat.com>
25421
25422         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
25423         MUL_UNINIT.
25424         (enum rl78_cpu_type): New.
25425         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
25426         (umulhi3_shift_virt): Remove m constraint from operand 1.
25427         (umulqihi3_virt): Likewise.
25428         * config/rl78/rl78.c (rl78_option_override): Add code to process
25429         -mcpu and -mmul options.
25430         (rl78_alloc_physical_registers): Add code to handle divhi and
25431         divsi valloc attributes.
25432         (set_origin): Likewise.
25433         * config/rl78/rl78.h (RL78_MUL_G14): Define.
25434         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
25435         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
25436         __RL78_Gxx__.
25437         (ASM_SPEC): Pass -mcpu on to assembler.
25438         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
25439         (mulqi3_rl78): Likewise.
25440         (mulhi3_g13): Likewise.
25441         (mulhi3): Generate the G13 or G14 versions of the insn directly.
25442         (mulsi3): Likewise.
25443         (mulhi3_g14): Add clobbers of AX and BC.
25444         (mulsi3_g14): Likewise.
25445         (mulsi3_g13): Likewise.
25446         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
25447         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
25448         * config/rl78/rl78.opt (mmul): Initialise value to
25449         RL78_MUL_UNINIT.
25450         (mcpu): New option.
25451         (m13, m14, mrl78): New option aliases.
25452         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
25453         (MULTILIB_DIRNAMES): Add g13 and g14.
25454         * doc/invoke.texi: Document -mcpu and -mmul options.
25455
25456 2015-04-16  Richard Biener  <rguenther@suse.de>
25457
25458         * tree-ssa-ccp.c (likely_value): See if we have operands that
25459         are marked as never simulate again and return CONSTANT in this
25460         case.
25461         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
25462         not have any operands that will be simulated again as
25463         not being simulated again.
25464
25465 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
25466
25467         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
25468         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
25469         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
25470         attribute.
25471         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
25472         enabled attribute.
25473         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
25474         *float<SWI48:mode><MODEF:mode>2_sse.
25475         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
25476         enabled attribute.
25477         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
25478         enabled attribute.
25479
25480 2015-04-15  Tom de Vries  <tom@codesourcery.com>
25481
25482         PR other/65487
25483         * function.c (push_dummy_function): New function.
25484         (init_dummy_function_start): Use push_dummy_function.
25485         (pop_dummy_function): New function.  Factored out of ...
25486         (expand_dummy_function_end): ... here.
25487         * function.h (push_dummy_function, pop_dummy_function): Declare.
25488         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
25489         pop_dummy_function.
25490         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
25491
25492 2015-04-15  Jeff Law  <law@redhat.com>
25493
25494         PR tree-optimization/47679
25495         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
25496         need for forward declaration in upcoming changes.
25497         (record_conditions, record_edge_info): Likewise.
25498
25499         PR rtl-optimization/42522
25500         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
25501         SIGN_EXTRACT as a whole object rather than simplifying
25502         its operand.
25503
25504 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
25505
25506         PR ipa/65765
25507         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
25508         and GIMPLE_PREDICT use break instead of return true. For
25509         GIMPLE_EH_DISPATCH, compare dispatch region.
25510
25511 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
25512
25513         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
25514         details about the implementation.  Make clear preference for
25515         __atomic builtins.  Reduce possibility of future change.
25516
25517 2015-04-15  Nick Clifton  <nickc@redhat.com>
25518
25519         * config/rx/rx.opt (mallow-string-insns): New option.
25520         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
25521         builtin if string instructions are denied.
25522         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
25523         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
25524         appropriate.
25525         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
25526         * config/rx/rx.md (movstr): Enable pattern only if string
25527         instructions are allowed.
25528         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
25529         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
25530         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
25531         (MULTILIB_DIRNAMES): Add no-strings.
25532         * doc/invoke.texi: Document -mno-allow-string-insns.
25533
25534 2015-04-15  Alan Modra  <amodra@gmail.com>
25535
25536         PR target/65408
25537         PR target/58744
25538         PR middle-end/36043
25539         * calls.c (load_register_parameters): Don't load past end of
25540         mem unless suitably aligned.
25541
25542 2015-04-15  Nick Clifton  <nickc@redhat.com>
25543
25544         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
25545         decrement instruction as being frame related.
25546         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
25547         based addresses.
25548         If zero extending a function address enclose the operation in
25549         %code(...).
25550         (rl78_preferred_reload_class): New function.
25551         (TARGET_PREFERRED_RELOAD_CLASS): Define.
25552         * config/rl78/rl78.md: Remove useless constraints in expanders.
25553         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
25554         (mulhi3_rl78): Likewise.
25555         (mulhi3_g13): Likewise.
25556         (mulsi3_rl78): Likewise.
25557         (es_addr): Move to before the multiply patterns.
25558
25559 2015-04-15  Alan Modra  <amodra@gmail.com>
25560
25561         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
25562         and sequence_stack.  Add seq.
25563         (seq_stack): Delete.
25564         * function.c (prepare_function_start): Don't access x_last_insn.
25565         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
25566         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
25567         * emit_rtl.c (start_sequence, push_topmost_sequence,
25568         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
25569         sequence accessors.
25570         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
25571         remove_insn): Likewise.  Simplify.
25572         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
25573         and pop_topmost_sequence.
25574         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
25575         debug insns.
25576         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
25577
25578 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
25579
25580         PR target/65729
25581         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
25582         the assertiion.
25583
25584 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25585
25586         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
25587         (LEGACY_INT_REGNO_P): Ditto.
25588         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
25589         (ANY_MASK_REG_P): Remove.
25590         (BND_REG_P): Rename from ANY_BND_REG_P.
25591         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
25592         legacy integer registers.  Do not handle MMX_REG_P in a special way.
25593         Merge 64byte and 32byte SSE handling.
25594
25595 2015-04-14  Nick Clifton  <nickc@redhat.com>
25596
25597         * expr.c (expand_assignment): Force an address offset computation
25598         into a register before changing its mode.
25599         (expand_expr_real_1): Likewise.
25600
25601 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
25602
25603         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
25604         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
25605         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
25606         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
25607         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
25608         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
25609         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
25610         and __aarch64_vget_lane_any.
25611
25612 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
25613
25614         PR rtl-optimization/65761
25615         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
25616         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
25617
25618 2015-04-14  Richard Biener  <rguenther@suse.de>
25619
25620         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
25621         (graphite_can_represent_scev): Use POINTER_TYPE_P.
25622
25623 2015-04-14  Richard Biener  <rguenther@suse.de>
25624
25625         PR tree-optimization/65758
25626         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
25627         against -1.
25628         (ccp_lattice_meet): Likewise.
25629         (bit_value_unop): Likewise.
25630         (bit_value_binop): Likewise.
25631         (bit_value_assume_aligned): Likewise.
25632
25633 2015-04-14  Christian Bruel  <christian.bruel@st.com>
25634
25635         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
25636         function.
25637
25638 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
25639
25640         PR tree-optimization/63387
25641         * match.pd ((x unord x) | (y unord y) -> (x unord y),
25642         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
25643
25644 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25645
25646         * config/i386/predicates.md (any_QIreg_operand): Rename from
25647         q_regs_operand.  Do not process subregs.
25648         (QIreg_operand): Use QI_REGNO_P predicate.
25649         (ext_QIreg_operand): Ditto.
25650         (ext_register_operand): Ditto.
25651         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
25652         (AND splitters): Ditto.
25653         (AND with -65536 splitter): Add SWI48 mode for operand 0.
25654         (AND with -256 splitter): Use any_QIreg_operand predicate and
25655         SWI248 mode for operand 0.
25656         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
25657         mode for operand 0.
25658         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
25659
25660 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
25661
25662         * doc/plugins.texi: Rewrite first introductory paragraph.
25663
25664 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25665
25666         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
25667         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
25668
25669 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25670
25671         * ipa-profie.c (ipa_profile): Check number of parameters
25672         and possible polymorphic call targets before
25673         devirtualizing.
25674
25675 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
25676
25677         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
25678         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
25679
25680 2015-04-13  Richard Biener  <rguenther@suse.de>
25681
25682         PR tree-optimization/65204
25683         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
25684         takens for bit-CCP.
25685
25686 2015-04-13  Richard Biener  <rguenther@suse.de>
25687
25688         PR target/65660
25689         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
25690         and cond_not_taken_branch_cost to 4 and 2.
25691         (bdver2_cost): Likewise.
25692         (bdver3_cost): Likewise.
25693         (bdver4_cost): Likewise.
25694
25695 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25696
25697         * hash-table.h (hash_table constructor): Add mem stats.
25698         (alloc_entries): Likewise.
25699
25700 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25701
25702         * ipa-cp.c (ipcp_driver): Relase prev_edge.
25703         * passes.c (execute_one_pass): Only add transform if pass has one.
25704
25705 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
25706
25707         * config/i386/i386.c (ix86_option_override_internal): Don't set
25708         -fprefetch-loop-arrays if optimizing for size.
25709
25710 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25711             Gerald Pfeifer  <gerald@pfeifer.com>
25712
25713         * doc/contrib.texi (Contributors): Add Martin Jambor and
25714         Michael Matz.
25715
25716 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
25717
25718         * BASE-VER: Set to 6.0.0.
25719
25720         PR tree-optimization/65747
25721         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
25722         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
25723
25724 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25725
25726         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
25727         sentence.  Improve grammar.
25728
25729 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25730
25731         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
25732
25733 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25734
25735         PR ipa/65743
25736         * ipa-inline-transform.c (speculation_removed): Remove static var.
25737         (check_speculations): New function.
25738         (clone_inlined_nodes): Do not check spculations.
25739         (inline_call): Call check_speculations.
25740         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
25741         consider non-invariants.
25742
25743 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25744             Martin Liska  <mliska@suse.cz>
25745
25746         PR ipa/65722
25747         * ipa-icf.c (sem_item::compare_cgraph_references): function and
25748         variable can not match.
25749         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
25750         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
25751
25752 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
25753
25754         PR tree-optimization/65735
25755         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
25756         Remove visited_phis argument, add visited_bbs, avoid recursing into the
25757         same bb rather than just into the same phi node.
25758         (thread_through_normal_block): Adjust caller.
25759
25760 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25761
25762         * doc/contrib.texi (Contributors): Add Ira Rosen.
25763
25764 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
25765
25766         * gcov.c (find_source): Fix miswording in error message.
25767         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
25768         (ix86_expand_sse_comi_round): Fix typo in error message.
25769
25770 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25771
25772         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
25773
25774 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
25775
25776         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
25777
25778 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25779
25780         PR target/65710
25781         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
25782         Print bad_spills_num and insn_pseudos_num.
25783
25784 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25785
25786         PR target/65694
25787         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
25788         when creating +1 values for SImode.
25789
25790 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25791
25792         PR target/65729
25793         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
25794         assert.
25795
25796 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
25797             Iain Sandoe  <iain@codesourcery.com>
25798
25799         PR target/65351
25800         * configure: Regenerate.
25801
25802 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25803
25804         PR target/65671
25805         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
25806
25807 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
25808
25809         * doc/contrib.texi (Contributors): Add John Marino.
25810
25811 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25812
25813         PR tree-optimization/65709
25814         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
25815         TREE_TYPE (TREE_TYPE (t)).
25816
25817 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
25818
25819         PR target/65710
25820         * lra-int.h (lra_bad_spill_regno_start): New.
25821         * lra.c (lra_bad_spill_regno_start): New.
25822         (lra): Set up lra_bad_spill_regno_start.  Set up
25823         lra_constraint_new_regno_start unconditionally.
25824         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
25825         spill preferences.
25826
25827 2015-04-09  Marek Polacek  <polacek@redhat.com>
25828             Jakub Jelinek  <jakub@redhat.com>
25829
25830         PR middle-end/65554
25831         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
25832         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
25833         of STRIP_NOPS.
25834
25835 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
25836
25837         PR rtl-optimization/65693
25838         * combine.c (is_parallel_of_n_reg_sets): Move outside of
25839         #ifndef HAVE_cc0.
25840
25841 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
25842
25843         PR target/65296
25844         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
25845         device specs file if "device-specs%s" didn't resolve to a path.
25846
25847 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25848
25849         PR target/65676
25850         * config/i386/i386.c (fixup_modeless_constant): New.
25851         (ix86_expand_args_builtin): Fixup modeless constant operand.
25852         (ix86_expand_round_builtin): Ditto.
25853         (ix86_expand_special_args_builtin): Ditto.
25854         (ix86_expand_builtin): Ditto.
25855
25856 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25857
25858         PR target/65693
25859         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
25860         any pow2 integer in between 2 and 0x80000000U inclusive.
25861
25862 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
25863
25864         PR rtl-optimization/65693
25865         * combine.c (is_parallel_of_n_reg_sets): Change first argument
25866         from an rtx_insn * to an rtx.
25867         (try_combine): Adjust both callers.  Use it once more.
25868
25869 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25870
25871         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
25872         (chkp_make_static_const_bounds): Search existing
25873         symbol by assembler name.  Use make_decl_one_only.
25874         (chkp_get_zero_bounds_var): Remove node search which
25875         is now performed in chkp_make_static_const_bounds.
25876         (chkp_get_none_bounds_var): Likewise.
25877
25878 2015-04-08  Michael Witten  <mfwitten@gmail.com>
25879
25880         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
25881         to an example.
25882
25883 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25884
25885         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
25886
25887 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25888
25889         * doc/extend.texi (__sync Builtins): Fix grammar.
25890
25891 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25892
25893         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
25894
25895 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25896
25897         * varasm.c (emit_local): Move definition of align.
25898
25899 2015-04-08  Julian Brown  <julian@codesourcery.com>
25900
25901         * config/nvptx/mkoffload.c (process): Support variable mapping.
25902
25903 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
25904
25905         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
25906         alpha_links **.
25907         (alpha_write_one_linkage): Correct typo.
25908
25909 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25910
25911         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
25912
25913 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25914
25915         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
25916
25917 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25918
25919         * tree-chkp.h (chkp_insert_retbnd_call): New.
25920         * tree-chkp.c (chkp_insert_retbnd_call): New.
25921         * ipa-split.c (insert_bndret_call_after): Remove.
25922         (split_function): Use chkp_insert_retbnd_call.
25923         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
25924         bounds for instrumented functions.
25925
25926 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
25927
25928         PR ipa/65540
25929         * calls.c (initialize_argument_information): When producing tail
25930         call also turn SSA_NAMES passed by references to original PARM_DECLs
25931
25932 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
25933
25934         PR target/65648
25935         * lra-remat.c (do_remat): Process input and non-input insn
25936         registers separately.
25937
25938 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25939
25940         PR debug/65678
25941         * valtrack.c (debug_lowpart_subreg): New function.
25942         (dead_debug_insert_temp): Use it.
25943
25944         PR middle-end/65680
25945         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
25946         into signed HOST_WIDE_INT the same as negative bit_offset.
25947
25948 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
25949
25950         * ipa-comdats.c (ipa_comdats): Visit all thunks
25951         to set proper comdat group.
25952
25953 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25954
25955         PR target/65489
25956         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
25957         on constants for NEON VSTRUCT modes.
25958
25959 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25960             Iain Sandoe  <iain@codesourcery.com>
25961
25962         PR target/65351
25963         * configure: Regenerate.
25964
25965 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
25966
25967         PR target/65614
25968         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
25969         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
25970         that LFD is used to load double constants instead of LFS.  Add
25971         defaults for all costs structures.  Add comments for missing
25972         initialization fields.
25973         (size32_cost): Likewise.
25974         (size64_cost): Likewise.
25975         (rs64a_cost): Likewise.
25976         (mpccore_cost): Likewise.
25977         (ppc403_cost): Likewise.
25978         (ppc405_cost): Likewise.
25979         (ppc440_cost): Likewise.
25980         (ppc476_cost): Likewise.
25981         (ppc601_cost): Likewise.
25982         (ppc603_cost): Likewise.
25983         (ppc604_cost): Likewise.
25984         (ppc604e_cost): Likewise.
25985         (ppc620_cost): Likewise.
25986         (ppc630_cost): Likewise.
25987         (ppccell_cost): Likewise.
25988         (ppc750_cost): Likewise.
25989         (ppc7450_cost): Likewise.
25990         (ppc8540_cost): Likewise.
25991         (ppce300c2c3_cost): Likewise.
25992         (ppce500mc_cost): Likewise.
25993         (ppce500mc64_cost): Likewise.
25994         (ppce5500_cost): Likewise.
25995         (ppce6500_cost): Likewise.
25996         (titan_cost): Likewise.
25997         (power4_cost): Likewise.
25998         (power6_cost): Likewise.
25999         (power7_cost): Likewise.
26000         (power8_cost): Likewise.
26001         (ppca2_cost): Likewise.
26002         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
26003
26004         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
26005         instead of XXLOR to copy SFmode to clear out dirty bits created
26006         when SFmode denormals are generated.
26007         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
26008         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
26009
26010 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
26011
26012         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
26013         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
26014         * config/aarch64/aarch64-tune.md: Regenerate.
26015
26016 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
26017
26018         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
26019         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
26020         * config/arm/arm-cores.def (exynos-m1): New core.
26021         * config/arm/arm-tune.md: Regenerate.
26022         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
26023         * config/arm/bpabi.h: Likewise.
26024
26025 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
26026
26027         * ipa-cp (set_single_call_flag): Remove too
26028         restrictive assert.
26029
26030 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
26031
26032         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
26033         GOMP_offload_unregister from the destructor.
26034
26035 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
26036
26037         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
26038         flags for instrumentation thunk.
26039         (chkp_produce_thunks): Likewise.
26040
26041 2015-04-05  Martin Liska  <mliska@suse.cz>
26042
26043         PR ipa/65665
26044         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
26045         has computed data structure.
26046         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26047
26048 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
26049
26050         * invoke.texi (inline-unit-growth): Increase growth to 20%
26051         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
26052
26053 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
26054
26055         PR target/65647
26056         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
26057         value checking.
26058         (lra_rematerialization_iter): New.
26059         * lra.c (lra): Initialize lra_rematerialization_iter.
26060         Stop updating lra_constraint_new_regno_start after switching of
26061         inheritance and rematerialization.
26062         * lra-remat.c (lra_rematerialization_iter): New.
26063         (lra_remat): Add printing pass iteration.  Do rematerialization
26064         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
26065
26066 2015-04-04  Richard Biener  <rguenther@suse.de>
26067
26068         PR tree-optimization/64909
26069         PR tree-optimization/65660
26070         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
26071         to take a cost vector for scalar iteration cost.
26072         (vect_get_single_scalar_iteration_cost): Likewise.
26073         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
26074         Compute the scalar iteration cost into a cost vector.
26075         (vect_get_known_peeling_cost): Use the scalar cost vector to
26076         account for the cost of the peeled iterations.
26077         (vect_estimate_min_profitable_iters): Likewise.
26078         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
26079         Likewise.
26080
26081 2015-04-04  Alan Modra  <amodra@gmail.com>
26082
26083         PR target/65576
26084         PR target/65240
26085         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
26086         0.0 constant unless TARGET_VSX.
26087         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
26088         alternative.
26089
26090 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26091
26092         PR ipa/65654
26093         * ipa-inline-transform.c (inline_call): Skip sanity check to work
26094         around the ICE
26095
26096 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26097
26098         PR ipa/65655
26099         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
26100         speculative indirect edges to avoid ordering issue.
26101
26102 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
26103
26104         PR ipa/65076
26105         * ipa-inline.c (edge_badness): Add combined size to the denominator.
26106
26107 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
26108
26109         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
26110         TYPE_ARTIFICIAL on the .omp_data* types.
26111
26112 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26113
26114         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
26115         instrumentation thunks.
26116
26117 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26118
26119         * config/i386/i386.c (ix86_expand_call): Avoid nested
26120         PARALLEL in returned call value.
26121
26122 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26123
26124         * lto-cgraph.c (input_cgraph_1): Always link instrumented
26125         assembler name with original one.
26126
26127 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26128
26129         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
26130
26131 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26132
26133         Revert parts of r216820.
26134         * config/i386/i386.md (movqi_internal): Correct type calculation
26135         for alternatives 3 and 5.
26136
26137 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
26138
26139         PR preprocessor/61977
26140         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
26141         predefine __vector/__bool/__pixel macros nor context sensitive
26142         macros for CLK_ASM.
26143         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
26144
26145 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
26146
26147         * config/pa/pa.c (pa_output_move_double): Directly handle register
26148         indexed memory operand.  Simplify handling of scaled register indexed
26149         memory operands.
26150
26151 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26152
26153         PR driver/65444
26154         * config/i386/linux-common.h (MPX_SPEC): New.
26155         (CHKP_SPEC): Add MPX_SPEC.
26156         * doc/invoke.texi (-fcheck-pointer-boudns): Document
26157         possible issues with '-z bndplt' support in linker.
26158
26159 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26160
26161         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
26162         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
26163         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
26164         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
26165         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
26166
26167 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
26168
26169         * config/i386/sync.md (UNSPEC_MOVA): Remove.
26170         (atomic_load<mode>): Change operand 0 predicate to
26171         nonimmediate_operand and fix up the destination when needed.
26172         Use UNSPEC_LDA.
26173         (atomic_loaddi_fpu): Use UNSPEC_LDA.
26174         (atomic_store<mode>): Change operand 1 predicate to
26175         nonimmendate_operand and move the source to register when needed.
26176         Use UNSPEC_STA.
26177         (atomic_store<mode>_1): Use UNSPEC_STA.
26178         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
26179         Fix moves from memory operand.  Use UNSPEC_STA.
26180
26181 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26182
26183         * expmed.c (strict_volatile_bitfield_p): Check that the access will
26184         not cross a MODESIZE boundary.
26185         (store_bit_field, extract_bit_field): Added assertions in the
26186         strict volatile bitfields code path.
26187
26188 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
26189
26190         PR target/65624
26191         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
26192         Increase args array size by one to avoid buffer overflow.
26193
26194 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26195
26196         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26197         split_part.
26198         * ipa-inline.c (edge_badness): Add wrapper penalty.
26199         (sum_callers): Move up.
26200         (inline_small_functions): Set single_caller.
26201         * ipa-inline.h (inline_summary): Add single_caller.
26202         * ipa-split.c (split_function): Set split_part.
26203         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
26204         * cgraph.h (cgraph_node): Add split_part.
26205
26206 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
26207
26208         PR target/58945
26209         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
26210         Do not split operands 0 and operands 2 to halfmode.
26211         (atomic_compare_and_swap<mode>): Update for
26212         atomic_compare_and_swap<dwi>_doubleword changes.
26213
26214 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26215
26216         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
26217         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
26218         no caching is done.
26219
26220 2015-03-31  Martin Liska  <mliska@suse.cz>
26221
26222         PR ipa/65557
26223         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
26224         has already filled up function summary.
26225         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26226
26227 2015-03-31  Richard Biener  <rguenther@suse.de>
26228
26229         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
26230         of types.
26231
26232 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26233
26234         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
26235         nested functions.
26236         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
26237         (s390_asm_output_function_label): Adapt to new signature of
26238         s390_function_num_hotpatch_hw
26239         Optimise the code generating assembler output.
26240         Add comments to assembler file.
26241
26242 2015-03-31  Richard Biener  <rguenther@suse.de>
26243
26244         PR middle-end/65626
26245         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
26246         of the noreturn call so it is last and cleanup_control_flow_bb
26247         can do the CFG part.
26248
26249 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
26250
26251         PR target/65531
26252         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
26253         same_comdat_group for external symbols.
26254         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
26255         infinite same_comdat_group traversal loop.
26256
26257 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
26258
26259         PR plugins/61176
26260         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
26261         automatically to $headers.
26262
26263 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
26264
26265         PR ipa/65610
26266         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
26267         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
26268         function.
26269         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
26270         Use it.
26271         * ipa-prop.c (param_type_may_change_p): Likewise.
26272         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
26273         (remove_unused_scope_block_p): Add in_ctor_dtor_block
26274         argument.  Before inlining, preserve
26275         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
26276         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
26277         recursive calls.
26278         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
26279
26280 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26281
26282         PR ipa/65076
26283         * ipa-inline.c (edge_badness): Base denominator on callee's
26284         grwoth squared.
26285
26286 2015-03-27  Martin Jambor  <mjambor@suse.cz>
26287
26288         PR ipa/65478
26289         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
26290         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
26291         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
26292         node_calling_single_call.
26293         * ipa-cp.c (count_callers): New function.
26294         (set_single_call_flag): Likewise.
26295         (initialize_node_lattices): Count callers and set single_flag_call if
26296         necessary.
26297         (incorporate_penalties): New function.
26298         (good_cloning_opportunity_p): Use it, dump new flags.
26299         (propagate_constants_topo): Set node_within_scc flag if appropriate.
26300         * doc/invoke.texi (ipa-cp-recursion-penalty,
26301         ipa-cp-single-call-pentalty): Document.
26302
26303 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26304
26305         PR ipa/65588
26306         * symtab.c (symtab_node::get_partitioning_class): Register vars
26307         are duplicated.
26308         * varpool.c (symbol_table::output_variables) Do not assemble unefined
26309         decls for non-symbols.
26310
26311 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
26312
26313         PR target/65248
26314         * output.h (default_binds_local_p_2): New.
26315         * varasm.c (default_binds_local_p_2): Renamed to ...
26316         (default_binds_local_p_3): This.  Don't return true on protected
26317         data symbol if protected data may be external.
26318         (default_binds_local_p): Use default_binds_local_p_3.
26319         (default_binds_local_p_1): Likewise.
26320         (default_binds_local_p_2): New.
26321         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
26322         default_binds_local_p_2 if TARGET_MACHO is undefined.
26323
26324 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
26325
26326         PR target/65593
26327         * config/i386/i386.c (legitimize_pic_address): If base
26328         is SYMBOL_REF or LABEL_REF using %rip addressing, force
26329         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
26330
26331 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26332
26333         PR target/65531
26334         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
26335         comdat groups.
26336
26337 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26338
26339         PR ipa/65600
26340         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
26341         of optimized out indirect call.
26342         (redirect_to_unreachable): Always build symbol table node for
26343         BUILT_IN_UNREACHABLE
26344
26345 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
26346
26347         PR target/65407
26348         * ira-costs.c (record_reg_classes): Process all constraint string
26349         containing 0-9.
26350
26351 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
26352
26353         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
26354         memory_operand.
26355
26356         PR target/65052
26357         * config/c6x/constraints.md (S3): New constraint.
26358         * config/c6x/c6x.md (real_jump): Use it.
26359
26360 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26361
26362         PR middle-end/65595
26363         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
26364         do redirection if the call is not optimized out.
26365
26366 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
26367
26368         PR target/65495
26369         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
26370         (fchkp-check-incomplete-type): Add LTO.
26371         (fchkp-zero-input-bounds-for-main): Likewise.
26372         (fchkp-first-field-has-own-bounds): Likewise.
26373         (fchkp-narrow-bounds): Likewise.
26374         (fchkp-narrow-to-innermost-array): Likewise.
26375         (fchkp-use-static-bounds): Likewise.
26376         (fchkp-use-static-const-bounds): Likewise.
26377         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26378
26379 2015-03-27  Marek Polacek  <polacek@redhat.com>
26380
26381         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
26382
26383 2015-03-27  Marek Polacek  <polacek@redhat.com>
26384
26385         PR sanitizer/65583
26386         * ubsan.c (ubsan_create_edge): New function.
26387         (instrument_bool_enum_load): Call it.
26388         (instrument_nonnull_arg): Likewise.
26389         (instrument_nonnull_return): Likewise.
26390         (instrument_object_size): Likewise.
26391
26392 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26393
26394         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
26395         auto_vec.
26396
26397 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26398
26399         PR lto/65536
26400         * lto-streamer.h (class lto_location_cache): New.
26401         (struct data_in): Add location_cache.
26402         (lto_input_location): Update prototype.
26403         (stream_input_location_now): New.
26404         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
26405         pointer to location.
26406         (stream_input_location): Update.
26407         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
26408         (warn_odr): Apply location cache before warning.
26409         (lto_input_location): Update prototype.
26410         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
26411         Use stream_input_location_now.
26412         * lto-streamer-in.c (lto_location_cache::current_cache): New static
26413         variable.
26414         (lto_location_cache::cmp_loc): New function.
26415         (lto_location_cache::apply_location_cache): New function.
26416         (lto_location_cache::accept_location_cache): New function.
26417         (lto_location_cache::revert_location_cache): New function.
26418         (lto_location_cache::input_location): New function.
26419         (lto_input_location): Do location caching.
26420         (stream_input_location_now): New function.
26421         (input_eh_region, input_struct_function_base): Use
26422         stream_input_location_now.
26423         (lto_data_in_create): use new.
26424         (lto_data_in_delete): Use delete.
26425         * tree-streamer-in.c (unpack_ts_block_value_fields,
26426         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
26427         lto_input_ts_exp_tree_pointers): Update for cached location api.
26428
26429 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26430
26431         PR ipa/65076
26432         * passes.def: Add pass_nothrow.
26433         * ipa-pure-const.c: (pass_data_nothrow): New.
26434         (pass_nothrow): New.
26435         (pass_nothrow::execute): New.
26436         (make_pass_nothrow): New.
26437         * tree-pass.h (make_pass_nothrow): Declare.
26438
26439 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26440
26441         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
26442         edge to change by speculation resolution or redirection.
26443         (edge_set_predicate): Likewise.
26444         (inline_summary_t::duplicate): Likewise.
26445         (remap_edge_summaries): Likewise.
26446
26447 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26448
26449         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
26450         New macros.
26451         (can_inline_edge_p): Relax option matching for always inline functions.
26452
26453 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
26454
26455         PR target/65561
26456         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
26457         Check operand 4 and operand 0 for equality.
26458         (avx512f_vextract<shuffletype>32x4_1_maskm):
26459         Check operand 6 and operand 0 for equality.
26460         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
26461         for equality.
26462         (vec_extract_hi_<mode>_maskm): Ditto.
26463
26464 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26465
26466         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
26467         dead calls back to live.
26468         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
26469         cross check to ...
26470         (cgraph_node::verify_node): ... here; verify only callee edges,
26471         not caller.
26472         * cif-code.def (CILK_SPAWN): New code.
26473
26474 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26475
26476         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
26477         (edge_set_predicate): Use it to mark unreachable edges.
26478         (inline_summary_t::duplicate): Remove unnecesary code.
26479         (remap_edge_summaries): Likewise.
26480         (dump_inline_summary): Report contains_cilk_spawn.
26481         (compute_inline_parameters): Compute contains_cilk_spawn.
26482         (inline_read_section, inline_write_summary): Stream
26483         contains_cilk_spawn.
26484         * ipa-inline.c (can_inline_edge_p): Do not touch
26485         DECL_STRUCT_FUNCTION that may not be available;
26486         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
26487         remove check for callee_fun->can_throw_non_call_exceptions and
26488         replace it by optimization attribute check; check for flag_exceptions.
26489         * ipa-inline-transform.c (inline_call): Maintain
26490         DECL_FUNCTION_PERSONALITY
26491         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
26492
26493 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26494
26495         PR tree-optimization/65551
26496         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
26497         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
26498
26499 2015-03-26  Richard Biener  <rguenther@suse.de>
26500
26501         PR middle-end/65555
26502         * tree-cfg.c (verify_gimple_call): Do not require a call to
26503         have no LHS if it wasn't recognized as control altering yet.
26504
26505 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26506
26507         PR tree-optimization/64715
26508         * passes.def: Add another instance of pass_object_sizes before ccp1.
26509         * tree-object-size.c (pass_object_sizes::execute): In
26510         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
26511         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
26512         __bos result and the computed constant.  Remove redundant
26513         checks, obsoleted by gimple_call_builtin_p test.
26514
26515         * var-tracking.c (variable_tracking_main_1): Don't track
26516         variables for targetm.no_register_allocation targets.
26517
26518 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
26519
26520         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
26521         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
26522
26523 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26524
26525         PR target/65569
26526         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
26527         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
26528         0.0 is correctly setup.
26529         (extenddftf2_internal): Likewise.
26530
26531 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
26532
26533         PR tree-optimization/65177
26534         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
26535         (bb_in_bbs): New.
26536         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
26537         edges not adjacent on the path to the original code.
26538
26539 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
26540
26541         PR bootstrap/65537
26542         * doc/install.texi (Building a native compiler): Document new
26543         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
26544         configuration assumes that the host supports the linker plugin.
26545
26546 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
26547
26548         PR target/65508
26549         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
26550         chain for generated call.
26551
26552 2015-03-25  Richard Biener  <rguenther@suse.de>
26553
26554         * passes.c (pass_manager::execute_early_local_passes): Guard
26555         execution of pass_chkp_instrumentation_passes with
26556         flag_check_pointer_bounds.
26557         (pass_chkp_instrumentation_passes::gate): Likewise.
26558
26559 2015-03-25  Martin Liska  <mliska@suse.cz>
26560
26561         PR tree-optimization/65538
26562         * symbol-summary.h (function_summary::~function_summary):
26563         Relese memory for allocated summaries.
26564         (function_summary::release): New function.
26565
26566 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
26567
26568         PR lto/65515
26569         * lto-streamer-out.c (DFS::worklist): New struct.
26570         (DFS::worklist_vec): New data member.
26571         (DFS::next_dfs_num): Remove.
26572         (DFS::DFS): Rewritten using worklist instead of recursion,
26573         using most of code from DFS::DFS_write_tree.
26574         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
26575         pass it to DFS_write_tree calls.
26576         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
26577         quick initial checks push it into worklist_vec and return.
26578
26579 2015-03-25  Richard Biener  <rguenther@suse.de>
26580
26581         PR middle-end/65519
26582         * genmatch.c (expr::gen_transform): Re-write to avoid
26583         using gimple_build.
26584
26585 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26586
26587         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
26588
26589 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26590
26591         * config/arm/arm.opt (print_tune_info): New option.
26592         * config/arm/arm.c (arm_print_tune_info): New function.
26593         (arm_file_start): Call arm_print_tune_info.
26594         * config/arm/arm-protos.h (struct tune_params): Add comment.
26595         * doc/invoke.texi (@item -mprint-tune-info): New item.
26596         (-mtune): mention it in ARM Option Summary.
26597
26598 2015-03-25  DJ Delorie  <dj@redhat.com>
26599
26600         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
26601         correct clause.
26602
26603 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
26604             Martin Liska  <mliska@suse.cz>
26605
26606         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
26607         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
26608         (sem_item::add_type): New function.
26609         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
26610         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
26611         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
26612         (sem_function::equals_wpa): Fix typo.
26613         * ipa-icf.h (sem_item::add_type): New function.
26614         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
26615         order.
26616
26617 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
26618
26619         PR tree-optimization/65533
26620         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
26621         with swapped operands, call vect_free_slp_tree on
26622         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
26623         vector.
26624
26625 2015-03-24  Richard Biener  <rguenther@suse.de>
26626
26627         PR middle-end/65517
26628         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
26629         for fixup if necessary.
26630
26631 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
26632
26633         * doc/extend.texi (Function Attributes): Add @cindex entries
26634         for all attributes and regularize their format.  Delete text
26635         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
26636         information about "eightbit_data", "tiny_data", and "model"
26637         variable attributes to the Variable Attributes section.  Fix
26638         some obvious typos and copy-editing issues.
26639         (Variable Attributes, Type Attributes): Likewise add/fix
26640         @cindex entries for all attributes.
26641
26642 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26643
26644         PR target/65523
26645         * tree-chkp.c (chkp_build_returned_bound): Ignore
26646         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
26647
26648 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
26649
26650         PR target/65505
26651         * config/sh/predicates.md (simple_mem_operand,
26652         displacement_mem_operand): Add test for reg.
26653         (short_displacement_mem_operand): Test for displacement_mem_operand
26654         before invoking sh_disp_addr_displacement.
26655         * config/sh/constraints.md (Sdd, Sra): Simplify.
26656         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
26657         Remove redundant displacement_mem_operand tests.
26658
26659 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
26660
26661         PR target/65296
26662         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
26663         the same -mmcu=MCU more than once.
26664
26665 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26666
26667         PR bootstrap/65522
26668         * ipa-devirt.c: Remove duplicate demangle.h include.
26669
26670         PR target/65504
26671         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
26672         on the pseudo.
26673         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
26674         REG_POINTER on *destptr after adjusting it for prologue size.
26675
26676         PR ipa/65521
26677         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
26678         ultimate_alias_target ()->order ints instead of
26679         ultimate_alias_target () pointers.
26680
26681 2015-03-23  Richard Biener  <rguenther@suse.de>
26682
26683         PR tree-optimization/65518
26684         * tree-vect-stmts.c (vectorizable_load): Reject single-element
26685         interleaving cases we generate absymal code for.
26686
26687 2015-03-23  Richard Biener  <rguenther@suse.de>
26688
26689         PR tree-optimization/65494
26690         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
26691         matches here.
26692         (vect_analyze_slp_instance): But do that here, always and once.
26693
26694 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26695
26696         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
26697         adding T or multiplying by T+1 and subracting T.
26698
26699 2015-03-22  Jeff Law  <law@redhat.com>
26700
26701         PR rtl-optimization/64317
26702         * Makefile.in (OBJS): Add gcse-common.c
26703         * gcse.c: Include gcse-common.h
26704         (struct modify_pair_s): Move structure definition to gcse-common.h
26705         (compute_transp): Move function to gcse-common.c.
26706         (canon_list_insert): Similarly.
26707         (record_last_mem_set_info): Break out some code and put it into
26708         gcse-common.c.  Call into the new common code.
26709         (compute_local_properties): Pass additional arguments to compute_transp.
26710         * postreload-gcse.c: Include gcse-common.h and df.h
26711         (modify_mem_list_set, blocks_with_calls): New variables.
26712         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
26713         (get_bb_avail_insn): Pass in the expression index too.
26714         (alloc_mem): Allocate memory for the new bitmaps and lists.
26715         (free_mem): Free memory for the new bitmaps and lists.
26716         (insert_expr_in_table): Record a bitmap index for each entry we
26717         add to the table.
26718         (record_last_mem_set_info): Call into common code in gcse-common.c.
26719         (get_bb_avail_insn): If no available insn was found in the requested
26720         BB.  If BB has a single predecessor, see if the expression is
26721         transparent in BB and available in that single predecessor.
26722         (compute_expr_transp): New wrapper for compute_transp.
26723         (eliminate_partially_redundant_load): Pass expression's bitmap_index
26724         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
26725         (gcse_after_reload_main): If there are elements in the hash table,
26726         then compute transparency for all the elements in the hash table.
26727         * gcse-common.h: New file.
26728         * gcse-common.c: New file.
26729
26730 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
26731
26732         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
26733         as an adjective.
26734         (System Headers): Likewise.
26735         (Ifdef): Likewise.
26736         (Traditional macros): Likewise.
26737         (Invocation): Likewise.
26738         (Option Index): Likewise.
26739         * doc/cppopts.texi (-M): Likewise.
26740         (-finput-charset): Likewise.
26741         (--help): Likewise.
26742         * doc.invoke.texi (AVR Options): Likewise.
26743         (V850 Options): Likewise.
26744
26745 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
26746
26747         PR ipa/65475
26748         * ipa-devirt.c: Include demangle.h
26749         (odr_type_d): Add field rtti_broken.
26750         (odr_subtypes_equivalent_p): Do not require name to match.
26751         (compare_virtual_tables): Fix typo; if type already has ODR violation,
26752         bypass the tests; be ready for function referneces in vtables that are
26753         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
26754         (warn_odr): Give up for nameless types.
26755         (warn_types_mismatch): Report mismatch in mangled names;
26756         report mismatch in anonymous namespaces; look into component types to
26757         give useful error; report when mismatch is dragged in from other ODR
26758         type.
26759         (odr_types_equivalent_p): Match types for being polymorphic; avoid
26760         duplicated diagnostics.
26761         (add_type_duplicate): Reorder checks so more informative ones come
26762         first; fix typo; do not output "the extra base is defined here" when
26763         we did not warn.
26764         (BINFO_N_BASE_BINFOS): Relax sanity check.
26765
26766 2015-03-22  Martin Liska  <mliska@suse.cz>
26767             Jakub Jelinek  <jakub@redhat.com>
26768
26769         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
26770         masks that can potentially include a builtin.
26771         (ix86_add_new_builtins): Introduce fast filter for isa values
26772         that cannot trigger builtin inclusion.
26773
26774 2015-03-22  Martin Liska  <mliska@suse.cz>
26775
26776         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
26777         (sem_item::update_hash_by_local_refs): Likewise.
26778         (sem_variable::get_hash): Empty line is fixed.
26779         (sem_item_optimizer::execute): Include adding of hash references.
26780         (sem_item_optimizer::update_hash_by_addr_refs): New function.
26781         (sem_item_optimizer::build_hash_based_classes): Use local hash.
26782         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
26783         (sem_item::update_hash_by_local_refs): Likewise.
26784
26785 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26786
26787         PR ipa/65502
26788         * ipa-comdats.c (enqueue_references): Walk through thunks.
26789         (ipa_comdats): Likewise.
26790         (set_comdat_group_1): New function.
26791
26792 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26793
26794         PR ipa/65475
26795         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
26796         non-polymorphic
26797
26798 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26799             Gerald Pfeifer  <gerald@pfeifer.com>
26800
26801         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
26802
26803 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26804             Sandra Loosemore  <sandra@codesourcery.com>
26805
26806         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
26807         function parameter declaration.
26808         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
26809         Update arguments to nios2_adjust_call_address().
26810         (sibcall_internal): Rename from *sibcall.
26811         (sibcall_value_internal): Rename from *sibcall_value.
26812         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
26813         (nios2_large_got_address): Add target temp reg parameter.
26814         (nios2_got_address): Adjust call to nios2_large_got_address, add
26815         force_reg around it.
26816         (nios2_load_pic_address): Add target temp reg parameter, replace call
26817         to nios2_got_address with corresponding code.
26818         (nios2_legitimize_constant_address): Update call to
26819         nios2_load_pic_address.
26820         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
26821         to use temp reg for PIC loading purposes.
26822         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
26823         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26824         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
26825
26826 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26827
26828         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
26829         usage of "the @option{...}".
26830         (-Wopenmp-simd): Likewise.
26831         (-fsanitize-recover): Likewise.
26832         (-fsanitize-undefined-trap-on-error): Likewise.
26833         (-flto): Likewise.
26834         (tracer-dynamic-coverage-feedback): Likewise.
26835         (reorder-block-duplicate-feedback): Likewise.
26836         (loop-unroll-jam-size): Likewise.
26837         (-B): Likewise.
26838         (-I-): Likewise.
26839         (-mabs=legacy): Likewise.
26840         (-mupper-regs-df): Likewise.
26841         (-mupper-regs-sf): Likewise.
26842         (-mpointers-to-nested-functions): Likewise.
26843
26844 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26845
26846         * doc/extend.texi (Cilk Plus Builtins): Add markup.
26847
26848 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26849
26850         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
26851         additional index entries and cross-references.
26852         (-fchkp-check-incomplete-type): Likewise.
26853         (-fchkp-first-field-has-own-bounds): Likewise.
26854         (-fchkp-narrow-to-innermost-array): Likewise.
26855         (-fchkp-use-fast-string-functions): Likewise.
26856         (-fchkp-use-nochk-string-functions): Likewise.
26857         (-fchkp-use-static-const-bounds): Likewise.
26858         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26859         (-fchkp-instrument-marked-only): Likewise.
26860         (-fchkp-use-wrappers): Likewise.
26861         (-static-libmpx): Likewise.
26862         (-static-libmpxwrappers): Likewise.
26863         * doc/extend.texi (bnd_legacy): Likewise.
26864         (bnd_instrument): Likewise.
26865         (bnd_variable_size): Likewise.
26866         (Pointer Bounds Checker builtins): Likewise.
26867
26868 2015-03-21  Tom de Vries  <tom@codesourcery.com>
26869
26870         PR tree-optimization/65458
26871         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
26872         * cgraph.h (cgraph_node): Add parallelized_function field.
26873         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
26874         (input_overwrite_node): Read parallelized_function field.
26875         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
26876         parallelized_function on cgraph_node for child_fn.
26877         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
26878         Remove include of gt-tree-parloops.h.
26879         (parallelized_functions): Remove static variable.
26880         (parallelized_function_p): Rewrite using parallelized_function field of
26881         cgraph_node.
26882         (create_loop_fn): Remove adding to parallelized_functions.
26883         * Makefile.in (GTFILES): Remove tree-parloops.c
26884
26885 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
26886
26887         PR rtl-optimization/64366
26888         * lra.c (lra_update_insn_regno_info): Consider regs in
26889         CALL_INSN_FUNCTION_USAGE memory.
26890
26891 2015-03-20  Richard Biener  <rguenther@suse.de>
26892
26893         PR middle-end/64715
26894         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
26895         for type comparison and gcc_checking_assert.
26896         (chrec_fold_plus_poly_poly): Likewise.
26897         (chrec_fold_multiply_poly_poly): Likewise.
26898         (chrec_convert_1): Likewise.
26899         * gimplify.c (gimplify_expr): Remove premature folding of
26900         &X + CST to &MEM[&X, CST].
26901
26902 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26903
26904         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
26905         already is final.
26906         (ipa_inline): Recompute inline_failed codes.
26907         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
26908         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
26909         CIF_FINAL_ERROR.
26910
26911 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
26912
26913         PR rtl-optimization/60851
26914         * recog.c (constrain_operands): Accept a pseudo register before reload
26915         for LRA enabled targets.
26916
26917 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
26918
26919         PR target/65240
26920         * config/rs6000/predicates.md (easy_fp_constant): Remove special
26921         -ffast-math handling that kept non-0 constants live in the RTL
26922         until reload.  Remove logic testing the number of instructions it
26923         took to create a constant in a GPR that was never used, due to a
26924         test for soft-float earlier.
26925         (memory_fp_constant): Delete, no longer used.
26926
26927         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
26928         alternatives for loading non-0 constants into GPRs for hard
26929         floating point that is no longer needed due to changes in
26930         easy_fp_constant.  Add support for loading 0.0 into GPRs.
26931         (mov<mode>_hardfloat32): Likewise.
26932         (mov<mode>_hardfloat64): Likewise.
26933         (mov<mode>_64bit_dm): Likewise.
26934         (movtd_64bit_nodm): Likewise.
26935         (pre-reload move FP constant define_split): Delete define_split,
26936         since it is no longer used.
26937         (extenddftf2_internal): Remove GHF constraints that are not valid
26938         for extenddftf2.
26939
26940 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
26941
26942         PR rtl-optimization/63491
26943         * lra-constraints.c (check_and_process_move): Use src instead of
26944         sreg.  Remove some dead code.
26945
26946 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
26947
26948         PR ipa/65380
26949         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
26950         (sem_variable::merge): Likewise.
26951
26952 2015-03-19  Martin Liska  <mliska@suse.cz>
26953
26954         PR ipa/65465
26955         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
26956         all fields of cgraph_thunk_info.
26957
26958 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
26959
26960         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
26961         clone instrumented thunks.
26962
26963 2015-03-19  Richard Biener  <rguenther@suse.de>
26964
26965         Revert
26966         2015-03-10  Richard Biener  <rguenther@suse.de>
26967
26968         PR middle-end/63155
26969         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
26970         * tree-ssa-coalesce.c: Include timevar.h.
26971         (attempt_coalesce): Handle graph being NULL.
26972         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
26973         Split out abnormal coalescing to ...
26974         (perform_abnormal_coalescing): ... this function.
26975         (coalesce_ssa_name): Perform abnormal coalescing without computing
26976         live/conflict.
26977         (verify_ssa_coalescing_worker): New function.
26978         (verify_ssa_coalescing): Likewise.
26979
26980 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26981             Jakub Jelinek  <jakub@redhat.com>
26982
26983         PR sanitizer/65400
26984         * tsan.c (instrument_gimple): Clear tail call flag on
26985         calls.
26986
26987 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
26988
26989         PR sanitizer/65400
26990         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
26991         call in the return bb.
26992         (find_split_points): Add RETURN_BB argument, don't call
26993         find_return_bb.
26994         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
26995         if true append TSAN_FUNC_EXIT internal call after the call to
26996         the split off function.
26997         (execute_split_functions): Call find_return_bb here.
26998         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
26999         Adjust find_split_points and split_function calls.
27000
27001 2015-03-18  DJ Delorie  <dj@redhat.com>
27002
27003         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
27004         (iorqi3_virt): Likewise.
27005
27006 2015-03-18  Tom de Vries  <tom@codesourcery.com>
27007
27008         * tree-parloops.c (parallelize_loops): Make static.
27009         * tree-parloops.h (parallelize_loops): Remove extern declaration.
27010
27011 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
27012
27013         PR middle-end/64491
27014         Revert:
27015         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
27016
27017         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
27018         condition would be removed due to undefined behaviour.
27019
27020 2015-03-18  Martin Liska  <mliska@suse.cz>
27021
27022         PR ipa/65432
27023         * cgraph.c (cgraph_node::get_create): Remove unnecessary
27024         xstrdup_for_dump wrapper.
27025         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
27026         sem_item::name.
27027         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
27028         with xstrdup_for_dump.
27029         (sem_variable::equals): Likewise.
27030         (sem_item_optimizer::read_section): Use symtab_node::name instead of
27031         sem_item::name.
27032         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
27033         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
27034         symtab_node::asm_name with xstrdup_for_dump.
27035         (congruence_class::dump): Use symtab_node::name instead of
27036         sem_item::name.
27037         * ipa-icf.h (symtab_node::name): Remove.
27038         (symtab_node::asm_name): Likewise.
27039
27040 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
27041
27042         PR tree-optimization/65450
27043         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
27044         function.
27045         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
27046         it instead of duplicate_ssa_name_ptr_info.
27047
27048         PR target/65222
27049         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
27050
27051 2015-03-18  Richard Biener  <rguenther@suse.de>
27052
27053         * tree-data-ref.h (struct access_matrix): Remove.
27054         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
27055         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
27056         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
27057         (am_vector_index_for_loop): Likewise.
27058         (struct data_reference): Remove access_matrix member.
27059         (DR_ACCESS_MATRIX): Remove.
27060         (lambda_vector_new): Add comment.
27061         (lambda_matrix_new): Use XOBNEWVEC.
27062
27063 2015-03-18  Richard Biener  <rguenther@suse.de>
27064
27065         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
27066         (pass_ch::execute): Cleanup the CFG only if we did sth.
27067         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
27068
27069 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27070
27071         * expmed.c (synth_mult): Use std::swap instead of manually
27072         swapping algorithms.
27073
27074 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
27075
27076         PR target/65078
27077         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
27078
27079 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
27080
27081         PR target/65296
27082         * config/avr/avr.opt (-nodevicelib): New option.
27083         * doc/invoke.texi (AVR Options): Document it.
27084         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
27085         libgcc.a, libc.a, libm.a.
27086         * config/avr/specs.h: Same.
27087         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
27088         which don't (directly) depend on the device.  Print more help.
27089         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
27090         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
27091         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
27092         case of an error.
27093         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
27094         for specs file name.
27095         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
27096         * config/avr/avr-mcus.def: Adjust initializers and comments.
27097
27098 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
27099
27100         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
27101         DECL_ONE_ONLY to check if decl is one only.
27102         * ipa-split.c (consider_split): Limit splitt of one only functions.
27103
27104 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27105
27106         PR tree-optimization/65427
27107         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
27108         functions.
27109         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
27110
27111 2015-03-16  Marek Polacek  <polacek@redhat.com>
27112
27113         * cgraph.h (add_new_static_var): Remove declaration.
27114         * varpool.c (add_new_static_var): Remove function.
27115
27116 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27117
27118         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
27119         instead of vec<tree> * with vec_alloc and release for args.
27120         Adjust all users.
27121
27122         PR middle-end/65431
27123         * omp-low.c (delete_omp_context): Only splay_tree_delete
27124         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
27125         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
27126
27127 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
27128
27129         PR sanitizer/64820
27130         * cfgexpand.c (align_base): New function.
27131         (alloc_stack_frame_space): Call it.
27132         (expand_stack_vars): Align prev_frame to be sure
27133         data->asan_vec elements aligned properly.
27134
27135 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
27136
27137         PR middle-end/65409
27138         * expr.c (store_field): Do not do a direct block copy if the source is
27139         a PARALLEL with BLKmode.
27140
27141 2015-03-16  Tom de Vries  <tom@codesourcery.com>
27142
27143         PR middle-end/65414
27144         Revert:
27145         2015-03-12  Tom de Vries  <tom@codesourcery.com>
27146
27147         PR rtl-optimization/64895
27148         * lra-lives.c (check_pseudos_live_through_calls): Use
27149         actual_call_used_reg_set instead of call_used_reg_set, if available.
27150
27151 2015-03-16  Alan Modra  <amodra@gmail.com>
27152
27153         PR target/63150
27154         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
27155         Modify Z->r bswapdi splitter to use dest in place of scratch.
27156         In r->Z and Z->r bswapdi splitter rename word_high, word_low
27157         to word1, word2 and rearrange logic to suit.
27158         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
27159         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
27160         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
27161         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
27162         early clobber.
27163
27164 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
27165
27166         PR tree-optimization/65369
27167         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
27168         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
27169         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
27170
27171         PR tree-optimization/65418
27172         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
27173         are casts in the first PLUS_EXPR operand, ensure tbias and
27174         *totallowp are in the inner type.
27175
27176         PR rtl-optimization/65401
27177         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
27178         argument.  If true, adjust_address_nv of x with big-endian
27179         correction for the mode widening to GET_MODE (y).
27180         (make_field_assignment): Don't do MEM mode widening here.
27181         Use MEM_P instead of GET_CODE == MEM.
27182
27183 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
27184
27185         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
27186         the external decls.
27187
27188 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27189
27190         PR target/64600
27191         * config/arm/arm.c (arm_gen_constant, AND case): Use
27192         ARM_SIGN_EXTEND when constructing AND mask.
27193
27194 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27195
27196         * graph.c (print_graph_cfg): Make function names visible and append
27197         parenthesis to it.  Also make groups of basic blocks belonging to the
27198         same function visible.
27199
27200 2015-03-12  Richard Biener  <rguenther@suse.de>
27201
27202         PR middle-end/44563
27203         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
27204         to avoid quadratic behavior with inline expansion splitting blocks.
27205         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
27206         with the successor if the predecessor will be merged with it.
27207         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
27208         entry block with its successor.
27209
27210 2015-03-13  Richard Biener  <rguenther@suse.de>
27211
27212         PR middle-end/44563
27213         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
27214         (cleanup_tree_cfg_1): Do not call it.
27215         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
27216         (fixup_noreturn_call): Mark the stmt as control altering.
27217         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
27218         here.
27219         (pass_data_fixup_cfg): Produce a dump file.
27220         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
27221         (need_noreturn_fixup): New global.
27222         (pass_dominator::execute): Fixup queued noreturn calls.
27223         (optimize_stmt): Queue calls that became noreturn for fixup.
27224         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
27225         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
27226         (el_to_fixup): New global.
27227         (eliminate_dom_walker::before_dom_childre): Queue calls that
27228         became noreturn for fixup.
27229         (eliminate): Fixup queued noreturn calls.
27230         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
27231         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
27232         (substitute_and_fold_dom_walker::before_dom_children): Queue
27233         alls that became noreturn for fixup.
27234         (substitute_and_fold): Fixup queued noreturn calls.
27235
27236 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
27237
27238         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
27239         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
27240         are building; for methods check ODR type of class they belong to if
27241         they may lead to a polymorphic call.
27242         (sem_function::compare_polymorphic_p): Be bit smarter about testing
27243         when function may lead to a polymorphic call.
27244         (sem_function::compare_type_list): Remove.
27245         (sem_variable::equals): Update use of compatible_types_p.
27246         (sem_variable::parse_tree_refs): Remove.
27247         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
27248         cdtor.
27249         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
27250         matching here.
27251         (func_checker::compatible_polymorphic_types_p): Break out from ...
27252         (unc_checker::compatible_types_p): ... here.
27253         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
27254         Declare.
27255         (unc_checker::compatible_types_p): Update.
27256         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
27257         Remove.
27258
27259 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27260
27261         PR rtl-optimization/65235
27262         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
27263         When first element of vec_concat is const_int, calculate its size
27264         using second element.
27265
27266 2015-03-12  Richard Biener  <rguenther@suse.de>
27267
27268         PR middle-end/65270
27269         * fold-const.c (operand_equal_p): Fix ordering of resetting
27270         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
27271
27272 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27273
27274         * config/s390/s390.c (s390_reorg): Move code to output nops after label
27275         to s390_reorg ().
27276         (s390_asm_output_function_label): Likewise.
27277         * config/s390/s390.c (s390_asm_output_function_label):
27278         Fix function label alignment with -mhtopatch.
27279         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
27280         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
27281         ("nop_2_byte"): New define_insn.
27282         ("nop_4_byte"): Likewise.
27283         ("nop_6_byte"): Likewise.
27284         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
27285         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
27286
27287 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27288
27289         PR target/65103
27290         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
27291         register.
27292
27293 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27294
27295         PR target/65044
27296         * toplev.c (process_options): Restrict Pointer Bounds Checker
27297         usage with Address Sanitizer.
27298
27299 2015-03-12  Richard Biener  <rguenther@suse.de>
27300
27301         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
27302         to split on.
27303         * omp-low.c (expand_omp_taskreg): Split block before removing
27304         the stmt.
27305         (expand_omp_target): Likewise.
27306         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
27307         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
27308         stmt to split_block.
27309
27310 2015-03-12  Tom de Vries  <tom@codesourcery.com>
27311
27312         PR rtl-optimization/64895
27313         * lra-lives.c (check_pseudos_live_through_calls): Use
27314         actual_call_used_reg_set instead of call_used_reg_set, if available.
27315
27316 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27317
27318         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
27319         (cgraph_node::remove): Likewise.
27320         (cgraph_node::get_untransformed_body): Likewise.
27321         * varpool.c (varpool_node::remove): Likewise.
27322         (varpool_node::get_constructor): Add sanity check.
27323
27324 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
27325
27326         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
27327         old GCC versions.
27328         (-fabi-compat-version): Likewise.
27329         (-ffriend-injection): Likewise.
27330         (-Wdeclaration-after-statement): Likewise.
27331         (-fomit-frame-pointer): Likewise.
27332         (-ftree-coalesce-inlined-vars): Likewise.
27333         (-fvisibility=): Likewise.
27334         * doc/extend.texi (Typeof): Likewise.
27335         (Zero Length): Likewise.
27336         (Escaped Newlines): Likewise.
27337         (Compound Literals): Likewise.
27338         (Function Attributes): Likewise.
27339         (Label Attributes): Likewise.
27340         (Type Attributes): Likewise.
27341         (Function Names): Likewise.
27342         (Other Builtins): Likewise.
27343         (Function Specific Option Pragmas): Likewise.
27344         (C++ Interface): Likewise.
27345
27346 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
27347
27348         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
27349
27350 2015-03-11  Marek Polacek  <polacek@redhat.com>
27351
27352         PR tree-optimization/65388
27353         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
27354
27355 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27356
27357         PR target/65296
27358         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
27359         * configure: Regenerate.
27360         * config.in: Regenerate.
27361         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
27362         [-mn-flash]: Document it.
27363         [__AVR_ARCH__]: Document avrtiny.
27364
27365         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
27366         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
27367         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
27368
27369 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27370
27371         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
27372
27373 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
27374
27375         PR target/65242
27376         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
27377         allow reloads of PLUS in floating point/VSX registers.
27378
27379 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
27380
27381         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
27382         crypto_sha256_fast.
27383         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
27384
27385 2015-03-11  Richard Biener  <rguenther@suse.de>
27386
27387         PR tree-optimization/65310
27388         * tree-sra.c (build_ref_for_offset): Also preserve larger
27389         alignment.
27390
27391 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
27392
27393         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
27394
27395 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27396
27397         PR target/65368
27398         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
27399         new define_expand.
27400         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
27401
27402 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27403
27404         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
27405         (sem_function::equals_wpa): ... here.
27406
27407 2015-03-10  Marek Polacek  <polacek@redhat.com>
27408             Jakub Jelinek  <jakub@redhat.com>
27409
27410         PR sanitizer/65367
27411         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
27412         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
27413         separately.
27414
27415 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27416
27417         PR target/65286
27418         * config/rs6000/t-linux: For powerpc64* target set
27419         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
27420
27421 2015-03-10  Richard Biener  <rguenther@suse.de>
27422
27423         PR middle-end/44563
27424         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
27425         for redirect_all_calls.
27426
27427 2015-03-10  Marek Polacek  <polacek@redhat.com>
27428
27429         * gdbinit.in (pcfun): Define and document.
27430
27431 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
27432
27433         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
27434         of libgomp-plugin.h.
27435         (find_target_compiler): Support a case when the path to gcc is
27436         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
27437         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
27438         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
27439         libgomp-plugin.h.
27440         (main): Use GCC_INSTALL_NAME as target_driver_name.
27441         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
27442         define.
27443         (mkoffload.o): Remove obsolete include path and defines.
27444         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
27445
27446 2015-03-10  Richard Biener  <rguenther@suse.de>
27447
27448         PR middle-end/63155
27449         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27450         * tree-ssa-coalesce.c: Include timevar.h.
27451         (attempt_coalesce): Handle graph being NULL.
27452         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27453         Split out abnormal coalescing to ...
27454         (perform_abnormal_coalescing): ... this function.
27455         (coalesce_ssa_name): Perform abnormal coalescing without computing
27456         live/conflict.
27457         (verify_ssa_coalescing_worker): New function.
27458         (verify_ssa_coalescing): Likewise.
27459
27460 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27461
27462         PR target/65296
27463         * config.gcc (extra_options) [avr]: Remove.
27464         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
27465         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
27466         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
27467
27468         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
27469         (-mmcu=): Add Var and MissingArgError properties.
27470         (-march=): Remove.
27471         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
27472         * config/avr/t-multilib: Regenerate.
27473         * config/avr/specs.h: New file.
27474         * config/avr/driver-avr.c: New file.
27475         * config/avr/genopt.sh: Remove file.
27476         * config/avr/avr-tables.opt: Remove file.
27477         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
27478         * config/avr/avr-c.c: Same.
27479         * avr-arch.h: Same.
27480         (avr_current_device): Remove proto.
27481         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
27482         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
27483         (EXTRA_SPEC_FUNCTIONS): Define.
27484         (avr_devicespecs_file): New specs function proto.
27485         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
27486         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
27487         (avr_current_device): Remove definition and usage.
27488         (avr_set_core_architecture): New static function.
27489         (avr_option_override): Use it.
27490         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
27491         (mcu_name): New static array.
27492         (comparator, avr_archs_str, avr_mcus_str): New static functions.
27493         (avr_inform_devices, avr_inform_core_architectures): New functions.
27494         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
27495         (avrlibc.h) [WITH_AVRLIBC]: Include.
27496         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
27497         (print_mcu): Rewrite from scratch.
27498         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
27499         Forward to avr-specific specs defined in device-specs file.
27500         * config/avr/t-avr (driver-avr.o): New rule.
27501         (avr-devices.o): Depend on avr-arch.h.
27502         (avr-mcus): No more depend on avr-tables.opt.
27503         (avr-tables.opt): Remove rule.
27504         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
27505
27506 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27507
27508         * c-family/c.opt (fchkp-use-wrappers): New.
27509         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
27510         (chkp_wrap_function): New.
27511         (chkp_build_instrumented_fndecl): Support wrapped
27512         functions.
27513         * doc/invoke.texi (-fcheck-pointer-bounds): New.
27514         (-fchkp-check-incomplete-type): New.
27515         (-fchkp-first-field-has-own-bounds): New.
27516         (-fchkp-narrow-bounds): New.
27517         (-fchkp-narrow-to-innermost-array): New.
27518         (-fchkp-optimize): New.
27519         (-fchkp-use-fast-string-functions): New.
27520         (-fchkp-use-nochk-string-functions): New.
27521         (-fchkp-use-static-bounds): New.
27522         (-fchkp-use-static-const-bounds): New.
27523         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
27524         (-fchkp-check-read): New.
27525         (-fchkp-check-write): New.
27526         (-fchkp-store-bounds): New.
27527         (-fchkp-instrument-calls): New.
27528         (-fchkp-instrument-marked-only): New.
27529         (-fchkp-use-wrappers): New.
27530         (-static-libmpx): New.
27531         (-static-libmpxwrappers): New.
27532
27533 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27534
27535         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
27536         (CHKP_SPEC): Add wrappers library.
27537         * c-family/c.opt (static-libmpxwrappers): New.
27538
27539 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27540
27541         * config/i386/linux-common.h (LIBMPX_LIBS): New.
27542         (LIBMPX_SPEC): New.
27543         (CHKP_SPEC): New.
27544         * gcc.c (CHKP_SPEC): New.
27545         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
27546         * c-family/c.opt (static-libmpx): New.
27547
27548 2015-03-10  Richard Biener  <rguenther@suse.de>
27549
27550         PR middle-end/44563
27551         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
27552         for compare_type.
27553         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
27554         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
27555         (cgraph_add_edge_to_call_site_hash): Likewise.
27556         (cgraph_node::get_edge): Likewise.
27557         (cgraph_edge::set_call_stmt): Likewise.
27558         (cgraph_edge::remove_caller): Likewise.
27559
27560 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
27561
27562         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
27563         (callee_saved_gpr_regs_size): ... this.
27564         (callee_saved_regs_first_regno): Rename to ...
27565         (callee_saved_first_gpr_regno): ... this.
27566         (callee_saved_regs_last_regno) Rename to ...
27567         (callee_saved_last_gpr_regno): ... this.
27568         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
27569         variables.
27570         (nds32_initial_elimination_offset): Likewise.
27571         (nds32_expand_prologue): Likewise.
27572         (nds32_expand_epilogue): Likewise.
27573         (nds32_expand_prologue_v3push): Likewise.
27574         (nds32_expand_epilogue_v3pop): Likewise.
27575         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
27576         Adjust renamed variables.
27577         (nds32_output_stack_pop): Likewise.
27578
27579 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27580
27581         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
27582         code in comment.
27583
27584 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27585
27586         PR rtl-optimization/65321
27587         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
27588         than shift mode.
27589         * var-tracking.c (use_narrower_mode): Likewise.
27590
27591 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27592
27593         PR tree-optimization/65355
27594         * varasm.c (notice_global_symbol): Do not produce RTL.
27595         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
27596         anchor.
27597         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
27598         check for section anchors.
27599
27600 2015-03-10  Alan Modra  <amodra@gmail.com>
27601
27602         PR target/65286
27603         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
27604         to be single-arch by default.  Set cpu_is_64bit for powerpc64
27605         given --with-cpu=native.
27606         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
27607         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
27608         and powerpc64le.
27609         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
27610         rs6000_isa_flags rather than TARGET_64BIT.
27611
27612 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
27613             Kaz Kojima  <kkojima@gcc.gnu.org>
27614
27615         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
27616
27617 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
27618
27619         PR lto/65361
27620         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
27621         on a TREE_BINFO, instead use BINFO_TYPE.
27622
27623 2015-03-09  Richard Biener  <rguenther@suse.de>
27624
27625         PR middle-end/65270
27626         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
27627         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
27628         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
27629         of that.  When comparing dereferences compare alignment.
27630         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
27631
27632 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27633
27634         * ipa-inline-analysis.c (check_callers): Check
27635         node->can_remove_if_no_direct_calls_and_refs_p.
27636         (growth_likely_positive): Reorganize to call
27637         can_remove_if_no_direct_calls_p later.
27638         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
27639         will_be_removed_from_program_if_no_direct_calls_p): Add
27640         will_inline parameter.
27641         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
27642         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27643         Handle inliner case correctly.
27644
27645 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27646
27647         PR tree-optimization/63743
27648         * cfgexpand.c (reorder_operands): Also reorder if only second operand
27649         had its definition forwarded by TER.
27650
27651 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27652
27653         PR lto/65316
27654         * ipa-utils.h (types_odr_comparable): Add strict argument.
27655         * ipa-devirt.c: Fix whitespace;
27656         (odr_hasher): Remove.
27657         (odr_name_hasher, odr_vtable_hasher): New hashers.
27658         (can_be_name_hashed_p): New predicate.
27659         (hash_type_name): remove.
27660         (hash_odr_name): New.
27661         (odr_name_hasher::hash): new.
27662         (can_be_vtable_hashed_p): New.
27663         (hash_odr_vtable): New.
27664         (odr_vtable_hasher::hash): New.
27665         (types_same_for_odr): Add strict parameter.
27666         (types_odr_comparable): Likewise.
27667         (odr_name_hasher::equal): New.
27668         (odr_vtable_hasher::equal): New.
27669         (odr_name_hasher::remove): New.
27670         (odr_hash_type): Change to hash_table<odr_name_hasher>.
27671         (odr_vtable_hash_type): New.
27672         (odr_vtable_hash): New.
27673         (odr_subtypes_equivalent_p): Do strict comparsion.
27674         (add_type_duplicate): Merge type names; cleanup; avoid type
27675         duplicates.
27676         (register_odr_type): Initialize vtable hash.
27677         (build_type_inheritance_graph): Likewise
27678         (get_odr_type): Reorg to use two hashes.
27679         (dump_possible_polymorphic_call_targets): Move sanity check after debug
27680         output.
27681         (ipa_devirt): Dump type_inheritance_graph.
27682         (types_same_for_odr): Add strict mode.
27683
27684 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27685
27686         PR ipa/65334
27687         * cgraph.h (symtab_node): Add definition_alignment,
27688         can_increase_alignment_p and increase_alignment.
27689         * symtab.c (symtab_node::can_increase_alignment_p,
27690         increase_alignment_1, symtab_node::increase_alignment,
27691         symtab_node::definition_alignment): New.
27692         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
27693         can_increase_alignment_p.
27694         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
27695         * tree-vect-stmts.c (ensure_base_align): Likewise.
27696         * varasm.c (function_section_1): Use definition_alignment.
27697         (assemble_start_function): Likewise.
27698         (emit_local): likewise.
27699         (build_constant_desc): Likewsie.
27700         (output_constant_def_contents): Likewise.
27701         (place_block_symbol): Likewise.
27702         (output_object_block): Likewise.
27703
27704 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27705
27706         PR ipa/65316
27707         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
27708         when outputting debug.
27709
27710 2015-03-07  Marek Polacek  <polacek@redhat.com>
27711             Martin Uecker  <uecker@eecs.berkeley.edu>
27712
27713         PR sanitizer/65280
27714         * doc/invoke.texi: Update description of -fsanitize=bounds.
27715
27716 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
27717
27718         * tree-ssa-phiopt.c (neg_replacement): Remove.
27719         (tree_ssa_phiopt_worker): Remove negate optimization.
27720
27721 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27722
27723         PR ipa/65302
27724         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
27725
27726 2015-03-06  Richard Biener  <rguenther@suse.de>
27727
27728         PR middle-end/64928
27729         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
27730         and liveout_obstack members.
27731         (calculate_live_on_exit): Remove.
27732         (calculate_live_ranges): Change declaration.
27733         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
27734         (new_tree_live_info): Adjust.
27735         (calculate_live_ranges): Delete livein when not wanted.
27736         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
27737         Deal with partly deleted live info.
27738         (loe_visit_block): Remove temporary bitmap by using
27739         bitmap_ior_and_compl_into.
27740         (live_worklist): Adjust accordingly.
27741         (calculate_live_on_exit): Make static.
27742         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
27743         we do not need livein.
27744
27745 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
27746
27747         * real.c (real_from_string): Fix typo in assertion.
27748
27749 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
27750
27751         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
27752         the patch.
27753
27754 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27755
27756         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
27757
27758 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
27759
27760         PR target/64342
27761         * lra-assigns.c (find_hard_regno_for): Rename to
27762         find_hard_regno_for_1.  Add a new parameter.
27763         (find_hard_regno_for): New function using find_hard_regno_for_1.
27764
27765 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27766
27767         PR rtl-optimization/65067
27768         * expmed.c (store_bit_field, extract_bit_field): Reworked the
27769         strict volatile bitfield handling.
27770
27771 2015-03-05  Martin Liska  <mliska@suse.cz>
27772
27773         PR ipa/65318
27774         * ipa-icf.c (sem_variable::equals): Compare variables types.
27775
27776 2015-03-05  Richard Henderson  <rth@redhat.com>
27777
27778         PR target/65121
27779         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
27780         correctly check weak symbol binding.
27781
27782 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
27783
27784         PR middle-end/65315
27785         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
27786         needed alignment.
27787
27788 2015-03-05  Martin Liska  <mliska@suse.cz>
27789
27790         * ipa-inline.c (inline_small_functions): Set default value to
27791         prevent warning during bootstrap.
27792         * tree.h: Add pragma guard that ignores false positives during
27793         bootstrap.
27794
27795 2015-03-05  Richard Biener  <rguenther@suse.de>
27796
27797         PR tree-optimization/65310
27798         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
27799         Properly preserve alignment of the base of the access.
27800
27801 2015-03-05  Richard Biener  <rguenther@suse.de>
27802
27803         PR ipa/65270
27804         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
27805         Compare dependence info.
27806
27807 2015-03-05  Richard Biener  <rguenther@suse.de>
27808
27809         PR middle-end/65233
27810         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
27811         tree-into-ssa.h.
27812         (walk_ssa_copies): Revert last chage.  Instead do not walk
27813         SSA names registered for SSA update.
27814
27815 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27816
27817         PR ipa/65270
27818         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
27819         vtable references for their containing type.
27820         (sem_function::equals_wpa): Compare TYPE_RESTRICT
27821         and type attributes.
27822
27823 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
27824
27825         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
27826         before negating it.
27827         * stor-layout.c (finalize_record_size): Revert latest change.
27828
27829 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
27830
27831         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
27832
27833 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27834
27835         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
27836         for correct comdat handling.
27837         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27838         Likewise.
27839         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
27840         (used_from_object_file_p_worker): Remove.
27841         (cgraph_node::only_called_directly_or_alised): Add
27842         used_from_object_file_p.
27843         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
27844         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
27845         can_remove_if_no_direct_calls_and_refs_p.
27846
27847 2015-03-04  Nick Clifton  <nickc@redhat.com>
27848
27849         * config/rl78/rl78.h (enum reg_class): Remove real registers from
27850         General register class.
27851         * config/rl78/rl78-real.md: Replace general register constraints
27852         with real+virtual register constraints.
27853
27854 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27855
27856         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
27857         from checking for -mhtm option.
27858
27859 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27860
27861         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
27862         (struct ipa_sra_check_caller_data): Add has_thunk field.
27863         (ipa_sra_check_caller): Check for thunk.
27864         (ipa_sra_preliminary_function_checks): Give up on function with
27865         thunks.
27866         (ipa_early_sra): Use call_for_symbol_and_aliases.
27867
27868 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
27869
27870         PR target/65249
27871         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
27872         called for __stack_chk_guard symbol.
27873
27874 2015-03-03  DJ Delorie  <dj@redhat.com>
27875
27876         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
27877         inc/dec.
27878         (*addhi3_real): Likewise.
27879         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
27880         pattern to match incrementing memory.
27881         * config/rl78/predicates.md (rl78_1_2_operand): New.
27882         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
27883         it's the same and only mem.
27884         (rl78_alloc_physical_registers_op2): If there's effectively only
27885         one MEM, transcode it into HL.
27886         (rl78_far_p): Reject addresses that aren't legitimate.
27887
27888 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27889
27890         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
27891         negating it.
27892
27893         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
27894
27895 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27896
27897         Implement call0 ABI for xtensa
27898         * config/xtensa/constraints.md ("a" constraint): Include stack
27899         pointer in case of call0 ABI.
27900         ("q" constraint): Make empty in case of call0 ABI.
27901         ("D" constraint): Include stack pointer in case of call0 ABI.
27902         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
27903         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
27904         prototypes.
27905         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
27906         variable.
27907         (xtensa_regno_to_class): Make it a local variable in the
27908         function xtensa_regno_to_class.
27909         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
27910         macro, function prototype and implementation.
27911         (reg_nonleaf_alloc_order): Make it a local variable in the
27912         function order_regs_for_local_alloc.
27913         (xtensa_conditional_register_usage): New function.
27914         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
27915         (xtensa_valid_move): Allow direct moves to stack pointer
27916         register in call0 ABI.
27917         (xtensa_setup_frame_addresses): Only spill register windows in
27918         windowed ABI.
27919         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
27920         call0 ABI respectively.
27921         (xtensa_function_arg_1): Only mark a7 register for copying in
27922         windowed ABI.
27923         (xtensa_call_save_reg): New function.
27924         (compute_frame_size): Add space for callee saved register
27925         storage to the frame size in call0 ABI.
27926         (xtensa_expand_prologue): Generate code to set up stack frame
27927         and save callee-saved registers in call0 ABI.
27928         (xtensa_expand_epilogue): New function.
27929         (xtensa_set_return_address): New function.
27930         (xtensa_return_addr): Calculate return address in call0 ABI.
27931         (xtensa_builtin_saveregs): Only mark a7 register for copying and
27932         emit copying code in windowed ABI.
27933         (order_regs_for_local_alloc): Add preferred register allocation
27934         order for non-leaf function in call0 ABI.
27935         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
27936         (xtensa_asm_trampoline_template): Add trampoline generation for
27937         call0 ABI.
27938         (xtensa_trampoline_init): Add trampoline initialization for
27939         call0 ABI.
27940         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
27941         functions.
27942         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
27943         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
27944         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
27945         ABI call-used registers.
27946         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
27947         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
27948         call0 ABI.
27949         (REG_CLASS_CONTENTS): Include all registers into the preferred
27950         reload registers set, adjust the set in the
27951         xtensa_conditional_register_usage.
27952         (xtensa_regno_to_class): Drop variable declaration.
27953         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
27954         function.
27955         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
27956         respectively.
27957         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
27958         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
27959         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
27960         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
27961         location in call0 ABI.
27962         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
27963         stack adjustment size when handling exception.
27964         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
27965         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
27966         definitions.
27967         ("return" pattern): Generate ret.n/ret in call0 ABI.
27968         ("epilogue" pattern): Expand epilogue.
27969         ("nonlocal_goto" pattern): Use default in call0 ABI.
27970         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
27971         emit eh_set_a0_* depending on ABI.
27972         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
27973         ("eh_set_a0_call0", "blockage"): New patterns.
27974
27975 2015-03-03  Martin Liska  <mliska@suse.cz>
27976
27977         PR ipa/65287
27978         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
27979
27980 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
27981
27982         PR 65138/target
27983         * config/rs6000/rs6000-tables.opt: Regenerate table.
27984
27985 2015-03-03  Renlin Li  <renlin.li@arm.com>
27986
27987         * doc/md.texi (@item ^): Change ? into ^.
27988
27989 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
27990
27991         * doc/tm.texi: Regenerated.
27992
27993 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27994
27995         * builtins.c (expand_builtin_return_addr): Add
27996         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
27997         surrounding #ifdef.
27998         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
27999         definition to 1.
28000         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
28001         Likewise.
28002         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
28003         undefined.
28004         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
28005         paragraph.
28006
28007 2015-03-03  Martin Jambor  <mjambor@suse.cz>
28008             Eric Botcazou  <ebotcazou@adacore.com>
28009
28010         * tree-sra.c (ipa_sra_check_caller_data): New type.
28011         (has_caller_p): Removed.
28012         (ipa_sra_check_caller): New function.
28013         (ipa_sra_preliminary_function_checks): Use it.
28014
28015 2015-03-03  Martin Liska  <mliska@suse.cz>
28016
28017         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
28018         instead of if branch.
28019
28020 2015-03-03  Martin Liska  <mliska@suse.cz>
28021
28022         PR ipa/65282
28023         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
28024
28025 2015-03-23  Jeff Law  <law@redhat.com>
28026
28027         PR tree-optimization/65241
28028         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
28029         hash table if INSERT is true.
28030
28031 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28032
28033         PR target/65296
28034         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
28035
28036 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28037
28038         PR target/64331
28039         * config/avr/avr.c (context.h, tree-pass.h): Include them.
28040         (avr_pass_data_recompute_notes): New static variable.
28041         (avr_pass_recompute_notes): New class.
28042         (avr_register_passes): New static function.
28043         (avr_option_override): Call it.
28044
28045 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
28046
28047         Fix various problems with specs file generation.
28048
28049         PR target/65296
28050         * config.gcc (extra_gcc_objs) [avr]: Remove.
28051         * config/avr/driver-avr.c: Remove file.
28052         * config/avr/t-avr (driver-avr.o): Remove rule.
28053         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
28054         INCLUDES to build.  Depend on TM_H.
28055         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
28056         build warnings.  Fix non-matching types and non-existing %-codes.
28057         (tm.h): Include.
28058         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
28059         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
28060         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
28061         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
28062         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
28063         (LIBGCC_SPEC): Remove definitions.
28064
28065 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
28066
28067         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
28068         to create a register in testing mode.
28069
28070 2015-03-03  Martin Liska  <mliska@suse.cz>
28071             Jan Hubicka  <hubicka@ucw.cz>
28072
28073         PR ipa/65263
28074         * cgraph.c (cgraph_node::has_thunk_p): New function.
28075         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
28076         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
28077         (sem_function::merge): Assert is changed.
28078
28079 2015-03-03  Martin Liska  <mliska@suse.cz>
28080             Martin Jambor  <mjambor@suse.cz>
28081
28082         PR ipa/65087
28083         * ipa-icf.c (sem_item_optimizer::execute): Change function
28084         return value to boolean.
28085         (sem_item_optimizer::merge_classes): Likewise.
28086         (ipa_icf_driver): Return TODO_remove_functions in case there's
28087         a merge operation processed.
28088         * ipa-icf.h: Change function return value to boolean.
28089
28090 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
28091
28092         PR 65138/target
28093         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
28094         processor type for 64-bit little endian PowerPC.
28095
28096         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
28097         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
28098         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
28099         printing built-in mask so it does not pass NULL pointers.
28100
28101         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
28102         -mcpu=powerpc64le.
28103
28104 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
28105
28106         PR target/58158
28107         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
28108         !ISA_HAS_FP_CONDMOVE.
28109
28110 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
28111
28112         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
28113         reload_completed.
28114
28115 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
28116
28117         * doc/invoke.texi (Options for Code Generation Conventions):
28118         Fix URL of DSO paper.
28119
28120 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28121
28122         PR ipa/65130
28123         * ipa-inline.c (check_callers): Looks for recursion.
28124         (inline_to_all_callers): Give up on uninlinable or recursive edges.
28125         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
28126         summary of inline clones.
28127         (do_estimate_growth_1): Fix recursion check.
28128
28129 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28130
28131         PR ipa/64988
28132         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
28133         comdat groups.
28134
28135 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28136             Aldy Hernandez  <aldyh@redhat.com>
28137
28138         PR lto/65276
28139         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
28140         when checking TYPE_BINFO.
28141
28142 2015-03-02  Richard Biener  <rguenther@suse.de>
28143
28144         PR ipa/65270
28145         * ipa-icf-gimple.c: Include builtins.h.
28146         (func_checker::compare_memory_operand): Compare base alignment.
28147
28148 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28149
28150         PR target/65184
28151         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
28152         are never passed by reference.
28153
28154 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28155
28156         PR target/65183
28157         * tree-chkp.c (chkp_check_lower): Don't check against
28158         zero bounds for already instrumented functions.
28159         (chkp_check_upper): Likewise.
28160         (chkp_fini): Clean pass local data to avoid wrong reusage.
28161
28162 2015-02-28  Martin Liska  <mliska@suse.cz>
28163             Jan Hubicka  <hubicka@ucw.cz>
28164
28165         * ipa-icf.c (sem_variable::equals): Improve debug output;
28166         get variable constructor.
28167         (sem_variable::parse): Do not filter out too early; give up on
28168         volatile and register vars.
28169         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
28170         variables.
28171         * ipa-icf.h (sem_variable::init): Do not set ctor.
28172         (sem_variable::ctor): Remove.
28173
28174 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
28175
28176         PR middle-end/65233
28177         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
28178
28179 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28180
28181         * ipa-icf.c: Include stor-layout.h
28182         (sem_function::compare_cgraph_references): Rename to ...
28183         (sem_item::compare_cgraph_references): ... this one.
28184         (sem_variable::equals_wpa): New function
28185         (sem_variable::equals): Do not check stuff already verified by
28186         equals_wpa.
28187         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
28188         * ipa-icf.h (sem_item): Add compare_cgraph_references.
28189         (sem_function): Remove compare_cgraph_references.
28190         (sem_variable): Turns equals_wpa into non-inline.
28191
28192 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28193
28194         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
28195         (sem_item::add_expr): New function.
28196         (sem_function::hash_stmt): Handle operands of most statements.
28197         (sem_variable::get_hash): Hash the actual constructor.
28198         * ipa-icf.h (sem_item): Add add_expr.
28199         (sem_function): Update prototype of hash_stmt
28200
28201 2015-02-28  Martin Liska  <mliska@suse.cz>
28202             Jan Hubicka  <hubicka@ucw.cz>
28203
28204         PR ipa/65245
28205         * ipa-icf-gimple.c (func_checker::compare_function_decl):
28206         Remove.
28207         (func_checker::compare_variable_decl): Skip symtab vars.
28208         (func_checker::compare_cst_or_decl): Update.
28209         * ipa-icf.c (sem_function::parse): Do not consider aliases.
28210         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
28211         use correct symtab predicates.
28212         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
28213         (sem_variable::parse):  Update comment.
28214         (sem_item_optimizer::build_graph): Consider ultimate aliases
28215         for references.
28216
28217 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28218
28219         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
28220         of OBJ_TYPE_REF.
28221
28222 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28223
28224         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
28225         (sem_variable::merge) Likewise.
28226
28227 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28228
28229         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
28230         target; also match flag_ipa_devirt.
28231
28232 2015-03-01  Martin Liska  <mliska@suse.cz>
28233             Jan Hubicka  <hubicka@ucw.cz>
28234
28235         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
28236         Validate variable alignment.
28237         * ipa-icf.c (sem_function::equals_private): Be more precise
28238         about non-common function attributes.
28239         (sem_variable::equals): Likewise.
28240
28241 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28242
28243         PR ipa/65237
28244         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
28245         across COMDAT group boundary.
28246
28247 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28248
28249         PR ipa/65232
28250         * ipa-icf.c (clear_decl_rtl): New function.
28251         (sem_function::merge): Clear RTL before forming alias.
28252         (sem_variable::merge): Clear RTL before forming alias.
28253
28254 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28255
28256         PR ipa/65236
28257         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
28258
28259 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
28260
28261         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
28262         to neon_to_gp<q>.
28263
28264 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28265
28266         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
28267         a typo in the description.
28268
28269 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28270
28271         PR target/64317
28272         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28273         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28274         * lra-constraints.c: Include "params.h".
28275         (EBB_PROBABILITY_CUTOFF): Use
28276         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
28277         (lra_inheritance): Use '<' instead of '<=' for
28278         EBB_PROBABILITY_CUTOFF.
28279         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
28280         Document change.
28281
28282 2015-02-27  Martin Liska  <mliska@suse.cz>
28283
28284         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
28285         vector length condition.
28286
28287 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
28288
28289         * doc/extend.texi (x86 transactional memory intrinsics):
28290         Reorganize discussion of _xbegin.  Clarify that the return
28291         value is a bit mask.  Expand example and move to end of section.
28292
28293 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28294             Aldy Hernandez  <aldyh@redhat.com>
28295
28296         PR rtl-optimization/65220
28297         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
28298
28299 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28300
28301         PR target/65032
28302         * lra-remat.c (update_scratch_ops): New.
28303         (do_remat): Call it.
28304         * lra.c (lra_register_new_scratch_op): New. Take code from ...
28305         (remove_scratches): ... here.
28306         * lra-int.h (lra_register_new_scratch_op): New prototype.
28307
28308 2015-02-27  Marek Polacek  <polacek@redhat.com>
28309
28310         PR c/65040
28311         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
28312         -Wformat-signedness anymore.
28313
28314 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28315
28316         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
28317         function.
28318         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
28319
28320 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28321
28322         * config/s390/s390.c (enum s390_builtin):
28323         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
28324         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
28325         (s390_init_builtins): Generate new builtin functions.
28326         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
28327         (s390_sfpc, s390_efpc): New pattern definitions.
28328
28329 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28330
28331         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
28332         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
28333         (s390_builtin_decls): New array.
28334         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
28335         (s390_builtin_decl): New function.
28336         (TARGET_BUILTIN_DECL): Define macro.
28337
28338 2015-02-27  Richard Biener  <rguenther@suse.de>
28339
28340         PR middle-end/63175
28341         * builtins.c (get_object_alignment_2): Make sure to re-apply
28342         the ANDed mask after recursing to its operand gets us a new
28343         misalignment bit position.
28344
28345 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
28346             Martin Liska  <mliska@suse.cz>
28347
28348         PR bootstrap/65150
28349         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
28350         Use address_matters_p.
28351         (redirect_all_callers, set_addressable): New functions.
28352         (sem_function::merge): Reorganize and fix merging issues.
28353         (sem_variable::merge): Likewise.
28354         (sem_variable::compare_sections): Remove.
28355         * common.opt (fmerge-all-constants, fmerge-constants): Remove
28356         Optimization flag.
28357         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
28358         redirect them.
28359         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
28360         decl is used.
28361         (address_matters_1): New function.
28362         (symtab_node::address_matters_p): New function.
28363         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
28364         check for merged flag.
28365         * cgraph.h (address_matters_p): Declare.
28366         (symtab_node::address_taken_from_non_vtable_p): Remove.
28367         (symtab_node::address_can_be_compared_p): New method.
28368         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
28369         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
28370         Remove.
28371         (comdat_can_be_unshared_p_1) Use address_matters_p.
28372         (update_vtable_references): Fix formating.
28373         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
28374         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
28375         * cgraphclones.c: Preserve merged and icf_merged flags.
28376
28377 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
28378
28379         * doc/extend.texi (Function Attributes): Fix spelling and typos.
28380         (Label Attributes): Likewise.
28381         (Cilk Plus Builtins): Likewise.
28382         (ARC SIMD Built-in Functions): Likewise.
28383         (ARM C Language Extensions (ACLE)): Likewise.
28384         (PowerPC Built-in Functions): Likewise.
28385         (PowerPC Hardware Transactional Memory Built-in Functions):
28386         Likewise.
28387
28388 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28389
28390         PR tree-optimization/65216
28391         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
28392         new stmt and new SSA_NAME for lhs whenever the arguments have
28393         changed and weren't just swapped.  Fix comment typo.
28394
28395         PR tree-optimization/65215
28396         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
28397         for PDP endian targets.
28398         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
28399         Fix up formatting issues.
28400         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
28401         size is smaller than the original, adjust MEM_REF offset by the
28402         difference of sizes.  Use is_gimple_mem_ref_addr instead of
28403         is_gimple_min_invariant test to avoid adding address temporaries.
28404
28405 2015-02-26  Martin Liska  <mliska@suse.cz>
28406             Jan Hubicka  <hubicka@ucw.cz>
28407
28408         PR ipa/64693
28409         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
28410         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
28411         (sem_item_optimizer::process_cong_reduction): Include division by
28412         sensitive references.
28413         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
28414         * ipa-ref.c (ipa_ref::address_matters_p): New function.
28415         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
28416
28417 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
28418
28419         PR target/65192
28420         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
28421         Remove.
28422         * config/avr/avr.c: Same.
28423         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
28424         Refuse any constant address not in 0..0xbf.
28425         * config/avr/avr.md (*mov<mode>, *movsf): Remove
28426         tiny_valid_direct_memory_access_range from insn conditions.
28427         (mov<mode>): Don't special-case expansion of avrtiny addresses.
28428
28429 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
28430
28431         PR target/61142
28432         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
28433         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
28434         * config/sh/predicates.md (const_logical_operand): New predicate.
28435         * config/sh/sh.md: Add new peephole2 patterns.
28436
28437 2015-02-26  Marek Polacek  <polacek@redhat.com>
28438
28439         PR ipa/65008
28440         * ipa-inline.c (early_inliner): Recompute inline parameters.
28441
28442 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28443
28444         PR target/65171
28445         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
28446         instructions with TImode operands are included in the analysis.
28447
28448 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28449
28450         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
28451         of an EDGE_FSM_THREAD.
28452
28453 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
28454
28455         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
28456
28457 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
28458
28459         PR debug/46102
28460         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
28461
28462 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28463
28464         PR tree-optimization/65048
28465         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
28466         (thread_through_all_blocks): Call valid_jump_thread_path.
28467         Remove invalid FSM jump-thread paths.
28468
28469 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28470
28471         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
28472         (ipa_write_optimization_summaries): Likewise.
28473         * tree-streamer.h: Include data-streamer.h.
28474         (streamer_mode_table): Declare extern variable.
28475         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
28476         * lto-streamer-out.c (lto_output_init_mode_table,
28477         lto_write_mode_table): New functions.
28478         (produce_asm_for_decls): Call lto_write_mode_table when streaming
28479         offloading LTO.
28480         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
28481         (lto_create_simple_input_block): Add mode_table argument to the
28482         lto_input_block constructors.
28483         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
28484         Likewise.
28485         * data-streamer-in.c (string_for_index): Likewise.
28486         * ipa-inline-analysis.c (inline_read_section): Likewise.
28487         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
28488         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28489         * lto-streamer-in.c (lto_read_body_or_constructor,
28490         lto_input_toplevel_asms): Likewise.
28491         (lto_input_mode_table): New function.
28492         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
28493         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
28494         Use bp_pack_machine_mode.
28495         * real.h (struct real_format): Add name field.
28496         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
28497         (class lto_input_block): Add mode_table member.
28498         (lto_input_block::lto_input_block): Add mode_table_ argument,
28499         initialize mode_table.
28500         (struct lto_file_decl_data): Add mode_table field.
28501         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
28502         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
28503         unpack_ts_decl_common_value_fields,
28504         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
28505         * tree-streamer.c (streamer_mode_table): New variable.
28506         * real.c (ieee_single_format, mips_single_format,
28507         motorola_single_format, spu_single_format, ieee_double_format,
28508         mips_double_format, motorola_double_format,
28509         ieee_extended_motorola_format, ieee_extended_intel_96_format,
28510         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
28511         ibm_extended_format, mips_extended_format, ieee_quad_format,
28512         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
28513         decimal_single_format, decimal_double_format, decimal_quad_format,
28514         ieee_half_format, arm_half_format, real_internal_format): Add name
28515         field.
28516         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
28517
28518 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
28519
28520         PR target/65161
28521         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
28522         reordering for selective scheduling.
28523
28524 2015-02-26  Terry Guo  <terry.guo@arm.com>
28525
28526         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
28527         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
28528         (arm_arch_no_volatile_ce): Declare new global variable.
28529         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
28530         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
28531         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
28532         (TARGET_NO_VOLATILE_CE): New macro.
28533         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
28534         volatile memory access in IT block
28535
28536 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28537
28538         PR tree-optimization/61917
28539         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
28540         that reduc_def_stmt is null.
28541
28542 2015-02-25  Martin Liska  <mliska@suse.cz>
28543
28544         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
28545         hard register variables.
28546
28547 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28548
28549         PR target/64212
28550         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
28551         (symtab::noninterposable_alias): Likewise.
28552
28553 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
28554
28555         PR target/65167
28556         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
28557         bounds registers.
28558         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
28559
28560 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
28561
28562         PR target/64997
28563         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
28564         as split condition; force split via '#' in output pattern.
28565
28566 2015-02-25  Richard Biener  <rguenther@suse.de>
28567             Kai Tietz  <ktietz@redhat.com>
28568
28569         PR tree-optimization/61917
28570         * tree-vect-loop.c (vectorizable_reduction): Allow
28571         vect_internal_def without reduction to exit graceful.
28572
28573 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28574
28575         PR target/65196
28576         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
28577         only with NONDEBUG_INSN_P.
28578
28579 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28580
28581         Use variadic macros with avr-log.c.
28582
28583         * config/avr/avr-protos.h (avr_vdump): New prototype.
28584         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
28585         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
28586         * config/avr/avr-log.c: Adjust comments.
28587         (avr_vdump): New function.
28588         (avr_vadump): Pass caller as 2nd argument instead of format string.
28589         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
28590         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
28591
28592 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
28593
28594         PR lto/64374
28595         * target.def (target_option_stream_in): New target hook.
28596         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
28597         targetm.target_option.post_stream_in if non-NULL.
28598         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
28599         * doc/tm.texi: Updated.
28600         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
28601         function.
28602         (TARGET_OPTION_POST_STREAM_IN): Redefine.
28603
28604 2015-02-24  Jeff Law  <law@redhat.com>
28605
28606         PR target/65117
28607         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
28608         of operand 0 and operand 2.
28609         (zero_cost_loop_end, loop_end): Similarly.
28610
28611 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
28612
28613         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
28614         CXX_MEM_STAT_INFO.
28615
28616 2015-02-24  DJ Delorie  <dj@redhat.com>
28617
28618         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
28619         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
28620         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
28621         instead of hardcoding SImode.
28622
28623 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
28624
28625         * omp-low.c (create_omp_child_function): Tag entrypoint
28626         functions with a special attribute.
28627
28628 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
28629
28630         PR target/65058
28631         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
28632
28633 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
28634
28635         PR rtl-optimization/65123
28636         * lra-remat.c (operand_to_remat): Check hard regs in insn
28637         definition too.
28638
28639 2015-02-24  Nick Clifton  <nickc@redhat.com>
28640
28641         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
28642         to the assembler.
28643
28644 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
28645
28646         PR libgomp/64625
28647         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
28648         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
28649         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
28650         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
28651         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
28652         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
28653         (BUILT_IN_GOACC_PARALLEL): Specify as
28654         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
28655         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
28656         * builtin-types.def
28657         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28658         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28659         Remove function types.
28660         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
28661         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28662         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28663         New function types.
28664
28665 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
28666
28667         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
28668
28669 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
28670
28671         PR tree-optimization/65170
28672         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
28673         if val[1] < 0, clear also val[2] and return 3.
28674
28675 2015-02-24  Alan Modra  <amodra@gmail.com>
28676
28677         PR target/65172
28678         * config/rs6000/rs6000.c (get_memref_parts): Only return true
28679         when *base is a reg.  Handle nested plus addresses.  Simplify
28680         pre_modify test.
28681
28682 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
28683
28684         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
28685         use natural alignment when optimizing for size.
28686
28687 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
28688
28689         PR target/65153
28690         * config/sh/sh.md (movsicc_true+3): Remove peephole.
28691         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
28692         * config/sh/sh.c (replace_n_hard_rtx): Remove.
28693
28694 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
28695
28696         PR fortran/63427
28697         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
28698         too big for a wide_int.  Implement missing wrapping operation.
28699
28700 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
28701
28702         PR target/65163
28703         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
28704         instead of const_int 4294901760.
28705
28706 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
28707
28708         * config/avr/t-avr: Fix typo in comment.
28709
28710 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
28711
28712         * doc/rtl.texi (fma): Clarify documentation.
28713
28714 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
28715
28716         PR debug/58123
28717         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
28718         over input_location.
28719
28720 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28721
28722         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
28723         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
28724         restrict alignments to absolute_biggest_alignment.
28725         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
28726         Define.
28727         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
28728         * doc/tm.texi: Regenerate.
28729         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
28730
28731 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
28732
28733         PR target/64172
28734         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
28735
28736 2015-02-20  Richard Biener  <rguenther@suse.de>
28737
28738         PR tree-optimization/65136
28739         * tree-ssa-propagate.c: Include cfgloop.h.
28740         (replace_phi_args_in): Avoid replacing loop latch edge PHI
28741         arguments with constants.
28742
28743 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
28744             Martin Liska  <mliska@suse.cz>
28745
28746         PR target/63892
28747         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
28748         don't try to create_thunk if stdarg_p.  If
28749         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
28750         redirect_callers if possible.
28751         (sem_item_optimizer::execute): Call unregister_hooks here...
28752         (ipa_icf_driver): ... instead of here.
28753
28754 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28755
28756         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
28757         Mark operand 0 as earlyclobber in 2nd alternative.
28758         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
28759         Write negated shift amount into QI lowpart operand 0 and use it
28760         in the shift step.
28761         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
28762
28763 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28764
28765         * cgraph.h (clone_function_name_1): Declare.
28766         * cgraphclones.c (clone_function_name_1): New function.
28767         (clone_function_name): Use it.
28768         * lto-partition.c: Include "stringpool.h".
28769         (must_not_rename, maybe_rewrite_identifier)
28770         (validize_symbol_for_target): New static functions.
28771         (privatize_symbol_name): Use must_not_rename.
28772         (promote_symbol): Call validize_symbol_for_target.
28773         (lto_promote_cross_file_statics): Likewise.
28774         (lto_promote_statics_nonwpa): Likewise.
28775
28776 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
28777
28778         PR target/64452
28779         * config/avr/avr.md (pushhi_insn): New insn.
28780         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
28781
28782 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28783             Jakub Jelinek  <jakub@redhat.com>
28784
28785         * tree-streamer.c (preload_common_nodes): Don't preload
28786         TI_VA_LIST* for offloading.
28787         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
28788         in_lto_p.
28789
28790 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
28791
28792         * config/pa/pa.c (pa_emit_move_sequence): Always force
28793         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
28794         note on insn.
28795
28796         * config/pa/pa.c (pa_reloc_rw_mask): New function.
28797         (TARGET_ASM_RELOC_RW_MASK): Define.
28798         (pa_cannot_force_const_mem): Revert previous change.
28799
28800 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
28801             Jan Hubicka  <hubicka@ucw.cz>
28802
28803         PR ipa/65028
28804         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
28805         across jump functions.
28806
28807 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
28808
28809         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
28810
28811 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
28812
28813         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
28814
28815 2015-02-19  Richard Henderson  <rth@redhat.com>
28816
28817         PR middle-end/65074
28818         * varasm.c (default_binds_local_p_2): Don't test node->definition;
28819         test DECL_EXTERNAL independent of symtab_node.
28820
28821 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
28822
28823         PR lto/65012
28824         * varpool.c (varpool_node::get_constructor): Return early
28825         if this->lto_file_data is NULL.
28826
28827 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28828
28829         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
28830         (rank_for_schedule_debug): Update.
28831         (ready_sort): Make static.  Move sorting logic to ...
28832         (ready_sort_debug, ready_sort_real): New static functions.
28833         (schedule_block): Sort both debug insns and real insns in preparation
28834         for ready list trimming.  Improve debug output.
28835         * sched-int.h (ready_sort): Remove global declaration.
28836
28837 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
28838
28839         * ipa-icf.c (sem_function::equals_private): Adjust.
28840         (sem_function::bb_dict_test): Take a vec<int> * instead of
28841         auto_vec<int>.
28842         * ipa-icf.h (bb_dict_test): Likewise.
28843
28844 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28845
28846         PR gcov-profile/64634
28847         * tree-eh.c (frob_into_branch_around): Fix up typos
28848         in function comment.
28849         (lower_catch): Put eh_seq resulting from EH lowering of
28850         the cleanup sequence after the cleanup rather than before it.
28851
28852 2015-02-18  Tom de Vries  <tom@codesourcery.com>
28853
28854         * common.opt (fstdarg-opt): New option.
28855         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
28856         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
28857         (@item -fstdarg-opt): New item.
28858
28859 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
28860
28861         PR target/65064
28862         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
28863         for common symbols.
28864
28865 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28866
28867         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
28868         insn-modes.h.
28869         (ALL_HOST_OBJS): Add mkoffload.o.
28870         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
28871
28872 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
28873
28874         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
28875         (compare_virtual_tables): Be smarter about skipping typeinfos;
28876         do sane output on virtual table table mismatch.
28877         (warn_odr): Be ready for forward declarations of enums;
28878         output sane info on base mismatch and virtual table mismatch.
28879         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
28880         when only one type is polymorphic.
28881         (get_odr_type): Fix hashtable corruption.
28882         (dump_odr_type): Dump mangled names.
28883
28884 2015-02-18  Richard Biener  <rguenther@suse.de>
28885
28886         PR tree-optimization/65063
28887         * tree-predcom.c (determine_unroll_factor): Return 1 if we
28888         have replaced looparound PHIs.
28889
28890 2015-02-18  Martin Liska  <mliska@suse.cz>
28891
28892         * lto-streamer.c (lto_streamer_init): Encapsulate
28893         streamer_check_handled_ts_structures with checking macro.
28894
28895 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28896
28897         PR ipa/65087
28898         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
28899         section if !implicit_section.
28900         (cgraph_node::create_version_clone_with_body): Likewise.
28901         * trans-mem.c (ipa_tm_create_version): Likewise.
28902
28903 2015-02-18  Richard Biener  <rguenther@suse.de>
28904
28905         PR tree-optimization/62217
28906         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
28907         into BIVs.
28908
28909 2015-02-18  Marek Polacek  <polacek@redhat.com>
28910
28911         PR sanitizer/65081
28912         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
28913         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
28914         is in range [-16K, -1].  Don't issue run-time error if
28915         (ptr > ptr + offset).
28916
28917 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
28918
28919         * doc/install.texi (nvptx-*-none): New section.
28920         * doc/invoke.texi (Nvidia PTX Options): Likewise.
28921         * config/nvptx/nvptx.opt: Update.
28922
28923         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
28924         (access_check): New functions, copied from
28925         config/i386/intelmic-mkoffload.c.
28926         (main): For non-installed testing, look in all COMPILER_PATHs for
28927         GCC_INSTALL_NAME.
28928
28929         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
28930
28931 2015-02-18  Andrew Pinski  <apinski@cavium.com>
28932             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28933
28934         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
28935         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
28936
28937 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28938
28939         * ipa-visibility.c (function_and_variable_visibility): Only
28940         check locality if node is not already local.
28941         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28942         call_for_symbol_and_aliases instead of
28943         call_for_symbol_thunks_and_aliases.
28944         (ipa_inline): Likewise.
28945         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28946         first walk aliases.
28947         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28948         call_for_symbol_and_aliases.
28949         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28950         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28951         (ipa_propagate_frequency): Update.
28952         (ipa_profile): Add opt_for_fn gueards.
28953
28954 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28955
28956         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
28957         * doc/invoke.texi (SH options): Document it.
28958         * config/sh/sh.c (sh_insn_length_adjustment): Check
28959         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
28960
28961 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
28962
28963         * common.opt (fipa-cp-alignment): New.
28964         * ipa-cp.c (ipcp_store_alignment_results): Check
28965         flag_ipa_cp_alignment.
28966         * opts.c (default_options_table): Enable -fipa-cp-alignment for
28967         -O2.
28968         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
28969         * doc/invoke.texi: Document -fipa-cp-alignment.
28970
28971 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28972
28973         PR target/64793
28974         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
28975         to nil.  Adjust comments.
28976
28977 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28978
28979         * ipa-visibility.c (function_and_variable_visibility): Only
28980         check locality if node is not already local.
28981         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28982         call_for_symbol_and_aliases instead of
28983         call_for_symbol_thunks_and_aliases.
28984         (ipa_inline): Likewise.
28985         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28986         first walk aliases.
28987         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28988         call_for_symbol_and_aliases.
28989         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28990         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28991         (ipa_propagate_frequency): Update.
28992         (ipa_profile): Add opt_for_fn guards.
28993
28994 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
28995
28996         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
28997         skipping of "strange" tokens.
28998
28999 2015-02-17  Jeff Law  <law@redhat.com>
29000
29001         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
29002         obsolete comment.
29003
29004 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
29005
29006         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
29007         as forcing a HARD_DEP between instructions, thereby
29008         disallowing rewriting to break dependencies.
29009
29010 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
29011
29012         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
29013         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
29014         variables in boundary that have no inlitalizer encoded and are
29015         not aliases.
29016         * varasm.c (default_binds_local_p_2): External definitions do not
29017         count as definitions here.
29018
29019 2015-02-16  Jeff Law  <law@redhat.com>
29020
29021         PR tree-optimization/64823
29022         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
29023         statements.
29024         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29025         threading through blocks with PHIs, but no statements.
29026         (thread_through_normal_block): Distinguish between blocks where
29027         we did not process all the statements and blocks with no statements.
29028
29029 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
29030             James Greenhalgh  <james.greenhalgh@arm.com>
29031
29032         PR ipa/64963
29033         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
29034         section if not linkonce.  Fix up formatting.
29035         (cgraph_node::create_version_clone_with_body): Copy section.
29036         * trans-mem.c (ipa_tm_create_version): Likewise.
29037
29038 2015-02-16  Richard Biener  <rguenther@suse.de>
29039
29040         PR tree-optimization/65077
29041         * tree-ssa-structalias.c (get_constraint_for_1): Handle
29042         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
29043         (find_func_aliases): Allow float values to carry pointers again.
29044
29045 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
29046
29047         * doc/install.texi (Specific): Reorder targets list to put
29048         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
29049         from the top menu.
29050
29051 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
29052             David Edelsohn  <dje.gcc@gmail.com>
29053
29054         PR target/65058
29055         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
29056         mapping class to external variable or function reference.
29057         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
29058         mapping class.
29059
29060 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
29061
29062         PR target/53348
29063         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
29064         ASM_WEAKEN_DECL if defined.
29065
29066 2015-02-16  Richard Biener  <rguenther@suse.de>
29067
29068         PR lto/65015
29069         * varasm.c (default_file_start): For LTO produced units
29070         emit <artificial> as file directive.
29071
29072 2015-02-16  Richard Biener  <rguenther@suse.de>
29073
29074         PR tree-optimization/63593
29075         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
29076         stmts and releasing SSA names until...
29077         (execute_pred_commoning): ... after processing all chains.
29078
29079 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
29080
29081         PR ipa/65059
29082         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
29083         external functions.
29084
29085 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
29086
29087         * doc/bugreport.texi: Adjust section titles throughout the file
29088         to use "Title Case".
29089         * doc/extend.texi: Likewise.
29090         * doc/gcov.texi: Likewise.
29091         * doc/implement-c.texi: Likewise.
29092         * doc/implement-cxx.texi: Likewise.
29093         * doc/invoke.texi: Likewise.
29094         * doc/objc.texi: Likewise.
29095         * doc/standards.texi: Likewise.
29096         * doc/trouble.texi: Likewise.
29097
29098 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
29099
29100         * cgraph.h (symtab_node::has_aliases_p): Simplify.
29101         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
29102         * tree.c (lookup_binfo_at_offset): Make static.
29103         (get_binfo_at_offset): Do not shadow offset; add explanatory
29104         comment.
29105
29106 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
29107
29108         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
29109         for all floading point loads and stores except those using a register
29110         index address.
29111         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
29112         to a register.
29113
29114 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29115
29116         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
29117         (do_estimate_growth_1): Record if any uninlinable edge was seen.
29118         (estimate_growth): Handle uninlinable edges correctly.
29119         (check_callers): New.
29120         (growth_likely_positive): Handle aliases correctly.
29121
29122 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29123
29124         * ipa-chkp.c: Use iterate_direct_aliases.
29125         * symtab.c (resolution_used_from_other_file_p): Move inline.
29126         (symtab_node::create_reference): Fix formating.
29127         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29128         (symtab_node::iterate_reference): Move inline.
29129         (symtab_node::iterate_referring): Move inline.
29130         (symtab_node::iterate_direct_aliases): Move inline.
29131         (symtab_node::used_from_object_file_p_worker): Inline into ...
29132         (symtab_node::used_from_object_file_p): ... this one; move inline.
29133         (symtab_node::call_for_symbol_and_aliases): Move inline;
29134         use iterate_direct_aliases.
29135         (symtab_node::call_for_symbol_and_aliases_1): New method.
29136         (cgraph_node::call_for_symbol_and_aliases): Move inline;
29137         use iterate_direct_aliases.
29138         (cgraph_node::call_for_symbol_and_aliases_1): New method.
29139         (varpool_node::call_for_node_and_aliases): Rename to ...
29140         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
29141         use iterate_direct_aliases.
29142         (varpool_node::call_for_symbol_and_aliases_1): New method.
29143         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
29144         (ipa_discover_readonly_nonaddressable_var): Update.
29145         * ipa-devirt.c: Fix formating.
29146         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
29147         Move inline.
29148         (cgraph_node::call_for_symbol_and_aliases): Move inline.
29149         (cgraph_node::call_for_symbol_and_aliases_1): New function..
29150         * cgraph.h (used_from_object_file_p_worker): Remove.
29151         (resolution_used_from_other_file_p): Move inline.
29152         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29153         (symtab_node::iterate_reference): Move inline.
29154         (symtab_node::iterate_referring): Move inline.
29155         (symtab_node::iterate_direct_aliases): Move inline.
29156         (symtab_node::used_from_object_file_p_worker): Inline into ...
29157         (symtab_node::used_from_object_file_p): Move inline.
29158         * tree-emutls.c (ipa_lower_emutls): Update.
29159         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
29160         (varpool_node::call_for_node_and_aliases): Remove.
29161
29162 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
29163
29164         PR tree-optimization/62209
29165         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
29166         op == range->exp, insert seq and gimplified code after labels
29167         instead of after the phi.
29168
29169 2015-02-13  Jeff Law  <law@redhat.com>
29170
29171         PR bootstrap/65060
29172         Revert my change for tree-optimization/64823.
29173
29174 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29175
29176         PR tree-optimization/65053
29177         * tree-ssa-phiopt.c (value_replacement): When moving assign before
29178         cond, either reset VR on lhs or set it to phi result VR.
29179
29180 2015-02-13  Jeff Law  <law@redhat.com>
29181
29182         PR tree-optimization/64823
29183         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
29184         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29185         threading through blocks with PHIs, but no statements.
29186         (thread_through_normal_block): Distinguish between blocks where
29187         we did not process all the statements and blocks with no statements.
29188
29189         PR rtl-optimization/47477
29190         * match.pd (convert (plus/minus (convert @0) (convert @1): New
29191         simplifier to narrow arithmetic.
29192
29193 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
29194
29195         PR ipa/65028
29196         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
29197         polymorphic call info when type is not known to be preserved.
29198
29199 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
29200
29201         PR ipa/65028
29202         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
29203         (inline_call): Use it.
29204
29205 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
29206
29207         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
29208         GOMP_DEVICE_NVIDIA_PTX.
29209
29210 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29211
29212         PR ipa/65034
29213         * stmt.c (emit_case_nodes): Use void_type_node instead of
29214         NULL_TREE as LABEL_DECL type.
29215
29216 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
29217
29218         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
29219         constraints.
29220         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
29221         symbolic references to data to be forced to constant memory on the
29222         SOM target.
29223
29224 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29225
29226         PR tree-optimization/65002
29227         * tree-cfg.c (pass_data_fixup_cfg): Don't update
29228         SSA on start.
29229         * tree-sra.c (some_callers_have_no_vuse_p): New.
29230         (ipa_early_sra): Reject functions whose callers
29231         assume function is read only.
29232
29233 2015-02-13  Richard Biener  <rguenther@suse.de>
29234
29235         PR lto/65015
29236         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
29237         for LTO produced CUs.
29238
29239 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
29240
29241         PR tree-optimization/64705
29242         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
29243         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
29244         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
29245         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
29246         expand_simple_operations.
29247
29248 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
29249             Richard Henderson  <rth@redhat.com>
29250
29251         PR rtl/32219
29252         * cgraphunit.c (cgraph_node::finalize_function): Set definition
29253         before notice_global_symbol.
29254         (varpool_node::finalize_decl): Likewise.
29255         * varasm.c (default_binds_local_p_2): Rename from
29256         default_binds_local_p_1, add weak_dominate argument.  Use direct
29257         returns instead of assigning to local variable.  Unify varpool and
29258         cgraph paths via symtab_node.  Reject undef weak variables before
29259         testing visibility.  Reorder tests for simplicity.
29260         (default_binds_local_p): Use default_binds_local_p_2.
29261         (default_binds_local_p_1): Likewise.
29262         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
29263         via symtab_node.
29264         (default_elf_asm_output_external): Emit visibility when specified.
29265
29266 2015-02-13  Alan Modra  <amodra@gmail.com>
29267
29268         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
29269         code setting up r11 for out-of-line fp restore.
29270
29271 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
29272
29273         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
29274         (muser-mode): Likewise.
29275
29276 2015-02-13  Alan Modra  <amodra@gmail.com>
29277
29278         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
29279         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
29280
29281 2015-02-12  David Howells  <dhowells@redhat.com>
29282
29283         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
29284         warning.
29285         * tree-ssa-uninit.c (dump_predicates): Likewise.
29286         * opts.c (print_filtered_help): Likewise.
29287
29288 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29289
29290         * dwarf2out.c (output_die): Use "%s", name instead of name to
29291         avoid -Wformat-security warning.
29292
29293         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
29294         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29295         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
29296         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29297
29298 2015-02-12  Jason Merrill  <jason@redhat.com>
29299
29300         * common.opt (-flifetime-dse): New.
29301
29302 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29303
29304         PR sanitizer/65019
29305         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
29306
29307         PR tree-optimization/65014
29308         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
29309         use original second operand of arg0 or arg1 instead of
29310         that adjusted by STRIP_NOPS.
29311
29312 2015-02-11  Jeff Law  <law@redhat.com>
29313
29314         PR target/63347
29315         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
29316         that needs to be queued, just queue it for a single cycle.
29317
29318 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
29319
29320         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
29321         bodies of thunks; comment on why.
29322         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
29323         symbols are extern.
29324
29325 2015-02-11  Richard Henderson  <rth@redhat.com>
29326
29327         PR sanitize/65000
29328         * tree-eh.c (mark_reachable_handlers): Mark source and destination
29329         regions of __builtin_eh_copy_values.
29330
29331 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29332
29333         PR middle-end/65003
29334         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
29335         ultimate alias is MEM with SYMBOL_REF satisfying
29336         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
29337         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
29338
29339 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
29340
29341         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
29342         "diagnostic-core.h".
29343         (main): Initialize progname, and call diagnostic_initialize.
29344
29345         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
29346         instead of __OPENMP_TARGET__.
29347
29348         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
29349         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
29350         hard-coding PTX_ID.
29351
29352 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
29353
29354         * doc/sourcebuild.texi (pie_enabled): Document.
29355
29356 2015-02-11  Martin Liska  <mliska@suse.cz>
29357
29358         PR ipa/64813
29359         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
29360         a return value for call to a function that is noreturn.
29361
29362 2015-02-11  Richard Biener  <rguenther@suse.de>
29363
29364         PR lto/65015
29365         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
29366         and -fresolution.
29367
29368 2015-02-11  Andrew Pinski  <apinski@cavium.com>
29369
29370         PR target/64893
29371         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
29372         Change the first argument type to size_type_node and add another
29373         size_type_node.
29374         (aarch64_simd_expand_builtin): Handle the new argument to
29375         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
29376         print an out when the first two arguments are not
29377         nonzero integer constants.
29378         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
29379         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
29380
29381 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29382
29383         PR target/61925
29384         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
29385         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
29386         (ix86_set_current_function): Rewritten.
29387         (ix86_add_new_builtins): Temporarily clear current_target_pragma
29388         when creating builtin fndecls.
29389
29390 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29391
29392         PR ipa/65005
29393         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
29394         function.
29395         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
29396         have no comdat group.
29397         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
29398         (lto_output_varpool_node): Always output alias info.
29399         (output_refs): Output refs of boundary aliases, too.
29400         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
29401         (output_symtab): Output call eges in thunks in boundary.
29402         (get_alias_symbol): Remove.
29403         (input_node, input_varpool_node): Do not special case weakrefs.
29404         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
29405         alias and thunks targets in the boundary; do not take removed symbols
29406         from their comdat groups.
29407         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
29408         (cgraph_node::global_info): Remove.
29409         (cgraph_node::rtl_info): Look through aliases and thunks.
29410         * cgrpah.h (global_info): Remove.
29411         (non_local_p): Remove.
29412
29413 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29414             Sandra Loosemore  <sandra@codesourcery.com>
29415
29416         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
29417         to inline asm.  List dialects in proper order.
29418
29419 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29420             Sandra Loosemore  <sandra@codesourcery.com>
29421
29422         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
29423
29424 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29425
29426         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
29427         modified) reference to Solaris.
29428
29429 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
29430
29431         * doc/extend.texi (Extended Asm): Fix typos.
29432
29433 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
29434
29435         PR sanitizer/65004
29436         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
29437
29438 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
29439
29440         PR target/64661
29441         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
29442         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
29443         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
29444         * config/sh/constraints.md (Ara, Add): New constraints.
29445         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
29446         predicates.
29447         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
29448         atomic_mem_operand_0.  Don't use force_reg on the memory address.
29449         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
29450         Sra constraint.  Convert to insn_and_split.  Add workaround for
29451         PR 64974.
29452         (atomic_compare_and_swap<mode>_hard): Copy to
29453         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
29454         Use atomic_mem_operand_0 predicate.
29455         (atomic_compare_and_swap<mode>_soft_gusa,
29456         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
29457         AraAdd constraints.
29458         (atomic_compare_and_swap<mode>_soft_tcb,
29459         atomic_compare_and_swap<mode>_soft_imask,
29460         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
29461         atomic_mem_operand_0 predicate and SraSdd constraints.
29462         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
29463         constraint.
29464         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
29465         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
29466         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
29467         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
29468         force_reg on the memory address.
29469         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
29470         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
29471         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
29472         atomic_mem_operand_1 predicate and Sra constraint.
29473         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
29474         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29475         Use atomic_mem_operand_1 predicate.
29476         (atomic_<fetchop_name><mode>_hard): Copy to
29477         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29478         Use atomic_mem_operand_1 predicate.
29479         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
29480         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29481         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
29482         insn_and_split.  Use atomic_mem_operand_1 predicate.
29483         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
29484         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
29485         Use atomic_mem_operand_1 predicate.
29486         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
29487         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29488         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
29489         in generated insn with original mem operand before emitting the insn.
29490         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
29491         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
29492         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
29493         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
29494         Use atomic_mem_operand_1 predicate and AraAdd constraints.
29495         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
29496         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
29497         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
29498         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
29499         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
29500         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
29501         atomic_not_fetch<mode>_soft_tcb,
29502         atomic_<fetchop_name>_fetch<mode>_soft_imask,
29503         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
29504         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
29505         Use atomic_mem_operand_1 predicate and SraSdd constraints.
29506
29507 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
29508
29509         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
29510         and 3 earlyclobber operands.
29511
29512 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29513
29514         * common.opt (fstack-reuse): Mark as optimization.
29515
29516 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29517
29518         PR ipa/64982
29519         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
29520
29521 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
29522
29523         PR tree-optimization/64326
29524         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
29525
29526 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
29527
29528         PR gcov-profile/61889
29529         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
29530
29531 2015-02-10  Richard Biener  <rguenther@suse.de>
29532
29533         PR tree-optimization/64995
29534         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
29535         value we use is final.
29536         (visit_reference_op_store): Always valueize op.
29537         (visit_use): Properly valueize vuses.
29538
29539 2015-02-10  Richard Biener  <rguenther@suse.de>
29540
29541         PR tree-optimization/64909
29542         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
29543         pass a scalar-stmt count estimate to the cost model.
29544         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
29545
29546 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
29547
29548         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
29549         enabled by default together with var-tracking.
29550
29551 2015-02-10  Nick Clifton  <nickc@redhat.com>
29552
29553         * config/rl78/rl78.c: Remove DIV attribute code accidentally
29554         included in previous rl78 commit.
29555
29556 2015-02-10  Richard Biener  <rguenther@suse.de>
29557
29558         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
29559         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
29560         return the bitpack.
29561
29562 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29563
29564         PR gcov-profile/61889
29565         * config.in: regenerate.
29566         * configure.in: Likewise.
29567         * configure.ac: Check for ftw.h.
29568         * gcov-tool.c: Check for ftw.h before using nftw.
29569
29570 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29571
29572         PR lto/64076
29573         * ipa-visibility.c (update_visibility_by_resolution_info): Only
29574         assert when not in lto mode.
29575
29576 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
29577
29578         * ira-color.c (setup_left_conflict_sizes_p): Simplify
29579         initialization/assignment of conflict_size.
29580
29581 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
29582
29583         PR ipa/64978
29584         * ipa-cp.c (gather_caller_stats): Skip thunks.
29585         (propagate_constants_topo): Skip aliases.
29586
29587 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
29588
29589         PR target/64761
29590         * config/sh/sh.c (sh_option_override): Don't change
29591         -freorder-blocks-and-partition to -freorder-blocks even when
29592         unwinding is enabled.
29593         (sh_can_follow_jump): Return false if the followee jump is
29594         a crossing jump when -freorder-blocks-and-partition is specified.
29595         * config/sh/sh.md (*jump_compact_crossing): New insn.
29596
29597 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
29598             Kaz Kojima  <kkojima@gcc.gnu.org>
29599
29600         PR target/64761
29601         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
29602         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
29603         (sh_can_redirect_branch): Rename to ...
29604         (sh_can_follow_jump): ... this.  Constify argument types.
29605         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
29606         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
29607         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
29608         * doc/tm.texi: Regenerate.
29609
29610 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29611
29612         PR sanitizer/64981
29613         * builtins.c (expand_builtin): Call targetm.expand_builtin
29614         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
29615
29616 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29617
29618         PR ipa/61548
29619         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
29620
29621 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29622
29623         PR ipa/63566
29624         * ipa-icf.c (set_local): New function.
29625         (sem_function::merge): Use it.
29626
29627 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29628
29629         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
29630         (add_type_duplicate): Fix comparison of BINFOs.
29631
29632 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29633
29634         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
29635         on getting VOID pointer.
29636
29637 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29638
29639         PR target/64979
29640         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
29641         va_list escapes.
29642
29643 2015-02-09  Richard Biener  <rguenther@suse.de>
29644
29645         * genmatch.c (replace_id): Copy expr_type.
29646
29647 2015-02-09  Richard Biener  <rguenther@suse.de>
29648
29649         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
29650         (streamer_write_tree_bitfields): Declare.
29651         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
29652         properly unpack padding.
29653         (unpack_value_fields): Inline ...
29654         (streamer_read_tree_bitfields): ... here.
29655         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
29656         and properly add padding bits.
29657         (streamer_pack_tree_bitfields): Fold into ...
29658         (streamer_write_tree_bitfields): ... this new function,
29659         exposing the bitpack object.
29660         * lto-streamer-out.c (lto_write_tree_1): Call
29661         streamer_write_tree_bitfields.
29662
29663 2015-02-09  Richard Biener  <rguenther@suse.de>
29664
29665         PR tree-optimization/54000
29666         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
29667         (struct ivopts_data): Add loop_loc member.
29668         (tree_ssa_iv_optimize_loop): Dump loop location.
29669         (create_new_ivs): Likewise, also dump number of IVs generated.
29670
29671 2015-02-09  Martin Liska  <mliska@suse.cz>
29672
29673         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
29674         just if not yet registered.
29675         (ipa_icf_generate_summary): Register callgraph hooks.
29676
29677 2015-02-08  Andrew Pinski  <apinski@cavium.com>
29678
29679         * config/aarch64/aarch64.c (gty_dummy): Delete.
29680
29681 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29682
29683         PR ipa/63566
29684         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
29685         (cgraph_node::local_p): Remove thunk related FIXME.
29686
29687 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29688
29689         PR ipa/63566
29690         * i386.c (ix86_function_regparm): Look through aliases to see if callee
29691         is local and optimized.
29692         (ix86_function_sseregparm): Likewise; also use target's SSE math
29693         settings; error out instead of silently generating wrong code
29694         on mismatches.
29695         (init_cumulative_args): Look through aliases.
29696
29697 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29698
29699         PR ipa/63566
29700         * ipa-split.c (execute_split_functions): Split if function has aliases.
29701
29702 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29703
29704         PR ipa/63566
29705         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
29706         aliases before trying to expand it.
29707         (cgraph_node::expand_thunk): Fix formating.
29708
29709 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
29710
29711         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
29712         (Using Assembly Language with C): Expand introduction.
29713         (Basic Asm): Copy-edit.  Add more information about uses of
29714         basic asm.
29715         (Extended Asm): Copy-edit.  Document new escape syntax and
29716         %l[label] syntax.
29717         (Global Reg Vars): Copy-edit.
29718         (Local Reg Vars): Likewise.
29719
29720 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
29721
29722         PR debug/2714
29723         PR bootstrap/64256
29724         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
29725         (DBX_CONTIN_CHAR): Define.
29726
29727 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
29728             Brian Rzycki  <b.rzycki@samsung.com>
29729
29730         PR tree-optimization/64878
29731         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
29732         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
29733         Stop recursion at loop phi nodes after having visited a loop phi node.
29734
29735 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29736
29737         * toplev.c (process_options): Change flag_ipa_ra before creating
29738         optimization_{default,current}_node.
29739
29740         PR ipa/64896
29741         * cgraphunit.c (cgraph_node::expand_thunk): If
29742         restype is not is_gimple_reg_type nor the thunk_fndecl
29743         returns aggregate_value_p, set restmp to a temporary variable
29744         instead of resdecl.
29745
29746 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29747
29748         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
29749
29750 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29751
29752         PR target/64205
29753         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
29754         add a general secondary reload handler for SDmode, unless we have
29755         both read/write support for SDmode.
29756
29757 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29758
29759         PR middle-end/64937
29760         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
29761         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
29762         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
29763         1 before, push it to abstract_vec.
29764         (dwarf2out_abstract_function): Adjust caller.  Don't call
29765         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
29766         DECL_ABSTRACT_P flags for all abstract_vec elts.
29767
29768 2015-02-06  Renlin Li  <renlin.li@arm.com>
29769
29770         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
29771         complex gimple.
29772         * tree-ssa.c (execute_update_addresses_taken): Likewise.
29773
29774 2015-02-06  Jeff Law  <law@redhat.com>
29775
29776         PR target/64889
29777         * config/h8300/h8300.c (push): New argument "in_prologue".
29778         Pass "in_prologue" along to "F".
29779         (h8300_push_pop): Corresponding changes.
29780         (h8300_expand_prologue): Likewise.
29781         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
29782
29783 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29784
29785         PR rtl-optimization/64957
29786         PR debug/64817
29787         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
29788         IOR rather than for AND.
29789
29790 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29791
29792         PR target/62631
29793         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
29794         of shift-add and (add + shift) operations.  Rename local variable.
29795
29796 2015-02-05  Jeff Law  <law@redhat.com>
29797
29798         PR target/17306
29799         * config/h8300/constraints.md (U): Correctly dectect
29800         "eightbit_data" memory addresses.
29801         * config/h8300/h8300.c (eightbit_constant_address_p): Also
29802         handle (const (plus (symbol_ref (x)))) where x is declared
29803         as an 8-bit data memory address.
29804         * config/h8300/h8300.md (call, call_value): Correctly detect
29805         "funcvec" functions.
29806
29807         PR target/43264
29808         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
29809         24 to 28 bits for the H8/300.
29810
29811 2015-02-06  Alan Modra  <amodra@gmail.com>
29812
29813         PR target/64876
29814         * config/rs6000/rs6000.c (chain_already_loaded): New function.
29815         (rs6000_call_aix): Use it.
29816
29817 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
29818
29819         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
29820         check.
29821
29822 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
29823
29824         * config/h8300/constraints.md ("U" constraint): Use strict
29825         variant of REG_OK_FOR_BASE_P after reload has started.
29826
29827 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
29828
29829         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
29830         define to zero if !TARGET_NEON.
29831         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
29832
29833 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29834             Trevor Saunders  <tsaunders@mozilla.com>
29835
29836         PR ipa/61548
29837         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
29838
29839 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29840
29841         PR ipa/61548
29842         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
29843         when removing varpool nodes.
29844
29845 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29846
29847         PR ipa/61548
29848         * varpool.c (varpool_node::remove): Fix order of variables.
29849
29850 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29851
29852         PR ipa/64686
29853         * ipa-inline.c (inline_small_functions): Fix ordering issue between
29854         speculation resolution and key updates.
29855
29856 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29857
29858         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
29859         about not letting any speculative edges unupdated.
29860
29861 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29862
29863         PR gcov/64123
29864         * gcov-io.c (gcov_var): Export.
29865
29866 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29867
29868         PR middle-end/64922
29869         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
29870         edges that become speculative.
29871
29872 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29873
29874         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
29875         or DW_LANG_Fortran08.
29876         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
29877         DW_LANG_Fortran08.
29878         (gen_compile_unit_die): Handle "GNU Fortran2003" and
29879         "GNU Fortran2008" language strings.
29880         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
29881         * langhooks.h (lang_GNU_Fortran): New prototype.
29882         * langhooks.c (lang_GNU_Fortran): New function.
29883         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
29884         lang_GNU_Fortran.
29885
29886 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29887
29888         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
29889         (RTX_OK_FOR_OLO10_P): Likewise.
29890
29891 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29892
29893         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
29894
29895 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29896
29897         PR middle-end/64922
29898         * gimple.c: Include gimple-ssa.h.
29899         (maybe_remove_unused_call_args): New function.
29900         * gimple.h (maybe_remove_unused_call_args): Declare.
29901         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
29902         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
29903         * gimple-fold.c (gimple_fold_call): Likewise.
29904
29905 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
29906
29907         PR rtl-optimization/64905
29908         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
29909         pointer alignment if it isn't needed.
29910
29911 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29912
29913         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
29914         cortex-a72.cortex-a53.
29915         * config/aarch64/aarch64-tune.md: Regenerate.
29916         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
29917
29918 2015-02-04  Nick Clifton  <nickc@redhat.com>
29919
29920         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
29921         inside a MEM.
29922
29923 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29924
29925         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
29926         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
29927         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
29928         of DEF_BUILTIN.
29929         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
29930         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
29931         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
29932         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
29933         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
29934         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
29935         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
29936         * tree-core.h (enum built_in_function): In between
29937         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
29938         for builtins that use DEF_BUILTIN_CHKP macro.
29939
29940 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
29941
29942         PR debug/64817
29943         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
29944         operands for tcc_comparison exprs.  Fix typos.
29945
29946         PR debug/64817
29947         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
29948         of two XORs that have an intervening AND or IOR.
29949
29950         PR debug/64817
29951         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
29952         simplification of XOR of AND to not allocate new rtx before
29953         committing to a simplification.
29954
29955 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29956
29957         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
29958         manual swaps in all peepholes.
29959
29960 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29961
29962         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
29963         of manual swapping implementation.
29964         (aarch64_expand_vec_perm_const_1): Likewise.
29965
29966 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
29967
29968         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
29969         (generic_addrcost_table): Remove NAMED_PARAM.
29970         (cortexa57_addrcost_table): Likewise.
29971         (xgene1_addrcost_table): Likewise.
29972         (generic_regmove_table): Likewise.
29973         (cortexa53_regmove_table): Likewise.
29974         (xgene1_regmove_table): Likewise.
29975         (generic_vector_table): Likewise.
29976         (cortexa57_vector_table): Likewise.
29977         (xgene1_vector_table): Likewise.
29978         (generic_tunings): Likewise.
29979         (cortexa53_tunings): Likewise.
29980         (cortexa57_tunings): Likewise.
29981         (xgene1_tunings): Likewise.
29982
29983 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29984
29985         * config/arm/arm-cores.def: Add cortex-a72 and
29986         cortex-a72.cortex-a53.
29987         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
29988         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
29989         * config/arm/arm-tune.md: Regenerate.
29990         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
29991         "cortex-a72.cortex-a53".
29992         * doc/invoke.texi (ARM Options/-mtune): Likewise.
29993
29994 2015-02-04  Nick Clifton  <nickc@redhat.com>
29995
29996         PR target/64408
29997         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
29998         of accepted codes.
29999         (nonimmediate_di_operand): Likewise.
30000
30001         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
30002         prefixes of known F5 using MSP430 MCUs.
30003
30004 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30005
30006         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
30007         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
30008         instead of __builtin_sqrt.
30009
30010 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
30011
30012         * varasm.c (do_assemble_alias): Follow transparent alias
30013         chain for target.
30014         (default_assemble_visibility): Follow transparent alias
30015         chain for decl name.
30016
30017 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30018
30019         PR middle-end/62103
30020         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
30021         to compute size of referenced value in the constant case.
30022
30023 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30024
30025         PR rtl-optimization/64756
30026         * cse.c (invalidate_dest): New function.
30027         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
30028         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
30029         invalidate and do not record it.
30030
30031 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
30032
30033         PR target/64660
30034         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
30035         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
30036         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
30037         atomic_nand<mode>_soft_tcb): New insns.
30038         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
30039         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
30040         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
30041         Split into atomic_not_fetchsi_hard if operands[0] is unused.
30042         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
30043         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
30044         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
30045         atomic_not<mode>_hard if operands[0] is unused.
30046         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
30047         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
30048         if operands[0] is unused.
30049         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
30050         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
30051         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
30052         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
30053         unused.
30054         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
30055         into atomic_not<mode>_soft_tcb if operands[0] is unused.
30056         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
30057         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
30058         if operands[0] is unused.
30059         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
30060         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
30061         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
30062         atomic_nand_fetchsi_hard if operands[0] is unused.
30063         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
30064         atomic_nand<mode>_hard if operands[0] is unused.
30065         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
30066         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
30067         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
30068         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
30069         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
30070         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
30071         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
30072         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
30073         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
30074         atomic_not<mode>_hard if operands[0] is unused.
30075         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
30076         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
30077         unused.
30078         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
30079         into atomic_not<mode>_soft_tcb if operands[0] is unused.
30080         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
30081         atomic_nand<mode>_hard if operands[0] is unused.
30082         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
30083         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
30084
30085 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
30086
30087         PR jit/64810
30088         * Makefile.in (GCC_OBJS): Add gcc-main.o.
30089         * gcc-main.c: New file, containing "main" taken from gcc.c.
30090         * gcc.c (do_self_spec): Free decoded_options.
30091         (class driver): Move declaration to gcc.h.
30092         (main): Move declaration and implementation to new file
30093         gcc-main.c.
30094         (driver_get_configure_time_options): New function.
30095         * gcc.h (class driver): Move this declaration here, from
30096         gcc.c.
30097         (driver_get_configure_time_options): New declaration.
30098
30099 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
30100
30101         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
30102         cross-module inlining.
30103         * cgraph.h (cgraph_node): Add flag merged.
30104         * ipa-icf.c (sem_function::merge): Maintain it.
30105
30106 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
30107
30108         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
30109         instead of OBJECT_P.
30110
30111 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
30112
30113         PR target/62631
30114         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
30115         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
30116         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
30117         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
30118
30119 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30120
30121         PR other/63504
30122         * combine.c (reg_n_sets_max): New variable.
30123         (can_change_dest_mode, reg_nonzero_bits_for_combine,
30124         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
30125         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
30126         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
30127         (rest_of_handle_combine): Initialize reg_n_sets_max.
30128
30129 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
30130
30131         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
30132         if some always_inline was inlined, apply changes before inlining
30133         heuristically.
30134
30135 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
30136
30137         PR jit/64810
30138         * config/arm/arm.c (arm_option_override): Set
30139         arm_selected_arch/cpu/tune to NULL on entry.
30140
30141 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
30142             Andrew Pinski  <pinskia@gcc.gnu.org>
30143             Jakub Jelinek  <jakub@gcc.gnu.org>
30144
30145         PR target/64231
30146         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
30147         integer typing for small model. Use IN_RANGE.
30148
30149 2015-02-02  Richard Biener  <rguenther@suse.de>
30150
30151         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
30152         * tree-vrp.c (vrp_valueize_1): Likewise.
30153
30154 2015-02-02  Alan Modra  <amodra@gmail.com>
30155
30156         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
30157         than mem for toc_restore.
30158         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
30159         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
30160         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
30161
30162 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
30163
30164         PR target/64047
30165         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
30166         explicit default options.
30167
30168 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
30169
30170         PR ipa/64872
30171         * ipa-utils.c (ipa_merge_profiles): Add release argument.
30172         * ipa-icf.c (sem_function::merge): Do not release body when merging.
30173         * ipa-utils.h (ipa_merge_profiles): Update prototype.
30174
30175 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
30176
30177         PR debug/64817
30178         * cfgexpand.c (deep_ter_debug_map): New variable.
30179         (avoid_deep_ter_for_debug): New function.
30180         (expand_debug_expr): If TERed SSA_NAME is in
30181         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
30182         instead of trying to expand SSA_NAME's def stmt.
30183         (expand_debug_locations): When expanding debug bind
30184         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
30185         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
30186         value.
30187         (pass_expand::execute): Call avoid_deep_ter_for_debug on
30188         all debug bind stmts.  Delete deep_ter_debug_map after
30189         expand_debug_location if non-NULL and clear it.
30190
30191 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
30192
30193         PR target/64851
30194         * config/sh/sync.md (atomic_fetch_notsi_hard,
30195         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
30196         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
30197         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
30198         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
30199         atomic_not_fetch<mode>_soft_imask): New insns.
30200
30201 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
30202
30203         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
30204         (rank_for_schedule_debug): Split from ...
30205         (rank_for_schedule): ... this.
30206         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
30207         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
30208
30209 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30210
30211         * doc/md.texi (Machine Constraints): Alphabetize table by target.
30212         * doc/extend.texi (x86 Variable Attributes): Move section to
30213         correct alphabetization after renaming.
30214         (x86 Type Attributes): Likewise.
30215         (Target Builtins): Re-alphabetize menu.
30216         (x86 Built-in Functions): Move section to correct alphabetization
30217         after renaming.
30218         (x86 transactional memory intrinsics): Likewise.
30219         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
30220         and x86 Windows Options in table and menu.
30221         (x86 Options): Move section to correct alphabetization after
30222         renaming.
30223         (x86 Windows Options): Likewise.
30224
30225 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30226
30227         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
30228         preferred names of the architecture and its 32- and 64-bit
30229         variants.
30230         * doc/invoke.texi: Likewise.
30231         * doc/md.texi: Likewise.
30232
30233 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30234
30235         PR target/64882
30236         * config/i386/predicates.md (address_no_seg_operand): Reject
30237         non-CONST_INT_P operands in invalid mode.
30238
30239 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30240
30241         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
30242         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
30243         * config/i386/predicates.md (address_no_seg_operand): Call
30244         address_operand with VOIDmode.
30245         (vsib_address_operand): Ditto.
30246         (address_mpx_no_base_operand): Ditto.
30247         (address_mpx_no_index_operand): Ditto.
30248
30249 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30250
30251         PR target/64688
30252         * lra-constraints.c (original_subreg_reg_mode): New.
30253         (simplify_operand_subreg): Try to simplify subreg of const.  Use
30254         original_subreg_reg_mode for it.
30255         (swap_operands): Update original_subreg_reg_mode.
30256         (curr_insn_transform): Set up original_subreg_reg_mode.
30257
30258 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30259
30260         PR target/64617
30261         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
30262         function.
30263         (process_alt_operands): Use it.
30264         (curr_insn_transform): Check the optional reload pseudo class is
30265         ok for the mode.
30266
30267 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
30268
30269         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
30270         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
30271         prototype.
30272         * toplev.h (init_asm_output): Update comment on use of
30273         UNKNOWN_LOCATION with fatal_error.
30274         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
30275         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
30276         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
30277         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
30278         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
30279         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
30280         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
30281         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
30282         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
30283         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
30284         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
30285         fatal_error changed to pass input_location as first argument.
30286
30287 2015-01-30  Martin Liska  <mliska@suse.cz>
30288
30289         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
30290         in #pragma GCC diagnostic guards.
30291
30292 2015-01-30  Richard Biener  <rguenther@suse.de>
30293
30294         PR tree-optimization/64829
30295         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
30296         not add a widening conversion pattern but hand off extra
30297         widenings to callers.
30298         (vect_recog_widen_mult_pattern): Handle extra widening produced
30299         by vect_handle_widen_op_by_const.
30300         (vect_recog_widen_shift_pattern): Likewise.
30301         (vect_pattern_recog_1): Remove excess vertical space in dumping.
30302         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
30303         (vect_init_vector_1): Likewise.
30304         (vect_get_vec_def_for_operand): Likewise.
30305         (vect_finish_stmt_generation): Likewise.
30306         (vectorizable_load): Likewise.
30307         (vect_analyze_stmt): Likewise.
30308         (vect_is_simple_use): Likewise.
30309
30310 2015-01-29  Jeff Law  <law@redhat.com>
30311
30312         * combine.c (try_combine): Fix typo in comment.
30313
30314 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
30315
30316         PR target/64580
30317         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
30318         (rs6000_stack_info): Add assert.
30319         (rs6000_output_savres_externs): New function, split off from...
30320         (rs6000_output_function_prologue): ... here.  Do not call it for
30321         thunks.
30322
30323 2015-01-29  Jeff Law  <law@redhat.com>
30324
30325         PR target/15184
30326         * combine.c (try_combine): If I0 is a memory load and I3 a store
30327         to a related address, increase the "goodness" of doing a 4-insn
30328         combination with I0-I3.
30329         (make_field_assignment): Handle SUBREGs in the ior+and case.
30330
30331 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
30332
30333         PR tree-optimization/64746
30334         * tree-if-conv.c (mask_exists): New function.
30335         (predicate_mem_writes): Save created mask with given size for further
30336         use.
30337         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
30338         (ifcvt_repair_bool_pattern): Collect all statements that are root
30339         of bool pattern and use iterative algorithm to remove multiple uses
30340         of predicates, display number of required iterations.
30341
30342 2015-01-29  Richard Biener  <rguenther@suse.de>
30343
30344         PR tree-optimization/64853
30345         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
30346         stmt will get simulated again.
30347         * tree-ssa-ccp.c (valueize_op_1): Likewise.
30348
30349 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30350
30351         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
30352         return_in_pc.  Remove redundant assignments.
30353         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
30354         (arm_expand_epilogue): Don't compare boolean with true in if condition.
30355
30356 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
30357
30358         * config/i386/i386.c (ix86_mode_after): Make static.
30359
30360 2015-01-29  Richard Biener  <rguenther@suse.de>
30361
30362         PR tree-optimization/64844
30363         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
30364         dump cost model analysis.
30365         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30366         Do not register adjusted load/store costs here.
30367
30368 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30369             Uros Bizjak  <ubizjak@gmail.com>
30370
30371         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
30372         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
30373         using x86_use_pseudo_pic_reg.
30374         * config/i386/i386.c (ix86_conditional_register_usage): Remove
30375         support for fixed PIC register.
30376         (ix86_use_pseudo_pic_reg): Not static any more.
30377
30378 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30379
30380         PR middle-end/64805
30381         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
30382         to avoid error in cgraph node verification.
30383
30384 2015-01-29  Marek Polacek  <polacek@redhat.com>
30385
30386         * doc/standards.texi: Reflect that the default for C is gnu11.
30387
30388 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
30389
30390         PR target/64761
30391         * reorg.c (switch_text_sections_between_p): New function.
30392         (relax_delay_slots): Call it when testing if the jump insn
30393         is removable.  Use targetm.can_follow_jump when testing if
30394         the conditional branch can follow an unconditional jump.
30395
30396 2015-01-27  Caroline Tice  <cmtice@google.com>
30397
30398         Committing VTV Cywin/Ming patch for Patrick Wollgast
30399         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
30400         if -fvtable-verify=preinit/std is used.
30401         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
30402         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
30403         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
30404         if -fvtable-verify=preinit/std is used.
30405         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30406         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
30407         if -fvtable-verify=preinit/std is used.
30408         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
30409         * config/i386/mingw32.h (LIB_SPEC): Likewise.
30410         * varasm.c (assemble_variable): Add code to properly set the comdat
30411         section and name for the .vtable_map_vars section in case the
30412         target is PE or COFF.
30413
30414 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30415
30416         PR ipa/64801
30417         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
30418         make sane BB profile.
30419         (cgraph_node::expand_thunk): Make sane BB profile.
30420         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
30421         * cgraph.h (init_lowered_empty_function): Update prototype.
30422         * config/i386/i386.c (make_resolver_func): Update call.
30423         * predict.c (gate): Disable branch prediction pass if
30424         profile is already there.
30425
30426 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30427
30428         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
30429         * opth-gen.awk: Likewise.
30430         * common.opt: Mark flag_fp_contract_mode as Optimization.
30431
30432 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30433
30434         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
30435         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
30436
30437 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
30438
30439         PR target/64659
30440         * config/sh/predicates.md (atomic_arith_operand,
30441         atomic_logical_operand): Remove.
30442         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
30443         (atomic_arith_operand_0): New predicate.
30444         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
30445         Use atomic_arith_operand_0 for input values.
30446         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
30447         atomic_compare_and_swap<mode>_soft_gusa,
30448         atomic_compare_and_swap<mode>_soft_tcb,
30449         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
30450         arith_reg_operand instead of register_operand.
30451         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
30452         atomic_arith_operand_0 for newval input.
30453         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
30454         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
30455         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
30456         arith_reg_operand instead of register_operand.
30457         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
30458         fetchop_predicate_1, fetchop_constraint_1_llcs,
30459         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
30460         fetchop_constraint_1_imask): New code iterator attributes.
30461         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
30462         register_operand.  Use fetchop_predicate_1.
30463         (atomic_fetch_<fetchop_name>si_hard,
30464         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
30465         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
30466         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
30467         and arith_reg_operand instead of register_operand.  Use
30468         fetchop_predicate_1, fetchop_constraint_1_gusa.
30469         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
30470         and arith_reg_operand instead of register_operand.  Use
30471         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
30472         to allow R0 usage.
30473         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
30474         and arith_reg_operand instead of register_operand.  Use
30475         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
30476         to allow R0 usage.
30477         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
30478         register_operand.  Use atomic_logical_operand_1.
30479         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
30480         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
30481         arith_reg_operand instead of register_operand.
30482         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
30483         Use arith_reg_dest and arith_reg_operand instead of register_operand.
30484         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
30485         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
30486         register_operand.  Use fetchop_predicate_1.
30487         (atomic_<fetchop_name>_fetchsi_hard,
30488         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
30489         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30490         fetchop_constraint_1_llcs.
30491         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
30492         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30493         fetchop_constraint_1_gusa.
30494         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
30495         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30496         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
30497         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
30498         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30499         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
30500         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
30501         register_operand.  Use atomic_logical_operand_1.
30502         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
30503         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
30504         arith_reg_operand instead of register_operand.
30505         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
30506         arith_reg_operand instead of register_operand.  Use logical_operand
30507         and K08.  Adjust asm sequence to allow R0 usage.
30508         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
30509         arith_reg_operand instead of register_operand.  Use logical_operand
30510         and K08.
30511
30512 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30513
30514         PR other/63504
30515         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
30516         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
30517         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
30518         only get_full_len HOST_WIDE_INTs from get_val () array rather than
30519         all bits in *val_wide.
30520
30521 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
30522
30523         * varpool.c (tls_model_names): Fix names.
30524         (varpool_node::dump): Dump tls- prefix for tls models.
30525
30526 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
30527             Bernd Schmidt  <bernds@codesourcery.com>
30528             Nathan Sidwell  <nathan@codesourcery.com>
30529
30530         * config/nvptx/mkoffload.c: New file.
30531         * config/nvptx/t-nvptx: Add build rules for it.
30532         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
30533         (extra_programs): Add mkoffload.
30534         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
30535         function.
30536         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
30537
30538 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
30539
30540         PR middle-end/64809
30541         * cfgexpand.c (reorder_operands): Skip debug gimples.
30542
30543 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
30544
30545         PR tree-optimization/64277
30546         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
30547         range info when possible to refine estimation.
30548
30549 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30550
30551         PR tree-optimization/64718
30552         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
30553         be a 16bit unsigned integer when n->range is 16.
30554         (bswap_replace): Convert src to that type if necessary for all bswap
30555         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
30556         set in pass_optimize_bswap::execute ().
30557
30558 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
30559
30560         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
30561         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
30562         integer and floating point variants.
30563         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
30564
30565 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
30566
30567         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
30568         for all vector modes.
30569
30570 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30571
30572         PR bootstrap/64612
30573         * doc/sourcebuild.texi (comdat_group): Document.
30574
30575 2015-01-28  Terry Guo  <terry.guo@arm.com>
30576
30577         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
30578
30579 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
30580
30581         * toplev.c (print_version): Add param "show_global_state", and
30582         only print GGC and plugin information if it is true.
30583         (init_asm_output): Pass in "true" for the new param when calling
30584         print_version.
30585         (process_options): Likewise.
30586         (toplev::main): Likewise.
30587         * toplev.h (print_version): Add new param to decl.
30588
30589 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30590
30591         PR ipa/60871
30592         PR ipa/64139
30593         * tree.c (lookup_binfo_at_offset): New function.
30594         (get_binfo_at_offset): Use it.
30595
30596 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30597
30598         PR ipa/64282
30599         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
30600         on vtable being vtable.
30601
30602 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30603
30604         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
30605         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
30606         -mhotpatch= option.
30607         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
30608         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
30609         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
30610         Renamed.
30611         (s390_hotpatch_trampoline_halfwords_max): Renamed.
30612         (s390_hotpatch_hw_max): New name.
30613         (s390_hotpatch_trampoline_halfwords): Renamed.
30614         (s390_hotpatch_hw_before_label): New name.
30615         (get_hotpatch_attribute): Removed.
30616         (s390_hotpatch_hw_after_label): New name.
30617         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
30618         attribute.
30619         (s390_attribute_table): Ditto.
30620         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
30621         (s390_function_num_hotpatch_hw): New name.
30622         Remove special handling of inline functions and hotpatching.
30623         Return number of nops before and after the function label.
30624         (s390_can_inline_p): Removed.
30625         (s390_asm_output_function_label): Emit a configurable number of nops
30626         after the function label.
30627         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
30628         (TARGET_CAN_INLINE_P) Removed.
30629         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
30630
30631 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30632             Jiong Wang  <jiong.wang@arm.com>
30633
30634         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
30635         of scratch reg.
30636         (cb<optab><mode>1): Likewise.
30637         * config/aarch64/iterators.md (bcond): New define_code_attr.
30638
30639 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30640
30641         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
30642         memory accesses.
30643
30644 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30645
30646         * config/s390/s390.c (s390_register_move_cost): Increase costs for
30647         FPR->GPR moves.
30648
30649 2015-01-27  Richard Biener  <rguenther@suse.de>
30650
30651         * tree-vrp.c (update_value_range): Intersect the range with
30652         old recorded SSA name range information.
30653
30654 2015-01-27  Nick Clifton  <nickc@redhat.com>
30655
30656         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
30657         BC, DE and HL registers directly, not via AX.
30658         When decrementing the stack pointer by a large amount, transfer SP
30659         into AX and perform the subtraction there.
30660         (rl78_expand_epilogue): Perform the inverse of the above
30661         enhancements.
30662
30663 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30664
30665         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
30666
30667 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30668             Yury Gribov  <y.gribov@samsung.com>
30669
30670         PR ubsan/64741
30671         * ubsan.c (ubsan_source_location): Refactor code.
30672         (ubsan_type_descriptor): Update type size. Refactor code.
30673
30674 2015-01-27  Richard Biener  <rguenther@suse.de>
30675
30676         PR tree-optimization/56273
30677         PR tree-optimization/59124
30678         PR tree-optimization/64277
30679         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
30680         from the first VRP pass.
30681
30682 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30683
30684         PR ipa/64776
30685         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
30686         handle the first argument in the same loop as all the other arguments.
30687
30688         PR rtl-optimization/61058
30689         * jump.c (cleanup_barriers): Update basic block boundaries
30690         if BLOCK_FOR_INSN is non-NULL on PREV.
30691
30692 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
30693
30694         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
30695         bounds narrowing, already instrumented calls and calls to
30696         not instrumentable functions.
30697
30698 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30699
30700         PR tree-optimization/64807
30701         * wide-int.cc (wi::divmod_internal): Clear
30702         b_dividend[dividend_blocks_needed].
30703
30704 2015-01-26  DJ Delorie  <dj@redhat.com>
30705
30706         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
30707         volatile memory references.
30708
30709 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
30710
30711         PR target/49263
30712         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
30713         remove_insn.
30714         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
30715         shifts if it already fits into K08.
30716
30717 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30718
30719         PR ipa/64730
30720         * ipa-inline.c (inline_small_functions): Print "unknown" even
30721         if edge->call_stmt is non-NULL, but has builtins or unknown
30722         location.
30723
30724         PR middle-end/64421
30725         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
30726         with asterisk, skip the first character.
30727
30728 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30729
30730         PR target/64806
30731         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
30732         order change.
30733
30734 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
30735
30736         PR target/64795
30737         * config/i386/i386.md (*movdi_internal): Also check operand 0
30738         to determine TYPE_LEA operand.
30739         (*movsi_internal): Ditto.
30740
30741 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30742
30743         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
30744         OPTION_MASK_QUAD_MEMORY_ATOMIC.
30745
30746 2015-01-26  Renlin Li  <renlin.li@arm.com>
30747
30748         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
30749         the comment.
30750         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
30751         for higher part.
30752
30753 2015-01-26  Richard Biener  <rguenther@suse.de>
30754
30755         PR middle-end/64764
30756         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
30757         combining two BIT_AND_EXPR predicates.
30758
30759 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30760
30761         PR bootstrap/64754
30762         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
30763
30764 2015-01-26  Terry Guo  <terry.guo@arm.com>
30765
30766         * config/arm/arm.c (arm_file_start): Update the assignment of
30767         Tag_ABI_HardFP_use.
30768
30769 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
30770
30771         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
30772         pipeline model.
30773         config/arm/arm.md: Include the new Cortex-A57 model.
30774         (generic_sched): Don't use generic_sched when tuning for
30775         Cortex-A57.
30776
30777 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
30778             Uros Bizjak  <ubizjak@gmail.com>
30779
30780         * config/i386/i386.c (get_builtin_code_for_version): Add
30781         support for BMI and BMI2 multiversion functions.
30782
30783 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30784
30785         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
30786         (extract_bit_field): Likewise.
30787         (extract_low_bits): Likewise.
30788         (expand_mult): Likewise.
30789         (expand_mult_highpart_adjust): Likewise.
30790
30791 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30792
30793         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
30794         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
30795         * config/i386/i386.c (processor_model): Add
30796         M_INTEL_COREI7_BROADWELL.
30797         (arch_names_table): Add "broadwell".
30798
30799 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
30800
30801         PR target/49263
30802         PR target/53987
30803         PR target/64345
30804         PR target/59533
30805         PR target/52933
30806         PR target/54236
30807         PR target/51244
30808         * config/sh/sh-protos.h
30809         (sh_extending_set_of_reg::can_use_as_unextended_reg,
30810         sh_extending_set_of_reg::use_as_unextended_reg,
30811         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
30812         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
30813         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
30814         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
30815         (sh_treg_insns): New class.
30816         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
30817         (scope_counter): New class.
30818         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
30819         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
30820         sh_extending_set_of_reg::can_use_as_unextended_reg,
30821         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
30822         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
30823         sh_split_treg_set_expr): New functions.
30824         (addsubcosts): Handle treg_set_expr.
30825         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
30826         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
30827         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
30828         (sh_insn_operands_modified_between_p): Make non-static.
30829         * config/sh/predicates.md (zero_extend_movu_operand): Allow
30830         simple_mem_operand in addition to displacement_mem_operand.
30831         (zero_extend_operand): Don't allow zero_extend_movu_operand.
30832         (treg_set_expr, treg_set_expr_not_const01,
30833         arith_reg_or_treg_set_expr): New predicates.
30834         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
30835         arith_or_int_operand instead of logical_operand.  Convert to
30836         insn_and_split.  Try to optimize constant operand in splitter.
30837         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
30838         (*tstqi_t_zero): Delete.
30839         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
30840         (tstsi_t_and_not): Delete.
30841         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
30842         Convert to insn_and_split.
30843         (unnamed split, tstsi_t_zero_extract_xor,
30844         tstsi_t_zero_extract_subreg_xor_little,
30845         tstsi_t_zero_extract_subreg_xor_big): Delete.
30846         (*tstsi_t_shift_mask): New insn_and_split.
30847         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
30848         to recombine with surrounding insns when splitting.
30849         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
30850         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
30851         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
30852         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
30853         (*cbranch_div0s: Delete.
30854         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30855         Try to recombine with surrounding insns when splitting.  Add operand
30856         order variants.
30857         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
30858         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
30859         *addc_r_r_msb, *addc_2r_msb): Delete.
30860         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
30861         order variant.
30862         (*addc_negreg_t): New insn_and_split.
30863         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30864         Try to recombine with surrounding insns when splitting.
30865         Add operand order variants.
30866         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
30867         insn_and_split patterns.
30868         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
30869         surrounding insns when splitting.
30870         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
30871         (*rotcl): Likewise.  Add zero_extract variant.
30872         (*ashrsi2_31): New insn_and_split.
30873         (*negc): Convert to insn_and_split.  Use treg_set_expr.
30874         (*zero_extend<mode>si2_disp_mem): Update comment.
30875         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
30876         condition.
30877         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
30878         with surrounding insns when splitting.
30879         (any_treg_expr_to_reg): New insn_and_split.
30880         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
30881         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
30882         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
30883         *zero_extract_2): New single bit zero extract patterns.
30884         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
30885         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
30886         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
30887         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
30888         set destination.
30889         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
30890         register_operand for set source.
30891
30892 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
30893
30894         * i386.opt (prefetch_sse): New targetsave.
30895         * i386.c (ix86_function_specific_save): Save prefetch_sse.
30896         (ix86_function_specific_restore): Restore prefetch_sse and initialize
30897         ix86_cost/ix86_tune_cost.
30898
30899 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30900
30901         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
30902         Support the JIT by using 0 as the language type.
30903
30904 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
30905
30906         PR target/64317
30907         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
30908         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
30909         (mark_regno_live, process_bb_lives): Pass new parameter value to
30910         make_hard_regno_born.
30911
30912 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30913
30914         PR rtl-optimization/63637
30915         PR rtl-optimization/60663
30916         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
30917         if elt->cost is MAX_COST for ASM_OPERANDS.
30918         (find_sets_in_insn): Fix up comment typo.
30919         (cse_insn): Don't set src_volatile for all non-volatile
30920         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
30921         or with "memory" clobber.  Set elt->cost to MAX_COST
30922         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
30923         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
30924
30925 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30926
30927         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
30928         alternative 1.
30929
30930 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30931
30932         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
30933         libgcc/config/i386/elf-lib.h.
30934
30935 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30936
30937         PR driver/64737
30938         * gcc.c (print_configuration): Don't print a blank line at the end
30939         here...
30940         (run_attempt): ... but here unstead.
30941
30942         PR middle-end/64734
30943         * omp-low.c (scan_sharing_clauses): Don't ignore
30944         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
30945         on target data/update constructs.
30946
30947 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30948
30949         PR target/50928
30950         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
30951         (DEBUG_RELOAD): Removed define.
30952         (m32c_limit_reload_class): Enable traces with if DEBUG0.
30953         (m32c_function_arg): Added a type cast.
30954         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
30955         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
30956         * config/m32c/bitops.md (andqi3_16): Likewise.
30957         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
30958         (push_a01_l): Likewise.
30959
30960 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30961
30962         PR jit/64721
30963         * main.c (main): Construct toplev instances with init_signals=true.
30964         * toplev.c (general_init): Add param "init_signals", and use it to
30965         conditionalize the calls to signal and host_hooks.extra_signals.
30966         (toplev::toplev): Add param "init_signals".
30967         (toplev::main): When invoking general_init, pass m_init_signals
30968         to control whether signal-handlers are installed.
30969         * toplev.h (toplev::toplev): Add param "init_signals".
30970         (toplev::m_init_signals): New field.
30971
30972 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30973
30974         PR jit/64722
30975         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
30976         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
30977         latter may be affected by the former (e.g. on i686).
30978
30979 2015-01-23  Martin Liska  <mliska@suse.cz>
30980
30981         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
30982         false positive during profiledbootstrap.
30983
30984 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30985
30986         PR libgomp/64672
30987         * lto-opts.c (lto_write_options): Output non-explicit conservative
30988         -fno-openacc.
30989         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
30990         (append_compiler_options): Pass -fopenacc through.
30991
30992 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30993
30994         PR libgomp/64707
30995         * lto-opts.c (lto_write_options): Output non-explicit conservative
30996         -fno-openmp.
30997         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
30998         (append_compiler_options): Pass -fopenmp through.
30999
31000 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
31001
31002         PR debug/64511
31003         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
31004         GTY markup.
31005
31006         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
31007         * diagnostic.def (DK_ICE_NOBT): New kind.
31008         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
31009         like DK_ICE, but never print backtrace.
31010         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
31011         (internal_error_no_backtrace): New function.
31012         * gcc.c (execute): Use internal_error_no_backtrace instead of
31013         internal_error.
31014
31015 2015-01-22  Jeff Law  <law@redhat.com>
31016
31017         PR target/52076
31018         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
31019         improve code density for small immediate to memory case.
31020         (insv): Better handle bitfield assignments when the field is
31021         being set to all ones.
31022         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
31023         operand predicate.
31024
31025 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31026             Jakub Jelinek  <jakub@redhat.com>
31027
31028         PR middle-end/64729
31029         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
31030         for !TARGET_LIBC_PROVIDES_SSP version and
31031         -fstack-protector-{all,strong,explicit} otherwise.
31032         * config/freebsd.h (LINK_SSP_SPEC): Handle
31033         -fstack-protector-{strong,explicit}.
31034
31035 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
31036             H.J. Lu  <hongjiu.lu@intel.com>
31037
31038         PR ipa/64694
31039         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
31040         heap.
31041
31042 2015-01-22  Wei Mi  <wmi@google.com>
31043
31044         PR rtl-optimization/64557
31045         * dse.c (record_store): Call get_addr for mem_addr.
31046         (check_mem_read_rtx): Likewise.
31047
31048 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
31049
31050         * fold-const.c (const_binop): Add early return for non-tcc_binary.
31051
31052 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
31053
31054         * toplev.c (init_local_tick): Process the failure when read
31055         fails for random_seed.
31056
31057         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
31058         'pretty_name' to avoid memory overflow.
31059
31060 2015-01-22  Richard Biener  <rguenther@suse.de>
31061
31062         PR middle-end/64728
31063         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
31064         abnormal coalescing on undefined SSA names.
31065
31066 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
31067
31068         PR target/64688
31069         PR target/64477
31070         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
31071         for alternative 3.
31072         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
31073
31074 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
31075
31076         PR middle-end/63325
31077         * fold-const.c (fold_checksum_tree): Don't include value of
31078         expr->decl_with_vis.symtab_node in the checksum.
31079
31080 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
31081
31082         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
31083
31084 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
31085
31086         PR driver/64690
31087         * gcc.c (insert_comments): New function.
31088         (try_generate_repro): Call it.
31089         (append_text): Removed.
31090
31091 2015-01-22  Richard Biener  <rguenther@suse.de>
31092
31093         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
31094         with IL incompatible options.  Properly honor user optimize
31095         attributes.
31096
31097 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
31098
31099         PR rtl-optimization/64682
31100         * combine.c (distribute_notes): When moving a death note for
31101         a register that is set in the new I2, make sure to put it
31102         before that new I2.
31103
31104 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
31105
31106         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
31107         not TARGET_DEFAULT.
31108
31109 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
31110
31111         PR debug/64511
31112         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
31113         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
31114         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
31115
31116         PR sanitizer/64706
31117         * doc/invoke.texi (-fsanitize=vptr): Document.
31118
31119         PR rtl-optimization/62078
31120         * dse.c: Include cfgcleanup.h.
31121         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
31122         anything call purge_all_dead_edges and cleanup_cfg at the end
31123         of the pass.
31124
31125 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
31126
31127         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
31128         edges.
31129
31130 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31131
31132         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
31133         decl attribute.
31134
31135 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31136             Tejas Belagod <Tejas.Belagod@arm.com>
31137
31138         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
31139         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
31140         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
31141         Removed.
31142
31143 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31144             Tejas Belagod <Tejas.Belagod@arm.com>
31145
31146         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
31147         (aarch64_reverse_mask): New decls.
31148         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
31149         (insn_count): New mode_attr.
31150         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
31151         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
31152         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
31153         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
31154         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
31155         (aarch64_simd_st4): New patterns.
31156         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
31157         (aarch64_reverse_mask): New functions.
31158
31159 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31160
31161         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
31162         Declare.
31163         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
31164         addressing modes for BE.
31165         (aarch64_print_operand): Add 'R' specifier.
31166         (aarch64_simd_disambiguate_copy): Delete.
31167         (aarch64_simd_emit_reg_reg_move): New function.
31168         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
31169         in define_splits for structural moves.
31170         (mov<mode>): Use less restrictive predicates.
31171         (*aarch64_mov<mode>): Simplify and only allow for LE.
31172         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
31173
31174 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31175
31176         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
31177
31178 2015-01-21  Richard Henderson  <rth@redhat.com>
31179
31180         PR target/64669
31181         * ccmp.c (used_in_cond_stmt_p): Remove.
31182         (expand_ccmp_expr): Don't use it.
31183
31184 2015-01-21  Nick Clifton  <nickc@redhat.com>
31185
31186         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
31187         PARALLELs.
31188
31189 2015-01-21  Richard Biener  <rguenther@suse.de>
31190
31191         PR middle-end/64313
31192         * tree-core.h (builtin_info, builtin_info_type): Turn from
31193         an object with two arrays into an array of an object with
31194         decl and two flags, implicit_p and declared_p.
31195         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
31196         set_builtin_decl, set_builtin_decl_implicit_p,
31197         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
31198         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
31199         * builtins.c (builtin_info): Adjust.
31200         * gimplify.c (gimplify_addr_expr): References to builtins
31201         that have been declared by the user makes them eligible for
31202         use by the compiler.  Call set_builtin_decl_implicit_p on them.
31203
31204 2015-01-20  Jeff Law  <law@redhat.com>
31205
31206         PR target/59946
31207         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
31208         allow pc-relative addresses in operand predicates or constraints.
31209
31210 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
31211
31212         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
31213         neon on aarch32 processors for stringops.
31214
31215 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31216
31217         PR ipa/63576
31218         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
31219
31220 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31221
31222         PR lto/45375
31223         * ipa-inline.c: Include lto-streamer.h
31224         (report_inline_failed_reason): Output source file differences and
31225         flags on optimization/target node mismatch.
31226         (can_inline_edge_p): Consider caller to be the outer inline function;
31227         be less restrictive about matching opimize and optimize_size attributes.
31228         (inline_account_function_p): Break out from ...
31229         (inline_small_functions): ... here.
31230         * ipa-inline-transform.c (clone_inlined_nodes): Use
31231         inline_account_function_p.
31232         (inline_call): Use optimize attribution; use inline_account_function_p.
31233         (inline_transform): Use opt_for_fn.
31234         * ipa-inline.h (inline_account_function_p): Declare.
31235
31236 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
31237
31238         PR debug/64663
31239         * dwarf2out.c (decl_piece_node): Don't put bitsize into
31240         mode if bitsize <= 0.
31241         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
31242         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
31243         sizes and positions.
31244
31245 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
31246
31247         * config/nios2/nios2.c (nios2_asm_file_end): Implement
31248         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
31249         needed.
31250         (TARGET_ASM_FILE_END): Define.
31251
31252 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31253
31254         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
31255         (struct tune_params): Use the enum.
31256         * arm.c (arm_*_tune): Update.
31257         (arm_option_override): Update.
31258
31259 2015-01-20  Richard Biener  <rguenther@suse.de>
31260
31261         PR ipa/64684
31262         * ipa-reference.c (add_static_var): Inline ...
31263         (analyze_function): ... here after splitting out from ...
31264         (is_proper_for_analysis): ... this.
31265
31266 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
31267
31268         PR target/64149
31269         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
31270         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
31271         replace the conditional with it's true branch.
31272         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
31273         (arm_lra_p): Remove.
31274
31275 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
31276
31277         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
31278
31279 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31280
31281         * config/tilegx/mul-tables.c: Move symtab.h include after
31282         coretypes.h include.
31283         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
31284         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
31285         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
31286         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
31287         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
31288
31289 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
31290
31291         PR bootstrap/64676
31292         Revert:
31293         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31294
31295         PR rtl-optimization/64081
31296         * loop-iv.c (def_pred_latch_p): New function.
31297         (latch_dominating_def): Allow specific cases with non-single
31298         definitions.
31299         (iv_get_reaching_def): Likewise.
31300         (check_complex_exit_p): New function.
31301         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31302         with exits not executing on any iteration.
31303
31304 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31305
31306         PR lto/45375
31307         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
31308         to set branch cost.
31309
31310 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31311
31312         PR lto/45375
31313         * i386.c (gate): Check flag_expensive_optimizations and
31314         optimize_size.
31315         (ix86_option_override_internal): Drop optimize_size condition
31316         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
31317         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
31318         MASK_PREFER_AVX128.
31319         (ix86_avx256_split_vector_move_misalign,
31320         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
31321         * sse.md (all uses of TARGET_PREFER_AVX128): Add
31322         optimize_insn_for_speed_p check.
31323
31324 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
31325
31326         * config/mips/mips.h (FP_ASM_SPEC): New define.
31327         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
31328         instead.
31329
31330 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
31331
31332         PR target/53988
31333         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
31334         nullptr for insn when reaching the first insn.
31335         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
31336         (sh_insn_operands_modified_between_p): Add nullptr check.
31337         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
31338         sign extending mem load if the insn contains any UNSPEC or
31339         UNSPEC_VOLATILE.
31340
31341 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31342
31343         * params.def (inline-unit-growth): Drop to 15%.
31344         * invoke.texi (inline-unit-growth): Document change.
31345
31346 2015-01-19  Martin Liska  <mliska@suse.cz>
31347
31348         PR ipa/64668
31349         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
31350         function for second argument of OBJ_TYPE_REF.
31351
31352 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31353
31354         PR ipa/64218
31355         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
31356         whether function is an alias.
31357
31358 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31359
31360         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
31361         cases.
31362
31363 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
31364
31365         PR rtl-optimization/64671
31366         * lra-remat.c (operand_to_remat): Don't consider jump and call
31367         insns.
31368
31369 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
31370
31371         PR target/59828
31372         * config/rs6000/default64.h: Include rs6000-cpus.def.
31373         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
31374         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
31375         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
31376         and POWER8.
31377         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
31378         POWER8.
31379         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
31380         pseudo-op to specify assembler dialect.
31381
31382 2015-01-19  Martin Liska  <mliska@suse.cz>
31383
31384         PR ipa/64664
31385         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
31386         Handle safe potentially removed nodes during filtering.
31387
31388 2015-01-19  Martin Liska  <mliska@suse.cz>
31389
31390         * doc/extend.texi (no_icf): Add new attribute description.
31391         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
31392         where the pass attempts to merge a function with no_icf attribute.
31393
31394 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31395
31396         PR target/64532
31397         * doc/md.texi (ARM Options): Document register constraints.
31398
31399 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31400             Andrew Pinski  <apinski@cavium.com>
31401
31402         PR target/64304
31403         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
31404         (ashl<mode>3): Don't expand if operands[2] is not constant.
31405
31406 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31407
31408         PR target/64448
31409         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
31410         Match xor-and-xor RTL pattern.
31411
31412 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31413
31414         PR rtl-optimization/64081
31415         * loop-iv.c (def_pred_latch_p): New function.
31416         (latch_dominating_def): Allow specific cases with non-single
31417         definitions.
31418         (iv_get_reaching_def): Likewise.
31419         (check_complex_exit_p): New function.
31420         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31421         with exits not executing on any iteration.
31422
31423 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
31424
31425         * common.opt (fgraphite): Fix a typo.
31426
31427 2015-01-19  Felix Yang  <felix.yang@huawei.com>
31428
31429         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
31430         pattern.
31431         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
31432         uminp, smax_nanp, smin_nanp): New builtins.
31433         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
31434         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
31435         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
31436         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
31437         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
31438         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
31439         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
31440         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
31441         vpminnms_f32): Rewrite using builtin functions.
31442
31443 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
31444
31445         PR libgomp/64625
31446         * omp-low.c (offload_symbol_decl): Remove variable.
31447         (get_offload_symbol_decl): Remove function.
31448         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
31449         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
31450         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
31451         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
31452         BUILT_IN_GOACC_UPDATE don't pass it at all.
31453
31454 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31455
31456         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
31457         callers.
31458
31459 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31460
31461         * ipa-chkp.c (chkp_produce_thunks): Add early param
31462         to split thunks production into two passes.  Keep
31463         'always_inline' function bodies after the first pass.
31464         (pass_data_ipa_chkp_early_produce_thunks): New.
31465         (pass_ipa_chkp_early_produce_thunks): New.
31466         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
31467         chkp_produce_thunks signature.
31468         (make_pass_ipa_chkp_early_produce_thunks): New.
31469         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
31470         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
31471         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
31472
31473 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31474
31475         * cgraph.c (cgraph_node::dump): Dump profile flags.
31476
31477 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
31478
31479         PR target/64652
31480         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
31481         reg appear first in the parallel.
31482
31483 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31484
31485         * ipa-reference.c (set_reference_optimization_summary,
31486         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
31487         disabled.
31488         (ignore_module_statics): New static var.
31489         (propagate_bits): If ipa-reference is disabled, do not look into local
31490         properties.
31491         (analyze_function): Disable analysis when ipa_reference is disabled.
31492         (generate_summary): Do not dump when reference is disabled;
31493         collect vars accessed from functions with ipa-reference disabled.
31494         (get_read_write_all_from_node): When ipa-reference is disabled, use the
31495         node flags.
31496         (gate): Enable for LTO.
31497         (ignore_edge_p): New function.
31498         (propagate): Skip functions w/o ipa-reference analysis.
31499         * optc-save-gen.awk: Handle optimize_debug correctly.
31500         * opth-gen.awk: Likewise.
31501         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
31502         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
31503         fira-share-save-slots, fira-share-spill-slots,
31504         fmodulo-sched-allow-regmoves, fpartial-inlining,
31505         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
31506         ftracer, ftree-parallelize-loops, fassociative-math,
31507         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
31508         Optimization
31509         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
31510         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
31511         Optimization.
31512         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
31513         Fix for IPA.
31514
31515 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31516
31517         PR ipa/64378
31518         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
31519         flag correctly.
31520         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
31521
31522 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
31523
31524         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
31525         Remove duplicate option listings.
31526
31527 2015-01-18  Felix Yang  <felix.yang@huawei.com>
31528
31529         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
31530         (autofdo_source_profile::get_callsite_total_count,
31531         function_instance::get_function_instance_by_decl,
31532         string_table::get_index, string_table::get_index_by_decl,
31533         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
31534         Fix comment typos. Reformatting and minor code rearrangement.
31535
31536 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31537
31538         * config/rs6000/rs6000.md (probe_stack): Delete.
31539         (probe_stack_address): New.
31540
31541 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31542
31543         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
31544         to test for 32-bit ABIs, not !TARGET_POWERPC64.
31545
31546 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31547
31548         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
31549         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
31550         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
31551         snafu.
31552         (rs6000_libcall_value): Use the new function.
31553
31554 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
31555
31556         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
31557
31558 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31559
31560         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
31561         implement a more precise life analysis for it during backward scan.
31562
31563 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
31564
31565         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
31566
31567 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
31568
31569         PR rtl-optimization/52773
31570         * calls.c (emit_library_call_value): When pushing arguments use
31571         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
31572         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
31573         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
31574
31575 2015-01-17  Jeff Law  <law@redhat.com>
31576
31577         PR rtl-optimization/32790
31578         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
31579         not ZERO_EXTEND in SET_DESTs.
31580
31581 2015-01-17  Alan Modra  <amodra@gmail.com>
31582
31583         * cprop.c (do_local_cprop): Revert last change.
31584
31585 2015-01-16  DJ Delorie  <dj@redhat.com>
31586             Nick Clifton  <nickc@redhat.com>
31587
31588         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
31589         (addhi3_real): Likewise.  Fix [HL+0] syntax.
31590         (subqi3_real): Likewise.
31591         (subhi3_real): Likewise.
31592         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
31593         (cbranchhi4_real): Likewise.
31594         (cbranchhi4_real_inverted): Likewise.
31595         (cbranchsi4_real_lt): Likewise.
31596         (cbranchsi4_real_ge): Likewise.
31597         (cbranchsi4_real_ge): Likewise.
31598         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
31599         (sub<mode>3_virt): Likewise.
31600         (cbranchqi4_virt): Likewise.
31601         (cbranchhi4_virt): Likewise.
31602         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
31603         always use '[reg+imm]' even when imm is zero.
31604         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
31605         (rl78_general_operand): New.
31606         (rl78_nonimmediate_operand): New.
31607         (rl78_nonfar_operand): Use them.
31608         (rl78_nonfar_nonimm_operand): Likewise.
31609         (rl78_stack_based_mem): Fix.
31610         * config/rl78/constraints.md (Ibqi): New.
31611         (IBqi): New.
31612         (Wsa): New.
31613         (Wsf): New.
31614         (Cs1): Fix.
31615         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
31616         (iorqi3): Likewise.
31617         (xorqi3): Likewise.
31618         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
31619
31620         * config/rl78/constrains (Qs8): New constraint.
31621         * config/rl78/rl78.c (rl78_flags_already_set): New function.
31622         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
31623         * config/rl78/rl78-real.md (update_Z): New attribute.
31624         Update patterns to set it.
31625         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
31626         shorter compare and branch sequence can be used.
31627         (cbranchhi4_real): Likewise.
31628         (cbranchhi4_real_inverted): Likewise.
31629
31630         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
31631         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
31632         address space.
31633         * config/rl78/rl78.c (rl78_get_name_encoding): New.
31634         (rl78_option_override): Allow -mes0 only if C.
31635         (characterize_address): Support subregs of symbol_refs.
31636         (rl78_addr_space_address_mode): Move.  Add __near.
31637         (rl78_far_p): Likewise.
31638         (rl78_addr_space_pointer_mode): Likewise.
31639         (rl78_as_legitimate_address): Likewise.
31640         (rl78_addr_space_subset_p): Likewise.
31641         (rl78_addr_space_convert): Likewise.
31642         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
31643         symbols with -mes0.
31644         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
31645         addressing.
31646         (rl78_alloc_physical_registers_op1): Change logic to prefer
31647         symbol[BC] addressing.
31648         (frodata_section): New.
31649         (rl78_asm_init_sections): Initialize it.
31650         (rl78_select_section): Put __far readonly symbols in .frodata.
31651         (rl78_make_type_far): New.
31652         (rl78_insert_attributes): Force all readonly symbols to be
31653         __far when -mes0.
31654         (rl78_asm_out_integer): New.
31655         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
31656         * config/rl78/rl78.opt (-mes0): New.
31657
31658         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
31659         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
31660         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
31661         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
31662         (rl78_saddr_p): New.
31663         (rl78_output_aligned_common): New.
31664         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
31665         (rl78_handle_saddr_attribute): New.
31666         (rl78_handle_naked_attribute): New.
31667         (rl78_attribute_table): Add saddr.
31668         (rl78_print_operand_1): Don't print '!' on saddr operands.
31669         (rl78_print_operand_1): Strip encodings.
31670         (rl78_sfr_p): New.
31671         (rl78_strip_name_encoding): New.
31672         (rl78_attrlist_to_encoding): New.
31673         (rl78_encode_section_info): New.
31674         (rl78_asm_init_sections): New.
31675         (rl78_select_section): New.
31676         (rl78_output_labelref): New.
31677         (rl78_output_aligned_common): New.
31678         (rl78_asm_out_integer): New.
31679         (rl78_asm_ctor_dtor): New.
31680         (rl78_asm_constructor): New.
31681         (rl78_asm_destructor): New.
31682
31683         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
31684         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
31685         (transcode_memory_rtx): Update.
31686         (rl78_expand_epilogue): Use A_REG instead of 0.
31687
31688 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31689
31690         * config/arm/arm-protos.h (struct tune_params): New field
31691         sched_autopref_queue_depth.
31692         * config/arm/arm.c (sched-int.h): Include header.
31693         (arm_first_cycle_multipass_dfa_lookahead_guard,)
31694         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
31695         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
31696         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
31697         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
31698         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
31699         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
31700         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
31701         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
31702         * config/arm/t-arm (arm.o): Update.
31703         * haifa-sched.c (update_insn_after_change): Update.
31704         (rank_for_schedule): Use auto-prefetcher model, if requested.
31705         (autopref_multipass_init): New static function.
31706         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
31707         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
31708         variable for debug dumps.
31709         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
31710         (autopref_multipass_dfa_lookahead_guard): New global function that
31711         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
31712         (init_h_i_d): Update.
31713         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
31714         * sched-int.h (enum autopref_multipass_data_status): New const enum.
31715         (autopref_multipass_data_): Structure for auto-prefetcher data.
31716         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
31717         (struct _haifa_insn_data:autopref_multipass_data): New field.
31718         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
31719         (autopref_multipass_dfa_lookahead_guard): Declare.
31720
31721 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31722
31723         * rtlanal.c (get_base_term): Handle SCRATCH.
31724
31725 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31726
31727         * config/aarch64/aarch64.c
31728         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
31729         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31730         * config/arm/arm.c
31731         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
31732         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31733
31734 2015-01-17  Alan Modra  <amodra@gmail.com>
31735
31736         * cprop.c (do_local_cprop): Disallow replacement of fixed
31737         hard registers.
31738
31739 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31740
31741         PR target/62066
31742         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
31743         early return 0.
31744
31745 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31746
31747         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
31748         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
31749
31750 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31751
31752         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
31753         * config/arm/thumb1.md: ... Here.
31754
31755 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31756
31757         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
31758         TImode for TARGET_32BIT.
31759
31760 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31761
31762         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
31763         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
31764         as ...
31765         (rs6000_abi_word_mode): New function.
31766
31767 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31768
31769         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
31770         instead of UNITS_PER_WORD to describe the size of stack slots.
31771
31772 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31773
31774         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
31775         as rs6000_promote_function_mode.  Move comment to there.
31776         (rs6000_promote_function_mode): New function.
31777
31778 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31779
31780         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
31781         -mpowerpc64 is active.
31782
31783 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31784
31785         PR middle-end/64353
31786         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
31787         virtuals on start.
31788
31789 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31790
31791         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
31792         introduced in revision 219724.
31793
31794 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31795             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31796
31797         PR target/64263
31798         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
31799         destination is not a GP reg.
31800         (*movdi_aarch64): Likewise.
31801
31802 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
31803
31804         PR target/64623
31805         * config/rs6000/default64.h: Revert ISA change.
31806
31807 2015-01-16  Richard Biener  <rguenther@suse.de>
31808
31809         PR middle-end/64614
31810         * tree-ssa-uninit.c: Include tree-cfg.h.
31811         (MAX_SWITCH_CASES): New define.
31812         (convert_control_dep_chain_into_preds): Handle switch statements.
31813         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
31814         (normalize_one_pred_1): Do not split bit-manipulations.
31815         Record (x & CST).
31816
31817 2015-01-16  Richard Biener  <rguenther@suse.de>
31818
31819         PR tree-optimization/64568
31820         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
31821         complex load rewriting for TARGET_MEM_REFs.
31822
31823 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
31824
31825         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
31826
31827 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
31828
31829         PR target/64149
31830         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
31831         variable.
31832         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
31833         (aarch64_lra_p): Remove.
31834
31835 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31836
31837         PR target/64363
31838         * ipa-chkp.h (chkp_instrumentable_p): New.
31839         * ipa-chkp.c: Include tree-inline.h.
31840         (chkp_instrumentable_p): New.
31841         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
31842         Fix processing of not instrumentable functions.
31843         (chkp_versioning): Use chkp_instrumentable_p. Warn about
31844         not instrumentable functions.
31845         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
31846         chkp_instrumentable_p.
31847         * tree-inline.h (copy_forbidden): New.
31848         * tree-inline.c (copy_forbidden): Not static anymore.
31849
31850 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31851
31852         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
31853         ptr1, ptr2 unused.
31854
31855 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31856
31857         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
31858         type OP_OUT to OP_INOUT.
31859
31860 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31861
31862         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
31863         (high x) y) to y if x and y have the same base.
31864
31865 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31866
31867         * config/arm/cortex-a57.md: New.
31868         * config/aarch64/aarch64.md: Include it.
31869         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
31870         * config/aarch64/aarch64-tune.md: Regenerate.
31871
31872 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
31873
31874         PR target/64015
31875         * ccmp.c (expand_ccmp_next): New function.
31876         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
31877         and compare insn sequence.
31878         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
31879         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
31880         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
31881         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
31882         (*ccmp_ior): Changed to ccmp_ior<mode>.
31883         (cmp<mode>): New pattern.
31884         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
31885         parameters.
31886         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
31887
31888 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
31889
31890         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
31891         _mm256_bsrli_epi128): New.
31892         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
31893
31894 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31895
31896         * expmed.c (store_bit_field_using_insv): Improve warning message.
31897         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
31898
31899 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31900
31901         PR rtl-optimization/64011
31902         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
31903         there is partial overflow.
31904
31905 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31906
31907         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
31908         prototype.
31909         (nds32_expand_epilogue_v3pop): Likewise.
31910         * config/nds32/nds32.md (sibcall): Define this for sibling call
31911         optimization.
31912         (sibcall_register): Likewise.
31913         (sibcall_immediate): Likewise.
31914         (sibcall_value): Likewise.
31915         (sibcall_value_register): Likewise.
31916         (sibcall_value_immediate): Likewise.
31917         (sibcall_epilogue): Likewise.
31918         (epilogue): Pass false to indicate this is not a sibcall epilogue.
31919         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
31920         (nds32_expand_epilogue_v3pop): Likewise.
31921
31922 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31923
31924         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
31925         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
31926         (return_internal): New.
31927         (return): Define this named pattern.
31928         (simple_return): Define this named pattern.
31929         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
31930         pattern instead of unspec_volatile_func_return.
31931         (nds32_expand_epilogue_v3pop): Likewise.
31932         (nds32_can_use_return_insn): New function.
31933
31934 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31935
31936         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
31937         * config/nds32/nds32.md (pop25return): New.
31938         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
31939         pop25return pattern.
31940
31941 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31942
31943         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
31944         -mforbid-fp-as-gp, and -mex9 options.
31945
31946 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31947
31948         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
31949         remove -mgp-direct option.
31950
31951 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31952
31953         * doc/invoke.texi (--param early-inlining-insns): Update default value.
31954         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
31955
31956 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31957
31958         * ipa-inline.c (inline_small_functions): Work around hints
31959         cache issue.
31960
31961 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
31962
31963         PR target/59710
31964         * doc/invoke.texi (Option Summary): Document new Nios II
31965         -mgpopt= syntax.
31966         (Nios II Options): Likewise.
31967         * config/nios2/nios2.opt: Add -mgpopt= option support.
31968         Modify existing -mgpopt and -mno-gpopt options to be aliases.
31969         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
31970         * config/nios2/nios2.c (nios2_option_override): Adjust
31971         -mgpopt defaulting.
31972         (nios2_in_small_data_p): Return true for explicit small data
31973         sections even with -G0.
31974         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
31975         option choices.
31976
31977 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31978
31979         PR ipa/64612
31980         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
31981         of comdat locals.
31982         (inline_call): Fix removal of aliases.
31983
31984 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
31985
31986         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
31987         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
31988         * opts.c (common_handle_option): Add -fsanitize=vptr.
31989         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
31990         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
31991         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
31992         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
31993         (ubsan_expand_vptr_ifn): New prototype.
31994         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
31995         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
31996         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
31997         expand_LOOP_VECTORIZED): Make argument nameless, remove
31998         ATTRIBUTE_UNUSED.
31999         (expand_UBSAN_VPTR): New function.
32000         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
32001         in fn spec.
32002         (UBSAN_VPTR): New internal function.
32003         * sanopt.c (tree_map_traits): Renamed to ...
32004         (sanopt_tree_map_traits): ... this.
32005         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
32006         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
32007         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
32008         (maybe_optimize_ubsan_vptr_ifn): New function.
32009         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
32010         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
32011         -fsanitize=vptr.
32012         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
32013         internal calls like pure functions for aliasing, even when they
32014         have other side-effects that prevent making them ECF_PURE.
32015         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
32016         (ubsan_expand_vptr_ifn): New function.
32017
32018 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
32019
32020         PR rtl-optimization/64110
32021         * stmt.c (parse_output_constraint): Process '^' and '$'.
32022         (parse_input_constraint): Ditto.
32023         * lra-constraints.c (process_alt_operands): Process the new
32024         constraints.
32025         * ira-costs.c (record_reg_classes): Process the new constraint
32026         '^'.
32027         * genoutput.c (indep_constraints): Add '^' and '$'.
32028         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
32029         * doc/md.texi: Add description of the new constraints.
32030
32031 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
32032             Bernd Schmidt  <bernds@codesourcery.com>
32033             Cesar Philippidis  <cesar@codesourcery.com>
32034             James Norris  <jnorris@codesourcery.com>
32035             Tom de Vries  <tom@codesourcery.com>
32036             Ilmir Usmanov  <i.usmanov@samsung.com>
32037             Dmitry Bocharnikov  <dmitry.b@samsung.com>
32038             Evgeny Gavrin  <e.gavrin@samsung.com>
32039             Jakub Jelinek  <jakub@redhat.com>
32040
32041         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
32042         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
32043         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
32044         New function types.
32045         * builtins.c: Include "gomp-constants.h".
32046         (expand_builtin_acc_on_device): New function.
32047         (expand_builtin, is_inexpensive_builtin): Handle
32048         BUILT_IN_ACC_ON_DEVICE.
32049         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
32050         New macros.
32051         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
32052         flag_openmp.
32053         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
32054         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
32055         i386/intelmic-offload.h.
32056         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
32057         to libgomp and its dependencies.
32058         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
32059         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
32060         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
32061         * config/ia64/hpux.h (LIB_SPEC): Likewise.
32062         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
32063         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
32064         * doc/generic.texi: Update for OpenACC changes.
32065         * doc/gimple.texi: Likewise.
32066         * doc/invoke.texi: Likewise.
32067         * doc/sourcebuild.texi: Likewise.
32068         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
32069         GF_OMP_FOR_KIND_OACC_LOOP.
32070         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
32071         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
32072         GF_OMP_TARGET_KIND_OACC_UPDATE,
32073         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
32074         Dump more data.
32075         * gimple.c: Update comments for OpenACC changes.
32076         * gimple.def: Likewise.
32077         * gimple.h: Likewise.
32078         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
32079         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32080         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
32081         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
32082         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
32083         appropriate place.
32084         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
32085         * gimplify.c: Include "gomp-constants.h".
32086         Update comments for OpenACC changes.
32087         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
32088         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
32089         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32090         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
32091         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32092         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32093         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
32094         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32095         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
32096         OMP_CLAUSE_SEQ.
32097         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
32098         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32099         OMP_CLAUSE_SET_MAP_KIND.
32100         (gimplify_oacc_cache): New function.
32101         (gimplify_omp_for): Handle OACC_LOOP.
32102         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
32103         OACC_DATA.
32104         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
32105         OACC_EXIT_DATA, OACC_UPDATE.
32106         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
32107         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
32108         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
32109         (gimplify_body): Consider flag_openacc next to flag_openmp.
32110         * lto-streamer-out.c: Include "gomp-constants.h".
32111         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
32112         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
32113         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
32114         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
32115         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
32116         (BUILT_IN_ACC_ON_DEVICE): New builtins.
32117         * omp-low.c: Include "gomp-constants.h".
32118         Update comments for OpenACC changes.
32119         (struct omp_context): Add reduction_map, gwv_below, gwv_this
32120         members.
32121         (extract_omp_for_data, use_pointer_for_field, install_var_field)
32122         (new_omp_context, delete_omp_context, scan_sharing_clauses)
32123         (create_omp_child_function, scan_omp_for, scan_omp_target)
32124         (check_omp_nesting_restrictions, lower_reduction_clauses)
32125         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
32126         Update for OpenACC changes.
32127         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
32128         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
32129         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
32130         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32131         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
32132         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
32133         OMP_CLAUSE_MAP_*.
32134         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
32135         Handle GF_OMP_FOR_KIND_OACC_LOOP.
32136         (expand_omp_target, lower_omp_target): Handle
32137         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32138         GF_OMP_TARGET_KIND_OACC_UPDATE,
32139         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
32140         GF_OMP_TARGET_KIND_OACC_DATA.
32141         (pass_expand_omp::execute, execute_lower_omp)
32142         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
32143         flag_openmp.
32144         (offload_symbol_decl): New variable.
32145         (oacc_get_reduction_array_id, oacc_max_threads)
32146         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
32147         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
32148         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
32149         (oacc_gimple_assign, oacc_initialize_reduction_data)
32150         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
32151         functions.
32152         (is_targetreg_ctx): Remove function.
32153         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
32154         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
32155         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32156         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
32157         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
32158         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
32159         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
32160         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
32161         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
32162         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
32163         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
32164         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
32165         * tree-core.h: Update comments for OpenACC changes.
32166         (enum omp_clause_map_kind): Remove.
32167         (struct tree_omp_clause): Change type of map_kind member from enum
32168         omp_clause_map_kind to unsigned char.
32169         * tree-inline.c: Update comments for OpenACC changes.
32170         * tree-nested.c: Likewise.  Include "gomp-constants.h".
32171         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
32172         (convert_tramp_reference_stmt, convert_gimple_call): Update for
32173         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32174         OMP_CLAUSE_SET_MAP_KIND.
32175         * tree-pretty-print.c: Include "gomp-constants.h".
32176         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
32177         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
32178         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
32179         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
32180         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32181         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
32182         instead of OMP_CLAUSE_MAP_*.
32183         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
32184         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
32185         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32186         * tree-streamer-in.c: Include "gomp-constants.h".
32187         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
32188         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
32189         * tree-streamer-out.c: Include "gomp-constants.h".
32190         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
32191         OMP_CLAUSE_MAP_*.
32192         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
32193         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
32194         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
32195         * tree.c (omp_clause_num_ops): Update accordingly.
32196         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
32197         Likewise.
32198         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
32199         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
32200         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
32201         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
32202         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
32203         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
32204         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
32205         (OMP_CLAUSE_SET_MAP_KIND): New macro.
32206         * varpool.c (varpool_node::get_create): Consider flag_openacc next
32207         to flag_openmp.
32208         * config/i386/intelmic-offload.h: New file.
32209         * config/nvptx/offload.h: Likewise.
32210
32211 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32212
32213         * explow.h: Remove duplicate contents.
32214         * dojump.h: Likewise.
32215
32216 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
32217
32218         * arm.c (arm_xgene_tune): Add default initializer for instruction
32219         fusion.
32220
32221 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32222
32223         PR ipa/64068
32224         PR ipa/64559
32225         * ipa.c (symbol_table::remove_unreachable_nodes):
32226         Do not put abstract origins into boundary.
32227
32228 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
32229
32230         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
32231         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
32232
32233 2015-01-15  Steve Ellcey  <sellcey@mips.com>
32234
32235         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
32236         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
32237         builtins.def, and chkp-builtins.def.
32238
32239 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
32240
32241         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
32242         ISA 2.7 (POWER8).
32243
32244 2015-01-15  Richard Biener  <rguenther@suse.de>
32245
32246         PR tree-optimization/61743
32247         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
32248         information on PHIs for some simple cases.
32249
32250 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32251
32252         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
32253         Include xgene1.md.
32254         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
32255         * config/arm/arm-cores.def (xgene1): New entry.
32256         * config/arm/arm-tables.opt: Regenerate.
32257         * config/arm/arm-tune.md: Regenerate.
32258         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
32259
32260 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32261
32262         * tree-if-conv.c: Include hash-map.h.
32263         (aggressive_if_conv): New variable.
32264         (fold_build_cond_expr): Add simplification of non-zero condition.
32265         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
32266         destination block is not always executed.
32267         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
32268         than two predecessors if AGGRESSIVE_IF_CONV is true.
32269         (if_convertible_stmt_p): Fix commentary.
32270         (all_preds_critical_p): New function.
32271         (has_pred_critical_p): New function.
32272         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
32273         BB can have more than two predecessors and all incoming edges can be
32274         critical.
32275         (predicate_bbs): Skip predication for loop exit block, use build2_loc
32276         to compute predicate for true edge.
32277         (find_phi_replacement_condition): Delete this function.
32278         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
32279         Allow interchange PHI arguments if EXTENDED is false.
32280         Change check that block containing reduction statement candidate
32281         is predecessor of phi-block since phi may have more than two arguments.
32282         (phi_args_hash_traits): New helper structure.
32283         (struct phi_args_hash_traits): New type.
32284         (phi_args_hash_traits::hash): New function.
32285         (phi_args_hash_traits::equal_keys): New function.
32286         (gen_phi_arg_condition): New function.
32287         (predicate_scalar_phi): Add handling of phi nodes with more than two
32288         arguments, delete COND and TRUE_BB arguments, insert body of
32289         find_phi_replacement_condition to predicate ordinary phi nodes.
32290         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
32291         delete call of find_phi_replacement_condition and invoke
32292         predicate_scalar_phi with two arguments.
32293         (insert_gimplified_predicates): Add assert that non-predicated block
32294         don't have statements to insert.
32295         (ifcvt_split_critical_edges): New function.
32296         (ifcvt_split_def_stmt): Likewise.
32297         (ifcvt_walk_pattern_tree): Likewise.
32298         (stmt_is_root_of_bool_pattern): Likewise.
32299         (ifcvt_repair_bool_pattern): Likewise.
32300         (ifcvt_local_dce): Likewise.
32301         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
32302         is copy of inner or outer loop force_vectorize field, invoke
32303         ifcvt_split_critical_edges, ifcvt_local_dce and
32304         ifcvt_repair_bool_pattern for aggressive if-conversion.
32305
32306 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
32307
32308         * config/aarch64/aarch64.md: Include xgene1.md.
32309         * config/aarch64/xgene1.md: New file.
32310
32311 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32312
32313         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
32314         xgene1 (APM XGene-1) core definition.
32315         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
32316         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
32317         * doc/invoke.texi: Document -mcpu=xgene1.
32318
32319 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32320
32321         * dojump.h: New header file.
32322         * explow.h: Likewise.
32323         * expr.h: Remove includes.
32324         Move expmed.c prototypes to expmed.h.
32325         Move dojump.c prototypes to dojump.h.
32326         Move alias.c prototypes to alias.h.
32327         Move explow.c prototypes to explow.h.
32328         Move calls.c prototypes to calls.h.
32329         Move emit-rtl.c prototypes to emit-rtl.h.
32330         Move varasm.c prototypes to varasm.h.
32331         Move stmt.c prototypes to stmt.h.
32332         (saved_pending_stack_adjust): Move to dojump.h.
32333         (adjust_address): Move to explow.h.
32334         (adjust_address_nv): Move to emit-rtl.h.
32335         (adjust_bitfield_address): Likewise.
32336         (adjust_bitfield_address_size): Likewise.
32337         (adjust_bitfield_address_nv): Likewise.
32338         (adjust_automodify_address_nv): Likewise.
32339         * explow.c (expr_size): Move to expr.c.
32340         (int_expr_size): Likewise.
32341         (tree_expr_size): Likewise.
32342         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32343         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32344         * genemit.c (main): Generate includes statistics.h, real.h,
32345         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
32346         stmt.h.
32347         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
32348         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
32349         explow.h, emit-rtl.h, stmt.h.
32350         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
32351         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
32352         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
32353         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
32354         emit-rtl.h, varasm.h, stmt.h.
32355         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
32356         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
32357         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
32358         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
32359         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
32360         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
32361         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
32362         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
32363         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
32364         tm.h tree.h varasm.h vec.h wide-int.h.
32365         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32366         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32367         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
32368         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
32369         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
32370         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
32371         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
32372         * loop-iv.c: Likewise.
32373         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
32374         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
32375         statistics.h stmt.h tree.h varasm.h wide-int.h.
32376         * lra-constraints.c: Likewise.
32377         * lra-eliminations.c: Likewise.
32378         * lra-lives.c: Likewise.
32379         * lra-remat.c: Likewise.
32380         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32381         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
32382         statistics.h stmt.h tree.h varasm.h wide-int.h.
32383         * hw-doloop.c: Likewise.
32384         * ira-color.c: Likewise.
32385         * ira-emit.c: Likewise.
32386         * loop-doloop.c: Likewise.
32387         * loop-invariant.c: Likewise.
32388         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32389         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
32390         statistics.h stmt.h tree.h varasm.h wide-int.h.
32391         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
32392         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
32393         statistics.h stmt.h tree.h varasm.h wide-int.h.
32394         * combine-stack-adj.c: Likewise.
32395         * cse.c: Likewise.
32396         * ddg.c: Likewise.
32397         * ifcvt.c: Likewise.
32398         * ira-costs.c: Likewise.
32399         * jump.c: Likewise.
32400         * lra-coalesce.c: Likewise.
32401         * lra-spills.c: Likewise.
32402         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32403         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
32404         stmt.h varasm.h wide-int.h.
32405         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32406         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32407         varasm.h.
32408         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
32409         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
32410         statistics.h stmt.h varasm.h wide-int.h.
32411         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
32412         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
32413         varasm.h wide-int.h.
32414         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
32415         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32416         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
32417         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
32418         statistics.h stmt.h.
32419         * config/tilepro/tilepro.c: Likewise.
32420         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
32421         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
32422         * config/pdp11/pdp11.c: Likewise.
32423         * config/xtensa/xtensa.c: Likewise.
32424         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
32425         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32426         varasm.h.
32427         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32428         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32429         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
32430         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32431         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32432         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
32433         * rtl-chkp.c: Likewise.
32434         * tree-chkp-opt.c: Likewise.
32435         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
32436         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32437         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
32438         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32439         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32440         statistics.h stmt.h.
32441         * tree-vect-data-refs.c: Likewise.
32442         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
32443         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32444         rtl.h statistics.h stmt.h varasm.h.
32445         * internal-fn.c: Likewise.
32446         * ipa-icf-gimple.c: Likewise.
32447         * lto-section-out.c: Likewise.
32448         * tree-data-ref.c: Likewise.
32449         * tree-nested.c: Likewise.
32450         * tree-outof-ssa.c: Likewise.
32451         * tree-predcom.c: Likewise.
32452         * tree-pretty-print.c: Likewise.
32453         * tree-scalar-evolution.c: Likewise.
32454         * tree-ssa-strlen.c: Likewise.
32455         * tree-vect-loop.c: Likewise.
32456         * tree-vect-patterns.c: Likewise.
32457         * tree-vect-slp.c: Likewise.
32458         * tree-vect-stmts.c: Likewise.
32459         * tsan.c: Likewise.
32460         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32461         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
32462         stmt.h.
32463         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
32464         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32465         statistics.h stmt.h varasm.h.
32466         * loop-unroll.c: Likewise.
32467         * ubsan.c: Likewise.
32468         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
32469         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
32470         stmt.h varasm.h.
32471         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32472         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
32473         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
32474         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32475         statistics.h stmt.h.
32476         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
32477         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32478         statistics.h stmt.h varasm.h.
32479         * gimple-match-head.c: Likewise.
32480         * lto-cgraph.c: Likewise.
32481         * lto-section-in.c: Likewise.
32482         * lto-streamer-in.c: Likewise.
32483         * lto-streamer-out.c: Likewise.
32484         * tree-affine.c: Likewise.
32485         * tree-cfg.c: Likewise.
32486         * tree-cfgcleanup.c: Likewise.
32487         * tree-if-conv.c: Likewise.
32488         * tree-into-ssa.c: Likewise.
32489         * tree-ssa-alias.c: Likewise.
32490         * tree-ssa-copyrename.c: Likewise.
32491         * tree-ssa-dse.c: Likewise.
32492         * tree-ssa-forwprop.c: Likewise.
32493         * tree-ssa-live.c: Likewise.
32494         * tree-ssa-math-opts.c: Likewise.
32495         * tree-ssa-pre.c: Likewise.
32496         * tree-ssa-sccvn.c: Likewise.
32497         * tree-tailcall.c: Likewise.
32498         * tree-vect-generic.c: Likewise.
32499         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32500         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
32501         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32502         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
32503         * varasm.c: Likewise.
32504         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32505         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
32506         varasm.h.
32507         * init-regs.c: Likewise.
32508         * ira.c: Likewise.
32509         * omp-low.c: Likewise.
32510         * stack-ptr-mod.c: Likewise.
32511         * tree-ssa-reassoc.c: Likewise.
32512         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32513         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
32514         varasm.h.
32515         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32516         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
32517         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32518         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
32519         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32520         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
32521         * tree-ssa-phiopt.c: Likewise.
32522         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32523         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32524         * config/fr30/fr30.c: Likewise.
32525         * config/frv/frv.c: Likewise.
32526         * expr.c: Likewise.
32527         * final.c: Likewise.
32528         * optabs.c: Likewise.
32529         * passes.c: Likewise.
32530         * simplify-rtx.c: Likewise.
32531         * stmt.c: Likewise.
32532         * toplev.c: Likewise.
32533         * var-tracking.c: Likewise.
32534         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32535         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32536         * lower-subreg.c: Likewise.
32537         * postreload-gcse.c: Likewise.
32538         * ree.c: Likewise.
32539         * reginfo.c: Likewise.
32540         * store-motion.c: Likewise.
32541         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32542         fixed-value.h hashtab.h real.h stmt.h varasm.h.
32543         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32544         fixed-value.h hashtab.h statistics.h stmt.h.
32545         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32546         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32547         * except.c: Likewise.
32548         * explow.c: Likewise.
32549         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32550         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
32551         varasm.h.
32552         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32553         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
32554         * tree-ssa-structalias.c: Likewise.
32555         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32556         fixed-value.h insn-config.h real.h statistics.h.
32557         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32558         fixed-value.h insn-config.h real.h statistics.h stmt.h.
32559         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32560         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32561         * cfgbuild.c: Likewise.
32562         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32563         fixed-value.h real.h rtl.h statistics.h stmt.h.
32564         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32565         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32566         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32567         fixed-value.h real.h statistics.h stmt.h.
32568         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32569         fixed-value.h real.h statistics.h stmt.h varasm.h.
32570         * cprop.c: Likewise.
32571         * modulo-sched.c: Likewise.
32572         * postreload.c: Likewise.
32573         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32574         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
32575         statistics.h stmt.h varasm.h.
32576         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
32577         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32578         rtl.h statistics.h stmt.h varasm.h.
32579         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
32580         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
32581         varasm.h.
32582         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32583         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
32584         varasm.h.
32585         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
32586         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
32587         varasm.h.
32588         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
32589         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32590         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32591         function.h real.h statistics.h stmt.h varasm.h.
32592         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32593         insn-config.h real.h statistics.h stmt.h.
32594         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32595         statistics.h stmt.h.
32596         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
32597         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
32598         statistics.h stmt.h varasm.h.
32599         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
32600         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
32601         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32602         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
32603         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
32604         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32605         statistics.h stmt.h varasm.h.
32606         * ipa-polymorphic-call.c: Likewise.
32607         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
32608         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32609         statistics.h stmt.h.
32610         * config/c6x/c6x.c: Likewise.
32611         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
32612         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32613         statistics.h stmt.h varasm.h.
32614         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
32615         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
32616         stmt.h varasm.h.
32617         * ipa-split.c: Likewise.
32618         * tree-eh.c: Likewise.
32619         * tree-ssa-dce.c: Likewise.
32620         * tree-ssa-loop-niter.c: Likewise.
32621         * tree-vrp.c: Likewise.
32622         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
32623         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
32624         stmt.h.
32625         * config/nds32/nds32-fp-as-gp.c: Likewise.
32626         * config/nds32/nds32-intrinsic.c: Likewise.
32627         * config/nds32/nds32-isr.c: Likewise.
32628         * config/nds32/nds32-md-auxiliary.c: Likewise.
32629         * config/nds32/nds32-memory-manipulation.c: Likewise.
32630         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
32631         * config/nds32/nds32-predicates.c: Likewise.
32632         * config/nds32/nds32.c: Likewise.
32633         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
32634         fixed-value.h hashtab.h real.h statistics.h.
32635         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
32636         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32637         * config/arm/arm.c: Likewise.
32638         * config/avr/avr.c: Likewise.
32639         * config/bfin/bfin.c: Likewise.
32640         * config/h8300/h8300.c: Likewise.
32641         * config/i386/i386.c: Likewise.
32642         * config/ia64/ia64.c: Likewise.
32643         * config/iq2000/iq2000.c: Likewise.
32644         * config/m32c/m32c.c: Likewise.
32645         * config/m32r/m32r.c: Likewise.
32646         * config/m68k/m68k.c: Likewise.
32647         * config/mcore/mcore.c: Likewise.
32648         * config/mep/mep.c: Likewise.
32649         * config/mips/mips.c: Likewise.
32650         * config/mn10300/mn10300.c: Likewise.
32651         * config/moxie/moxie.c: Likewise.
32652         * config/pa/pa.c: Likewise.
32653         * config/rl78/rl78.c: Likewise.
32654         * config/rx/rx.c: Likewise.
32655         * config/s390/s390.c: Likewise.
32656         * config/sh/sh.c: Likewise.
32657         * config/sparc/sparc.c: Likewise.
32658         * config/spu/spu.c: Likewise.
32659         * config/stormy16/stormy16.c: Likewise.
32660         * config/v850/v850.c: Likewise.
32661         * config/vax/vax.c: Likewise.
32662         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
32663         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32664         * config/msp430/msp430.c: Likewise.
32665         * predict.c: Likewise.
32666         * value-prof.c: Likewise.
32667         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
32668         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
32669         * config/microblaze/microblaze.c: Likewise.
32670         * config/nios2/nios2.c: Likewise.
32671         * config/rs6000/rs6000.c: Likewise.
32672         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32673         insn-config.h real.h rtl.h statistics.h stmt.h.
32674         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32675         insn-config.h real.h statistics.h stmt.h.
32676         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
32677         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32678         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
32679         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32680         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
32681         fixed-value.h real.h statistics.h stmt.h.
32682         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
32683         fixed-value.h statistics.h stmt.h.
32684         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
32685         stmt.h.
32686
32687 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32688
32689         * gengtype.c (create_user_defined_type): Workaround
32690         -Wmaybe-uninitialized false positives.
32691         * cse.c (fold_rtx): Likewise.
32692         * loop-invariant.c (gain_for_invariant): Likewise.
32693
32694 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32695
32696         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
32697         set the memory attributes in all cases but clear MEM_EXPR if need be.
32698
32699 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32700
32701         PR tree-optimization/64434
32702         * cfgexpand.c (reorder_operands): New function.
32703         (expand_gimple_basic_block): Insert call of reorder_operands if
32704         optimized is true.
32705
32706 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
32707
32708         * config/mips/micromips.md (*swp): Remove explicit parallel.
32709         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
32710         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
32711         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
32712         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
32713         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
32714         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
32715         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
32716         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
32717         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
32718         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
32719         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
32720         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
32721         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
32722         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
32723         (mips_wrdsp): Likewise.
32724         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
32725         parallel.
32726         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
32727         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
32728         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
32729         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
32730         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
32731         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
32732         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
32733         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
32734         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
32735
32736 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32737
32738         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
32739         (mips_print_operand): Support 'y' to print exact log2 in decimal
32740         of a const_int.
32741         * config/mips/mips.h (ISA_HAS_LSA): New define.
32742         (ISA_HAS_DLSA): Likewise.
32743         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
32744         * config/mips/predicates.md (const_immlsa_operand): New predicate.
32745
32746 2015-01-15  Martin Liska  <mliska@suse.cz>
32747
32748         PR target/64377
32749         * optc-save-gen.awk: Add support for array types.
32750
32751 2015-01-15  Richard Biener  <rguenther@suse.de>
32752
32753         PR middle-end/64365
32754         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
32755         for MEM_REF access functions with the same base can never partially
32756         overlap.
32757
32758 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
32759
32760         * common.opt: New option -fstack-protector-explicit.
32761         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
32762         (stack_protect_decl_phase): Handle stack_protect attribute for
32763         explicit stack protection requests.
32764         (expand_used_vars): Similarly.
32765         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
32766         * doc/extend.texi: Add documentation for "stack_protect" attribute.
32767         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
32768
32769 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
32770
32771         PR target/53988
32772         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
32773         reg-reg copies.
32774         (sh_extending_set_of_reg): New struct.
32775         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
32776         sh_remove_reg_dead_or_unused_notes): New Declarations.
32777         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
32778         sh_find_extending_set_of_reg, sh_split_tst_subregs,
32779         sh_extending_set_of_reg::use_as_extended_reg): New functions.
32780         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
32781         convert to insn_and_split and use new function sh_split_tst_subregs.
32782
32783 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
32784
32785         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
32786         option.
32787         (Optimization Options): Move -fuse-ld documentation to...
32788         (Link Options): ...here.
32789
32790 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32791
32792         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
32793         offsets.
32794         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
32795         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
32796         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
32797         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
32798         instead of ZR for the memory operand of LL/SC.
32799         (compare_and_swap_12, sync_add<mode>): Likewise.
32800         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
32801         (sync_new_<optab>_12, sync_nand_12): Likewise.
32802         (sync_old_nand_12, sync_new_nand_12): Likewise.
32803         (sync_sub<mode>, sync_old_add<mode>): Likewise.
32804         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
32805         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
32806         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
32807         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
32808         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
32809         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
32810         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
32811         * doc/md.texi (ZC): Update description.
32812
32813 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32814
32815         * builtins.c (expand_builtin_atomic_exchange): Remove error when
32816         memory model is CONSUME.
32817         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
32818         expand_builtin_atomic_store): Change invalid memory model errors to
32819         warnings.
32820         (expand_builtin_atomic_clear): Change invalid model errors to warnings
32821         and issue warning for CONSUME.
32822
32823 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
32824
32825         * lto-cgraph: Update function comments for
32826         lto_symtab_encoder_encode_*.
32827
32828 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32829
32830         * Makefile.in (site.exp): Do not set ENABLE_LTO.
32831
32832 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32833
32834         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
32835         * lto-cgraph.c (select_what_to_stream): Remove argument, use
32836         lto_stream_offload_p instead.
32837         * lto-streamer.h (select_what_to_stream): Remove argument.
32838         * passes.c (ipa_write_summaries): Likewise.
32839         * tree-pass.h (ipa_write_summaries): Likewise.
32840
32841 2015-01-14  Richard Biener  <rguenther@suse.de>
32842
32843         PR tree-optimization/59354
32844         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
32845         groups larger than the slp group size as having gaps.
32846
32847 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32848
32849         PR middle-end/59448
32850         * builtins.c (get_memmodel): Promote consume to acquire always.
32851
32852 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32853
32854         PR target/64386
32855         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
32856         V32HImode.
32857
32858 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32859
32860         PR target/64393
32861         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
32862         Enable AVX512BW.
32863         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
32864         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
32865         AVX512VBMI, as it implies AVX512BW.
32866
32867 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32868
32869         PR target/64387
32870         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
32871         (vec_unpacks_hi_v16sf): Ditto.
32872
32873 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32874
32875         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
32876         is not available.
32877
32878 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32879
32880         * doc/invoke.texi (mapcs): Mention deprecation.
32881         (mapcs-frame): Likewise.
32882
32883 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32884
32885         PR target/64453
32886         * config/arm/arm.c (callee_saved_reg_p): Define.
32887         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
32888         register is callee saved instead of !call_used_regs[reg].
32889         (thumb1_compute_save_reg_mask): Likewise.
32890
32891 2015-01-14  Hale Wang  <hale.wang@arm.com>
32892
32893         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
32894         Cortex-M7.
32895
32896 2015-01-14  Richard Biener  <rguenther@suse.de>
32897
32898         PR lto/64415
32899         * tree-inline.c (insert_debug_decl_map): Check destination
32900         function MAY_HAVE_DEBUG_STMTS.
32901         (insert_init_debug_bind): Likewise.
32902         (insert_init_stmt): Remove redundant check.
32903         (remap_gimple_stmt): Drop debug stmts if the destination
32904         function has var-tracking assignments disabled.
32905
32906 2015-01-14  Martin Liska  <mliska@suse.cz>
32907
32908         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
32909         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
32910
32911 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32912
32913         PR target/64460
32914         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
32915         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
32916
32917 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32918
32919         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
32920         level from an ARCH; do not inject the default.
32921         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
32922         MIPS_ISA_LEVEL_SPEC.
32923         (MIPS_ISA_NAN2008_SPEC): Update comment.
32924         (BASE_DRIVER_SELF_SPECS): Likewise.
32925         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
32926         MIPS_DEFAULT_ISA_LEVEL_SPEC.
32927         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
32928         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
32929         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
32930
32931 2015-01-14  Richard Biener  <rguenther@suse.de>
32932
32933         PR tree-optimization/64493
32934         PR tree-optimization/64495
32935         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
32936         assign the proper vectorized PHI to the inner loop exit PHIs.
32937
32938 2015-01-14  Joey Ye  <joey.ye@arm.com>
32939
32940         * config/arm/arm.c (arm_compute_save_reg_mask):
32941         Do not save lr in case of tail call.
32942         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
32943
32944 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
32945
32946         * tree-vrp.c (check_array_ref): Emit more warnings
32947         for warn_array_bounds >= 2.
32948         * common.opt: New option -Warray-bounds=.
32949         * doc/invoke.texi: Document -Warray-bounds=.
32950
32951 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32952
32953         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
32954         (mforbid-fp-as-gp): Remove.
32955         (mex9): Remove.
32956         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
32957         (nds32_symbol_load_store_p): Remove.
32958         (nds32_fp_as_gp_check_available): Clean up implementation.
32959         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
32960         cases.
32961         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
32962         fp-as-gp and ex9 cases.
32963
32964 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32965
32966         * tree-profile.c (init_ic_make_global_vars): Drop workaround
32967         for bintuils bug 14342.
32968         (init_ic_make_global_vars): Likewise.
32969         (gimple_init_edge_profiler): Likewise.
32970         (gimple_gen_ic_func_profiler): Likewise.
32971
32972 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
32973
32974         * ipa-inline.c (inline_small_functions): Swap the operands in
32975         enum.
32976
32977 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32978
32979         PR ipa/64481
32980         * ipa-inline-analysis.c (node_growth_cache): Remove.
32981         (initialize_growth_caches): Do not initialize it.
32982         (free_growth_caches): Do not free it.
32983         (do_estimate_growth): Rename to ...
32984         (estimate_growth): ... this one; drop growth cache code.
32985         (growth_likely_positive): Always go the heuristics way.
32986         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
32987         (reset_edge_caches): Do not reset node growth.
32988         (heap_edge_removal_hook): Do not maintain cache.
32989         (inline_small_functions): Likewise; strenghten sanity check.
32990         (ipa_inline): Do not maintain caches.
32991         * ipa-inline.h (node_growth_cache): Remove.
32992         (do_estimate_growth): Remove to ...
32993         (estimate_growth): this one; remove inline version.
32994         (reset_node_growth_cache): Remove.
32995
32996 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32997
32998         PR ipa/64565
32999         * ipa-inline.c (inline_small_functions): Update callee keys after
33000         resolving speculation
33001         (inline_small_functions): Always check monotonicity of the queue.
33002
33003 2015-01-13  Marek Polacek  <polacek@redhat.com>
33004
33005         PR middle-end/64391
33006         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
33007
33008 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
33009
33010         PR rtl-optimization/64286
33011         * ree.c (combine_reaching_defs): Move part of comment earlier,
33012         remove !SCALAR_INT_MODE_P check.
33013         (add_removable_extension): Don't add vector mode
33014         extensions if all uses of the source register aren't the same
33015         vector extensions.
33016
33017 2015-01-13  Renlin Li  <renlin.li@arm.com>
33018
33019         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
33020         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
33021
33022 2015-01-13  Martin Liska  <mliska@suse.cz>
33023
33024         * ipa-icf.c (sem_function::equals_private): Call new functions
33025         cl_target_option_print_diff and cl_optimization_print_diff.
33026         * optc-save-gen.awk (cl_target_option_print_diff): New function.
33027         (cl_optimization_print_diff): Likewise.
33028         * opth-gen.awk: Likewise.
33029
33030 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
33031
33032         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
33033         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
33034         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
33035         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
33036         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
33037         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
33038
33039 2015-01-13  Andrew Pinski  <apinski@cavium.com>
33040
33041         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
33042         instead of src mode.
33043
33044 2015-01-13  Richard Biener  <rguenther@suse.de>
33045
33046         PR lto/64373
33047         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
33048         DECL_CONTEXT.
33049
33050 2015-01-13  Andrew Pinski  <apinski@cavium.com>
33051
33052         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
33053         volatile mems.
33054         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
33055
33056 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
33057
33058         PR middle-end/63974
33059         * cfgexpand.c (expand_computed_goto): Don't call
33060         convert_memory_address here.
33061
33062 2015-01-13  Richard Biener  <rguenther@suse.de>
33063
33064         PR tree-optimization/64406
33065         * tree-loop-distibution.c (pass_loop_distribution::execute):
33066         Reset the SCEV hashtable if we distributed anything.
33067
33068 2015-01-13  Richard Biener  <rguenther@suse.de>
33069
33070         PR tree-optimization/64404
33071         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
33072         SLP types for CSEd loads.
33073
33074 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33075
33076         PR tree-optimization/64436
33077         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
33078         merge of two symbolic numbers for a bitwise OR to ...
33079         (perform_symbolic_merge): This. Also fix computation of the range and
33080         end of the symbolic number corresponding to the result of a bitwise OR.
33081
33082 2015-01-13  Richard Biener  <rguenther@suse.de>
33083
33084         PR tree-optimization/64568
33085         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
33086         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
33087
33088 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33089
33090         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
33091         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
33092
33093 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33094
33095         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
33096         target-specific symbol_ref flag.
33097         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
33098         resides in rodata section.
33099         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
33100         (nds32_encode_section_info): New function.
33101
33102 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33103
33104         * config/nds32/nds32.md (call): Use pseudo instruction bal which
33105         clobbers TA_REGNUM if large code model is specified.
33106         (call_register): Likewise.
33107         (call_immediate): Likewise.
33108         (call_value): Likewise.
33109         (call_value_register): Likewise.
33110         (call_value_immediate): Likewise.
33111
33112 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33113
33114         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
33115         (TARGET_CMODEL_MEDIUM): New macro.
33116         (TARGET_CMODEL_LARGE): New macro.
33117         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
33118         code model setting in assembly code.
33119
33120 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33121
33122         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
33123         Remove MASK_GP_DIRECT flag.
33124         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
33125         one of the multilib default options.
33126         * config/nds32/nds32.opt (mgp-direct): Remove.
33127         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
33128         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
33129
33130 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33131
33132         * config/nds32/nds32.opt (mcmodel): Add new option.
33133         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
33134         to describe code model.
33135
33136 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
33137
33138         PR target/64479
33139         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
33140
33141 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
33142
33143         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
33144         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33145         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
33146         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
33147         __builtin_sh_set_fpscr.
33148
33149 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33150
33151         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
33152         after a funtion name just to indicate it is a function.
33153         ([-fsanitize-undefined-trap-on-error]): Likewise.
33154         ([-fdbg-cnt=]): Likewise.
33155         ([-mmemcpy]): Likewise.
33156         ([-mflush-func]): Likewise.
33157         ([-msynci]): Likewise.
33158
33159 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33160
33161         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
33162         example.
33163
33164 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
33165
33166         PR tree-optimization/64563
33167         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
33168         instead of != VR_VARYING.
33169
33170         PR target/64513
33171         * config/i386/i386.c (ix86_expand_prologue): Add
33172         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
33173
33174         PR tree-optimization/64454
33175         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
33176         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
33177         for signed or [0, op1 - 1] for unsigned modulo.
33178         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
33179         even if op1 does not satisfy integer_pow2p.
33180
33181         PR other/64370
33182         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
33183
33184 2015-01-12  Jeff Law  <law@redhat.com>
33185
33186         PR target/64461
33187         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
33188         (trunchiqi2, truncsihi2): Similarly.
33189
33190         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
33191         rather than calling F.
33192
33193 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33194
33195         * tsan.c (instrument_expr): Use force_gimple_operand.
33196         Use may_be_nonaddressable_p instead of is_gimple_addressable.
33197
33198 2015-01-12  Richard Biener  <rguenther@suse.de>
33199
33200         PR tree-optimization/64530
33201         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
33202         back dr1.
33203
33204 2015-01-12  Richard Biener  <rguenther@suse.de>
33205
33206         PR middle-end/64357
33207         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
33208         latches properly.
33209
33210 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33211
33212         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
33213         Cortex-A17 tuning parameters.
33214         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
33215
33216 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33217
33218         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
33219         * config/arm/arm.c (arm_macro_fusion_p): New function.
33220         (arm_macro_fusion_pair_p): Likewise.
33221         (TARGET_SCHED_MACRO_FUSION_P): Define.
33222         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
33223         (ARM_FUSE_NOTHING): Likewise.
33224         (ARM_FUSE_MOVW_MOVT): Likewise.
33225         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
33226         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
33227         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
33228         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
33229         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
33230         arm_cortex_a5_tune): Specify fuseable_ops value.
33231
33232 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
33233
33234         PR bootstrap/64561
33235         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
33236         test for PIE with copy reloc.
33237         * configure: Regenerated.
33238
33239 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33240
33241         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
33242         in gen_rtx_REG.
33243         (arm_tls_descseq_addr): Likewise.
33244         (arm_gen_movmemqi): Likewise.
33245         (arm_expand_epilogue_apcs_frame): Likewise.
33246         (arm_expand_epilogue): Likewise.
33247         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
33248         in gen_rtx_REG.
33249
33250 2015-01-12  Martin Liska  <mliska@suse.cz>
33251
33252         PR ipa/64550
33253         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
33254         volatility for correct operands.
33255
33256 2015-01-12  Martin Liska  <mliska@suse.cz>
33257
33258         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
33259         indication that a function is not leaf.
33260         (sem_function::compare_polymorphic_p): Likewise.
33261
33262 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33263
33264         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
33265         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
33266         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
33267         fold-const.h, tree-check.h.
33268
33269 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33270
33271         PR ipa/63967
33272         PR ipa/64425
33273         * ipa-inline.c (compute_uninlined_call_time,
33274         compute_inlined_call_time): Use counts for extra precision when
33275         needed possible.
33276         (big_speedup_p): Fix formating.
33277         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
33278         (relative_time_benefit): Remove.
33279         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
33280         merge guessed and read profile paths.
33281         (inline_small_functions): Count only !optimize_size functions into
33282         initial size; be more lax about sanity check when profile is used;
33283         be sure to update inlined function profile when profile is read.
33284
33285 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33286
33287         PR ipa/63470
33288         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
33289         cost when edge becomes direct.
33290         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
33291         is resolved or when introducing new speculation.
33292
33293 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
33294
33295         PR ipa/64551
33296         PR ipa/64552
33297         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
33298         '||' to fix typo issue.
33299
33300         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
33301         accept and return NULL.
33302
33303 2015-01-12  Martin Liska  <mliska@suse.cz>
33304
33305         * cgraph.c (cgraph_edge::remove_callee): Move function to header
33306         file for being inlined.
33307         (cgraph_set_edge_callee): Delete.
33308         (cgraph_edge::redirect_callee): Move function to header file
33309         for being inlined.
33310         (cgraph_edge::make_direct): Use new function.
33311         (cgraph_edge::dump_edge_flags): New function created from
33312         static dump_edge_flags function.
33313         (cgraph_node::dump): Use new function.
33314         (cgraph_edge::verify_count_and_frequency): New function created
33315         from verify_edge_count_and_frequency.
33316         (cgraph_edge::verify_corresponds_to_fndecl): New function created
33317         from verify_edge_corresponds_to_fndecl.
33318         (verify_edge_corresponds_to_fndecl): Delete.
33319         (cgraph_node::verify_node): Use new function.
33320         * cgraph.h (cgraph_edge::set_callee): New function.
33321         (cgraph_edge::dump_edge_flags): Likewise.
33322         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
33323
33324 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
33325
33326         * ipa-utils.c (estimate_function_body_sizes): Do not
33327         free node params when called late with early=true.
33328
33329 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
33330
33331         * doc/md.texi (Instruction Patterns): Rewrite text for
33332         clarity.
33333         (Example): Likewise.
33334
33335 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
33336
33337         * doc/invoke.texi (Option Summary): Break long lines.
33338         [(-fdiagnostics-color)]: Put long literal in @smallexample
33339         instead of inline.
33340         [(-fsanitize-recover)]: Likewise.
33341         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
33342         [(-ffast-math)]: Likewise.
33343         [(--param max-inline-insns-recursive)]: Likewise.
33344         [(--param max-inline-recursive-depth)]: Likewise.
33345         [(-mno-text-section-literals)]: Likewise.
33346
33347 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
33348
33349         * doc/install.texi: Update for libgomp being renamed from "GNU
33350         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
33351         Runtime Library".
33352         * doc/sourcebuild.texi: Likewise.
33353
33354 2015-01-10  Anthony Green  <green@moxielogic.com>
33355
33356         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
33357         mul.x availability for moxiebox configuration.
33358
33359 2015-01-09  Anthony Green  <green@moxielogic.com>
33360
33361         * config/moxie/moxie.md: Tabify assembly output.
33362
33363 2015-01-09  Anthony Green  <green@moxielogic.com>
33364
33365         * config/moxie/moxie.md (CC_REG): Correct register definition.
33366
33367 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
33368
33369         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
33370         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
33371         of log files.
33372
33373 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33374
33375         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
33376
33377 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
33378             Jakub Jelinek  <jakub@redhat.com>
33379
33380         PR middle-end/64412
33381         * lto-streamer.h (lto_stream_offload_p): New declaration.
33382         * lto-streamer.c (lto_stream_offload_p): New variable.
33383         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
33384         at the same time as section_name_prefix.
33385         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
33386         if lto_stream_offload_p.
33387         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
33388         stream TREE_TARGET_OPTION if lto_stream_offload_p.
33389         (write_ts_function_decl_tree_pointers): Don't
33390         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
33391         * tree-streamer-in.c (unpack_value_fields): Don't stream
33392         TREE_TARGET_OPTION in if ACCEL_COMPILER.
33393         (lto_input_ts_function_decl_tree_pointers): Don't stream
33394         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
33395         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
33396         instead of section_name_prefix string comparisons.
33397
33398 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
33399
33400         PR rtl-optimization/64536
33401         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
33402         tablejumps.
33403
33404 2015-01-09  Michael Collison  <michael.collison@linaro.org>
33405
33406         PR tree-optimization/64322
33407         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
33408         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
33409
33410 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33411
33412         PR rtl-optimization/64539
33413         * regcprop.c (kill_clobbered_values): Factor out of ...
33414         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
33415         instead of note_stores with kill_clobbered_value.
33416
33417 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33418
33419          * ginclude/unwind-arm-common.h: Revert previous commit.
33420
33421 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33422
33423         * config.gcc (arm*-*-freebsd*): New configuration.
33424         * config/arm/freebsd.h: New file.
33425         * config.host: Add extra components for arm*-*-freebsd*.
33426         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
33427         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
33428
33429 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33430
33431         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
33432         for -mcpu=e6500.
33433         * config/rs6000/t-rtems: Add e6500 multilibs.
33434
33435 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33436
33437         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
33438         MPC8540.
33439
33440 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33441
33442         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
33443         MULTILIB_EXCEPTIONS.
33444
33445 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33446
33447         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
33448         MULTILIB_EXCEPTIONS.
33449
33450 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33451
33452         * config/arm/t-rtems-eabi: Rename to...
33453         * config/arm/t-rtems: ...this.
33454         * config/arm/rtems-eabi.h: Rename to...
33455         * config/arm/rtems.h: ...this.
33456         * config.gcc (arm*-*-rtems*): Reflect changes above.
33457
33458 2015-01-09  Richard Biener  <rguenther@suse.de>
33459
33460         PR tree-optimization/64410
33461         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
33462         on the LHS.
33463         (execute_update_addresses_taken): Deal with that.
33464         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
33465         loads/stores for complex variables.
33466
33467 2015-01-09  Martin Liska  <mliska@suse.cz>
33468
33469         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
33470         name comparison.
33471         (func_checker::compare_memory_operand): New function.
33472         (func_checker::compare_operand): Split case to newly
33473         added functions.
33474         (func_checker::compare_cst_or_decl): New function.
33475         (func_checker::compare_gimple_call): Identify
33476         memory operands.
33477         (func_checker::compare_gimple_assign): Likewise.
33478         * ipa-icf-gimple.h: New function.
33479
33480 2015-01-09  Martin Liska  <mliska@suse.cz>
33481
33482         PR ipa/64503
33483         * sreal.c (sreal::dump): Change unsigned format to signed for
33484         m_exp value.
33485         (sreal::to_double): Replace exp2 with scalbln.
33486
33487 2015-01-09  Martin Liska  <mliska@suse.cz>
33488
33489         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
33490         * ipa-icf.c (sem_function::equals_private): Add support for target and
33491         (sem_item_optimizer::merge_classes): Remove redundant function
33492         optimization flags comparison.
33493         * tree.h (target_opts_for_fn): New function.
33494
33495 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33496
33497         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
33498
33499 2015-01-09  Kito Cheng  <kito@0xlab.org>
33500
33501         PR rtl-optimization/64348
33502         * lra-constraints.c (split_reg): Fix caller-save store/restore
33503         instruction generation.
33504
33505 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
33506
33507         PR gcov-profile/61790
33508         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
33509         long long.  Fallback to int64_t if host doesn't have long long and
33510         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
33511
33512 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33513
33514         PR tree-optimization/63989
33515         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
33516         from 1000 to 10000.
33517         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
33518         (get_stridx): If we don't have a record for certain SSA_NAME,
33519         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
33520         constant offset, call get_stridx_plus_constant.
33521         (get_stridx_plus_constant): New function.
33522         (zero_length_string): Don't use get_stridx here.
33523
33524         PR target/55023
33525         PR middle-end/64388
33526         * dse.c (struct insn_info): Mention frame_read set also
33527         before reload for tail calls on some targets.
33528         (scan_insn): Revert 2014-12-22 change.  Set frame_read
33529         also before reload for tail calls if
33530         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
33531         instead of add_non_frame_wild_read for non-const/memset
33532         tail calls after reload.
33533
33534 2015-01-08  Jason Merrill  <jason@redhat.com>
33535
33536         * ubsan.c (do_ubsan_in_current_function): New.
33537         (pass_ubsan::gate): Use it.
33538         * ubsan.h: Declare it.
33539         * convert.c (convert_to_integer): Use it.
33540
33541 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33542
33543         PR target/64338
33544         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
33545         compare_code when it is unconditionally overwritten afterwards.
33546         Use ix86_reverse_condition instead of reverse_condition.  Don't
33547         change code if *reverse_condition* returned UNKNOWN and don't
33548         swap ct/cf and negate diff in that case.
33549
33550 2015-01-08  Mike Stump  <mikestump@comcast.net>
33551
33552         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
33553         (pass_tsan_O0::gate): Likewise.
33554         * extend.texi (Function Attributes): Add no_sanitize_thread
33555         documentation.
33556
33557 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
33558
33559         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
33560         for registering builtins.
33561         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
33562         add -fopenmp to the argv_obstack used when invoking
33563         compile_for_target.
33564
33565         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
33566         add "-m32" or "-m64" to argv_obstack.
33567         (generate_host_descr_file): Likewise, when invoking host_compiler.
33568         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
33569         ld.
33570
33571 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33572
33573         * config/sh/sh-mem.cc: Use constant as second operand when emitting
33574         tstsi_t insns.
33575
33576 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33577
33578         PR target/55212
33579         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
33580         constant load if constant operand fits into I08.
33581
33582 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33583
33584         PR sanitizer/64336
33585         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
33586         and TREE_THIS_VOLATILE for MEM_REFs.
33587         (build5_stat): Fix up initialization of TREE_READONLY and
33588         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
33589
33590 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
33591
33592         PR target/64533
33593         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
33594         of r for the second alternative of the destination operand.
33595
33596 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
33597
33598         PR target/36557
33599         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
33600
33601 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33602
33603         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
33604         keywords.
33605         ([-fivar-visibility], [-fvisibility]): Likewise.
33606
33607 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33608
33609         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
33610         the file where @code, @command, etc is more appropriate.
33611
33612 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
33613
33614         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
33615         of -mrecip= documentation.
33616
33617 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33618
33619         PR target/64505
33620         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
33621         correct reload handler if -m32 -mpowerpc64 is used.
33622
33623 2015-01-06  Tom de Vries  <tom@codesourcery.com>
33624
33625         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
33626
33627 2015-01-08  Christian Bruel  <christian.bruel@st.com>
33628
33629         PR target/64507
33630         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
33631
33632 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33633
33634         PR tree-optimization/63259
33635         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
33636         if optab exists for 16bit byteswap.
33637
33638 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
33639
33640         * opts.c (common_handle_option): Add support for
33641         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
33642         * doc/invoke.texi: Document -fno-sanitize=all,
33643         -f{,no-}sanitize-recover=all.  Document that
33644         -fsanitize=float-cast-overflow is not enabled
33645         by -fsanitize=undefined.  Fix up documentation
33646         of -f{,no-}sanitize-recover.
33647
33648 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
33649
33650         * config.gcc: Add Visium support.
33651         * configure.ac: Likewise.
33652         * configure: Regenerate.
33653         * doc/extend.texi (interrupt attribute): Add Visium.
33654         * doc/invoke.texi: Document Visium options.
33655         * doc/install.texi: Document Visium target.
33656         * doc/md.texi: Document Visium constraints.
33657         * common/config/visium: New directory.
33658         * config/visium: Likewise.
33659
33660 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33661
33662         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
33663         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
33664
33665 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33666
33667         * combine.c (combine_validate_cost): Do not count the cost of a
33668         split I2 twice.  Do not display it twice in the dump, either.
33669
33670 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33671
33672         Revert parts of r219199.
33673         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
33674         <inttypes.h>.
33675         ([-Wtraditional]): Restore markup on <limits.h>.
33676
33677 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
33678
33679         PR c++/31397
33680         * doc/invoke.texi: Document -Wsuggest-override.
33681
33682 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
33683
33684         PR rtl-optimization/64287
33685         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
33686         (process_options): Disable flag_ipa_ra if profiling.
33687
33688 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
33689
33690         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
33691
33692 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
33693
33694         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
33695         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
33696         put under #if TARGET_LOOPS guard.
33697
33698 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
33699
33700         * config/i386/i386.c (output_387_binary_op): Use std::swap.
33701
33702 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
33703
33704         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
33705         * rtl.h (refers_to_regno_p): Add overload.
33706         * cse.c: Use it.
33707         * bt-load.c: Likewise.
33708         * combine.c: Likewise.
33709         * df-scan.c: Likewise.
33710         * sched-deps.c: Likewise.
33711         * config/s390/s390.c: Likewise.
33712         * config/m32r/m32r.c: Likewise.
33713         * config/rs6000/spe.md: Likewise.
33714         * config/rs6000/rs6000.c: Likewise.
33715         * config/pa/pa.c: Likewise.
33716         * config/stormy16/stormy16.c: Likewise.
33717         * config/cris/cris.c: Likewise.
33718         * config/arc/arc.md: Likewise.
33719         * config/arc/arc.c: Likewise.
33720         * config/sh/sh.md: Likewise.
33721         * config/sh/sh.c: Likewise.
33722         * config/frv/frv.c: Likewise.
33723
33724 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33725
33726         PR sanitizer/64265
33727         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
33728         call as cleanup of the whole body.
33729         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
33730         * tsan.c (replace_func_exit): New function.
33731         (instrument_func_exit): Moved earlier.
33732         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
33733         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
33734         been found.
33735         (tsan_pass): Don't call instrument_func_exit.
33736         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
33737         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
33738         inlining.
33739
33740         PR sanitizer/64344
33741         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
33742         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
33743         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
33744         if the result is integer_zerop, return NULL_TREE.
33745         * convert.c (convert_to_integer): Pass expr as ARG.
33746
33747         PR tree-optimization/64465
33748         * tree-inline.c (redirect_all_calls): During inlining
33749         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
33750         changed the stmt to a non-throwing call.
33751
33752 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33753
33754         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
33755         etc markup throughout the file.
33756
33757 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33758
33759         Enable experimental TSAN support for Ada.
33760         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
33761
33762 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33763
33764         PR tree-optimization/64494
33765         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
33766         clear SSA_NAME_ANTI_RANGE_P flag.
33767
33768 2015-01-05  Marek Polacek  <polacek@redhat.com>
33769
33770         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
33771
33772 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33773
33774         Update copyright years.
33775
33776         * gcc.c (process_command): Update copyright notice dates.
33777         * gcov-dump.c: Ditto.
33778         * gcov.c: Ditto.
33779         * doc/cpp.texi: Bump @copying's copyright year.
33780         * doc/cppinternals.texi: Ditto.
33781         * doc/gcc.texi: Ditto.
33782         * doc/gccint.texi: Ditto.
33783         * doc/gcov.texi: Ditto.
33784         * doc/install.texi: Ditto.
33785         * doc/invoke.texi: Ditto.
33786
33787         * auto-profile.c, auto-profile.h: Fix up Copyright line.
33788
33789 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
33790
33791         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
33792         verb tense, etc.
33793         ([-fvtable-verify], [-fvtv-debug]): Likewise.
33794         ([-Wabi]): Likewise.
33795         ([-fmessage-length]): Likewise.
33796         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
33797         ([-Wno-discarded-qualifiers]): Likewise.
33798         ([-Wnodiscarded-array-qualifiers]): Likewise.
33799         ([-Wno-virtual-move-assign]): Likewise.
33800         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
33801         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
33802         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
33803         ([-fsanitize-undefined-trap-on-error]): Likewise.
33804         ([-floop-interchange]): Likewise.
33805         ([-ftree-coalesce-inlined-vars]): Likewise.
33806         ([-fvect-cost-model]): Likewise.
33807         ([-flto]): Likewise.
33808         ([--param]): Likewise.
33809         (Spec Files): Likewise.
33810         ([-mstrict-align]): Likewise.
33811         ([-mfix-cortex-a53-835769]): Likewise.
33812         ([-march], [-mtune]): Likewise.
33813         ([-mpic-register]): Likewise.
33814         ([-munaligned-access]): Likewise.
33815         ([-msp8]): Likewise.
33816         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
33817         (AVR Built-in Macros): Likewise.
33818         ([-mpreferred-stack-boundary]): Likewise.
33819         ([-mtune-crtl]): Likewise.
33820         ([-mashf]): Likewise.
33821         ([-mmcu=]): Likewise.
33822         ([-minrt]): Likewise.
33823         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
33824         ([-mupper-regs]): Likewise.
33825         ([-matomic-model]): Likewise.
33826         ([-mdiv]): Likewise.
33827         ([-mzdcbranch]): Likewise.
33828         ([-mdisable-callt]): Likewise.
33829         ([-msoft-float]): Likewise.
33830         ([-m8byte-align]): Likewise.
33831         ([-fstack-reuse]): Likewise.
33832
33833 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33834
33835         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
33836         Fix markup, light copy-editing.
33837         ([-fauto-profile]): Rewrite to fix formatting and content
33838         problems.
33839
33840 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33841
33842         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
33843         Copy-edit description.
33844         ([-fisolate-erroneous-paths-attribute]): Likewise.
33845         * common.opt (fisolate-erroneous-paths-dereference):
33846         Copy-edit description.
33847         (fisolate-erroneous-paths-attribute): Likewise.
33848
33849 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33850
33851         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
33852         tidy grammar.
33853
33854 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33855
33856         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
33857         ([-fvtv-debug]): Likewise.
33858         ([-Wc++-compat]): Likewise.
33859         ([-Wc++11-compat]): Likewise.
33860         ([-Wc++14-compat]): Likewise.
33861         ([-Wno-sized-deallocation]): Likewise.
33862         ([-femit-class-debug-always]): Likewise.
33863         ([-femit-struct-debug-detailed]): Likewise.
33864         ([-fno-keep-inline-dllexport]): Likewise.
33865         ([-fira-algorithm]): Likewise.
33866         ([-fira-region]): Likewise.
33867         ([-flra-remat]): Likewise.
33868         ([-fipa-ra]): Likewise.
33869         ([-fhoist-adjacent-loads]): Likewise.
33870         ([-fisolate-erroneous-paths-dereference]): Likewise.
33871         ([-fisolate-erroneous-paths-attribute]): Likewise.
33872         ([-ftree-switch-conversion]): Likewise.
33873         ([-ftree-tail-merge]): Likewise.
33874         ([-ftree-loop-if-convert]): Likewise.
33875         ([-ftree-loop-if-convert-stores]): Likewise.
33876         ([-ftree-loop-distribution]): Likewise.
33877         ([-ftree-loop-distribute-patterns]): Likewise.
33878         ([-flto-compression-level]): Likewise.
33879         ([-flto-report]): Likewise.
33880         ([-flto-report-wpa]): Likewise.
33881         ([-fuse-linker-plugin]): Likewise.
33882         ([-mfix-cortex-a53-835769]): Likewise.
33883         ([-mno-fix-cortex-a53-835769]): Likewise.
33884         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
33885         explicit listing; add a note to the discussion indicating they
33886         exist.  Reorder table to group similar options.  Add missing
33887         @opindex entries.  Add @need commands throughout the table to
33888         allow it to be split across multiple pages.
33889         ([-m8bit-idiv]): Fix @opindex.
33890         ([-mavx256-split-unaligned-load]): Likewise.
33891         ([-mavx256-split-unaligned-store]): Likewise.
33892         ([-mstack-protector-guard]): Likewise.
33893         ([-mcpu=]): Likewise.
33894         ([-mcpu]): Likewise.
33895         ([-mpointer-size=]): Likewise.
33896
33897 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
33898
33899         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
33900         instead of `m' constraint.  Likewise for unnamed movb comparison
33901         patterns using reg_before_reload_operand predicate.
33902         * config/pa/predicates.md (reg_before_reload_operand): Tighten
33903         predicate to reject register index and LO_SUM DLT memory forms
33904         after reload.
33905
33906 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33907
33908         * doc/invoke.texi (Option Summary): Fix spelling of
33909         -fdevirtualize-at-ltrans.
33910         ([-fdevirtualize]): Fix markup.
33911         ([-fdevirtualize-speculatively]): Fix typo.
33912         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
33913         implementor-speaky.
33914         * common.opt (fdevirtualize-at-ltrans): Likewise.
33915         * ipa-devirt.c: Fix typos in comments throughout the file.
33916         (ipa_devirt): Fix typos in format strings for dump output.
33917
33918 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33919
33920         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
33921         discussion of defaults, light copy-editing.
33922
33923 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33924
33925         * tsan.c (instrument_expr): corrected previous checkin.
33926
33927 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33928
33929         Instrument bit field and unaligned accesses for TSAN.
33930         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
33931         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
33932         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
33933         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
33934         unaligned memory regions.
33935
33936 2015-01-01  Anthony Green  <green@moxielogic.com>
33937
33938         * config/moxie/predicates.md (moxie_general_movsrc_operand):
33939         Restrict move source register offsets to 16 bits.
33940 \f
33941 Copyright (C) 2015 Free Software Foundation, Inc.
33942
33943 Copying and distribution of this file, with or without modification,
33944 are permitted in any medium without royalty provided the copyright
33945 notice and this notice are preserved.