Move cexp simplifications to match.pd
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
2
3 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
4             Richard Biener  <rguenther@suse.de>
5
6         * genmatch.c (dt_simplify::gen): Skip captures that are
7         part of the result.
8         (parser::parse_expr): Allow captures in results too.
9         * builtins.c (fold_builtin_cexp): Delete.
10         (fold_builtin_1): Handle constant cexp arguments here.
11         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
12
13 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
14
15         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
16         conditional compilation.
17         (base_pool_allocator::remove): Use flag_checking.
18
19 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
20
21         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
22
23         PR middle-end/68079
24         * dojump.c (do_compare_and_jump): Canonicalize both function and
25         method types.
26
27 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
28
29         PR target/68084
30         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
31         for =@ccae.
32
33 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
34
35         PR ipa/pr67600
36         * ipa-polymorphic-call.c
37         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
38         instance offset with offset of outer type.
39
40 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
41
42         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
43
44 2015-10-23  Caroline Tice  <cmtice@google.com>
45
46         (from Richard Biener
47         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
48         call to iterative_hash_host_wide_int.
49
50 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
51
52         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
53         Define as yes.
54
55 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
56
57         * tree-vect-generic.c (expand_vector_operations_1): Check
58         optab exists before use it.
59
60 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
61
62         * tree-vect-generic.c (expand_vector_condition): Avoid
63         uninitialized variable warning.
64
65 2015-10-23  Jeff Law  <law@redhat.com>
66
67         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
68         here.  Instead...
69         (execute_todo): Call it here.
70         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
71         statistics
72         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
73
74 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
75             Szabolcs Nagy  <szabolcs.nagy@arm.com>
76
77         * config.gcc (enable_secureplt): Add *-linux*-musl*.
78
79 2015-10-23  Jeff Law  <law@redhat.com>
80
81         PR tree-optimization/67830
82         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
83         Explicitly verify the mask has no bits outside the type of
84         the innermost operands.
85
86 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
87             Szabolcs Nagy  <szabolcs.nagy@arm.com>
88
89         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
90         (MUSL_DYNAMIC_LINKER64): Define.
91         (GNU_USER_DYNAMIC_LINKER32): Update.
92         (GNU_USER_DYNAMIC_LINKER64): Update.
93         (CHOOSE_DYNAMIC_LINKER): Update.
94
95         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
96         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
97         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
98         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
99         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
100         (CHOOSE_DYNAMIC_LINKER): Update.
101         (INCLUDE_DEFAULTS): Redefine.
102
103         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
104
105 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
106
107         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
108         comparing addresses.
109
110 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
111
112         * fold-const.c (operand_equal_p): Handle matching of vector
113         constructors.
114
115 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
116
117         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
118
119 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
120             Andrew Pinski  <apinski@cavium.com>
121
122         PR rtl-optimization/67736
123         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
124         of gen_lowpart.
125
126 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
127
128         PR middle-end/68066
129         * tree.c (build_truth_vector_type): Support BLK mode
130         returned for boolean vector.
131
132 2015-10-23  Alan Hayward <alan.hayward@arm.com>
133
134         PR tree-optimization/65947
135         * tree-vect-loop.c
136         (vect_is_simple_reduction_1): Find condition reductions.
137         (vect_model_reduction_cost): Add condition reduction costs.
138         (get_initial_def_for_reduction): Add condition reduction initial var.
139         (vect_create_epilog_for_reduction): Add condition reduction epilog.
140         (vectorizable_reduction): Condition reduction support.
141         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
142         * doc/sourcebuild.texi (Vector-specific attributes): Document
143         vect_max_reduc
144
145 2015-10-23  Richard Biener  <rguenther@suse.de>
146
147         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
148         and builtins.def.
149
150 2015-10-23  Richard Biener  <rguenther@suse.de>
151             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
152
153         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
154         into (A ^ B) - B to match.pd
155         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
156
157         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
158         New simplifier.
159         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
160         New simplifier.
161         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
162         New simplifier.
163         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
164         New simplifier.
165         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
166         INTEGER_CST@1)): New simplifier.
167
168 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
169
170         * builtins.c (integer_valued_real_p): Move to fold-const.c.
171         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
172         (fold_builtin_ceil, fold_builtin_round): Delete.
173         (fold_builtin_1): Handle constant trunc, floor, ceil and round
174         arguments here.
175         * convert.c (convert_to_real): Remove narrowing of rounding
176         functions.
177         * fold-const.h (integer_valued_real_unary_p)
178         (integer_valued_real_binary_p, integer_valued_real_call_p)
179         (integer_valued_real_single_p, integer_valued_real_p): Declare.
180         * fold-const.c (tree_single_nonnegative_warnv_p): Move
181         name_registered_for_update_p check to SSA_NAME case statement.
182         Don't call tree_simple_nonnegative_warnv_p for SSA names.
183         (integer_valued_real_unary_p, integer_valued_real_binary_p)
184         (integer_valued_real_call_p, integer_valued_real_single_p)
185         (integer_valued_real_invalid_p): New functions.
186         (integer_valued_real_p): Move from fold-const.c and rework
187         to call the functions above.  Handle SSA names.
188         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
189         * gimple-fold.c (gimple_assign_integer_valued_real_p)
190         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
191         (gimple_stmt_integer_valued_real_p): New functions.
192         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
193         Fold f(x)->x for the same f if x is known to be integer-valued.
194         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
195         the result.  Canonicalize floor(x) as trunc(x) if x is
196         nonnegative.
197
198 2015-10-23  Tom de Vries  <tom@codesourcery.com>
199
200         * tree-ssa-structalias.c (intra_create_variable_infos): Use
201         make_constraint_from.
202
203 2015-10-23  Tom de Vries  <tom@codesourcery.com>
204
205         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
206         setting of is_full_var in case of a single field.
207
208 2015-10-22  Martin Sebor  <msebor@redhat.com>
209
210         PR driver/68043
211         * config/i386/i386.opt: Add missing periods to the ends of sentences.
212         * config/msp430/msp430.opt: Same.
213
214 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
215
216         * doc/extend.exp (Global Register Variables): Rewrite.
217
218 2015-10-22  Jeff Law  <law@redhat.com>
219
220         * genattrtab.c (main): If we do not have any annul-true or annul-false
221         slots, then write out a dummy eligible_for_annul_true or
222         eligible_for_annul_false as needed.
223
224 2015-10-22  Nick Clifton  <nickc@redhat.com>
225
226         * config/msp430/msp430.opt: Add -msilicon-errata and
227         -msilicon-errata-warn.
228         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
229         assembler.
230         * doc/invoke.texi: Document new options.
231
232 2015-10-22  Richard Biener  <rguenther@suse.de>
233
234         PR tree-optimization/58497
235         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
236         (expand_vector_operations_1): Use it.  Lower operations on
237         all uniform vectors to scalar operations if the HW supports it.
238
239 2015-10-22  Richard Biener  <rguenther@suse.de>
240
241         PR tree-optimization/19049
242         PR tree-optimization/65962
243         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
244         to strided accesses if single-element interleaving doesn't work.
245
246 2015-10-22  Richard Biener  <rguenther@suse.de>
247
248         PR middle-end/68046
249         PR middle-end/61893
250         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
251         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
252         (expand_unop): Likewise.
253
254 2015-10-22  Richard Biener  <rguenther@suse.de>
255
256         * fold-const.c (fold_addr_of_array_ref_difference): Properly
257         convert operands before folding a MINUS_EXPR.
258         (fold_binary_loc): Move simplification of MINUS_EXPR on
259         converted POINTER_PLUS_EXPRs ...
260         * match.pd: ... here.
261
262 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
263
264         * builtins.c (fold_builtin_tan): Delete.
265         (fold_builtin_1): Handle constant tan arguments here.
266         * match.pd: Simplify (tan (atan x)) to x.
267
268 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
269
270         * builtins.c (fold_builtin_cproj): Delete.
271         (fold_builtin_1): Handle constant arguments here.
272         (build_complex_cproj): Move and rename to...
273         * tree.c: (build_complex_inf): ...this.
274         * tree.h (build_complex_inf): Declare.
275         * match.pd: Fold cproj(x)->x if x has no infinity.
276         Use build_complex_inf for existing cproj rules.
277
278 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
279
280         PR target/68015
281         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
282         already have a comparison result.
283
284 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
285
286         PR target/63304
287         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
288         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
289         (aarch64_classify_address): Likewise.
290         (aarch64_secondary_reload): Likewise.
291         (aarch64_override_options_after_change_1): Adjust.
292         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
293         Use aarch64_nopcrelative_literal_loads.
294         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
295         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
296         Declare.
297
298 2015-10-21  Martin Sebor  <msebor@redhat.com>
299
300         PR driver/68043
301         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
302         (print_filtered_help): Reference aliased option's name and encourage
303         readers to use it in preference to the alias if the former is not
304         documented.  Mention when using an option is diagnosed.
305         * gcc.c (display_help): End each sentence with a period.
306
307         * common.opt: End each sentence that describes an option with
308         a period.
309         * config/aarch64/aarch64.opt: Same.
310         * config/alpha/alpha.opt: Same.
311         * config/arc/arc.opt: Same.
312         * config/arm/arm.opt: Same.
313         * config/avr/avr.opt: Same.
314         * config/bfin/bfin.opt: Same.
315         * config/c6x/c6x.opt: Same.
316         * config/cr16/cr16.opt: Same.
317         * config/cris/cris.opt: Same.
318         * config/cris/linux.opt: Same.
319         * config/darwin.opt: Same.
320         * config/epiphany/epiphany.opt: Same.
321         * config/fr30/fr30.opt: Same.
322         * config/frv/frv.opt: Same.
323         * config/ft32/ft32.opt: Same.
324         * config/g.opt: Same.
325         * config/h8300/h8300.opt: Same.
326         * config/i386/cygming.opt: Same.
327         * config/i386/djgpp.opt: Same.
328         * config/i386/i386.opt: Same.
329         * config/i386/interix.opt: Same.
330         * config/i386/mingw-w64.opt: Same.
331         * config/i386/mingw.opt: Same.
332         * config/ia64/ia64.opt: Same.
333         * config/ia64/ilp32.opt: Same.
334         * config/iq2000/iq2000.opt: Same.
335         * config/linux.opt: Same.
336         * config/lm32/lm32.opt: Same.
337         * config/lynx.opt: Same.
338         * config/m32c/m32c.opt: Same.
339         * config/m32r/m32r.opt: Same.
340         * config/m68k/ieee.opt: Same.
341         * config/m68k/m68k.opt: Same.
342         * config/mcore/mcore.opt: Same.
343         * config/mep/mep.opt: Same.
344         * config/microblaze/microblaze.opt: Same.
345         * config/mips/mips.opt: Same.
346         * config/mmix/mmix.opt: Same.
347         * config/mn10300/mn10300.opt: Same.
348         * config/moxie/moxie.opt: Same.
349         * config/msp430/msp430.opt: Same.
350         * config/nios2/elf.opt: Same.
351         * config/nios2/nios2.opt: Same.
352         * config/nvptx/nvptx.opt: Same.
353         * config/pa/pa-hpux.opt: Same.
354         * config/pa/pa-hpux1010.opt: Same.
355         * config/pa/pa-hpux1111.opt: Same.
356         * config/pa/pa-hpux1131.opt: Same.
357         * config/pa/pa.opt: Same.
358         * config/pa/pa64-hpux.opt: Same.
359         * config/pdp11/pdp11.opt: Same.
360         * config/rl78/rl78.opt: Same.
361         * config/rs6000/476.opt: Same.
362         * config/rs6000/aix64.opt: Same.
363         * config/rs6000/darwin.opt: Same.
364         * config/rs6000/linux64.opt: Same.
365         * config/rs6000/rs6000.opt: Same.
366         * config/rs6000/sysv4.opt: Same.
367         * config/s390/s390.opt: Same.
368         * config/s390/tpf.opt: Same.
369         * config/sh/sh.opt: Same.
370         * config/sol2.opt: Same.
371         * config/sparc/long-double-switch.opt: Same.
372         * config/sparc/sparc.opt: Same.
373         * config/spu/spu.opt: Same.
374         * config/stormy16/stormy16.opt: Same.
375         * config/tilegx/tilegx.opt: Same.
376         * config/tilepro/tilepro.opt: Same.
377         * config/v850/v850.opt: Same.
378         * config/vax/vax.opt: Same.
379         * config/visium/visium.opt: Same.
380         * config/vms/vms.opt: Same.
381         * config/vxworks.opt: Same.
382         * config/xtensa/xtensa.opt: Same.
383
384 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
385             Sebastian Pop  <s.pop@samsung.com>
386
387         * graphite-scop-detection.c (parameter_index_in_region): Update call to
388         invariant_in_sese_p_rec.
389         * graphite-sese-to-poly.c (extract_affine): Same.
390         * sese.c (invariant_in_sese_p_rec): Pass in an extra
391         parameter has_vdefs.
392         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
393         variable depends on virtual definitions in the current region.
394         * sese.h (invariant_in_sese_p_rec): Update declaration.
395
396 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
397             Sebastian Pop  <s.pop@samsung.com>
398
399         * graphite-scop-detection.c (build_scops): Do not handle scops
400         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
401         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
402
403 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
404
405         * config.in: Regenerate.
406         * configure: Regenerate.
407         * configure.ac (CHECKING_P): Define.
408         * system.h: Use CHECKING_P.
409
410 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
411
412         PR ipa/67056
413         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
414         is negative we don't know the type.
415         (check_stmt_for_type_change): Skip constructors of non-polymorphic
416         types as those won't help devirutalization.
417
418 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
419
420         * fold-const.c (operand_equal_p): Add code matching empty constructors.
421
422 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
423
424         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
425         comments.
426         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
427         Add comments on sign of the result.
428         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
429         Recurse on operand #1 instead of operand #0.
430         <CEIL_MOD_EXPR>: Do not recurse.
431         <ROUND_MOD_EXPR>: Likewise.
432
433 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
434
435         * cfgrtl.c (pass_free_cfg::execute): Adjust.
436         * final.c (dbr_sequence_length): Always define.
437         (shorten_branches): Adjust.
438         * genattr-common.c (main): Always define DELAY_SLOTS.
439         * genattr.c (main): Unconditionally declare functions and define
440         macros related to delay slots.
441         * genattrtab.c (write_eligible_delay): Adjust.
442         (main): Always write out delay slot functions.
443         * opts.c (default_options_table): Adjust.
444         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
445         (redirect_with_delay_list_safe_p): Likewise.
446         (fill_simple_delay_slots): Likewise.
447         (fill_slots_from_thread): Likewise.
448         (make_return_insns): Likewise.
449         (dbr_schedule): Likewise.
450         (rest_of_handle_delay_slots): Likewise.
451         (pass_delay_slots::gate): Likewise.
452         * toplev.c (process_options): Likewise.
453
454 2015-10-21  Richard Henderson  <rth@redhat.com>
455
456         * targhooks.c (default_addr_space_pointer_mode): Remove check
457         for generic address space.
458         (default_addr_space_address_mode): Likewise.
459         (default_addr_space_valid_pointer_mode): Likewise.
460         (default_addr_space_legitimate_address_p): Likewise.
461         (default_addr_space_legitimize_address): Likewise.
462         * target.def (addr_space.pointer_mode): Update documentation
463         of default behavior.
464         (addr_space.address_mode): Likewise.
465         * tm.texi: Update.
466
467         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
468         address spaces.
469
470 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
471
472         * builtins.c (fold_builtin_cabs): Delete.
473         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
474         * match.pd: Add rules previously handled by fold_builtin_cabs.
475
476 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
477
478         * fold-const.h (fold_strip_sign_ops): Delete.
479         * fold-const.c (fold_strip_sign_ops): Likewise.
480         (fold_unary_loc, fold_binary_loc): Remove calls to it.
481         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
482         (fold_builtin_ccos): Delete.
483         (fold_builtin_pow): Don't call fold_strip_sign_ops.
484         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
485         Remove fndecl argument.
486         (fold_builtin_1): Update calls accordingly.  Handle constant
487         cos, cosh, ccos and ccosh here.
488
489 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
490
491         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
492         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
493         * common.opt (fssa-backprop): New option.
494         * fold-const.h (negate_mathfn_p): Declare.
495         * fold-const.c (negate_mathfn_p): Make public.
496         * timevar.def (TV_TREE_BACKPROP): New.
497         * tree-pass.h (make_pass_backprop): Declare.
498         * passes.def (pass_backprop): Add.
499         * gimple-ssa-backprop.c: New file.
500
501 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
502             Sebastian Pop  <s.pop@samsung.com>
503
504         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
505         Do not call create_empty_if_region_on_edge when cond_expr is true.
506         (translate_isl_ast_node_for): Check whether a guard has been generated.
507
508 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
509
510         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
511         (operator=): Removed.
512         (dr_info): Make alias_set number the last argument with default
513         value of invalid_alias_set.
514         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
515         of dr_info.
516         (rewrite_reductions_out_of_ssa): Iterate only through the
517         basic blocks which are inside region.
518         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
519         * sese.h (struct sese_l): Removed assignment operator.
520         (split_region_for_bb): Removed dead code.
521
522 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
523
524         * graphite-poly.h (struct dr_info): Removed conversion constructor.
525         (struct scop): Renamed scop::region to scop::scop_info
526         (scop_set_region): Same.
527         (SCOP_REGION): Removed
528         (SCOP_CONTEXT): Removed.
529         (POLY_SCOP_P): Removed.
530         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
531         Rename scop->region to scop->scop_info.
532         (add_parameters_to_ivs_params): Same.
533         (graphite_regenerate_ast_isl): Same.
534         * graphite-poly.c (new_scop): Same.
535         (free_scop): Same.
536         (print_scop_params): Same.
537         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
538         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
539         (dot_all_scops_1): Rename scop->region to scop->scop_info.
540         (scop_detection::nb_pbbs_in_loops): Same.
541         (find_scop_parameters): Same.
542         (try_generate_gimple_bb): Same.
543         (gather_bbs::before_dom_children): Same.
544         (gather_bbs::after_dom_children): Same.
545         (build_scops): Same.
546         * graphite-sese-to-poly.c (build_scop_scattering): Same.
547         (extract_affine_chrec): Same.
548         (extract_affine): Same.
549         (set_scop_parameter_dim): Same.
550         (build_loop_iteration_domains): Same.
551         (create_pw_aff_from_tree): Same.
552         (add_param_constraints): Same.
553         (build_scop_iteration_domain): Same.
554         (build_scop_drs): Same.
555         (analyze_drs_in_stmts): Same.
556         (insert_out_of_ssa_copy_on_edge): Same.
557         (rewrite_close_phi_out_of_ssa):Same.
558         (rewrite_reductions_out_of_ssa):Same.
559         (handle_scalar_deps_crossing_scop_limits):Same.
560         (rewrite_cross_bb_scalar_deps):Same.
561         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
562         (build_poly_scop):Same.
563         (build_alias_set): Use pointer to dr_info.
564         * graphite.c (print_graphite_scop_statistics):
565         (graphite_transform_loops):
566         * sese.h (struct sese_l): Remove conversion constructor.
567
568 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
569
570         PR middle-end/67966
571         * tree.c (verify_type): Verify that TYPE_MODE match
572         between TYPE_CANONICAL and type.
573         * expr.c (store_expr_with_bounds): Revert my previous change.
574         * expmed.c (store_bit_field_1): Revert prevoius change.
575         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
576         to match for all types.
577
578 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
579
580         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
581         nesting.
582
583 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
584
585         * doc/tm.texi: Regenerated.
586         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
587         * stor-layout.c (layout_type): Use mode to get vector mask size.
588         * target.def (get_mask_mode): New.
589         * targhooks.c (default_get_mask_mode): New.
590         * targhooks.h (default_get_mask_mode): New.
591         * gcc/tree-vect-stmts.c (get_same_sized_vectype): Add special case
592         for boolean vector.
593         * tree.c (MAX_BOOL_CACHED_PREC): New.
594         (nonstandard_boolean_type_cache): New.
595         (build_nonstandard_boolean_type): New.
596         (make_vector_type): Vector mask has no canonical type.
597         (build_truth_vector_type): New.
598         (build_same_sized_truth_vector_type): New.
599         (truth_type_for): Support vector masks.
600         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
601         (build_truth_vector_type): New.
602         (build_same_sized_truth_vector_type): New.
603         (build_nonstandard_boolean_type): New.
604         * tree-cfg.c (verify_gimple_comparison) Require boolean
605         vector type for vector comparison.
606         (verify_gimple_assign_ternary): Likewise.
607         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
608         condition operand.
609         * tree-vect-stmts.c (vectorizable_condition): Use boolean
610         vector type for vector comparison.
611         * tree-vect-generic.c (elem_op_func): Add new operand to hold
612         vector type.
613         (do_unop): Adjust to modified function type.
614         (do_binop): Likewise.
615         (do_plus_minus): Likewise.
616         (do_negate); Likewise.
617         (expand_vector_piecewise): Likewise.
618         (do_cond): Likewise.
619         (do_compare): Use comparison instead of condition.
620         (expand_vector_divmod): Use boolean vector type for comparison.
621         (expand_vector_operations_1): Skip scalar mask operations.
622
623 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
624
625         * omp-low.c (simd_clone_create): Set in_other_partition
626         for created clones.
627
628 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
629
630         * doc/extend.exp (Local Register Variables): Rewrite.
631
632 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
633
634         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
635         and x*x in cases where the operands are sign ops.  Extend these
636         rules to handle copysign as a sign op (including for cos, cosh
637         and pow, which already treated negate and abs as sign ops).
638
639 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
640
641         PR target/68018
642         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
643         for 64-bit MS_ABI targets also when default incoming stack boundary
644         is overriden.
645
646 2015-10-21  Richard Biener  <rguenther@suse.de>
647
648         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
649         cond stmts, enhanced and split out from ...
650         (vn_phi_eq): ... here.
651
652 2015-10-21  Richard Biener  <rguenther@suse.de>
653
654         PR middle-end/68031
655         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
656         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
657         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
658         make sure they are not registered for update.
659
660 2015-10-21  Richard Biener  <rguenther@suse.de>
661
662         PR tree-optimization/68026
663         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
664         unsigned VARYING values.
665
666 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
667
668         * asan.c (asan_emit_stack_protection): Don't pass local stack to
669         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
670         NULL and use local stack than.
671         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
672         in addition to __asan_init.
673         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
674         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
675         * asan.h (asan_intercepted_p): Handle new string builtins.
676         * ubsan.c (ubsan_use_new_style_p): New function.
677         (ubsan_instrument_float_cast): If location is unknown, assign
678         input_location to loc. Propagate loc to ubsan_create_data if
679         ubsan_use_new_style_p returned true.
680
681 2015-10-21  Jeff Law  <law@redhat.com>
682
683         * Makefile.in (OBJS): Remove sched-vis.c
684         * sched-vis.c: Removed.  Code moved into...
685         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
686         * rtl.h: Remove prototypes for functions now living in print-rtl.c
687         * print-rtl.h Add prototypes for new functions in print-rtl.c.
688         * auto-inc-dec.c: Include print-rtl.h
689         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
690         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
691
692         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
693         ATTRIBUTE_UNUSED.
694
695 2015-10-21  Richard Biener  <rguenther@suse.de>
696             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
697
698         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
699         to match.pd.
700         Move (a * (1 << b)) is (a << b) to match.pd.
701         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
702         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
703         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
704
705         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
706         New simplifier.
707         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
708         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
709         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
710         : New simplifier.
711         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
712         New simplifier.
713         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
714
715 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
716             Szabolcs Nagy  <szabolcs.nagy@arm.com>
717             Alan Modra  <amodra@gmail.com>
718
719         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
720         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
721         (LINK_SPEC): Add %(link_secure_plt).
722         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
723         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
724
725 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
726             Szabolcs Nagy  <szabolcs.nagy@arm.com>
727
728         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
729         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
730
731 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
732
733         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
734         New function.
735         (fusion_load_store): Use it.
736         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
737         ldp and stp in VD modes.
738         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
739         (store_pair<mode>, VD): Likewise.
740
741 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
742
743         PR rtl-optimization/67609
744         * lra-splill.c (lra_final_code_change): Don't remove all
745         sub-registers.
746
747 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
748
749         * simplify-rtx.c (simplify_binary_operation): If either operand was
750         a constant pool reference use them if all other simplifications failed.
751
752 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
753
754         * config/aarch64/aarch64.md
755         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
756         * config/aarch64/aarch64-simd.md
757         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
758         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
759         (aarch64_fpconst_pow_of_2): New function.
760         (aarch64_vec_fpconst_pow_of_2): Likewise.
761         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
762         prototype.
763         (aarch64_vec_fpconst_pow_of_2): Likewise.
764         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
765         (aarch64_fp_vec_pow2): Likewise.
766
767 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
768
769         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
770         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
771         * config/alpha/alpha.c (alpha_function_arg_advance): Update
772         ALPHA_ARG_SIZE usage.
773         (alpha_arg_partial_bytes): Ditto.
774
775 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
776
777         PR target/66810
778         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
779         error_mark_node decls.
780
781 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
782
783         PR target/67963
784         PR target/67985
785         * common/config/i386/i386-common.c (ix86_handle_option): Remove
786         OPT_miamcu handling.
787         * config/i386/i386.c (PTA_NO_80387): New macro.
788         (processor_alias_table): Add PTA_NO_80387 to lakemont.
789         (ix86_option_override_internal): Update MASK_80387 from
790         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
791         SSE math only if 80387 is supported.  Don't change
792         MASK_FLOAT_RETURNS.
793         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
794         80387 is supported.
795         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
796         if TARGET_80387 is true and TARGET_IAMCU is false.
797         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
798         is true and TARGET_IAMCU_P is false.
799
800 2015-10-20  Richard Biener  <rguenther@suse.de>
801
802         PR tree-optimization/68017
803         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
804
805 2015-10-20  Martin Liska  <mliska@suse.cz>
806
807         * cgraphclones.c (cgraph_node::create_virtual_clone):
808         Verify cgraph_node.local.versionable instead of calling
809         tree_versionable_function_p.
810         * ipa-cp.c (determine_versionability): Save the information
811         to ipa_node_params summary.
812         (ipcp_versionable_function_p): Use it.
813         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
814         (ipcp_generate_summary): Do not compute cgraph_node
815         versionability.
816         * ipa-inline-analysis.c (inline_generate_summary): Compute
817         versionability for all cgraph nodes.
818         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
819         ipa_node_params::versionability.
820         * ipa-prop.h (struct ipa_node_params): Declare it.
821
822 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
823
824         PR other/67868
825         * varasm.c (assemble_variable): Move special vtv handling to..
826         (handle_vtv_comdat_sections): .. here. New function.
827         (output_object_block): Handle vtv sections.
828
829 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
830
831         PR target/66912
832         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
833
834 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
835
836         * doc/extend.texi: Update documentation WRT inline functions.
837
838 2015-10-20  Alan Modra  <amodra@gmail.com>
839
840         PR go/66870
841         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
842         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
843         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
844
845 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
846
847         PR rtl-optimization/66790
848         * df.h (DF_MIR): New macro.
849         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
850         (DF_MIR_INFO_BB): New macro.
851         (DF_MIR_IN, DF_MIR_OUT): New macros.
852         (struct df_mir_bb_info): New.
853         (df_mir): New macro.
854         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
855         declarations.
856         (df_mir_get_bb_info): New.
857         * df-problems.c (struct df_mir_problem_data): New.
858         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
859         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
860         df_mir_confluence_0, df_mir_confluence_n,
861         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
862         df_mir_bottom_dump, df_mir_verify_solution_start,
863         df_mir_verify_solution_end): New.
864         (problem_MIR): New.
865         (df_mir_add_problem, df_mir_simulate_one_insn): New.
866         * timevar.def (TV_DF_MIR): New.
867         * ree.c: Include bitmap.h
868         (add_removable_extension): Add an INIT_REGS parameter.  Use it
869         to skip zero-extensions that may get an uninitialized register.
870         (find_removable_extensions): Compute must-initialized registers
871         using the MIR dataflow problem. Update the call to
872         add_removable_extension.
873         (find_and_remove_re): Call df_mir_add_problem.
874
875 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
876
877         * common/config/mn10300/mn10300-common.c
878         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
879         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
880
881 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
882
883         * doc/extend.texi (Explicit Register Variables): Simplify and
884         avoid unnecessary and confusion abbreviations.  Update cross
885         references.
886         doc/implement-c.tex: Update cross reference.
887
888 2015-10-19  Jeff Law  <law@redhat.com>
889
890         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
891         that create irreducible loops unless the path elimiantes a multiway
892         branch.
893
894 2015-10-19  Richard Biener  <rguenther@suse.de>
895
896         PR tree-optimization/67975
897         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
898         * tree-cfg.c (extract_true_false_controlled_edges): Split out
899         core worker from ...
900         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
901         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
902         instead of block number for PHIs with two or one args.
903         (vn_phi_eq): Compare edge predicates of PHIs that are in different
904         blocks.
905
906 2015-10-19  Richard Biener  <rguenther@suse.de>
907
908         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
909         (gimple_stmt_nonnegative_warnv_p): Use it.
910         * match.pd (CPROJ): New operator list.
911         (cproj (complex ...)): Move simplifications from ...
912         * builtins.c (fold_builtin_cproj): ... here.
913
914 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
915
916         * config/i386/i386.c (ix86_expand_vector_move): Use
917         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
918         alignment.
919
920 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
921
922         * doc/invoke.texi: Replace @optindex with @opindex.
923
924 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
925
926         PR target/67995
927         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
928         arch= is set,  clear all bits in x_ix86_isa_flags, except for
929         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
930
931 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
932
933         PR middle-end/68002
934         * common.opt (fkeep-static-functions): New option.
935         * doc/invoke.texi: Document it.
936         * cgraphunit.c (cgraph_node::finalize_function): Use it.
937
938 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
939
940         * sched-int.h (struct autopref_multipass_data_): Remove offset
941         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
942         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
943         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
944         (autopref_rank_data): New function.
945         (autopref_rank_for_schedule): Use it.
946         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
947
948 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
949
950         PR other/65800
951         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
952
953 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
954
955         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
956         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
957         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
958         (STANDARD_STARTFILE_PREFIX_1): New.
959         (STANDARD_STARTFILE_PREFIX_2): New.
960
961 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
962
963         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
964         (darwin_driver_init): Note a version-min when provided on the c/l.
965         * config/darwin.h (%darwin_minversion): Remove.
966         * config/i386/darwin.h: Likewise.
967         * config/rs6000/darwin.h: Likewise.
968         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
969         rather than an arbitrary constant.
970
971 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
972
973         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
974         PPC, detect conflicts between -arch and multilib settings.  Detect
975         and warn about conflicts between multiple -arch definitions.
976
977 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
978
979         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
980
981 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
982
983         * lra-constraints.c (add_next_usage_insn): Change argument type
984         from rtx to rtx_insn *.
985
986 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
987
988         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
989         for Lakemont.
990
991 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
992
993         * config/tilepro/gen-mul-tables.cc: Adjust include files.
994         * config/tilegx/mul-tables.c: Regenerate.
995         * config/tilepro/mul-tables.c: Regenerate.
996
997         * config/tilegx/tilegx-c.c: Adjust include files.
998         * config/tilegx/tilegx.c: Likewise.
999         * config/tilepro/tilepro-c.c: Likewise.
1000         * config/tilepro/tilepro.c: Likewise.
1001         * config/aarch64/aarch64-builtins.c: Likewise.
1002         * config/aarch64/aarch64.c: Likewise.
1003         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1004         * config/alpha/alpha.c: Likewise.
1005         * config/arc/arc.c: Likewise.
1006         * config/arm/aarch-common.c: Likewise.
1007         * config/arm/arm-builtins.c: Likewise.
1008         * config/arm/arm-c.c: Likewise.
1009         * config/arm/arm.c: Likewise.
1010         * config/avr/avr-c.c: Likewise.
1011         * config/avr/avr-devices.c: Likewise.
1012         * config/avr/avr-log.c: Likewise.
1013         * config/avr/avr.c: Likewise.
1014         * config/bfin/bfin.c: Likewise.
1015         * config/c6x/c6x.c: Likewise.
1016         * config/cr16/cr16.c: Likewise.
1017         * config/cris/cris.c: Likewise.
1018         * config/darwin-c.c: Likewise.
1019         * config/darwin-driver.c: Likewise.
1020         * config/darwin.c: Likewise.
1021         * config/default-c.c: Likewise.
1022         * config/epiphany/epiphany.c: Likewise.
1023         * config/epiphany/mode-switch-use.c: Likewise.
1024         * config/epiphany/resolve-sw-modes.c: Likewise.
1025         * config/fr30/fr30.c: Likewise.
1026         * config/frv/frv.c: Likewise.
1027         * config/ft32/ft32.c: Likewise.
1028         * config/glibc-c.c: Likewise.
1029         * config/h8300/h8300.c: Likewise.
1030         * config/i386/host-cygwin.c: Likewise.
1031         * config/i386/host-mingw32.c: Likewise.
1032         * config/i386/i386-c.c: Likewise.
1033         * config/i386/i386.c: Likewise.
1034         * config/i386/msformat-c.c: Likewise.
1035         * config/i386/winnt-cxx.c: Likewise.
1036         * config/i386/winnt-stubs.c: Likewise.
1037         * config/i386/winnt.c: Likewise.
1038         * config/ia64/ia64-c.c: Likewise.
1039         * config/ia64/ia64.c: Likewise.
1040         * config/iq2000/iq2000.c: Likewise.
1041         * config/lm32/lm32.c: Likewise.
1042         * config/m32c/m32c-pragma.c: Likewise.
1043         * config/m32c/m32c.c: Likewise.
1044         * config/m32r/m32r.c: Likewise.
1045         * config/mcore/mcore.c: Likewise.
1046         * config/mep/mep-pragma.c: Likewise.
1047         * config/mep/mep.c: Likewise.
1048         * config/microblaze/microblaze-c.c: Likewise.
1049         * config/microblaze/microblaze.c: Likewise.
1050         * config/mips/mips-tables.opt
1051         * config/mips/mips.c: Likewise.
1052         * config/mmix/mmix.c: Likewise.
1053         * config/mn10300/mn10300.c: Likewise.
1054         * config/moxie/moxie.c: Likewise.
1055         * config/msp430/msp430-c.c: Likewise.
1056         * config/msp430/msp430.c: Likewise.
1057         * config/nds32/nds32-cost.c: Likewise.
1058         * config/nds32/nds32-fp-as-gp.c: Likewise.
1059         * config/nds32/nds32-intrinsic.c: Likewise.
1060         * config/nds32/nds32-isr.c: Likewise.
1061         * config/nds32/nds32-md-auxiliary.c: Likewise.
1062         * config/nds32/nds32-memory-manipulation.c: Likewise.
1063         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1064         * config/nds32/nds32-predicates.c: Likewise.
1065         * config/nds32/nds32.c: Likewise.
1066         * config/nios2/nios2.c: Likewise.
1067         * config/nvptx/mkoffload.c: Likewise.
1068         * config/nvptx/nvptx.c: Likewise.
1069         * config/pa/pa.c: Likewise.
1070         * config/pdp11/pdp11.c: Likewise.
1071         * config/rl78/rl78-c.c: Likewise.
1072         * config/rl78/rl78.c: Likewise.
1073         * config/rs6000/host-darwin.c: Likewise.
1074         * config/rs6000/rs6000-c.c: Likewise.
1075         * config/rs6000/rs6000-linux.c: Likewise.
1076         * config/rs6000/rs6000.c: Likewise.
1077         * config/rx/rx.c: Likewise.
1078         * config/s390/s390-c.c: Likewise.
1079         * config/s390/s390.c: Likewise.
1080         * config/sh/sh-c.c: Likewise.
1081         * config/sh/sh-mem.cc: Likewise.
1082         * config/sh/sh.c: Likewise.
1083         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1084         * config/sh/sh_treg_combine.cc: Likewise.
1085         * config/sol2-c.c: Likewise.
1086         * config/sol2-cxx.c: Likewise.
1087         * config/sol2-stubs.c: Likewise.
1088         * config/sol2.c: Likewise.
1089         * config/sparc/sparc-c.c: Likewise.
1090         * config/sparc/sparc.c: Likewise.
1091         * config/spu/spu-c.c: Likewise.
1092         * config/spu/spu.c: Likewise.
1093         * config/stormy16/stormy16.c: Likewise.
1094         * config/v850/v850-c.c: Likewise.
1095         * config/v850/v850.c: Likewise.
1096         * config/vax/vax.c: Likewise.
1097         * config/visium/visium.c: Likewise.
1098         * config/vms/vms-c.c: Likewise.
1099         * config/vms/vms.c: Likewise.
1100         * config/vxworks.c: Likewise.
1101         * config/winnt-c.c: Likewise.
1102         * config/xtensa/xtensa.c: Likewise.
1103
1104 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1105
1106         PR target/67745
1107         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
1108         (FUNCTION_BOUNDARY_P): New macro:
1109         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
1110         New hook.
1111         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
1112         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
1113         * gcc/target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
1114         * gcc/function.c (allocate_struct_function): Call
1115         relayout_function hook.
1116         * gcc/passes.c (rest_of_decl_compilation): Likewise.
1117
1118 2015-10-16  Christian Bruel  <christian.bruel@st.com>
1119
1120         PR target/67745
1121         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
1122         * config/arm/arm.c (arm_option_override_internal): Call
1123         arm_override_options_after_change_1.
1124         (arm_override_options_after_change): New function.
1125         (arm_override_options_after_change_1): Likewise.
1126         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
1127
1128 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1129
1130         Revert:
1131         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1132         empty constructors.
1133
1134 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
1135
1136         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
1137         argument is an ADDR_EXPR.
1138
1139 2015-10-16  Richard Biener  <rguenther@suse.de>
1140
1141         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
1142         and get rid of force_gimple_operand_gsi.
1143         (gimple_fold_builtin_memory_chk): Likewise.
1144         (gimple_fold_builtin_stxcpy_chk): Likewise.
1145         (rewrite_to_defined_overflow): Likewise.
1146         (gimple_convert_to_ptrofftype): New function.
1147         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
1148
1149 2015-10-16  Richard Biener  <rguenther@suse.de>
1150
1151         * tree-nested.h (build_addr): Adjust prototype.
1152         * tree-nested.c (build_addr): Remove context argument and use
1153         mark_addressable.
1154         (get_static_chain): Adjust calls to build_addr.
1155         (convert_nl_goto_reference): Likewise.
1156         (convert_tramp_reference_op): Likewise.
1157         (finalize_nesting_tree_1): Likewise.
1158         * value-prof.c (gimple_ic): Likewise.
1159         * gimple-low.c (lower_builtin_setjmp): Likewise.
1160         * tree-parloops.c (take_address_of): Likewise.
1161         (create_call_for_reduction_1): Likewise.
1162         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
1163         (gimple_gen_ic_func_profiler): Likewise.
1164
1165 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1166
1167         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
1168         empty constructors.
1169
1170 2015-10-16  Michael Collison  <michael.collison@linaro.org>
1171             Andrew Pinski <andrew.pinski@caviumnetworks.com>
1172
1173         * match.pd ((x < y) && (x < z) -> x < min (y,z),
1174         (x > y) and (x > z) -> x > max (y,z))
1175
1176 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
1177             Szabolcs Nagy  <szabolcs.nagy@arm.com>
1178
1179         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
1180         (DYNAMIC_LINKER): Renamed to ...
1181         (GLIBC_DYNAMIC_LINKER): This.
1182         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
1183
1184 2015-10-15  Marek Polacek  <polacek@redhat.com>
1185
1186         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
1187         gimple_call_builtin instead of is_gimple_call.
1188
1189 2015-10-15  Richard Biener  <rguenther@suse.de>
1190
1191         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
1192
1193 2015-10-15  Richard Biener  <rguenther@suse.de>
1194
1195         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
1196         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
1197         * tree-vect-loop.c (get_initial_def_for_induction): Drop
1198         use of force_gimple_operand in favor of gimple_build.
1199         Use vect_get_new_ssa_name.
1200         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
1201         (vectorizable_mask_load_store): Likewise.
1202         (vectorizable_call): Likewise.
1203         (vectorizable_store): Likewise.
1204         (vectorizable_load): Likewise.
1205         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
1206
1207 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
1208
1209         PR tree-optimization/67945
1210         * tree-pass.h (PROP_gimple_opt_math): New property flag.
1211         * generic-match-head.c (canonicalize_math_p): New function.
1212         * gimple-match-head.c: Include tree-pass.h.
1213         (canonicalize_math_p): New function.
1214         * match.pd: Group math built-in rules into simplifications
1215         and canonicalizations.  Guard the latter with canonicalize_math_p.
1216         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
1217         PROP_gimple_opt_math property.
1218
1219 2015-10-15  Marek Polacek  <polacek@redhat.com>
1220
1221         PR tree-optimization/67953
1222         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
1223
1224 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
1225
1226         * config.gcc: Recognize "." in architecture base name for AArch64.
1227
1228 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1229
1230         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
1231         ROUND_UP macro.
1232         * config/mips/mips.c (mips_setup_incoming_varargs): Use
1233         ROUND_DOWN to calculate off.
1234         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
1235         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
1236         rounded_size.
1237
1238 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
1239
1240         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
1241
1242 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
1243             Torvald Riegel  <triegel@redhat.com>
1244
1245         PR target/67281
1246         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
1247         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1248         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
1249         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
1250         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
1251         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
1252         trechkpt, treclaim, tsr, ttest): New define_expands.
1253         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
1254         __TM_FENCE__ for htm.
1255         * doc/extend.texi: Update documentation for htm builtins.
1256
1257 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
1258
1259         PR target/67967
1260         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
1261         REG_CFA_EXPRESSION to aligned SSE stores.
1262
1263 2015-10-14  Jeff Law  <law@redhat.com>
1264
1265         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
1266         num_threaded_edges for successful FSM threads too.
1267
1268 2015-10-14  Richard Biener  <rguenther@suse.de>
1269
1270         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
1271         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
1272         (vect_get_vec_def_for_operand): Remove unused parameter.
1273         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
1274         (vect_create_epilog_for_reduction): Likewise.
1275         (vectorizable_reduction): Likewise.
1276         (vectorizable_live_operation): Likewise.
1277         * tree-vect-patterns.c (type_conversion_p): Likewise.
1278         (vect_recog_vector_vector_shift_pattern): Likewise.
1279         (check_bool_pattern): Likewise.
1280         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
1281         (vect_analyze_slp_cost_1): Likewise.
1282         * tree-vect-stmts.c (process_use): Likewise.
1283         (vect_get_vec_def_for_operand): Do not handle reductions.
1284         (vect_get_vec_defs): Adjust.
1285         (vectorizable_mask_load_store): Likewise.
1286         (vectorizable_call): Likewise.
1287         (vectorizable_simd_clone_call): Likewise.
1288         (vect_get_loop_based_defs): Likewise.
1289         (vectorizable_conversion): Likewise.
1290         (vectorizable_assignment): Likewise.
1291         (vectorizable_shift): Likewise.
1292         (vectorizable_operation): Likewise.
1293         (vectorizable_store): Likewise.
1294         (vectorizable_load): Likewise.
1295         (vect_is_simple_cond): Likewise.
1296         (vectorizable_condition): Likewise.
1297         (vect_is_simple_use): Remove unused parameters.
1298         (vect_is_simple_use_1): Adjust and rename.
1299
1300 2015-10-14  Richard Biener  <rguenther@suse.de>
1301
1302         PR tree-optimization/67915
1303         * match.pd: Handle comparisons of addresses of STRING_CSTs.
1304         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
1305         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
1306         stmt folding in favor of GIMPLE one.
1307
1308 2015-10-14  Marek Polacek  <polacek@redhat.com>
1309
1310         PR tree-optimization/67815
1311         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
1312         (reassociate_bb): Call it.
1313
1314 2015-10-14  Richard Biener  <rguenther@suse.de>
1315
1316         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1317         Reset info at start.
1318         (vect_analyze_group_access_1): Add debug print.
1319         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
1320         (vect_compute_single_scalar_iteration_cost): ... to this.
1321         (vect_analyze_loop_2): Adjust.
1322         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
1323         * tree-vectorizer.h: ... here.
1324         (add_stmt_info_to_vec): Remove.
1325         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
1326
1327 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1328
1329         * targhooks.c (default_target_option_pragma_parse): Do not warn if
1330         called on behalf of "#pragma GCC pop_options".
1331
1332 2015-10-14  Tom de Vries  <tom@codesourcery.com>
1333
1334         * cfganal.c (verify_no_unreachable_blocks): New function.
1335         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
1336         verify_no_unreachable_blocks.
1337         cfganal.h (verify_no_unreachable_blocks): Declare.
1338
1339 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
1340
1341         * common.opt: Add flag_checking.
1342         * system.h (CHECKING_P): Define.
1343
1344 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
1345             Aldy Hernandez  <aldyh@redhat.com>
1346             Ilya Verbin  <ilya.verbin@intel.com>
1347
1348         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
1349         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
1350         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
1351         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
1352         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
1353         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
1354         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
1355         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
1356         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
1357         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
1358         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
1359         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
1360         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
1361         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
1362         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
1363         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
1364         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
1365         (struct cgraph_simd_clone_arg): Adjust comment.
1366         * coretypes.h (struct gomp_ordered): New forward decl.
1367         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
1368         set critical clauses to it.
1369         (gimple_build_omp_ordered): Return gomp_ordered * instead of
1370         gimple *.  Add CLAUSES argument, set ordered clauses to it.
1371         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
1372         GIMPLE_OMP_ORDERED.
1373         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
1374         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
1375         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
1376         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
1377         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
1378         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
1379         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
1380         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
1381         renumber
1382         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
1383         (gomp_critical): Add clauses field.
1384         (gomp_ordered): New struct.
1385         (is_a_helper <gomp_ordered *>::test): New inline.
1386         (gimple_build_omp_critical): Add CLAUSES argument.
1387         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
1388         instead of gimple *.
1389         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
1390         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
1391         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
1392         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
1393         inline functions.
1394         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
1395         (dump_gimple_omp_target): Handle enter data and exit data.
1396         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
1397         (dump_gimple_omp_critical): Print clauses.
1398         (dump_gimple_omp_ordered): New function.
1399         (dump_gimple_omp_task): Handle taskloop.
1400         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
1401         GIMPLE_OMP_ORDERED.
1402         * gimple-walk.c (walk_gimple_op): Walk clauses on
1403         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
1404         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
1405         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
1406         (struct gimplify_omp_ctx): Add loop_iter_var,
1407         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
1408         and target_firstprivatize_array_bases fields.
1409         (delete_omp_context): Release loop_iter_var.
1410         (gimplify_bind_expr): Handle ORT_NONE.
1411         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
1412         ORT_COMBINED_TARGET.
1413         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
1414         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
1415         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
1416         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
1417         ctx->target_map_scalars_firstprivate.
1418         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
1419         data sharing clauses.  For data sharing clause with VLA decl
1420         on omp target/target data don't add firstprivate for the pointer.
1421         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
1422         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
1423         the addition of ORT_COMBINED_TARGET.
1424         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
1425         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
1426         pointers as zero length array sections and
1427         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
1428         data sharing.
1429         (omp_check_private): Handle omp_member_access_dummy_var vars.
1430         (find_decl_expr): New function.
1431         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
1432         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
1433         Handle OMP_CLAUSE_GANG separately.  Handle
1434         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1435         clauses.  Diagnose linear clause on combined
1436         distribute {, parallel for} simd construct, unless it is the loop
1437         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
1438         Handle map clauses with COMPONENT_REF.  Initialize
1439         ctx->target_map_scalars_firstprivate,
1440         ctx->target_firstprivatize_array_bases and
1441         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
1442         linear clause even to target region if combined.  Remove
1443         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
1444         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
1445         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
1446         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
1447         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
1448         For linear clause on worksharing loop combined with parallel add
1449         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
1450         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
1451         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
1452         taskloop if needed.
1453         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
1454         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
1455         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
1456         GOMP_MAP_POINTER.
1457         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
1458         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
1459         in target body.  Handle removal of struct mapping if struct is not
1460         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
1461         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
1462         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
1463         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
1464         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
1465         clause appear together.  Handle
1466         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
1467         clause if it has map-type-modifier always.  Handle
1468         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
1469         clauses.
1470         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
1471         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
1472         callers.
1473         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
1474         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
1475         iterators in doacross loops.
1476         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
1477         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
1478         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
1479         for the addition of ORT_COMBINED_TARGET.
1480         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
1481         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
1482         and OMP_TARGET_EXIT_DATA.
1483         (gimplify_omp_ordered): New function.
1484         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
1485         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
1486         Gimplify clauses on OMP_CRITICAL.
1487         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
1488         expand_GOMP_SIMD_ORDERED_END): New functions.
1489         * internal-fn.def (GOMP_SIMD_ORDERED_START,
1490         GOMP_SIMD_ORDERED_END): New internal functions.
1491         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
1492         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
1493         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
1494         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
1495         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
1496         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
1497         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
1498         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
1499         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
1500         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
1501         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
1502         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
1503         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
1504         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
1505         adjust type.
1506         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
1507         GOMP_target_data_41, adjust type.
1508         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
1509         GOMP_target_update_41, adjust type.
1510         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
1511         field.
1512         (struct omp_for_data): Add ordered and simd_schedule fields.
1513         (omp_member_access_dummy_var, unshare_and_remap_1,
1514         unshare_and_remap, is_taskloop_ctx): New functions.
1515         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
1516         (extract_omp_for_data): Handle taskloops and doacross loops
1517         and simd schedule modifier.
1518         (omp_adjust_chunk_size): New function.
1519         (get_ws_args_for): Use it.
1520         (lookup_sfield): Change first argument to splay_tree_key,
1521         add overload with first argument tree.
1522         (maybe_lookup_field): Likewise.
1523         (use_pointer_for_field): Handle omp_member_access_dummy_var.
1524         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
1525         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
1526         (build_outer_var_ref): Add LASTPRIVATE argument, handle
1527         taskloops and omp_member_access_dummy_var vars.
1528         (build_sender_ref): Change first argument to splay_tree_key,
1529         add overload with first argument tree.
1530         (install_var_field): For mask & 8 use &DECL_UID as key instead
1531         of the tree itself.
1532         (fixup_child_record_type): Const qualify *.omp_data_i.
1533         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
1534         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
1535         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
1536         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
1537         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
1538         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
1539         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
1540         kinds.
1541         (add_taskreg_looptemp_clauses): New function.
1542         (scan_omp_parallel): Use it.
1543         (scan_omp_task): Likewise.
1544         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1545         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
1546         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1547         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
1548         sandwiched taskloop constructs.  Type check
1549         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
1550         region.  Diagnose depend(source) or depend(sink:...) on
1551         target constructs or task/taskloop.
1552         (handle_simd_reference): Use get_name.
1553         (lower_rec_input_clauses): Likewise.  Ignore all
1554         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
1555         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
1556         before passing it to omp_clause_{default,copy}_ctor.  Handle
1557         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
1558         lastprivate_firstprivate flag for linear that needs copyin and
1559         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
1560         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
1561         on taskloop lookup decl in outer context.  Pass true to
1562         build_outer_var_ref lastprivate argument.  Handle
1563         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
1564         outside of outer taskloop for.
1565         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
1566         OMP_CLAUSE_DECL.
1567         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
1568         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
1569         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
1570         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
1571         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
1572         abstract origin.  Handle omp_member_access_dummy_var vars.
1573         (expand_parallel_call): Use expand_omp_build_assign.
1574         (expand_task_call): Handle taskloop construct expansion.  Add
1575         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
1576         integers.  Add priority argument to GOMP_task* calls.  Or in
1577         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
1578         GOMP_task call.
1579         (expand_omp_build_assign): Add prototype.  Add AFTER
1580         argument, if true emit statements after *GSI_P and continue linking.
1581         (expand_omp_taskreg): Adjust expand_task_call caller.
1582         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
1583         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
1584         zero_iter2_bb and first_zero_iter2 arguments, handle computation
1585         of counts even for ordered loops.
1586         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
1587         (expand_omp_ordered_source, expand_omp_ordered_sink,
1588         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
1589         functions.
1590         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
1591         clauses on worksharing loop.  Handle DOACROSS loop expansion.
1592         (expand_omp_for_static_nochunk): Handle linear clauses on
1593         worksharing loop.  Adjust expand_omp_for_init_counts
1594         callers.
1595         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
1596         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
1597         expand_omp_for_init_counts callers.
1598         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
1599         functions.
1600         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
1601         Handle doacross loops.
1602         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1603         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
1604         GOMP_target_{41,update_41,enter_exit_data} libcalls.
1605         (expand_omp): Don't expand ordered depend constructs here, record
1606         ord_stmt instead for later expand_omp_for_generic.
1607         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1608         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1609         clause as stand-alone directive.
1610         (lower_omp_ordered_clauses): New function.
1611         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
1612         don't lower anything.
1613         (lower_omp_for_lastprivate): Use last _looptemp_ clause
1614         on taskloop for comparison.
1615         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
1616         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
1617         expansion for linear adjustments.
1618         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
1619         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
1620         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
1621         to tree * pointing to the stmt's clauses.
1622         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
1623         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
1624         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
1625         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
1626         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
1627         clauses.  Always use short kind and 8-bit align shift.
1628         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
1629         (struct lower_omp_regimplify_operands_data): New type.
1630         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
1631         New functions.
1632         (lower_omp_1): Use lower_omp_regimplify_operands instead of
1633         gimple_regimplify_operands.
1634         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
1635         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
1636         clause as stand-alone directive.
1637         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
1638         (simd_clone_mangle): Mangle the various linear kinds
1639         per the new ABI.
1640         (simd_clone_adjust_argument_types): Handle
1641         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
1642         (simd_clone_init_simd_arrays): Don't do anything for uval.
1643         (simd_clone_adjust): Handle
1644         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
1645         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
1646         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
1647         * omp-low.h (omp_member_access_dummy_var): New prototype.
1648         * passes.def (pass_simduid_cleanup): Schedule another copy of the
1649         pass after all optimizations.
1650         * tree.c (omp_clause_code_name): Add entries for
1651         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1652         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1653         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
1654         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
1655         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
1656         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
1657         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1658         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
1659         clauses.
1660         * tree-core.h (enum omp_clause_linear_kind): New.
1661         (struct tree_omp_clause): Change type of map_kind
1662         from unsigned char to unsigned int.  Add subcode.if_modifier
1663         and subcode.linear_kind fields.
1664         (enum omp_clause_code): Add
1665         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
1666         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
1667         (OMP_CLAUSE_REDUCTION): Document
1668         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1669         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
1670         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
1671         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
1672         operand.
1673         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
1674         operand.
1675         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
1676         codes.
1677         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
1678         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
1679         char.
1680         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
1681         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
1682         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
1683         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
1684         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
1685         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
1686         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
1687         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
1688         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
1689         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
1690         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
1691         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
1692         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
1693         * tree-inline.c (remap_gimple_stmt): Handle clauses on
1694         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
1695         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
1696         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
1697         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1698         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1699         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
1700         (convert_local_omp_clauses): Likewise.
1701         * tree-pretty-print.c (dump_omp_clause): Handle
1702         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
1703         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
1704         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
1705         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
1706         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
1707         GOMP_MAP_FORCE_DEALLOC.  Handle
1708         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
1709         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
1710         and clauses on OMP_ORDERED and OMP_CRITICAL.
1711         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
1712         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
1713         (vectorize_loops): Adjust comments.
1714         (pass_simduid_cleanup::execute): Likewise.
1715         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
1716         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
1717         * wide-int.h (wi::gcd): New.
1718
1719 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1720
1721         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
1722         (ix86_function_arg_advance): Ditto.
1723         (ix86_function_arg): Ditto.
1724         (ix86_gimplify_va_arg): Ditto.
1725         (ix86_class_max_nregs): Ditto.
1726         (inline_memory_move_cost): Ditto.
1727         (ix86_set_reg_reg_cost): Ditto.
1728         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
1729
1730 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
1731
1732         PR middle-end/67912
1733         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
1734
1735 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
1736
1737         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
1738         ROUND_UP macro and UNITS_PER_WORD * 2.
1739         * config/sparc/sparc.c (sparc_compute_frame_size):
1740         Use ROUND_UP and ROUND_DOWN macros where applicable.
1741         (function_arg_record_value, function_arg_record_value_1)
1742         (function_arg_record_value_1): Ditto.
1743         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
1744         alignment to double-word.
1745         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
1746         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
1747         rounded_size.
1748
1749 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
1750
1751         * gcc/rtl.h (print_insn): Fix prototype.
1752
1753 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1754
1755         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
1756         -1.  Add assert that returned entry matches phi argument.
1757         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
1758         free_stmt_vec_info_vec ...
1759         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
1760         with -1.
1761
1762 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
1763
1764         PR tree-optimization/67909, 67947
1765         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
1766         really skip the inner loop.
1767
1768 2015-10-13  Jeff Law  <law@redhat.com>
1769
1770         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
1771         Allow single block jump threading paths.
1772
1773 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1774
1775         PR tree-optimization/67476
1776         * doc/invoke.texi (@item parloops-schedule): New item.
1777         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
1778         * tree-parloops.c: Include params-enum.h.
1779         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
1780
1781 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1782
1783         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
1784         * params-enum.h: New file.
1785         * opts.c (handle_param): Handle case that param arg is a string.
1786         * params-list.h: Handle DEFPARAMENUM5 in params.def.
1787         * params.c (find_param): New function, factored out of ...
1788         (set_param_value): ... here.
1789         (param_string_value_p): New function.
1790         * params.h (struct param_info): Add value_names field.
1791         (find_param, param_string_value_p): Declare.
1792
1793 2015-10-13  Tom de Vries  <tom@codesourcery.com>
1794
1795         PR tree-optimization/67476
1796         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
1797
1798 2015-10-13  Richard Biener  <rguenther@suse.de>
1799
1800         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
1801         the data dependence vector.
1802         (vect_peeling_hash_insert): Get the peeling hash table as argument.
1803         (vect_peeling_hash_get_lowest_cost): Likewise.
1804         (vect_enhance_data_refs_alignment): Adjust.
1805         (struct _vect_peel_info, struct _vect_peel_extended_info,
1806         struct peel_info_hasher): Move from ...
1807         * tree-vectorizer.h: ... here.
1808         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
1809         (LOOP_VINFO_PEELING_HTAB): Likewise.
1810         (struct _loop_vec_info): Remove min_profitable_iters and
1811         peeling_htab members.
1812         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
1813         here.
1814         (destroy_loop_vec_info): Adjust.
1815         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
1816         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
1817         to estimate alias versioning cost.
1818         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
1819
1820 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
1821
1822         * real.h (real_isinteger): Declare.
1823         * real.c (real_isinteger): New function.
1824         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
1825         if y is an even integer.
1826
1827 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1828
1829         revert:
1830         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1831         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1832         counts when these are more informative.
1833
1834 2015-10-12  Jeff Law  <law@redhat.com>
1835
1836         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
1837         (fsm_find_control_stmt_paths): Change name of first argument to
1838         more accurately relfect what it really is.  Handle simplification
1839         of GIMPLE_COND after finding a thread path for NAME.
1840         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
1841         nontrivial conditions to be handled by FSM threader.
1842         (thread_through_normal_block): Extract the name to looup via
1843         FSM threader from COND_EXPR.
1844
1845         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
1846         restriction that traced SSA_NAME is a user variable.
1847
1848 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1849
1850         PR tree-optimization/67476
1851         * omp-low.c (expand_omp_for_generic): Add missing phis.
1852
1853 2015-10-12  Tom de Vries  <tom@codesourcery.com>
1854
1855         PR tree-optimization/67476
1856         * omp-low.c (expand_omp_for_generic): Handle simple latch.
1857
1858 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
1859
1860         * config/aarch64/aarch64-simd-builtins.def: Update builtins
1861         tables: add tbl3 and tbx4.
1862         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
1863         (aarch64_tbx4v8qi): New.
1864         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
1865         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
1866         Rewrite using builtin functions.
1867         * config/aarch64/iterators.md (UNSPEC_TBX): New.
1868
1869 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1870
1871         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
1872         ROUND_UP macro.
1873         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
1874         Use ROUND_UP and ROUND_DOWN macros where applicable.
1875         (rs6000_darwin64_record_arg_flush): Ditto.
1876         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
1877         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
1878         rounded_size.
1879
1880 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
1881
1882         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
1883         (AARCH64_ROUND_DOWN): Ditto.
1884         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
1885
1886 2015-10-12  Richard Biener  <rguenther@suse.de>
1887
1888         PR ipa/67783
1889         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
1890         code that analyzes IVs on each stmt but in a cheaper way avoiding
1891         quadratic behavior.
1892
1893 2015-10-12  Nick Clifton  <nickc@redhat.com>
1894
1895         * config/msp430/msp430.c (msp430_mcu_names): Rename to
1896         msp430_mcu_data, add fields for ISA and hardware multiply
1897         support.  Import latest data from the devices.csv file.
1898         (msp430_override_option): Use the data from the new array.
1899         (msp430_use_f5_series_hwmult): Likewise.
1900         (use_32bit_hwmult): Likewise.
1901         (msp430_no_hwmult): Likewise.
1902         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
1903         MCU names.
1904         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
1905         not recognised then no hardware multiply support is assumed and
1906         that only the MSP430 ISA is allowed.
1907
1908 2015-10-12  Richard Biener  <rguenther@suse.de>
1909
1910         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
1911         related code ...
1912         (vect_analyze_loop_2): ... here.
1913
1914 2015-10-11  Jason Merrill  <jason@redhat.com>
1915
1916         PR c++/67557
1917         * expr.c (store_field): Call store_constructor directly when
1918         storing a CONSTRUCTOR into a target smaller than its type.
1919         Guard against unsafe bitwise copy.
1920
1921 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1922
1923         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
1924         counts when these are more informative.
1925
1926 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1927
1928         * tree-profile.c (tree_profiling): Do not clear
1929         pure/const when not instrumenting.
1930         (pass tree_profile): Add dump of symtab.
1931
1932 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
1933
1934         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
1935         addresses.
1936         (fold_addr_of_array_ref_difference): Likewise.
1937
1938 2015-10-11  Jeff Law  <law@redhat.com>
1939
1940         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
1941         tree-ssa-threadbackward.c.
1942         (fsm_find_control_statement_thread_paths): Likewise.
1943         (thread_through_normal_block): Break out FSM bits and move them
1944         into a new function in tree-ssa-threadbackward.c.  Call new function
1945         instead.
1946         Minimize header file usage.
1947         * tree-ssa-threadbackward.h: New file.
1948         * tree-ssa-threadbackward.c: Likewise.
1949         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
1950
1951 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
1952
1953         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
1954
1955 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
1956
1957         PR rtl-optimization/67864
1958         * gcc/bb-reorder (reorder_basic_blocks_simple): Prefer existing
1959         fallthrough edges for conditional jumps.  Don't sort candidate
1960         edges if not optimizing for speed.
1961
1962 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1963
1964         * defaults.h (REVERSE_CONDITION): New default definition.
1965         * jump.c (reversed_comparison_code_parts): Adjust.
1966
1967 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1968
1969         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
1970         check HARD_FRAME_POINTER_IS_ARG_POINTER.
1971
1972 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1973
1974         * defaults.h (FRAME_ADDR_RTX): New default definition.
1975         * builtins.c (expand_builtin_return_addr): Adjust.
1976
1977 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1978
1979         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
1980         * builtins.c (expand_builtin_return_addr): Adjust.
1981
1982 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1983
1984         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
1985         * builtins.c (expand_builtin_return_addr): Adjust.
1986         * doc/tm.texi: Likewise.
1987         * doc/tm.texi.in: Likewise.
1988         * except.c (expand_builtin_unwind_init): Likewise.
1989
1990 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1991
1992         * builtins.c (expand_builtin_return_addr): Adjust.
1993         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
1994
1995 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
1996
1997         * tree.c (type_with_interoperable_signedness): New.
1998         (gimple_canonical_types_compatible_p): Use it.
1999         * tree.h (type_with_interoperable_signedness): Declare
2000
2001 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
2002
2003         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
2004         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
2005         when OEP_ADDRESS_OF is se.
2006
2007 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2008             Sebastian Pop  <s.pop@samsung.com>
2009
2010         * graphite-dependences.c (scop_get_dependences): Add dump of the
2011         data dependence graph.
2012         * graphite-poly.c (print_isl_union_map): New.
2013         (debug_isl_union_map): New.
2014         * graphite-poly.h (print_isl_union_map): Declare.
2015         (debug_isl_union_map): Declare.
2016
2017 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
2018             Sebastian Pop  <s.pop@samsung.com>
2019
2020         * graphite-poly.c (print_iteration_domain): Remove verbosity.
2021         Remove OpenScop formatting.
2022         (print_iteration_domains): Same.
2023         (debug_iteration_domain): Same.
2024         (debug_iteration_domains): Same.
2025         (print_pdr): Same.
2026         (debug_pdr): Same.
2027         (dump_gbb_cases): Same.
2028         (dump_gbb_conditions): Same.
2029         (print_pdrs): Same.
2030         (debug_pdrs): Same.
2031         (print_pbb_body): Same.
2032         (print_pbb): Same.
2033         (print_scop_params): Same.
2034         (print_scop_context): Same.
2035         (print_scop): Same.
2036         (debug_pbb_domain): Same.
2037         (debug_pbb): Same.
2038         (debug_scop_context): Same.
2039         (debug_scop): Same.
2040         (debug_scop_params): Same.
2041         * graphite-poly.h: Same.
2042         * graphite.c (graphite_transform_loops): Same.
2043
2044 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2045
2046         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
2047         call that isn't needed.
2048
2049 2015-10-09  Jeff Law  <law@redhat.com>
2050
2051         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
2052         rather than moving each name to the freelist individually.
2053
2054 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
2055
2056         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
2057         * frame-header-opt.c: New file.
2058         * config/mips/mips-proto.h (mips_register_frame_header_opt):
2059         Add prototype.
2060         * config/mips/mips.c (mips_compute_frame_info): Check
2061         optimize_call_stack flag.
2062         (mips_option_override): Register new frame_header_opt pass.
2063         (mips_frame_info, mips_int_mask, mips_shadow_set,
2064         machine_function): Move these types to...
2065         * config/mips/mips.h: here.
2066         (machine_function): Add does_not_use_frame_header and
2067         optimize_call_stack fields.
2068         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
2069         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
2070         Document new flags.
2071         * config/mips/mips.opt (mframe-header-opt): Add new option.
2072
2073 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
2074
2075         * config/i386/i386.c
2076         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
2077         ROUND_DOWN where applicable.
2078
2079 2015-10-09  Jeff Law  <law@redhat.com>
2080
2081         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
2082         correct statement.
2083
2084 2015-10-09  Renlin Li  <renlin.li@arm.com>
2085
2086         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
2087         operands[0] and operands[2].
2088         (neon_vtrn<mode>_insn): Likewise.
2089         (neon_vzip<mode>_insn): Likewise.
2090
2091 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2092
2093         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
2094         ((X & C2) << C1): Expand to...
2095         (X {&,^,|} C2 << C1): ...This.
2096         ((X & C2) >> C1): Expand to...
2097         (X {&,^,|} C2 >> C1): ...This.
2098
2099 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
2100
2101         PR target/67895
2102         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
2103         Adjust embedded rounding/SAE specifier position.
2104         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
2105         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
2106         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
2107         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
2108         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
2109         Likewise.
2110         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
2111
2112 2015-10-09  Martin Jambor  <mjambor@suse.cz>
2113
2114         tree-optimization/67794
2115         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
2116         between types of state,ents but accept original definitions as a
2117         parameter.
2118         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
2119         iterate over definitions.
2120
2121 2015-10-09  James Norris  <jnorris@codesourcery.com>
2122
2123         * config/rs6000/rs6000.c (rs6000_offload_options): New.
2124         (TARGET_OFFLOAD_OPTIONS): New.
2125
2126 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
2127
2128         PR middle-end/67891
2129         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
2130
2131         PR middle-end/67766
2132         * function.c (expand_function_end): Move return value
2133         promotion past the handling of PARALLELs and CONCATs.
2134
2135         PR rtl-optimization/67828
2136         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
2137         (tree_may_unswitch_on): Don't unswitch on expressions
2138         involving undefined values.
2139
2140 2015-10-09  Richard Biener  <rguenther@suse.de>
2141
2142         * genmatch.c (print_operand): Fix formatting.
2143         (dt_node::append_simplify): Warn for multiple simplifiers
2144         that match the same pattern.
2145         * match.pd (log (exp @0)): Remove duplicates.
2146
2147 2015-10-09  Richard Biener  <rguenth@suse.de>
2148
2149         PR target/67366
2150         * gimple-fold.c (optabs-query.h): Include
2151         (gimple_fold_builtin_memory_op): Allow unaligned stores
2152         when movmisalign_optabs are available.
2153
2154 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2155
2156         PR target/67366
2157         * config/arm/arm.md (movmisalign<mode>): New.
2158         * config/arm/iterators.md (HSI): New.
2159
2160 2015-10-09  Richard Biener  <rguenther@suse.de>
2161
2162         PR tree-optimization/67891
2163         * gimple-match.h (gimple_simplified_result_is_gimple_val):
2164         New helper.
2165         (gimple_resimplify1): Declare.
2166         (gimple_resimplify2): Likewise.
2167         (gimple_resimplify3): Likewise.
2168         * gimple-match-head.c (gimple_resimplify1): Export.
2169         (gimple_resimplify2): Likewise.
2170         (gimple_resimplify3): Likewise.
2171         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
2172         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
2173         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
2174         to avoid creating stmts without VN info.
2175
2176 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
2177
2178         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
2179         of availability.
2180
2181 2015-10-08  Jeff Law  <law@redhat.com>
2182
2183         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
2184         and release_ssa_name in two places.
2185         (gimple_stringop_fixed_value): Similarly.
2186
2187         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
2188         release_defs.
2189
2190         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
2191         unlink_stmt_vdef and release_ssa_name_fn.
2192
2193         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
2194         release_defs.
2195
2196 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
2197
2198         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
2199         SSE register save area to 16 bytes only if the incoming stack
2200         boundary is no less than 16 bytes.
2201
2202 2015-10-08  Jeff Law  <law@redhat.com>
2203
2204         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
2205         release_ssa_name.  Fix typo in comment.
2206
2207 2015-10-08  Nathan Sidwell  <nathan@acm.org>
2208
2209         * config/nvptx/nvptx.h (struct machine_function): Add comment.
2210         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
2211         may return pointer as well as in memory.
2212         (nvptx_output_return): Likewise.
2213
2214 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2215
2216         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
2217         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
2218         * match.pd: Add rules previously handled by fold_builtin_sqrt
2219         and fold_builtin_cbrt.
2220
2221 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
2222
2223         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
2224         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
2225         * fold-const.h (tree_unary_nonnegative_warnv_p)
2226         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2227         (tree_expr_nonnegative_warnv_p): Add depth parameters.
2228         * fold-const.c: Include gimple-fold.h and params.h.
2229         (tree_ssa_name_nonnegative_warnv_p): New function.
2230         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
2231         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
2232         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
2233         Add a depth parameter and increment it for recursive calls to
2234         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
2235         to handle SSA names.
2236         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
2237         (gimple_stmt_nonnegative_warnv_p): Declare.
2238         * tree-vrp.c (remove_range_assertions): Remove assert that condition
2239         cannot be proven false.
2240         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
2241         (gimple_stmt_nonnegative_warnv_p): Move to...
2242         * gimple-fold.c: ...here.  Add depth parameters and pass them
2243         down to the tree routines.  Accept statements that aren't
2244         assignments or calls but just return false for them.
2245         (gimple_val_nonnegative_real_p): Delete.
2246         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
2247         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
2248         Check HONOR_NANs first.
2249
2250 2015-10-08  Martin Jambor  <mjambor@suse.cz>
2251
2252         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
2253         unnecessary MIN.
2254
2255 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2256
2257         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
2258         in the tail of outer-loop.
2259
2260 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
2261
2262         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
2263         return UI_NONE.
2264
2265 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
2266
2267         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
2268         "cfghooks.h", add prototypes for introduced new functions.
2269         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
2270         checks on ability of loop unswitching to tree_unswitch_single_loop;
2271         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
2272         on innermost loop check.
2273         (tree_unswitch_single_loop): Add all required checks on ability of
2274         loop unswitching under zero recursive level guard.
2275         (tree_unswitch_outer_loop): New function.
2276         (find_loop_guard): Likewise.
2277         (empty_bb_without_guard_p): Likewise.
2278         (used_outside_loop_p): Likewise.
2279         (get_vop_from_header): Likewise.
2280         (hoist_guard): Likewise.
2281         (check_exit_phi): Likewise.
2282
2283 2015-10-08  Marek Polacek  <polacek@redhat.com>
2284
2285         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
2286         ops element.
2287
2288 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2289
2290         PR c/65345
2291         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
2292         create_tmp_var_raw instead of create_tmp_var.
2293
2294 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
2295
2296         * expr.c (store_expr_with_bounds): Handle aggregate moves from
2297         BLKmode.
2298         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
2299         to define gimple type system; compare aggregates only by size.
2300
2301 2015-10-07  Jeff Law  <law@redhat.com>
2302
2303         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
2304         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
2305         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
2306         unnecessarily.
2307
2308 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2309             Sebastian Pop  <s.pop@samsung.com>
2310
2311         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
2312         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
2313         (generate_isl_schedule): Same.
2314         * graphite-optimize-isl.c (scop_get_domains): Same.
2315         (apply_schedule_map_to_scop): Same.
2316         * graphite-poly.c (print_iteration_domains): Same.
2317         (remove_gbbs_in_scop): Same.
2318         (new_scop): Same.
2319         (free_scop): Same.
2320         (print_scop): Same.
2321         * graphite-poly.h (struct scop): Rename bbs to pbbs.
2322         (SCOP_BBS): Remove.
2323         * graphite-scop-detection.c (compare_bb_depths): Remove.
2324         (graphite_sort_dominated_info): Remove.
2325         (try_generate_gimple_bb): Move out of scop_detection.
2326         (all_non_dominated_preds_marked_p): Remove.
2327         (build_scop_bbs_1): Remove.
2328         (build_scop_bbs): Remove.
2329         (nb_pbbs_in_loops): Do not use SCOP_BBS.
2330         (find_scop_parameters): Same.
2331         (sese_dom_walker): Rename gather_bbs.
2332         (before_dom_children): Call try_generate_gimple_bb and collect gbb
2333         and pbb.
2334         (build_scops): Call gather_bbs.
2335         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
2336         (add_conditions_to_constraints): Same.
2337         (build_scop_iteration_domain): Same.
2338         (build_scop_drs): Same.
2339         (new_pbb_from_pbb): Same.
2340         * sese.c (new_sese_info): Create bbs.
2341         * sese.h (struct sese_info_t): Add bbs.
2342
2343 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
2344
2345         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
2346         encoding in 64-bit mode.
2347
2348 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
2349
2350         PR target/66697
2351         * config/i386/i386.c (ix86_option_override_internal): Always use
2352         8-byte minimum stack boundary in 64-bit mode.
2353         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
2354         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
2355         Add a REG_CFA_EXPRESSION note if needed.
2356         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
2357         (ix86_handle_force_align_arg_pointer_attribute): New.
2358         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
2359         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
2360         with ix86_handle_force_align_arg_pointer_attribute.
2361         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
2362
2363 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2364             Sebastian Pop  <s.pop@samsung.com>
2365
2366         * graphite-scop-detection.c (parameter_index_in_region): Remove
2367         use of SESE_ADD_PARAMS.
2368         (find_scop_parameters): Same.
2369         * sese.c (new_sese_info): Same.
2370         * sese.h (struct sese_info_t): Remove add_params.
2371         (SESE_ADD_PARAMS): Remove.
2372
2373 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
2374             Sebastian Pop  <s.pop@samsung.com>
2375
2376         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
2377         an sese_info_p.
2378         (copy_def): Same.
2379         (copy_internal_parameters): Same.
2380         (translate_isl_ast_to_gimple): Use an sese_l.
2381         (build_iv_mapping): Same.
2382         * graphite-poly.c (new_sese): Rename new_sese_info.
2383         (free_sese): Rename free_sese_info.
2384         * graphite-poly.h (struct scop): Use an sese_info_p.
2385         (scop_set_region): Same.
2386         * graphite-scop-detection.c (struct sese_l): Moved...
2387         (get_entry_bb): Moved...
2388         (get_exit_bb): Moved...
2389         (parameter_index_in_region_1): Use an sese_info_p.
2390         (parameter_index_in_region): Same.
2391         (scan_tree_for_params): Same.
2392         (find_params_in_bb): Same.
2393         (sese_dom_walker): Use an sese_l.
2394         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
2395         (reduction_phi_p): Same.
2396         (parameter_index_in_region_1): Use an sese_info_p.
2397         (propagate_expr_outside_region): Use an sese_l.
2398         * graphite.c: Replace uses of SCOP_REGION.
2399         * sese.c (sese_record_loop): Use an sese_info_p.
2400         (build_sese_loop_nests): Same.
2401         (sese_build_liveouts_use): Same.
2402         (sese_build_liveouts_bb): Same.
2403         (sese_build_liveouts_bb): Same.
2404         (sese_bad_liveouts_use): Same.
2405         (sese_reset_debug_liveouts_bb): Same.
2406         (sese_build_liveouts): Same.
2407         (new_sese): Renamed new_sese_info.
2408         (free_sese): Renamed free_sese_info.
2409         (set_rename): Use an sese_info_p.
2410         (graphite_copy_stmts_from_block): Same.
2411         (copy_bb_and_scalar_dependences): Same.
2412         (outermost_loop_in_sese_1): Use an sese_l.
2413         (outermost_loop_in_sese): Same.
2414         (if_region_set_false_region): Use an sese_info_p.
2415         (move_sese_in_condition): Same.
2416         (scalar_evolution_in_region): Use an sese_l.
2417         * sese.h (struct sese_l): ... here.
2418         (SESE_ENTRY): Remove.
2419         (SESE_ENTRY_BB): Remove.
2420         (SESE_EXIT): Remove.
2421         (SESE_EXIT_BB): Remove.
2422         (sese_contains_loop): Use an sese_info_p.
2423         (sese_nb_params): Same.
2424         (bb_in_sese_p): Use an sese_l.
2425         (stmt_in_sese_p): Same.
2426         (defined_in_sese_p): Same.
2427         (loop_in_sese_p): Same.
2428         (sese_loop_depth): Same.
2429         (struct ifsese_s): Use an sese_info_p.
2430         (gbb_loop_at_index): Use an sese_l.
2431         (nb_common_loops): Same.
2432         (scev_analyzable_p): Same.
2433
2434 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2435
2436         * config/i386/i386.c (ix86_conditional_register_usage): Use
2437         CALL_USED_REGISTERS_MASK.
2438         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
2439
2440 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2441
2442         PR bootstrap/67385
2443         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
2444         * configure: Regenerated.
2445
2446 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
2447
2448         PR target/67850
2449         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
2450         (ix86_set_current_function): This.
2451         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
2452
2453 2015-10-07  Richard Biener  <rguenther@suse.de>
2454
2455         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
2456         (vinfo_for_stmt): Adjust.
2457         (set_vinfo_for_stmt): Likewise.
2458         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
2459         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
2460         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
2461         of inner loop.
2462         (vect_analyze_loop_1): Remove.
2463         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
2464         inner loop when vectorizing an outer loop by splitting out from ...
2465         (vect_analyze_loop_form): ... here.
2466
2467 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2468
2469         PR c/65345
2470         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
2471         Use create_tmp_var_raw instead of create_tmp_var.
2472
2473 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
2474
2475         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
2476         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
2477         * real.c (CACHED_FRACTION): New helper macro.
2478         (dconst_third_ptr): Use it.
2479         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
2480         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
2481         dconst_sixth.
2482         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
2483
2484 2015-10-06  Jeff Law  <law@redhat.com>
2485
2486         PR tree-optimization/67816
2487         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
2488         from remove_jump_threads_starting_at.  Accept an edge rather than
2489         a basic block.
2490         * tree-ssa-threadupdate.c (removed_edges): New hash table.
2491         (remove_jump_threads_including): Note edges that get removed from
2492         the CFG for later pruning of jump threading paths including them.
2493         (thread_through_all_blocks): Remove paths which include edges that
2494         have been removed.
2495         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
2496         on each outgoing edges when optimizing away a control statement.
2497
2498 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2499
2500         * reorg.c (emit_delay_sequence): Store list of delay slot insns
2501         in a vector instead of rtx_insn_list.
2502         (add_to_delay_list): Likewise.
2503         (delete_from_delay_slot): Likewise.
2504         (optimize_skip): Likewise.
2505         (redirect_with_delay_list_safe_p): Likewise.
2506         (check_annul_list_true_false): Likewise.
2507         (steal_delay_list_from_target): Likewise.
2508         (steal_delay_list_from_fallthrough): Likewise.
2509         (redundant_insn): Likewise.
2510         (fill_simple_delay_slots): Likewise.
2511         (fill_slots_from_thread): Likewise.
2512         (fill_eager_delay_slots): Likewise.
2513         (relax_delay_slots): Likewise.
2514
2515 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
2516
2517         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
2518         For -mgpopt=local, also exclude unintialized common symbols.
2519         * doc/invoke.texi (Nios II Options): Document the change.
2520
2521 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
2522
2523         * config/aarch64/iterators.md (vwcore): Add missing cases for
2524          V4HF/V8HF modes.
2525
2526 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2527             Sebastian Pop  <s.pop@samsung.com>
2528
2529         * graphite-poly.c (new_scop): Initialize drs.
2530         * graphite-poly.h (struct dr_info): New.
2531         (struct scop): Add drs.
2532         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
2533         (pdr_add_memory_accesses): Same.
2534         (build_poly_dr): Same.
2535         (build_alias_set): Same.
2536         (build_scop_drs): Same.
2537         (build_pbb_drs): Remove.
2538         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
2539         * tree-data-ref.h (data_reference): Remove alias_set.
2540
2541 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2542             Sebastian Pop  <s.pop@samsung.com>
2543
2544         * graphite-poly.c (free_data_refs_aux): Remove.
2545         (free_gimple_poly_bb): Do not call free_data_refs_aux.
2546         * graphite-poly.h (struct base_alias_pair): Remove.
2547         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
2548         base_alias_pair and dr->aux.
2549         (build_alias_set): Same.
2550         * tree-data-ref.c (create_data_ref): Initialize alias_set.
2551         * tree-data-ref.h (data_reference): Add alias_set.
2552
2553 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
2554             Sebastian Pop  <s.pop@samsung.com>
2555
2556         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
2557         Do not set PDR_BASE_OBJECT_SET.
2558         * graphite-poly.h (poly_dr): Same.
2559         (PDR_BASE_OBJECT_SET): Remove.
2560         (new_poly_dr): Update decl.
2561         * graphite-sese-to-poly.c (build_poly_dr): Update call to
2562         new_poly_dr.
2563         (write_alias_graph_to_ascii_dimacs): Remove.
2564         (write_alias_graph_to_ascii_dot): Remove.
2565         (write_alias_graph_to_ascii_ecc): Remove.
2566         (dr_same_base_object_p): Remove.
2567         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
2568         code.
2569         (build_base_obj_set_for_drs): Remove.
2570         (dump_alias_graphs): Remove.
2571         (build_scop_drs): Remove dead code.
2572
2573 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
2574             Peter Bergner  <bergner@vnet.ibm.com>
2575
2576         PR target/67808
2577         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
2578         allow registers, but provide insns for the combiner to create for
2579         loads from memory. Separate VSX code from non-VSX code. For
2580         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
2581         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
2582         so that registers come before memory operations. Drop support from
2583         converting DFmode to TFmode, if the DFmode value is in a GPR
2584         register.
2585         (extenddftf2_fprs): Likewise.
2586         (extenddftf2_internal): Likewise.
2587         (extenddftf2_vsx): Likewise.
2588         (extendsftf2): In the expander, only allow registers, but provide
2589         insns for the combiner to create for stores and loads.
2590
2591 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2592
2593         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
2594         from the decl parameter.
2595
2596 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
2597
2598         PR 67861
2599         * gimple-fold.c (gimple_fold_builtin): Add break after
2600         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
2601
2602 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
2603
2604         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
2605         to scop->isl_context.
2606
2607 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2608
2609         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
2610         (output_probe_stack_range): Rotate the loop and simplify.
2611         (thumb1_expand_prologue): Tweak sorry message.
2612         * config/arm/arm.md (probe_stack): Use bare string.
2613
2614 2015-10-06  Nick Clifton  <nickc@redhat.com>
2615
2616         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
2617
2618 2015-10-06  Nick Clifton  <nickc@redhat.com>
2619
2620         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
2621         (ATTR_PERSIST): New constant.
2622         (msp430_data_attr): New function - verifies an attribute that only
2623         applies to variables.
2624         (msp430_attributes): Add noinit and persistent attributes.
2625         (noinit_section): New variable.
2626         (presis_section): New variable.
2627         (TARGET_ASM_INIT_SECTIONS): Define.
2628         (msp430_init_sections): New function - initialises the noinit and
2629         persist section variables.
2630         (msp430_select_section): Add support for noinit and persist
2631         attributes.
2632         (msp430_section_type_flags): Likewise.
2633         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
2634         and persistent attributes.
2635
2636 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2637             Sebastian Pop  <s.pop@samsung.com>
2638
2639         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
2640         (no_violations): Remove.
2641         (subtract_commutative_associative_deps): Remove.
2642         (compute_deps): Do not call subtract_commutative_associative_deps.
2643         (transform_is_safe): Remove.
2644         (graphite_legal_transform): Remove.
2645         * graphite-poly.h (graphite_legal_transform): Remove.
2646
2647 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
2648
2649         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
2650         which are in this region are passed so gcc_assert and remove redundant
2651         computation.
2652         * sese.c (sese_build_liveouts): Pass only those bbs which are not
2653         in region.
2654         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
2655         gcc_assert on that and remove unnecessary computation.
2656         (sese_build_liveouts_use): Same.
2657
2658 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2659
2660         * graphite-dependences.c (scop_get_reads): Renamed scop->context
2661         to scop->param_context.
2662         (scop_get_must_writes): Same.
2663         (scop_get_may_writes): Same.
2664         (scop_get_original_schedule): Same.
2665         (scop_get_transformed_schedule): Same.
2666         (subtract_commutative_associative_deps): Same.
2667         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
2668         (generate_isl_context): Same.
2669         (generate_isl_schedule): Same.
2670         (scop_to_isl_ast): Same.
2671         (graphite_regenerate_ast_isl): Same.
2672         * graphite-optimize-isl.c (scop_get_domains): Same.
2673         (optimize_isl): Renamed scop->context to scop->param_context.
2674         * graphite-poly.c (new_poly_bb): Change the type of argument to
2675         gimple_poly_bb_p.
2676         (new_scop): Renamed scop->context to scop->param_context.
2677         (free_scop): Same.
2678         (print_scop_context): Same.
2679         * graphite-poly.h (new_poly_dr): Change the type of argument from
2680         void* to data_reference_p.
2681         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
2682         (new_poly_bb): Change the type of argument from void* to
2683         gimple_poly_bb_p.
2684         (pbb_set_black_box): Same.
2685         (struct scop): Rename context to param_context, ctx to isl_context.
2686         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
2687         Move declarations closer to assignment.
2688         (find_params_in_bb): Same.
2689         (find_scop_parameters): Same.
2690         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
2691         Global to be used for statement IDs.
2692         (isl_id_for_pbb): Use ssa_name_version_typesize.
2693         (simple_copy_phi_p): Move declarations closer to assignment.
2694         (build_pbb_scattering_polyhedrons): Same.
2695         (build_scop_scattering): Same.
2696         (isl_id_for_ssa_name): Same.
2697         (extract_affine_name): Same.
2698         (extract_affine_int): Same.
2699         (extract_affine): Same.
2700         (set_scop_parameter_dim): Use renamed member.
2701         (build_loop_iteration_domains): Same.
2702         (add_param_constraints): Same.
2703         (build_scop_iteration_domain): Same.
2704         (pdr_add_data_dimensions): Same.
2705         (build_poly_dr): Same.
2706         (build_scop_drs): Move declarations closer to assignment.
2707         (analyze_drs_in_stmts): Same.
2708         (insert_out_of_ssa_copy): Same.
2709         (insert_out_of_ssa_copy_on_edge): Same.
2710         (propagate_expr_outside_region): Same.
2711         (rewrite_phi_out_of_ssa): Same.
2712         (rewrite_degenerate_phi): Same.
2713         (rewrite_reductions_out_of_ssa): Same.
2714         (rewrite_cross_bb_scalar_dependence): Same.
2715         (handle_scalar_deps_crossing_scop_limits): Same.
2716         (rewrite_cross_bb_scalar_deps): Same.
2717         * graphite.c (graphite_transform_loops): Use renamed member.
2718
2719 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
2720
2721         PR c/65345
2722         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
2723         create_tmp_var_raw instead of create_tmp_var.
2724
2725 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2726
2727         PR c/65345
2728         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
2729         Use create_tmp_var_raw instead of create_tmp_var.
2730
2731 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
2732
2733         PR target/67849
2734         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
2735         split for upper-bank registers when target does not support
2736         AVX512VL.
2737         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
2738         split when target does not support AVX512VL.
2739
2740 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
2741
2742         PR c/65345
2743         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
2744         Adjust to use create_tmp_var_raw instead of create_tmp_var.
2745
2746 2015-10-06  Nick Clifton  <nickc@redhat.com>
2747
2748         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
2749         multiplication.
2750
2751 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
2752
2753         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
2754         (case ${target}): Add znver1.
2755         * config/i386/cpuid.h(bit_CLZERO):  Define.
2756         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
2757         -march=native recognize znver1 processors.
2758         * config/i386/i386-c.c (ix86_target_macros_internal): Add
2759         znver1, clzero def_and_undef.
2760         * config/i386/i386.c (struct processor_costs znver1_cost): New.
2761         (m_znver1): New definition.
2762         (m_AMD_MULTIPLE): Includes m_znver1.
2763         (processor_target_table): Add znver1 entry.
2764         (ix86_target_string) : Add clzero entry.
2765         (static const char *const cpu_names): Add znver1 entry.
2766         (ix86_option_override_internal): Add znver1 instruction sets.
2767         (PTA_CLZERO) :  New definition.
2768         (ix86_option_override_internal): Handle new clzerooption.
2769         (ix86_issue_rate): Add znver1.
2770         (ix86_adjust_cost): Add znver1.
2771         (ia32_multipass_dfa_lookahead): Add znver1.
2772         (has_dispatch): Add znver1.
2773         * config/i386/i386.h (TARGET_znver1): New definition.
2774         (TARGET_CLZERO): Define.
2775         (TARGET_CLZERO_P): Define.
2776         (struct ix86_size_cost): Add TARGET_ZNVER1.
2777         (enum processor_type): Add PROCESSOR_znver1.
2778         * config/i386/i386.md (define_attr "cpu"): Add znver1.
2779         (set_attr znver1_decode): New definitions for znver1.
2780         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
2781         (mclzero): New.
2782         * config/i386/mmx.md (set_attr znver1_decode): New definitions
2783         for znver1.
2784         * config/i386/sse.md (set_attr znver1_decode): Likewise.
2785         * config/i386/x86-tune.def:  Add znver1 tunings.
2786         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
2787         * gcc/doc/invoke.texi: Add details about znver1
2788
2789 2015-10-06  Richard Biener  <rguenther@suse.de>
2790
2791         PR tree-optimization/67859
2792         * tree-ssa-pre.c (create_expression_by_pieces): Properly
2793         discard not inserted stmts.
2794
2795 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
2796
2797         * doc/extend.texi (Template Instantiation): Reorder options and
2798         de-emphasize -frepo.
2799         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
2800         example instead of -frepo.
2801
2802 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
2803
2804         PR c/65345
2805         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
2806         use create_tmp_var_raw rather than create_tmp_var.
2807
2808 2015-10-06  Richard Biener  <rguenther@suse.de>
2809
2810         * tree-vectorizer.h (vec_info): New base class for...
2811         (_loop_vec_info): ... this and ...
2812         (_bb_vec_info): ... this.
2813         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
2814         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
2815         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
2816         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
2817         vect_destroy_datarefs): Adjust interface to take a vec_info *
2818         rather than both a loop_vec_info and a bb_vec_info argument.
2819         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
2820         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
2821         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
2822         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
2823         accordingly.
2824         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
2825         (destroy_loop_vec_info, vect_analyze_loop_2,
2826         vect_is_simple_reduction_1, get_initial_def_for_induction,
2827         vect_create_epilog_for_reduction, vectorizable_reduction,
2828         vectorizable_live_operation, vect_transform_loop): Adjust.
2829         * tree-vect-patterns.c (type_conversion_p,
2830         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
2831         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
2832         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
2833         check_bool_pattern, vect_recog_bool_pattern,
2834         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
2835         * tree-vect-slp.c (vect_get_and_check_slp_defs,
2836         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
2837         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
2838         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
2839         (new_bb_vec_info): Initialize base classs.
2840         * tree-vect-stmts.c (record_stmt_cost, process_use,
2841         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
2842         vectorizable_mask_load_store, vectorizable_call,
2843         vectorizable_simd_clone_call, vectorizable_conversion,
2844         vectorizable_assignment, vectorizable_shift,
2845         vectorizable_operation, vectorizable_store,
2846         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
2847         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
2848         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
2849
2850 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
2851
2852         PR c/65345
2853         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
2854         create_tmp_var_raw rather than create_tmp_var.
2855
2856 2015-10-05  Marek Polacek  <polacek@redhat.com>
2857
2858         * tree-ssa-loop-im.c
2859         (move_computations_dom_walker::before_dom_children): Don't set
2860         SSA_NAME_ANTI_RANGE_P.
2861         * tree-ssa-phiopt.c (value_replacement): Likewise.
2862
2863 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2864             Sebastian Pop  <s.pop@samsung.com>
2865
2866         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
2867
2868 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2869             Sebastian Pop  <s.pop@samsung.com>
2870
2871         * graphite-poly.c (new_gimple_poly_bb): ... here.
2872         (free_data_refs_aux): ... here.
2873         (free_gimple_poly_bb): ... here.
2874         (remove_gbbs_in_scop): ... here.
2875         (new_scop): Call new_sese.
2876         (free_scop): Call remove_gbbs_in_scop and free_sese.
2877         * graphite-poly.h (base_alias_pair): ... here.
2878         (new_gimple_poly_bb): Declare.
2879         (free_gimple_poly_bb): Declare.
2880         * graphite-scop-detection.c (parameter_index_in_region_1):
2881         (parameter_index_in_region): ... here.
2882         (scan_tree_for_params): ... here.
2883         (find_params_in_bb): ... here.
2884         (find_scop_parameters): ... here.
2885         (build_scops): Call find_scop_parameters.
2886         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
2887         (free_scops): Move...
2888         (single_pred_cond_non_loop_exit): Move...
2889         (sese_dom_walker::before_dom_children): Move...
2890         (sese_dom_walker::after_dom_children): Move...
2891         (build_poly_scop): Move...
2892         * graphite-sese-to-poly.h (base_alias_pair): Move...
2893         * graphite.c (free_scops): ... here.
2894
2895 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
2896             Sebastian Pop  <s.pop@samsung.com>
2897
2898         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
2899         (trivially_empty_bb_p): Move...
2900         (same_close_phi_node): Move...
2901         (new_gimple_poly_bb): Move...
2902         (compare_bb_depths): Move...
2903         (graphite_sort_dominated_info): Move...
2904         (remove_duplicate_close_phi): Move...
2905         (make_close_phi_nodes_unique): Move...
2906         (canonicalize_loop_closed_ssa): Move...
2907         (canonicalize_loop_closed_ssa_form): Move...
2908         (loop_ivs_can_be_represented): Move...
2909         (single_pred_cond_non_loop_exit): Move...
2910         (graphite_can_represent_init): Move...
2911         (graphite_can_represent_scev): Move...
2912         (stmt_has_simple_data_refs_p): Move...
2913         (stmt_has_side_effects):  Move...
2914         (graphite_can_represent_stmt): Move...
2915         (scop_detection): ... here.
2916         (sese_dom_walker): ... and here.
2917         (build_scops): Call all moved functions.
2918         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
2919         (all_non_dominated_preds_marked_p): Move...
2920         (build_scop_bbs_1): Move...
2921         (build_scop_bbs): Move...
2922         (set_scop_parameter_dim): Move...
2923         (nb_pbbs_in_loops): Move...
2924         (build_poly_scop): Do not call all the moved functions.
2925
2926 2015-10-05  Martin Jambor  <mjambor@suse.cz>
2927             Jan Hubicka  <hubicka@ucw.cz>
2928
2929         * ipa-cp.c (ipcp_alignment_lattice): New type.
2930         (ipcp_param_lattices): Use the above to represent alignment.
2931         (ipcp_alignment_lattice::print): New function.
2932         (print_all_lattices): Use it to print alignment information.
2933         (ipcp_alignment_lattice::top_p): New function.
2934         (ipcp_alignment_lattice::bottom_p): Likewise.
2935         (ipcp_alignment_lattice::set_to_bottom): Likewise.
2936         (ipcp_alignment_lattice::meet_with_1): Likewise.
2937         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
2938         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
2939         (initialize_node_lattices): Likewise.
2940         (propagate_alignment_accross_jump_function): Work with the new class
2941         for alignment lattices.
2942         (propagate_constants_accross_call): Pass only the alignment lattice to
2943         propagate_alignment_accross_jump_function.
2944         (ipcp_store_alignment_results): Work with the new class for alignment
2945         lattices.
2946
2947 2015-10-05  Marek Polacek  <polacek@redhat.com>
2948
2949         PR tree-optimization/67821
2950         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
2951
2952 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
2953
2954         PR other/65021
2955         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
2956         function to...
2957         (mkoffload_cleanup): ... this.  Adjust all users.
2958         (maybe_unlink): Look at save_temps and verbose flags instead of
2959         debug flag.
2960         (main): Parse "-save-temps" flag.
2961         (generate_target_descr_file, generate_target_offloadend_file)
2962         (generate_host_descr_file, prepare_target_image): Pass it on.
2963         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
2964         (mkoffload_cleanup): New function.
2965         (maybe_unlink): Look at save_temps and verbose flags instead of
2966         debug flag.
2967         (main): Instead of calling utils_cleanup, register atexit handler
2968         for mkoffload_cleanup.
2969         (main): Parse "-save-temps" flag.
2970         (compile_native, main): Pass it on.
2971         * lto-wrapper.c (compile_offload_image): Likewise.
2972
2973 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2974
2975         * gimple.h (gimple_op_ptr): Require a non const gimple *.
2976         (gimple_assign_lhs_ptr): Likewise.
2977         (gimple_assign_rhs1_ptr): Likewise.
2978         (gimple_assign_rhs2_ptr): Likewise.
2979         (gimple_assign_rhs3_ptr): Likewise.
2980         (gimple_call_lhs_ptr): Likewise.
2981         (gimple_call_fn_ptr): Likewise.
2982         (gimple_call_chain_ptr): Likewise.
2983                 (gimple_call_arg_ptr): Likewise.
2984                 (gimple_cond_lhs_ptr): Likewise.
2985         (gimple_cond_rhs_ptr): Likewise.
2986         (gimple_switch_index_ptr): Likewise.
2987         (gimple_return_retval_ptr): Likewise.
2988
2989 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2990
2991         * gimple.h (gimple_asm_input_op_ptr): Remove.
2992         (gimple_asm_output_op_ptr): Likewise.
2993
2994 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
2995
2996         * gimple.h (gimple_location_ptr): Remove.
2997         * tree-vrp.c (check_all_array_refs): Adjust.
2998
2999 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3000
3001         * tree-ssa-operands.c (build_uses): store tree * instead of
3002         tree.
3003         (finalize_ssa_uses): Adjust.
3004         (append_use): Likewise.
3005         (verify_ssa_operands): Likewise.
3006
3007 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3008
3009         * real.h (build_real_truncate): Declare.
3010         * tree.c (build_real_truncate): New function.
3011         (strip_float_extensions): Use it.
3012         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
3013         (fold_builtin_hypot, fold_builtin_pow): Likewise.
3014         * match.pd: Likewise.
3015
3016 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
3017            Jiong Wang  <jiong.wang@arm.com>
3018
3019         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
3020
3021 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3022
3023         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
3024         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
3025         (aarch64_print_operand, aarch64_float_const_representable_p)
3026         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
3027         instead of REAL_VALUE_FROM_CONST_DOUBLE.
3028         * config/arc/arc.c (arc_print_operand): Likewise.
3029         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
3030         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
3031         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
3032         Likewise.
3033         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
3034         (consttable_16): Likewise.
3035         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
3036         * config/avr/avr.c (avr_print_operand): Likewise.
3037         * config/bfin/bfin.md: Likewise (in a define_split).
3038         * config/c6x/c6x.md: Likewise (in a define_split).
3039         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
3040         (cr16_print_operand): Likewise.
3041         * config/cris/cris.c (cris_print_operand): Likewise.
3042         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
3043         * config/fr30/fr30.c (fr30_print_operand): Likewise.
3044         (fr30_const_double_is_zero): Likewise.
3045         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
3046         * config/frv/frv.md: Likewise (in a define_split).
3047         * config/frv/predicates.md (int_2word_operand): Likewise.
3048         * config/h8300/h8300.c (h8300_print_operand): Likewise.
3049         * config/i386/i386.c (standard_80387_constant_p): Likewise.
3050         (ix86_print_operand, ix86_split_to_parts): Likewise.
3051         * config/i386/i386.md: Likewise (in a define_split).
3052         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
3053         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
3054         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
3055         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
3056         (print_operand): Likewise.
3057         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
3058         * config/mep/mep.md: Likewise (in define_split).
3059         * config/microblaze/microblaze.c (microblaze_const_double_ok)
3060         (print_operand): Likewise.
3061         * config/mips/mips.md (consttable_float): Likewise.
3062         * config/mmix/mmix.c (mmix_intval): Likewise.
3063         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
3064         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
3065         * config/pa/pa.c (pa_singlemove_string): Likewise.
3066         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
3067         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
3068         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
3069         (output_toc): Likewise.
3070         * config/rs6000/rs6000.md: Likewise (in define_splits).
3071         * config/rx/rx.c (rx_print_operand): Likewise.
3072         * config/s390/s390.c (s390_output_pool_entry): Likewise.
3073         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3074         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
3075         (and also in define_splits).
3076         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
3077         (fp_high_losum_p): Likewise.
3078         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
3079         (*movsf_high): Likewise.
3080         * config/spu/spu.c (const_double_to_hwint): Likewise.
3081         * config/v850/v850.c (const_double_split): Likewise.
3082         * config/vax/vax.c (vax_float_literal): Likewise.
3083         * config/visium/visium.c (visium_expand_copysign): Likewise.
3084         * config/visium/visium.md: Likewise (in define_split).
3085         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3086         * config/xtensa/xtensa.c (print_operand): Likewise.
3087         (xtensa_output_literal): Likewise.
3088         * cprop.c (implicit_set_cond_p): Likewise.
3089         * dwarf2out.c (insert_float): Likewise.
3090         * expmed.c (expand_mult, make_tree): Likewise.
3091         * expr.c (compress_float_constant): Likewise.
3092         * rtlanal.c (split_double): Likewise.
3093         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3094         (simplify_const_unary_operation, simplify_binary_operation_1)
3095         (simplify_const_binary_operation): Likewise.
3096         (simplify_const_relational_operation): Likewise.
3097         * varasm.c (output_constant_pool_2): Likewise.
3098
3099 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3100
3101         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
3102         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3103         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
3104         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
3105         instead of CONST_DOUBLE_FROM_REAL_VALUE.
3106         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
3107         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
3108         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
3109         (ix86_emit_swsqrtsf): Likewise.
3110         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
3111         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
3112         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
3113         * config/pa/pa.c (pa_expand_builtin): Likewise.
3114         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
3115         (rs6000_scale_v2df): Likewise.
3116         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
3117         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
3118         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
3119         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
3120         (vec_ctul): Likewise.
3121         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
3122         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
3123         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
3124         * cse.c (fold_rtx): Likewise.
3125         * emit-rtl.c (immed_double_const): Likewise (in comments).
3126         (init_emit_once): Likewise.
3127         * expr.c (compress_float_constant, expand_expr_real_1)
3128         (const_vector_from_tree): Likewise.
3129         * optabs.c (expand_float, expand_fix): Likewise.
3130         * reg-stack.c (reg_to_stack): Likewise.
3131         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
3132         (simplify_const_unary_operation, simplify_binary_operation_1)
3133         (simplify_const_binary_operation, simplify_relational_operation)
3134         (simplify_immed_subreg): Likewise.
3135
3136 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3137
3138         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
3139         * doc/tm.texi: Regenerate.
3140         * real.h (REAL_ARITHMETIC): Delete.
3141         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
3142         (ix86_expand_round_sse4): Use real_arithmetic instead of
3143         REAL_ARITHMETIC.
3144         * config/i386/sse.md (round<mode>2): Likewise.
3145         * rtl.h (rtx_to_tree_code): Likewise (in comment).
3146         * explow.c (rtx_to_tree_code): Likewise (in comment).
3147         * match.pd: Likewise.
3148         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3149         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3150         (expand_pow_as_sqrts): Likewise.
3151         * tree-pretty-print.c (dump_generic_node): Remove code that
3152         was conditional on REAL_ARITHMETIC being undefined.
3153
3154 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3155
3156         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
3157         * doc/tm.texi: Regenerate.
3158         * real.h (real_less): Declare.
3159         (REAL_VALUES_LESS): Delete.
3160         * real.c (real_less): New function.
3161         (real_compare): Use it.
3162         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
3163         of REAL_VALUES_LESS.
3164         * config/microblaze/microblaze.c (microblaze_const_double_ok):
3165         Likewise.
3166         * fold-const.c (fold_convert_const_int_from_real): Likewise.
3167         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
3168         (simplify_const_relational_operation): Likewise.
3169         * tree-call-cdce.c (check_pow): Likewise.
3170         (gen_conditions_for_pow_cst_base): Likewise.
3171
3172 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3173
3174         * real.h (REAL_VALUES_IDENTICAL): Delete.
3175         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
3176         instead of REAL_VALUES_IDENTICAL.
3177         * fold-const.c (operand_equal_p): Likewise.
3178         * ipa-icf.c (sem_variable::equals): Likewise.
3179         * tree-complex.c (some_nonzerop): Likewise.
3180         (expand_complex_multiplication): Likewise.
3181         * tree.c (simple_cst_equal): Likewise.
3182         * varasm.c (compare_constant): Likewise.
3183
3184 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
3185
3186         * real.h (real_equal): Declare.
3187         (REAL_VALUES_EQUAL): Delete.
3188         * real.c (real_equal): New function.
3189         (real_compare): Use it.
3190         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
3191         * doc/tm.texi: Regenerate.
3192         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
3193         real_equal instead of REAL_VALUES_EQUAL.
3194         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
3195         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
3196         (fp_const_from_val): Likewise.
3197         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
3198         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
3199         (floating_exact_log2): Likewise.
3200         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
3201         * config/vax/vax.c (vax_float_literal): Likewise.
3202         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
3203         * cprop.c (implicit_set_cond_p): Likewise.
3204         * expmed.c (expand_mult): Likewise.
3205         * fold-const.c (const_binop): Likewise.
3206         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
3207         (simplify_const_binary_operation): Likewise.
3208         (simplify_const_relational_operation): Likewise.
3209         * tree-call-cdce.c (check_pow): Likewise.
3210         (gen_conditions_for_pow_cst_base): Likewise.
3211         * tree-inline.c (estimate_num_insns): Likewise.
3212         * tree-ssa-dom.c (record_equality): Likewise.
3213         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
3214         (gimple_expand_builtin_pow): Likewise.
3215         (pass_optimize_widening_mul::execute): Likewise.
3216         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
3217         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
3218         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
3219
3220 2015-10-05  Richard Biener  <rguenther@suse.de>
3221
3222         PR ipa/67783
3223         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
3224         consider loop header PHI defs as IVs.
3225
3226 2015-10-05  Richard Biener  <rguenther@suse.de>
3227
3228         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
3229         call handling ...
3230         (create_expression_by_pieces): ... here and build GIMPLE
3231         calls directly.  Use gimple_build API and avoid force_gimple_operand.
3232         (insert_into_preds_of_block): Simplify.
3233         (do_regular_insertion): Add comment.
3234
3235 2015-10-04  Jason Merrill  <jason@redhat.com>
3236
3237         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
3238
3239 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
3240
3241         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
3242         check for general register.
3243         (ix86_emit_save_regs): Ditto.
3244         (ix86_emit_save_regs_using_mov): Ditto.
3245         (ix86_emit_restore_regs_using_pop): Ditto.
3246         (ix86_emit_restore_regs_using_mov): Ditto.
3247
3248 2015-10-03  Marek Polacek  <polacek@redhat.com>
3249
3250         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
3251         (insn-dfatab.o): Likewise.
3252
3253 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
3254
3255         * config.gcc (xtensa*-*-uclinux*): New configuration.
3256         * config/xtensa/uclinux.h: New file.
3257         * config/xtensa/uclinux.opt: New file.
3258
3259 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
3260
3261         * doc/cpp.texi (Standard Predefined Macros): Document value of
3262         __cplusplus for C++14.
3263
3264 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
3265
3266         * gcc.c (process_command): Use spec_machine rather than
3267         spec_host_machine to build tooldir_prefix2.
3268
3269 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3270             Bernd Schmidt  <bernds@codesourcery.com>
3271
3272         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
3273         (Token, Stmt): Remove structs.
3274         (decls, vars, fns): Remove variables.
3275         (alloc_comment, append_stmt, is_keyword): Remove macros.
3276         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
3277         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
3278         (parse_init, parse_file): Remove functions.
3279         (read_file): Accept a pointer to a length and store into it.
3280         (process): Don't try to parse the input file, just write it out as
3281         a string, but looking for maps.  Also write out the length.
3282         (main): Don't use "-S" to compile PTX code.
3283
3284 2015-10-02  Jeff Law  <law@redhat.com>
3285
3286         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
3287         fixups.
3288
3289 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
3290
3291         PR target/67822
3292         * config/nvptx/mkoffload.c (main): Scan the argument vector for
3293         -fopenmp, and skip generating an offloading image if specified.
3294
3295 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
3296
3297         * system.h (ROUND_UP): New macro definition.
3298         (ROUND_DOWN): Ditto.
3299         * ggc-page.c (ROUND_UP): Remove local macro definition.
3300         (PAGE_ALIGN): Implement using ROUND_UP macro.
3301
3302         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
3303         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
3304         to align values.
3305         (ix86_compute_frame_layout): Ditto.
3306         (ix86_expand_prologue): Ditto.
3307         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
3308         to round down values.
3309         (expand_set_or_movmem_via_rep): Ditto.
3310
3311 2015-10-02  Marek Polacek  <polacek@redhat.com>
3312
3313         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
3314
3315 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
3316
3317         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
3318         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
3319         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
3320         (free_gimple_bb): Renamed free_gimple_poly_bb.
3321         (try_generate_gimple_bb): Hoist loop invariant code.
3322         (analyze_drs_in_stmts): Same.
3323         (build_scop_drs): Call renamed functions.
3324         (new_pbb_from_pbb): Same.
3325         (scop_ivs_can_be_represented): Delete as functionality now moved to
3326         graphite-scop-detection.c
3327         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
3328
3329 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
3330
3331         * graphite-scop-detection.c (stmt_has_side_effects): New function
3332           outlined from stmt_simple_for_scop_p.
3333         (graphite_can_represent_stmt): Same.
3334         (stmt_simple_for_scop_p): Moved code out of this function for better
3335         readability.
3336
3337 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3338
3339         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
3340         F_AVX512IFMA.
3341         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
3342
3343 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3344
3345         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
3346
3347 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
3348
3349         PR rtl-optimization/67756
3350         * lra-constraints.c (match_reload): Add a new parameter.  Use it
3351         for creating a pseudo with the same value.
3352         (curr_insn_transform): Pass a new argument to match_reload.
3353
3354 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3355
3356         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
3357         (expand_vec_perm_even_odd_1): Handle V64QImode.
3358         (ix86_expand_vec_perm_const_1): Try expansion with
3359         expand_vec_perm_even_odd_trunc as well.
3360         * config/i386/sse.md (VI124_AVX512F): Rename to ...
3361         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
3362         to V54QI.
3363         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
3364         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
3365         to V32HI and V16SI.
3366         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
3367         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
3368         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
3369         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
3370         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
3371         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
3372
3373 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
3374
3375         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
3376         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
3377
3378 2015-10-02  Jason Merrill  <jason@redhat.com>
3379
3380         PR c/59218
3381         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
3382         (diagnose_tm_1_op): Also diagnose volatile accesses in
3383         transaction_safe function.
3384
3385 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
3386
3387         * system.h (malloc.h): Don't include obsolete header.
3388
3389 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3390
3391         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
3392         (TLS_SECTION_ASM_FLAG): Delete.
3393
3394 2015-10-02  Marek Polacek  <polacek@redhat.com>
3395
3396         PR c/64249
3397         * doc/invoke.texi: Document -Wduplicated-cond.
3398         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
3399         (insn-dfatab.o): Likewise.
3400         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
3401         warning.
3402
3403 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
3404
3405         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
3406         sequences.
3407
3408 2015-10-02  Renlin Li  <renlin.li@arm.com>
3409
3410         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
3411
3412 2015-10-02  Renlin Li  <renlin.li@arm.com>
3413
3414         PR target/66776
3415         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
3416
3417 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3418
3419         PR rtl-optimization/67786
3420         PR rtl-optimization/67787
3421         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
3422         it modifies a reg used in the condition calculation.
3423
3424 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
3425
3426         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
3427         alternatives for reads from memory and moves from general-purpose
3428         registers.
3429         (*aarch64_combinez_be<mode>): Likewise.
3430
3431 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
3432
3433         PR target/51726
3434         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
3435         selectany within this function without need to keep attribute.
3436         (i386_pe_encode_section_info): Remove selectany-code.
3437
3438 2015-10-02  Richard Biener  <rguenther@suse.de>
3439
3440         * tree-ssa-sccvn.c (has_VN_INFO): New function.
3441         (free_scc_vn): Use it.
3442         (visit_use): Remove dead code and refactor to use gassign
3443         and use less indentation.
3444
3445 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3446
3447         PR target/67788
3448         PR target/67789
3449         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
3450         (rs6000_cannot_copy_insn_p): New function.
3451         * config/rs6000/rs6000.md (cannot_copy): New attribute.
3452         (load_toc_v4_PIC_1_normal): Set cannot_copy.
3453         (load_toc_v4_PIC_1_476): Ditto.
3454
3455 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3456
3457         * graphite-scop-detection.c (struct sese_l): New conversion constructor
3458         so that this type can be pushed into a vec.
3459         (class scop_builder): use sese_l to collect scops.
3460         (get_scops): New getter function.
3461         (remove_intersecting_scops): Use sese_l instead of scops_p.
3462         (intersects): Same.
3463         (add_scop): Same.
3464         (subsumes): Same.
3465         (remove_subscops): Same.
3466         (build_scops): Add scops to vec<scops_p> once all the scops have been
3467         detected.
3468
3469 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
3470
3471         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
3472         Renamed type from gimple_bb_p to gimple_poly_bb_p.
3473         (translate_isl_ast_node_user): Same.
3474         * graphite-poly.c (new_poly_bb): Same.
3475         * graphite-poly.h (gbb_from_bb): Same.
3476         * sese.h: Same.
3477         * graphite-sese-to-poly.c (new_gimple_bb):
3478         gimple_bb_p -> gimple_poly_bb_p
3479         (build_scop_scattering): Same.
3480         (find_params_in_bb): Same.
3481         (add_conditions_to_domain): Same.
3482         (sese_dom_walker::before_dom_children): Same.
3483         (analyze_drs_in_stmts): Same.
3484         (new_pbb_from_pbb): Same.
3485         (free_data_refs_aux): New pointer to type base_alias_pair.
3486         * graphite-sese-to-poly.h: Same.
3487         * sese.c (if_region_set_false_region): Fixed Indentation.
3488         (move_sese_in_condition): Same.
3489
3490 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3491             Aditya Kumar  <aditya.k7@samsung.com>
3492
3493         PR tree-optimization/66980
3494         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
3495         when data reference analysis has failed.
3496
3497 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3498             Aditya Kumar  <aditya.k7@samsung.com>
3499
3500         PR tree-optimization/67754
3501         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
3502         scev analysis on the same loop nest as analyze_drs_in_stmts.
3503         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
3504         renamed...
3505         (try_generate_gimple_bb): Call outermost_loop_in_sese.
3506         (analyze_drs_in_stmts): Same.
3507         * sese.c (outermost_loop_in_sese): ...here.
3508
3509 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
3510             Aditya Kumar  <aditya.k7@samsung.com>
3511
3512         PR tree-optimization/67754
3513         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
3514         recursion on the inner loops.
3515
3516 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3517
3518         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
3519         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
3520         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
3521         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
3522         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
3523
3524 2015-10-01  Marek Polacek  <polacek@redhat.com>
3525
3526         PR c/65345
3527         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
3528         create_tmp_var_raw rather than create_tmp_var.
3529
3530 2015-10-01  Marek Polacek  <polacek@redhat.com>
3531
3532         PR tree-optimization/67769
3533         * tree-ssa-phiopt.c (conditional_replacement): Call
3534         reset_flow_sensitive_info_in_bb.
3535         (minmax_replacement): Likewise.
3536         (abs_replacement): Likewise.
3537
3538 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
3539
3540         * builtins.c: Don't include gomp-constants.h.
3541         (fold_builtin_1): Don't fold acc_on_device here.
3542         * gimple-fold.c: Include gomp-constants.h.
3543         (gimple_fold_builtin_acc_on_device): New.
3544         (gimple_fold_builtin): Call it.
3545
3546 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
3547
3548         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
3549         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
3550
3551 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
3552
3553         * config/arm/aarch-common-protos.h
3554         (aarch_accumulator_forwarding): New.
3555         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3556         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
3557         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
3558         * config/arm/cortex-a53.md: Rewrite.
3559
3560 2015-10-01  Richard Biener  <rguenther@suse.de>
3561
3562         * gimple-match.h (mprts_hook): Declare.
3563         * gimple-match.head.c (mprts_hook): Define.
3564         (maybe_push_res_to_seq): Use new hook.
3565         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
3566         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
3567         (vn_ssa_aux::has_constants): Remove.
3568         * tree-ssa-sccvn.c: Include gimple-match.h.
3569         (VN_INFO_GET): Assert we don't re-use SSA names.
3570         (vn_get_expr_for): Remove.
3571         (expr_has_constants): Likewise.
3572         (stmt_has_constants): Likewise.
3573         (simplify_binary_expression): Likewise.
3574         (simplify_unary_expression): Likewise.
3575         (vn_lookup_simplify_result): New hook.
3576         (visit_copy): Adjust.
3577         (visit_reference_op_call): Likewise.
3578         (visit_phi): Likewise.
3579         (visit_use): Likewise.
3580         (process_scc): Likewise.
3581         (init_scc_vn): Likewise.
3582         (visit_reference_op_load): Likewise.  Use match-and-simplify and
3583         a gimple seq for inserted expressions.
3584         (try_to_simplify): Remove GENERIC stmt combining code.
3585         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
3586         * tree-ssa-pre.c (eliminate_insert): Adjust.
3587         (eliminate_dom_walker::before_dom_children): Likewise.
3588
3589 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3590
3591         * doc/invoke.texi (Optimization Options): Add
3592         -freorder-blocks-algorithm=.
3593         (Optimize Options) <-O>: Add -freorder-blocks.
3594         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
3595         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
3596         <-freorder-blocks>: Also enabled at levels -O and -Os.
3597         <-freorder-blocks-algorithm=>: Document new option.
3598
3599 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3600
3601         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
3602         with flag_reorder_blocks_algorithm.
3603         * common.opt (freorder-blocks-algorithm=): New flag.
3604         (reorder_blocks_algorithm): New enum.
3605         * flag-types.h (reorder_blocks_algorithm): New enum.
3606         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
3607         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
3608
3609 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3610
3611         * bb-reorder.c: Add intro comment.
3612         (reorder_basic_blocks_software_trace_cache): Print a header to
3613         the dump file.
3614         (edge_order): New function.
3615         (reorder_basic_blocks_simple): New function.
3616         (reorder_basic_blocks): Choose between the STC and the simple
3617         algorithms (always choose the former).
3618
3619 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
3620
3621         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
3622         function, factored out from ...
3623         (reorder_basic_blocks): ... here.
3624
3625 2015-10-01  Tom de Vries  <tom@codesourcery.com>
3626
3627         * tree-cfg.c (dump_function_to_file): Dump function attributes using
3628         __attribute__(()) string.  Move dumping of function attributes to before
3629         function name.
3630
3631 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
3632
3633         PR target/66870
3634         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3635         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
3636         based on gold linker version.
3637         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
3638         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
3639         * configure, config.in: Regenerate.
3640
3641 2015-10-01  Alan Modra  <amodra@gmail.com>
3642
3643         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
3644         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
3645         (rs6000_output_mi_thunk): Likewise.
3646
3647 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3648
3649         * config/nvptx/mkoffload.c (process): Change offload data format.
3650
3651 2015-09-30  Jeff Law  <law@redhat.com>
3652
3653         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
3654         with constant conditions.
3655         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
3656         (remove_ctrl_stmt_and_useless_edges): No longer static.
3657         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
3658         (remove_ctrl_stmt_and_useless_edges): Likewise.
3659
3660 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
3661             Cesar Philippidis  <cesar@codesourcery.com>
3662
3663         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
3664         (TARGET_GOACC_VALIDATE_DIMS): Override.
3665         * target.def (TARGET_GOACC): New target hook prefix.
3666         (validate_dims): New hook.
3667         * targhooks.h (default_goacc_validate_dims): New.
3668         * omp-low.c (oacc_validate_dims): New.
3669         (execute_oacc_device_lower): New.
3670         (default_goacc_validate_dims): New.
3671         (pass_data_oacc_device_lower): New.
3672         (pass_oacc_device_lower): New pass.
3673         (make_pass_oacc_device_lower): New.
3674         * tree-pass.h (make_pass_oacc_device_lower): Declare.
3675         * passes.def (pass_oacc_device_lower): Add it.
3676         * doc/tm.texi: Rebuilt.
3677         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
3678         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
3679
3680 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3681
3682         PR rtl-optimization/67037
3683         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
3684
3685 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
3686
3687         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
3688         * passes.c: Include tree-ssanames.h.
3689         (execute_function_todo): Flush the pending free SSA_NAMEs after
3690         eliminating unreachable basic blocks.
3691         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
3692         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
3693         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
3694         (flush_ssanames_freelist): New function.
3695         (release_ssaname_fn): Put released names on the queue.
3696         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
3697         * tree-ssanames.h (flush_ssanames_freelist): Declare.
3698
3699 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3700
3701         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
3702         (generate_target_descr_file, generate_target_offloadend_file)
3703         (generate_host_descr_file, prepare_target_image): Pass it on.
3704         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
3705         (compile_native, main): Pass it on.
3706         * lto-wrapper.c (compile_offload_image): Likewise.
3707
3708 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3709             Ilya Verbin  <ilya.verbin@intel.com>
3710             Andrey Turetskiy  <andrey.turetskiy@intel.com>
3711
3712         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
3713         (prepare_target_image, main): Refactor argv building to use
3714         obstacks.
3715
3716 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
3717
3718         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
3719         * config/spu/spu.c (spu_expand_atomic_op): New function.
3720         * config/spu/spu.md (AINT): New mode iterator.
3721         (ATOMIC): New code iterator.
3722         (atomic_name, atomic_pred): New code predicates.
3723         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
3724         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
3725         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
3726         "atomic_<atomic_name>_fetch<mode>"): Likewise.
3727
3728 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
3729
3730         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
3731         debug insns.
3732         (scalar_chain::convert_reg): Likewise.
3733
3734 2015-09-30  Richard Biener  <rguenther@suse.de>
3735
3736         * builtins.c: Add comment that no new simplifications should
3737         be added here.
3738
3739 2015-09-30  Marek Polacek  <polacek@redhat.com>
3740
3741         PR tree-optimization/67690
3742         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
3743         reset_flow_sensitive_info_in_bb.
3744         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
3745         * tree-ssanames.c: Include "gimple-iterator.h".
3746         (reset_flow_sensitive_info_in_bb): New function.
3747         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
3748
3749 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
3750
3751         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
3752         variable, replacing it with...
3753         (offload_abi): ... this new variable.  Adjust all users.
3754         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
3755
3756 2015-09-30  Matthias Klose  <doko@ubuntu.com>
3757
3758         * configure.ac: Remove extraneous ;;.
3759         * configure: Regenerate.
3760
3761 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
3762
3763         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
3764         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
3765         predicate, disallow register for operand 2.
3766
3767 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
3768
3769         * graphite-dependences.c (scop_get_dependences): Moved in down
3770         in order to be visible to its caller.
3771         * graphite-poly.h: Removed compute_deps, and extend_schedule.
3772
3773 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3774             Aditya Kumar  <aditya.k7@samsung.com>
3775
3776         PR tree-optimization/67754
3777         * graphite-optimize-isl.c (optimize_isl): Call
3778         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
3779
3780 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
3781
3782         * builtins.c (expand_builtin_acc_on_device): Delete.
3783         (expand_builtin): Don't call it.
3784         (fold_builtin_1): Fold acc_on_device.
3785
3786 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
3787
3788         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
3789         (ix86_nsaved_sseregs): Likewise.
3790
3791 2015-09-29  Jeff Law  <law@redhat.com>
3792
3793         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
3794         computation of unused value.
3795
3796         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
3797         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
3798         inline macro expansion.
3799
3800         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
3801
3802         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
3803         (gen_shl_sext): Likewise.
3804         * config/sh/sh.md (divsi3): Likewise.
3805         (imm->ext_dest_operand splitter): Likewise.
3806
3807 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
3808             Aditya Kumar  <aditya.k7@samsung.com>
3809
3810         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
3811         (nb_data_writes_in_bb): Remove.
3812         (split_pbb): Remove.
3813         (split_reduction_stmt): Remove.
3814         (is_reduction_operation_p): Remove.
3815         (phi_contains_arg): Remove.
3816         (follow_ssa_with_commutative_ops): Remove.
3817         (detect_commutative_reduction_arg): Remove.
3818         (detect_commutative_reduction_assign): Remove.
3819         (follow_inital_value_to_phi): Remove.
3820         (edge_initial_value_for_loop_phi): Remove.
3821         (initial_value_for_loop_phi): Remove.
3822         (used_outside_reduction): Remove.
3823         (detect_commutative_reduction): Remove.
3824         (translate_scalar_reduction_to_array_for_stmt): Remove.
3825         (remove_phi): Remove.
3826         (dr_indices_valid_in_loop): Remove.
3827         (close_phi_written_to_memory): Remove.
3828         (translate_scalar_reduction_to_array): Remove.
3829         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
3830         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
3831         (rewrite_commutative_reductions_out_of_ssa): Remove.
3832         (build_poly_scop): Remove call to
3833         rewrite_commutative_reductions_out_of_ssa.
3834
3835 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
3836
3837         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
3838         Add new insn types for vector load and store pairs.
3839         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
3840         types "neon_ldp{,_q}".
3841         * config/arm/cortex-a57.md (neon_load_c): Add insn types
3842         "neon_ldp{,_q}".
3843         (neon_store_complex): Add insn types "neon_stp{,_q}".
3844         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
3845         "neon_{ldp,stp}_q".
3846
3847 2015-09-29  Jeff Law  <law@redhat.com>
3848
3849         * config/rx/constraints.md (Int08): Fix undefined left shift
3850         behaviour.
3851         (Sint08, Sint16, Sint24): Likewise.
3852         * config/rx/rx.c (rx_get_stack_layout): Likewise.
3853
3854         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
3855         behaviour.
3856
3857         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
3858         left shift behaviour.
3859         * config/msp430/constraints.md ('L' constraint): Similarly.
3860         ('Ys' constraint): Similarly.
3861
3862 2015-09-29  Richard Biener  <rguenther@suse.de>
3863
3864         PR tree-optimization/67170
3865         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
3866         the translate function pointer parameter to get the
3867         bool whether to disambiguate only by reference.
3868         (walk_non_aliased_vuses): Likewise.
3869         * tree-ssa-alias.c (maybe_skip_until): Adjust.
3870         (get_continuation_for_phi_1): Likewise.
3871         (get_continuation_for_phi): Likewise.
3872         (walk_non_aliased_vuses): Likewise.
3873         * tree-ssa-sccvn.c (const_parms): New bitmap.
3874         (vn_reference_lookup_3): Adjust for interface change.
3875         Disambiguate parameters pointing to readonly memory.
3876         (free_scc_vn): Free const_parms.
3877         (run_scc_vn): Initialize const_parms from a fn spec attribute.
3878
3879 2015-09-29  Richard Biener  <rguenther@suse.de>
3880
3881         PR tree-optimization/67741
3882         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
3883         builtin calls with correct signature.
3884
3885 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
3886
3887         PR target/65105
3888         * config/i386/i386.c: Include dbgcnt.h.
3889         (has_non_address_hard_reg): New.
3890         (convertible_comparison_p): New.
3891         (scalar_to_vector_candidate_p): New.
3892         (remove_non_convertible_regs): New.
3893         (scalar_chain): New.
3894         (scalar_chain::scalar_chain): New.
3895         (scalar_chain::~scalar_chain): New.
3896         (scalar_chain::add_to_queue): New.
3897         (scalar_chain::mark_dual_mode_def): New.
3898         (scalar_chain::analyze_register_chain): New.
3899         (scalar_chain::add_insn): New.
3900         (scalar_chain::build): New.
3901         (scalar_chain::compute_convert_gain): New.
3902         (scalar_chain::replace_with_subreg): New.
3903         (scalar_chain::replace_with_subreg_in_insn): New.
3904         (scalar_chain::emit_conversion_insns): New.
3905         (scalar_chain::make_vector_copies): New.
3906         (scalar_chain::convert_reg): New.
3907         (scalar_chain::convert_op): New.
3908         (scalar_chain::convert_insn): New.
3909         (scalar_chain::convert): New.
3910         (convert_scalars_to_vector): New.
3911         (pass_data_stv): New.
3912         (pass_stv): New.
3913         (make_pass_stv): New.
3914         (ix86_option_override): Created and register stv pass.
3915         (flag_opts): Add -mstv.
3916         (ix86_option_override_internal): Likewise.
3917         * config/i386/i386.md (SWIM1248x): New.
3918         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
3919         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
3920         (*anddi3_doubleword): New.
3921         (*zext<mode>_doubleword): New.
3922         (*zextsi_doubleword): New.
3923         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
3924         (*<code>di3_doubleword): New.
3925         * config/i386/i386.opt (mstv): New.
3926         * dbgcnt.def (stv_conversion): New.
3927
3928 2015-09-29  Tom de Vries  <tom@codesourcery.com>
3929
3930         * tree-cfg.c (dump_function_to_file): Dump function attributes.
3931
3932 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
3933
3934         PR target/67716
3935         * config/sh/sh.c (sh_override_options_after_change): New.
3936         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
3937         (sh_option_override): Move align_loops, align_jumps and
3938         align_functions handling into sh_override_options_after_change.
3939
3940 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
3941
3942         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
3943         (nvptx_record_offload_symbol): Record function execution geometry.
3944         * config/nvptx/mkoffload.c (process): Include launch geometry in
3945         function data.
3946         * omp-low.c (oacc_launch_pack): New.
3947         (replace_oacc_fn_attrib): New.
3948         (set_oacc_fn_attrib): New.
3949         (get_oacc_fn_attrib): New.
3950         (expand_omp_target): Create keyed varargs for GOACC_parallel call
3951         generation.
3952         * omp-low.h (get_oacc_fn_attrib): Declare.
3953         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
3954         (DEF_FUNCTION_TYPE_VAR_11): Delete.
3955         * tree.h (OMP_CLAUSE_EXPR): New.
3956         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
3957
3958 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3959             Sebastian Pop  <s.pop@samsung.com>
3960
3961         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
3962
3963 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
3964             Sebastian Pop  <s.pop@samsung.com>
3965
3966         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
3967         * graphite-scop-detection.c (struct sese_l): New type.
3968         (get_entry_bb): API for getting entry bb of SESE.
3969         (get_exit_bb): API for getting exit bb of SESE.
3970         (class debug_printer): New type.  Simple printer in debug mode.
3971         (trivially_empty_bb_p): New.  Return true when BB is empty or
3972         contains only debug instructions.
3973         (graphite_can_represent_expr): Call scalar_evoution_in_region
3974         instead of analyze_scalar_evolution.  Pass in scop instead of only
3975         the scop entry.
3976         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
3977         scop entry.
3978         (stmt_simple_for_scop_p): Same.
3979         (harmful_stmt_in_bb): Same.
3980         (graphite_can_represent_loop): Deleted.
3981         (struct scopdet_info): Deleted.
3982         (scopdet_basic_block_info): Deleted.
3983         (build_scops_1): Deleted.
3984         (bb_in_sd_region): Deleted.
3985         (find_single_entry_edge): Deleted.
3986         (find_single_exit_edge): Deleted.
3987         (create_single_entry_edge): Deleted.
3988         (sd_region_without_exit): Deleted.
3989         (create_single_exit_edge): Deleted.
3990         (unmark_exit_edges): Deleted.
3991         (mark_exit_edges): Deleted.
3992         (create_sese_edges): Deleted.
3993         (build_graphite_scops): Deleted.
3994         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
3995         (build_scops): Use the new scop_builder to build scops.
3996         (dot_all_scops_1): Use the new pretty printer.  Print loop father
3997         as well.
3998         (loop_body_is_valid_scop): New.  Return true if loop body is a
3999         valid scop.
4000         (class scop_builder): New.  Builds SCoPs for polyhedral
4001         optimizations.
4002         (scop_builder): New constructor.
4003         (static sese_l invalid_sese): sese_l with invalid edges.
4004         (get_sese): Get an sese (from a loop) if possible, invalid_sese
4005         otherwise.
4006         (get_nearest_dom_with_single_entry): Get nearest dominator of a
4007         basic_block with single entry.  Return NULL if we get to the
4008         beginning of a function.
4009         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
4010         a basic_block with single exit.  Return NULL if we get to the
4011         beginning of a function.
4012         (print_sese): Pretty-print SESE.
4013         (merge_sese): Merge two SESEs if possible and return the new SESE.
4014         (build_scop_depth): Start building the SCoP within a loop nest.
4015         (build_scop_breadth): Start building the SCoP at a single loop
4016         depth.  Merge adjacent SESEs if valid.
4017         (can_represent_loop_1): Returns true if Graphite can represent
4018         loop inside SCoP.  Helper for can_represent_loop.
4019         (can_represent_loop): Returns true if Graphite can represent LOOP
4020         and all its nested loops in SCoP.
4021         (loop_is_valid_scop): Returns true if LOOP and all its nests
4022         constitute a valid SCoP.
4023         (region_has_one_loop): Returns true of a region has only one loop.
4024         (add_scop): Add SCoP to the list of valid scops.  Removes an
4025         already existing scop if it intersects with or subsumed by this one.
4026         (harmful_stmt_in_region): Returns true if SCoP has any statment
4027         which cannot be represented by Graphite.
4028         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
4029         (remove_subscops): Remove any SCoP from the list of already found
4030         SCoPs, if subsumed by S1.
4031         (intersects): Return true if region bounded by SCoPs S1 and S2
4032         intersect.
4033         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
4034         * graphite.c (print_graphite_scop_statistics):
4035         (print_graphite_statistics): Print SCoP info while debugging.
4036         (graphite_initialize): Early exit in case number of loops in a
4037         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
4038         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
4039         (graphite_finalize):
4040         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
4041         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
4042         (recompute_all_dominators): Recalculate POST_DOMINATORS.
4043         * tree-cfg.c (print_loops): Print the function name while printing
4044         loops.
4045
4046 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
4047             Sebastian Pop  <s.pop@samsung.com>
4048
4049         PR tree-optimization/67700
4050         * graphite-sese-to-poly.c (parameter_index_in_region): Call
4051         invariant_in_sese_p_rec.
4052         (extract_affine): Same.
4053         (rewrite_cross_bb_scalar_deps): Call update_ssa.
4054         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
4055         * sese.h (invariant_in_sese_p_rec): Declare.
4056
4057 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
4058
4059         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
4060
4061 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
4062
4063         Revert:
4064         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4065                     Jiong Wang  <jiong.wang@arm.com>
4066
4067         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
4068         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
4069         (REG_CLASS_NAMES): Likewise.
4070         (REG_CLASS_CONTENTS): Likewise.
4071         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
4072         (aarch64_register_move_cost): Likewise.
4073         (aarch64_load_symref_appropriately): Invoke the new added pattern if
4074         possible.
4075         * config/aarch64/constraints.md (Uc0): New constraint.
4076
4077 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
4078
4079         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
4080
4081 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
4082
4083         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
4084         SECTION_EXCLUDE in XO mapping class.
4085
4086 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
4087
4088         PR target/54236
4089         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
4090         and handle ne and eq codes.
4091         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
4092         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
4093         CONST_INT_P.  Use reverse_condition.
4094         (sh_split_treg_set_expr): Likewise.
4095
4096 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
4097
4098         * config/arm/types.md (type): Add rotate_imm.
4099         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
4100         ROR immediate case.
4101         (*rorsi3_insn_uxtw): Likewise.
4102         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
4103         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
4104         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
4105
4106 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4107
4108         PR rtl-optimization/67481
4109         * ifcvt.c (contains_ccmode_rtx_p): New function.
4110         (insn_valid_noce_process_p): Use it.
4111
4112 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4113
4114         PR rtl-optimization/67456
4115         PR rtl-optimization/67464
4116         PR rtl-optimization/67465
4117         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
4118         move in the mode of x.  Handle combination of complex and simple
4119         block pairs as well as the case when one is empty.
4120
4121 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4122
4123         * doc/gimple.texi: Update references to gimple_statement_base.
4124         * gdbhooks.py: Likewise.
4125         * gimple.h: Likewise.
4126
4127 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4128
4129         * config/sparc/driver-sparc.c: map LEON to leon3
4130
4131 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4132
4133         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
4134           and make it inverse to change default
4135         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
4136           supervisor mode
4137         * doc/invoke.texi: Document change of default
4138
4139 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
4140
4141         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
4142         true on %f0 for a target without FPU.
4143         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
4144         without FPU.
4145         (untyped_return): Do not load %f0 for a target without FPU.
4146
4147 2015-09-28  Andrew Pinski  <apinski@cavium.com>
4148
4149         * config/aarch64/aarch64.md (prefetch):
4150         Change the predicate of operand 0 to register_operand.
4151
4152 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
4153
4154         * config/i386/predicates.md (register_sse4nonimm_operand): New
4155         predicate.
4156         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
4157         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
4158         Use register_sse4nonimm_operand as operand 0 predicate.
4159         (*vec_extractv8hi_sse2): Remove insn pattern.
4160         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
4161         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
4162
4163 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
4164             Kaz Kojima  <kkojima@gcc.gnu.org>
4165
4166         PR target/67391
4167         * config/sh/sh-protos.h (sh_lra_p): Declare.
4168         * config/sh/sh.c (sh_lra_p): Make non-static.
4169         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
4170         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
4171         Expand into addsi3_scr if operands[2] if needed.
4172         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
4173         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
4174         (addsi3_scr, *addsi3): New insn_and_split patterns.
4175
4176 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
4177
4178         PR rtl-optimization/64164
4179         PR tree-optimization/67312
4180         PR middle-end/67340
4181         PR middle-end/67490
4182         PR bootstrap/67597
4183         * cfgexpand.c (parm_in_stack_slot_p): Remove.
4184         (ssa_default_def_partition): Remove.
4185         (get_rtl_for_parm_ssa_default_def): Remove.
4186         (set_rtl): Check that RTL assignments match expectations.
4187         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
4188         default def location for params and results.  Record SSA names
4189         or types in REG and MEM attrs, respectively.
4190         (set_parm_rtl): New.
4191         (expand_one_ssa_partition): Drop logic that assigned MEMs with
4192         unassigned addresses.
4193         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
4194         deferred stack alloc vars.
4195         (expand_used_vars): Skip partitions holding parm default defs.
4196         Move adjust_one_expanded_partition_var loop...
4197         (pass_expand::execute): ... here.  Drop redundant assert.
4198         Adjust comments before the final loop over all ssa names.
4199         Require assigned rtl of parms and results to match exactly.
4200         Reset its attributes to match them, not any other variables in
4201         the same partition.
4202         (expand_debug_expr): Use entry value for PARM's default defs
4203         only iff they have zero nondebug uses.
4204         * cfgexpand.h (parm_in_stack_slot_p): Remove.
4205         (get_rtl_for_parm_ssa_default_def): Remove.
4206         (set_parm_rtl): Declare.
4207         * doc/invoke.texi: Improve wording.
4208         * explow.c (promote_decl_mode): Fix promote_function_mode for
4209         result decls not by reference.
4210         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
4211         bypass TYPE_MODE to get the actual vector mode.
4212         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
4213         2015-08-19's changes as follows.  Drop include of
4214         basic-block.h and df.h.
4215         (rtl_for_parm): Remove.
4216         (maybe_reset_rtl_for_parm): Remove.
4217         (parm_in_unassigned_mem_p): Remove.
4218         (use_register_for_decl): Add logic for RESULT_DECLs matching
4219         assign_parms' behavior.
4220         (split_complex_args): Revert.
4221         (assign_parms_augmented_arg_list): Revert.  Add comment
4222         referencing the logic above.
4223         (assign_parm_adjust_stack_rtl): Revert.
4224         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
4225         of SET_DECL_RTL.  Set up a REG if the parm demands so.
4226         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
4227         calls into a single set_parm_rtl.  Set up a temporary RTL
4228         temporarily for expand_assignment.
4229         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
4230         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
4231         (assign_bounds): Revert.
4232         (assign_parms): Revert.  Use set_parm_rtl.
4233         (allocate_struct_function): Relayout result and parms of
4234         non-abstruct functions.
4235         (expand_function_start): Revert.  Use set_parm_rtl.  If the
4236         result is not a hard reg, create a pseudo from the promoted
4237         mode of the default def.  Promote static chain mode.
4238         * tree-outof-ssa.c (remove_ssa_form): Drop unused
4239         partition_has_default_def.  Set up
4240         partitions_for_parm_default_defs.
4241         (finish_out_of_ssa): Remove partition_has_default_def.
4242         Release partitions_for_parm_default_defs.
4243         * tree-outof-ssa.h (struct ssaexpand): Remove
4244         partition_has_default_def.  Add
4245         partitions_for_parm_default_defs.
4246         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
4247         stor-layout.h.
4248         (build_ssa_conflict_graph): Fix conflict-detection of default
4249         defs of even unused default defs of params and results.
4250         (for_all_parms): New.
4251         (create_default_def): New.
4252         (register_default_def): New.
4253         (coalesce_with_default): New.
4254         (create_outofssa_var_map): Create default defs for all parms
4255         and results, and register their partitions.  Add GIMPLE_RETURN
4256         operands as coalesce candidates with results.  Add default
4257         defs of each parm or result as coalesce candidates with its
4258         other defs.  Mark each result def, and each default def of
4259         parms, as used_in_copy.
4260         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
4261         with the ssa names, even anonymous ones.  Drop
4262         parm_in_stack_slot_p calls.  Require same signedness and
4263         alignment.
4264         (coalesce_ssa_name): Add coalesce candidates for all defs of
4265         each parm and result, even unused ones.
4266         (parm_default_def_partition_arg): New type.
4267         (set_parm_default_def_partition): New.
4268         (get_parm_default_def_partitions): New.
4269         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
4270         * tree-ssa-live.c (partition_view_init): Regard unused defs of
4271         parms and results as used.
4272         (verify_live_on_entry): Don't error out just because they're
4273         not live.
4274
4275 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
4276
4277         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4278         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
4279         (output_fde): Don't output length for debug_frame on AIX.
4280         (output_call_frame_info): Don't output length for debug_frame on AIX.
4281         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
4282         HAVE_XCOFF_DWARF_EXTRAS.
4283         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
4284         HAVE_XCOFF_DWARF_EXTRAS.
4285         (output_compilation_unit_header): Don't output length on AIX.
4286         (output_pubnames): Don't output length on AIX.
4287         (output_aranges): Delete argument. Compute length locally. Don't
4288         output length on AIX.
4289         (output_line_info): Don't output length on AIX.
4290         (dwarf2out_finish): Don't compute aranges_length.
4291         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
4292         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
4293         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
4294         symbol decoration for AIX.
4295         (rs6000_xcoff_debug_unwind_info): New.
4296         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
4297         for SECTION_DEBUG.
4298         (rs6000_xcoff_declare_function_name): Emit different
4299         .function pseudo-op when DWARF2_DEBUG. Don't call
4300         xcoffout_declare_function for DWARF2_DEBUG.
4301         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
4302         Redefine.
4303         * config/rs6000/aix71.h: New.
4304         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
4305         locations support.
4306         * configure: Regenerate.
4307         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
4308         DWARF support.
4309
4310 2015-09-26  Jeff Law  <law@redhat.com>
4311
4312         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
4313         behaviour.
4314         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
4315         behaviour.
4316
4317         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
4318         behaviour
4319
4320         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
4321         undefined behaviour.
4322
4323         * config/cris/cris.md (asrandb): Fix left shift undefined
4324         behaviour.
4325         (asrandw): Likewise.
4326
4327 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
4328
4329         PR target/61578
4330         * lra-constarints.c (match_reload): Check presence of the input pseudo
4331         in the output operand.
4332
4333 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4334
4335         * doc/invoke.texi (-fsanitize): Minor wording tweak.
4336
4337 2015-09-25  Tobias Burnus  <burnus@net-b.de>
4338
4339         * doc/invoke.texi (-fsanitize): Update URLs.
4340
4341 2015-09-25  Teresa Johnson  <tejohnson@google.com>
4342
4343         * opts.c (finish_options): Unset -freorder-blocks-and-partition
4344         if not using profile.
4345
4346 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4347
4348         PR pretty-print/67567
4349         * pretty-print.c (pp_string): Add gcc_checking_assert.
4350         * pretty-print.h (output_buffer_append_r): Likewise.
4351
4352 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
4353
4354         PR target/67675
4355         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
4356         addr2 individually.  Don't emit logical or insn if one is known to
4357         be aligned approriately.
4358         (sh_expand_cmpnstr): Likewise.
4359
4360 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
4361
4362         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
4363         __builtin_aarch64_fp[sc]r arguments into a register.
4364
4365 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
4366
4367         * config.gcc (x86_archs): Replace lakemount with lakemont.
4368         (with_cpu): Likewise.
4369         (with_arch): Likewise.
4370         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4371         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
4372         __tune_lakemount__ with __tune_lakemont__.
4373         * config/i386/i386.c (lakemount_cost): Renamed to ...
4374         (lakemont_cost): This.
4375         (m_LAKEMOUNT): Renamed to ...
4376         (m_LAKEMONT): This.
4377         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
4378         (processor_target_table): Replace "lakemount" with "lakemont".
4379         (processor_alias_table): Likewise.
4380         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
4381         PROCESSOR_LAKEMONT.
4382         (ix86_adjust_cost): Likewise.
4383         (ia32_multipass_dfa_lookahead): Likewise.
4384         * config/i386/i386.h (processor_type): Likewise.
4385         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
4386         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
4387         Lakemount with Lakemont.
4388
4389 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
4390
4391         * config.gcc (x86_archs): Replace iamcu with lakemount.
4392         (with_cpu): Likewise.
4393         (with_arch): Likewise.
4394         * doc/invoke.texi: Likewise.
4395         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
4396         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
4397         __tune_iamcu__ with __tune_lakemount__.
4398         * config/i386/i386.c (iamcu_cost): Renamed to ...
4399         (lakemount_cost): This.
4400         (m_IAMCU): Renamed to ...
4401         (m_LAKEMOUNT): This.
4402         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
4403         (processor_target_table): Replace "iamcu" with "lakemount".
4404         (processor_alias_table): Likewise.
4405         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
4406         PROCESSOR_LAKEMOUNT.
4407         (ix86_adjust_cost): Likewise.
4408         (ia32_multipass_dfa_lookahead): Likewise.
4409         * config/i386/i386.h (processor_type): Likewise.
4410         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
4411
4412 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
4413
4414         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
4415         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
4416         Declare.
4417         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
4418         (pa_expand_compare_and_swap_loop): New.
4419         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
4420         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
4421         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
4422         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
4423         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
4424         Revise.
4425
4426 2015-09-24  Michael Collison  <michael.collison@linaro.org>
4427
4428         PR other/57195
4429         * read-md.c (read_name): Allow mode iterators inside angle
4430         brackets in rtl expressions.
4431
4432 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
4433
4434         PR target/61578
4435         * ira-color.c (update_allocno_cost): Add parameter.
4436         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
4437         parameter.
4438
4439 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4440
4441         PR driver/67640
4442         * opts-common.c (prune_options): Discard all -fdiagnostics-color
4443         but the last one, which is moved to the front to be processed
4444         first.
4445         * opts.c (enable_warning_as_error): Reject options that do not
4446         control warnings.
4447
4448 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4449
4450         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
4451
4452 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
4453
4454         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
4455         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
4456         (aarch64_cannot_force_const_mem): Likewise.
4457         (aarch64_classify_address): Likewise.
4458         (aarch64_classify_symbolic_expression): Likewise.
4459         (aarch64_print_operand): Likewise.
4460         (aarch64_classify_symbol): Likewise.
4461         (aarch64_mov_operand_p): Likewise.
4462         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
4463         (aarch64_mov_operand): Likewise.
4464
4465 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
4466
4467         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
4468         for info->spe_gp_size.
4469
4470 2015-09-24  Richard Biener  <rguenther@suse.de>
4471
4472         PR lto/67699
4473         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
4474         abstract origins.
4475
4476 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
4477
4478         * tree-object-size.c (plus_stmt_object_size)
4479         (cond_expr_object_size): Change the formal parameters from gimple
4480         to gimple *.
4481         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
4482         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
4483         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
4484
4485 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4486
4487         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
4488         Check for ld -type pie on Solaris 11.x and 12.
4489         * configure: Regenerate.
4490         * config.in: Regenerate.
4491
4492         * gcc.c (LD_PIE_SPEC): Allow redefinition.
4493
4494         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
4495         (STARTFILE_SPEC): Use it.
4496         (ENDFILE_CRTEND_SPEC): Define.
4497         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
4498         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
4499         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
4500         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
4501         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
4502         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
4503         (ENDFILE_ARCH_SPEC): Define.
4504         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
4505
4506 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4507
4508         * configure.ac (gcc_cv_solaris_crts): New test.
4509         * configure. Regenerate.
4510         * config.in: Regenerate.
4511         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
4512         HAVE_SOLARIS_CRTS variant.
4513
4514 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4515
4516         * tree-inline.h (count_insns_seq): Delete prototype.
4517         (estimate_num_insns_seq): Define prototype.
4518         * tree-inline.c (count_insns_seq): Delete.
4519         (estimate_num_insns_seq): Remove static qualifier.
4520         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
4521         with estimate_num_insns_seq.
4522
4523 2015-09-24  Richard Biener  <rguenther@suse.de>
4524
4525         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
4526         members.
4527         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
4528         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
4529         offset.
4530         (ao_ref_init_from_vn_reference): Record clique and base in the
4531         built base.
4532         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
4533
4534 2015-09-24  Richard Biener  <rguenther@suse.de>
4535
4536         PR tree-optimization/48885
4537         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
4538         as not including any restrict tags from other pointers.
4539
4540 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4541
4542         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
4543         character when appending to offload_targets.
4544
4545         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
4546         offload targets by commas, not colons.
4547         * config.in: Regenerate.
4548         * configure: Likewise.
4549         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
4550         instead of setting up the default offload targets here...
4551         (process_command): ..., do it here.
4552         libgomp/
4553         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
4554         targets are separated by commas.
4555         * config.h.in: Regenerate.
4556
4557 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
4558             Nathan Sidwell  <nathan@codesourcery.com>
4559
4560         * omp-low.h (omp_reduction_init_op): Declare.
4561         * omp-low.c (omp_reduction_init_op): New, broken out of ...
4562         (omp_reduction_init): ... here.  Call it.
4563         * tree-parloops.c (initialize_reductions): Use
4564         omp_reduction_init_op.
4565
4566 2015-09-23   Richard Biener  <rguenther@suse.de>
4567
4568         PR middle-end/67662
4569         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
4570         undefined overflow unless they will cancel out.
4571
4572 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4573
4574         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
4575         insn emit.
4576
4577 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4578
4579         PR c/49655
4580         * opts.h (write_langs): Declare.
4581         * opts-global.c (write_langs): Make it extern.
4582
4583 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
4584
4585         PR target/67391
4586         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
4587         overlapping regs when matching the pattern.
4588
4589 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
4590
4591         * config/aarch64/aarch64-simd.md
4592         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
4593         (aarch64_float_truncate_hi_v4sf_le): New.
4594         (aarch64_float_truncate_hi_v4sf_be): Likewise.
4595
4596 2015-09-23  Richard Biener  <rguenther@suse.de>
4597
4598         * tree-ssa-structalias.c (intra_create_variable_infos): Build
4599         representatives for all restrict qualified pointer destinations.
4600
4601 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
4602
4603         * config/i386/i386.md (define_code_attr mshift): New.
4604         (define_mode_iterator SWI1248_AVX512BW): Rename ...
4605         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
4606         only.
4607         (define_insn "*k<logic><mode>"): Use new iterator name.
4608         (define_insn "*<mshift><mode>3"): New.
4609
4610 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
4611
4612         PR middle-end/67649
4613         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
4614         mark the block as accessible.
4615
4616 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
4617
4618         * function.c (thread_prologue_and_epilogue_insns): Delete
4619         orig_entry_edge argument to try_shrink_wrapping.
4620         * shrink-wrap.c (can_get_prologue): New function.
4621         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
4622         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
4623         can_get_prologue where needed.  Remove code that finds a single
4624         edge for the prologue.  Remove code that tests if any reg clobbered
4625         by the prologue is live on the prologue edge.  Remove code that finds
4626         the new prologue edge after duplicating blocks.  Make a new prologue
4627         block and edge.
4628         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
4629
4630 2015-09-22  Jeff Law  <law@redhat.com>
4631
4632         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
4633         behavior.
4634
4635 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
4636
4637         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
4638         -Wtemplates, -Wnamespaces): Document.
4639
4640 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4641
4642         PR tree-optimization/67671
4643         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
4644         pointer references as restrict.
4645
4646 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
4647
4648         * config/nios2/nios2.c (nios2_legitimize_address): When handling
4649         'reg + reloc' cases, allow first operand to be non-REG, and use
4650         force_reg() to enforce address pattern.
4651
4652 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
4653
4654         PR target/67480
4655         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
4656         (define_mode_iterator VI12_AVX_AVX512F): New.
4657         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
4658         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
4659         (define_insn "*<code><mode>3"): ... Into new pattern using
4660         VI12_AVX_AVX512F iterators without masking.
4661
4662 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4663
4664         * config.gcc: Support "skylake-avx512".
4665         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
4666         PROCESSOR_SKYLAKE_AVX512.
4667         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
4668         (processor_target_table): Add "skylake-avx512".
4669         (PTA_SKYLAKE_AVX512): Define.
4670         (ix86_option_override_internal): Add "skylake_avx512".
4671         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
4672         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
4673         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
4674         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
4675         * doc/invoke.texi (skylake-avx512): New.
4676
4677 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4678
4679         * gcc/config/i386/i386.md (define_insn "kunpckhi"): Fix
4680         operand in pattern.
4681         (define_insn "kunpcksi"): Ditto.
4682         (define_insn "kunpckdi"): Ditto.
4683
4684 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
4685
4686         * gcc/config/i386/i386.md (define_split not/xor SWI1248x): Use
4687         iterator instead of fixed modes.
4688
4689 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4690
4691         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4692         Adjust declaration.
4693         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
4694         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
4695         out_result.  Update to support update-fetch operations.
4696         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
4697         Adjust for change to aarch64_gen_atomic_ldop.
4698         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
4699         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
4700         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
4701         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
4702         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
4703
4704 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4705
4706         * config/aarch64/aarch64-protos.h
4707         (aarch64_atomic_ldop_supported_p): Declare.
4708         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
4709         (enum aarch64_atomic_load_op_code): New.
4710         (aarch64_emit_atomic_load_op): New.
4711         (aarch64_gen_atomic_ldop): Update to support load-operate
4712         patterns.
4713         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
4714         to an expander.
4715         (aarch64_atomic_<atomic_optab><mode>): New.
4716         (aarch64_atomic_<atomic_optab><mode>_lse): New.
4717         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
4718         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
4719         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
4720
4721 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4722
4723         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
4724         (UNSPECV_ATOMIC_LDOP_OR): New.
4725         (UNSPECV_ATOMIC_LDOP_BIC): New.
4726         (UNSPECV_ATOMIC_LDOP_XOR): New.
4727         (UNSPECV_ATOMIC_LDOP_PLUS): New.
4728         (ATOMIC_LDOP): New.
4729         (atomic_ldop): New.
4730         (aarch64_atomic_load<atomic_ldop><mode>): New.
4731
4732 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4733
4734         * config/aarch64/aarch64.md
4735         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
4736         pattern.
4737
4738 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
4739
4740         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
4741         Declare.
4742         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
4743         (aarch64_gen_atomic_ldop): New.
4744         (aarch64_split_atomic_op): Fix whitespace and add a comment.
4745         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
4746         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
4747         (atomic_exchange<mode>): Replace with an expander.
4748         (aarch64_atomic_exchange<mode>): New.
4749         (aarch64_atomic_exchange<mode>_lse): New.
4750         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
4751         (aarch64_atomic_swp<mode>): New.
4752
4753 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4754
4755         * tree-inline.c (expand_call_inline): Use inform for extra note.
4756         Do not give a note with UNKNOWN_LOCATION.
4757         Replace input_location with gimple_location (stmt).
4758         Use true/false instead of TRUE/FALSE.
4759
4760 2015-09-22  Tom de Vries  <tom@codesourcery.com>
4761
4762         PR tree-optimization/67666
4763         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
4764         with single field non-conservative.
4765
4766 2015-09-21  David S. Miller  <davem@davemloft.net>
4767
4768         PR/67622
4769         Revert:
4770         2015-09-11  David S. Miller  <davem@davemloft.net>
4771
4772         * config/sparc/constraints.md: Make "U" constraint a real register
4773         constraint.
4774         * config/sparc/sparc.c (TARGET_LRA_P): Define.
4775         (D_MODES, DF_MODES): Add missing cast.
4776         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
4777         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
4778         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
4779         cost to 8.
4780         * config/sparc/sparc.h (PROMOTE_MODE): Define.
4781         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
4782         provide these insn when flag_pic.
4783
4784         2015-09-17  David S. Miller  <davem@davemloft.net>
4785
4786         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
4787         Declare.
4788         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
4789         function.
4790         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
4791         (HARD_REGNO_CALLER_SAVE_MODE): Define.
4792         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
4793         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
4794         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
4795         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
4796         provide when flag_pic.
4797
4798 2015-09-21  Jeff Law  <law@redhat.com>
4799
4800         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
4801         behavior.
4802
4803 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
4804
4805         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
4806
4807 2015-09-21  Richard Biener  <rguenther@suse.de>
4808
4809         * passes.c (rest_of_decl_compilation): Do not call
4810         dwarf2out_early_global_decl for aliases.
4811
4812 2015-09-21  Richard Biener  <rguenther@suse.de>
4813
4814         PR debug/67664
4815         * dwarf2out.c (add_location_or_const_value_attribute): Remove
4816         attribute parameter.  Early exit if either DW_AT_const_value
4817         or DW_AT_location are present already.
4818         (gen_variable_die): Adjust caller.
4819         (dwarf2out_late_global_decl): Likewise.
4820
4821 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4822
4823         PR target/67657
4824         * config/sh/sh.c (sh_remove_overlapping_post_inc,
4825         sh_peephole_emit_move_insn): Add new functions.
4826         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
4827         sh_peephole_emit_move_insn): Declere them.
4828         * config/sh/sh.md: Use them in various peephole2 patterns.
4829
4830 2015-09-21  Richard Biener  <rguenther@suse.de>
4831
4832         PR middle-end/67651
4833         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
4834         address with -fno-delete-null-pointer-checks.
4835
4836 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
4837
4838         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
4839         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
4840         (reduc_uplus_v16qi): Remove.
4841
4842         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
4843         (reduc_<VEC_reduc_name>_v2df): Remove.
4844         (reduc_<VEC_reduc_name>_v4sf): Remove.
4845         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
4846
4847         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
4848         gen_ function by removing * prefix.
4849         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
4850
4851 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
4852
4853         PR middle-end/60832
4854         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
4855         Print i_bound without converting it to a tree.
4856
4857 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
4858
4859         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
4860         operands[4] operands[5] swap with std::swap, removed tmp variable.
4861         (arm_evpc_neon_vzip): Replaced in0/in1 and
4862         out0/out1 swaps with std::swap, removed x variable.
4863         (arm_evpc_neon_vtrn): Replaced in0/int1 and
4864         out0/out1 swaos with std::swap, removed x variable.
4865         (arm_expand_vec_perm_const_1): Replaced
4866         d->op0/d->op1 swap with std::swap, removed x variable.
4867         (arm_evpc_neon_vuzp): Replaced in0/in1 and
4868         out0/out1 swaps with std::swap, removed x variable.
4869
4870 2015-09-21  Jonathan Yong  <10walls@gmail.com>
4871
4872         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
4873         sysroot/usr/lib/32api for additional win32 libraries,
4874         fixes failing Cygwin bootstrapping.
4875
4876 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4877
4878         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
4879
4880 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
4881
4882         PR target/67126
4883         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
4884         (*mov_t_msb_neg): Rewrite negc pattern.
4885
4886 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4887
4888         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
4889         immediate generation code.
4890
4891 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4892
4893         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
4894         redundant immediate generation code.
4895
4896 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4897
4898         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
4899         (AARCH64_NUM_BITMASKS): Remove.
4900         (aarch64_bitmasks_cmp): Remove.
4901         (aarch64_build_bitmask_table): Remove.
4902
4903 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4904
4905         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
4906         slow immediate matching loops with a faster algorithm.
4907
4908 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
4909
4910         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
4911         faster algorithm.
4912
4913 2015-09-20  Jeff Law  <law@redhat.com>
4914
4915         PR tree-optimization/47679
4916         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
4917         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
4918         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
4919         (thread_through_normal_block): Use record_temporary_equivalences.
4920
4921 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
4922
4923         * coretypes.h (gimple): Change typedef to be a forward declaration.
4924         * gimple.h (gimple_statement_base): rename to gimple.
4925         * (all functions and types using gimple): Adjust.
4926         * *.[ch]: Likewise.
4927
4928 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
4929             David Edelsohn  <dje.gcc@gmail.com>
4930
4931         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
4932         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
4933         (EH_FRAME_THROUGH_COLLECT2): Define.
4934         (EH_TABLES_CAN_BE_READ_ONLY): Define.
4935         (ASM_OUTPUT_DWARF_PCREL): Define.
4936         (ASM_OUTPUT_DWARF_DATAREL): Define.
4937
4938 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
4939
4940         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
4941         of TARGET_ELF32.
4942
4943 2015-09-18  Jeff Law  <law@redhat.com>
4944
4945         PR tree-optimization/47679
4946         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
4947         it here ...
4948         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
4949         object.  Update constructor.
4950         (pass_dominator::execute):  Corresponding chagnes to declaration
4951         and initialization of avail_exprs_stack.  Update constructor call
4952         for dom_opt_dom_walker object.
4953         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
4954         it down to children as needed.
4955         (record_equivalences_from_incoming_edge): Likewise.
4956         (eliminate_redundant_computations): Likewise.
4957         (record_equivalences_from_stmt): Likewise.
4958         (simplify_stmt_for_jump_threading): Likewise.
4959         (record_temporary_equivalences): Likewise.
4960         (optimize_stmt): Likewise.
4961         (dom_opt_dom_walker::thread_across_edge): Update access to
4962         avail_exprs_stack object and pass it to children as needed.
4963         (dom_opt_dom_walker::before_dom_children): Similarly.
4964         (dom_opt_dom_walker::after_dom_children): Similarly.
4965         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
4966         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
4967         Add avail_expr_stack argument.  Pass it to children as needed.
4968         (dummy_simplify): Likewise.
4969         (simplify_control_stmt_condition): Likewise.
4970         (thread_around_empty_blocks): Likewise.
4971         (thread_through_normal_block): Likewise.
4972         (thread_across_edge): Likewise.
4973         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
4974         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
4975
4976         PR tree-optimization/47679
4977         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
4978         it here ...
4979         (dom_opt_dom_walker): New private member holding the const_and_copies
4980         object.  Update constructor.
4981         (pass_dominator::execute): Corresponding changes to declaration
4982         and initialization of const_and_copies.  Update constructor call
4983         for the dom_opt_dom_walker object.
4984         (record_temporary_equivalences): Accept const_and_copies argument
4985         pass it down to children as needed.
4986         (record_equality): Likewise.
4987         (record_equivalences_from_incoming_edge): Likewise.
4988         (cprop_into_successor_phis, optimize_stmt): Likewise.
4989         (eliminate_redundant_computations): Likewise.
4990         (dom_opt_dom_walker::thread_across_edge): Update access to
4991         const_and_copies object and pass it to children as needed.
4992         (dom_opt_dom_walker::before_dom_children): Similarly.
4993         (dom_opt_dom_walker::after_dom_children): Similarly.
4994
4995         PR tree-optimization/47679
4996         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
4997         it into the avail_exprs_stack class.
4998         (pass_dominator::execute): Corresponding changes to declaration
4999         and initialization of avail_exprs.  Pass avail_exprs to
5000         dump_dominator_optimization_stats.
5001         (record_cond): Extract avail_exprs from avail_exprs_stack.
5002         (lookup_avail_expr): Similarly.
5003         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
5004         position in file.
5005         (dump_dominator_optimization_stats): Make static and prototype.
5006         Add argument for the hash table to dump.
5007         (debug_dominator_optimization_stats): Remove.
5008         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
5009         prototype.
5010         (debug_dominator_optimization_stats): Similarly.
5011         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
5012         "void" in prototype for pop_to_marker method.  Add accessor method
5013         for the underlying avail_exprs table.
5014
5015         * tree-ssa-threadedge.c: Remove trailing whitespace.
5016
5017 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
5018
5019         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
5020         unsigned.
5021         (pa_ldil_cint_p): Likewise.
5022         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
5023         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
5024         Update callers.
5025         * config/pa/pa.md: Likewise.
5026
5027 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
5028
5029         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
5030         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
5031         (diagnostic_show_locus): Likewise.
5032         (diagnostic_print_caret_line): Likewise.
5033         * diagnostic-show-locus.c: New file.
5034
5035 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
5036
5037         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
5038         "back" parameter. Declare label in #if block.
5039
5040 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
5041
5042         PR middle-end/67619
5043         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
5044         the address to a register.
5045
5046 2015-09-18  Jeff Law  <law@redhat.com>
5047
5048         PR tree-optimization/47679
5049         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
5050         * tree-ssa-dom.c: Remove unnecessary header includes.
5051         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
5052         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
5053         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
5054         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
5055         (pass_phi_only_cprop::execute): Likewise.
5056         (make_pass_phi_only_cprop): Likewise.
5057         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
5058         uses of file scoped statics by passing the required objects
5059         as parameters wherever needed.
5060
5061 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
5062             David Edelsohn  <dje.gcc@gmail.com>
5063
5064         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
5065         EH_FRAME_THROUGH_COLLECT2.
5066         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
5067         DW_EH_PE_datarel.
5068         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
5069         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
5070         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
5071         * except.c (switch_to_exception_section): Use a read-only section
5072         even if EH_FRAME_SECTION_NAME is undefined.
5073         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
5074         * collect2.c (write_c_file_stat): Provide dbase on AIX.
5075         (scan_prog_file): Don't export __dso_handle nor
5076         __gcc_unwind_dbase.
5077         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
5078         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5079         (ASM_OUTPUT_DWARF_PCREL): Define.
5080         (ASM_OUTPUT_DWARF_DATAREL): Define.
5081         (EH_FRAME_THROUGH_COLLECT2): Define.
5082         (EH_FRAME_IN_DATA_SECTION): Delete.
5083         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
5084         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
5085         Declare.
5086         (rs6000_asm_output_dwarf_datarel): Declare.
5087         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
5088         (rs6000_aix_asm_output_dwarf_datarel): New.
5089         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
5090         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
5091         (EH_FRAME_THROUGH_COLLECT2): Define.
5092         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
5093         (EH_FRAME_THROUGH_COLLECT2): Define.
5094         (EH_TABLES_CAN_BE_READ_ONLY): Define.
5095         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
5096         (EH_FRAME_THROUGH_COLLECT2): New.
5097         (ASM_OUTPUT_DWARF_DATAREL): New.
5098         * doc/tm.texi: Regenerate.
5099
5100 2015-09-18  Richard Biener  <rguenther@suse.de>
5101
5102         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
5103         we're in early phase.
5104         (schedule_generic_params_dies_gen): Likewise.
5105         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
5106         work as possible, retaining unhandled cases.
5107         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
5108         clear out generic_type_instances at the end.
5109         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
5110         (dwarf2out_early_finish): ... here.  Do most of
5111         gen_remaining_tmpl_value_param_die_attribute here.
5112
5113 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
5114
5115         PR tree-optimization/67283
5116         * tree-sra.c (type_consists_of_records_p): Rename to...
5117         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
5118         (completely_scalarize_record): Rename to...
5119         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
5120         (scalarize_elem): New.
5121         (analyze_all_variable_accesses): Follow renamings.
5122
5123 2015-09-18  Richard Biener  <rguenther@suse.de>
5124
5125         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
5126         in early-dwarf.
5127
5128 2015-09-18  Richard Biener  <rguenther@suse.de>
5129
5130         PR tree-optimization/66142
5131         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
5132         treat MEM[&x] and x the same.
5133         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
5134         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
5135         when we simplified sth.
5136         (vn_reference_maybe_forwprop_address): Likewise.
5137         (valueize_refs_1): When we simplified through
5138         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
5139         set valueized_anything to true.
5140         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
5141         one ref kills the other instead of just a offset-based test.
5142         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
5143         for the operand_equal_p test to compare bases and also compare
5144         sizes.
5145
5146 2015-09-17  Christian Bruel  <christian.bruel@st.com>
5147
5148         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
5149
5150 2015-09-17  Richard Henderson  <rth@redhat.com>
5151
5152         PR libstdc++/65913
5153         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
5154         pointers that encode the alignment of the object.
5155
5156 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5157
5158         PR rtl-optimization/66790
5159         * df-problems.c (LIVE): Amend documentation.
5160
5161 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
5162
5163         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
5164         and optabs-tree.o.
5165         (GTFILES): Replace optabs.c with optabs-libfunc.c.
5166         * genopinit.c (main): Add an include guard to insn-opinit.h.
5167         Protect the rtx_code parts with NUM_RTX_CODE.
5168         * optabs.h: Split parts out to...
5169         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
5170         * optabs.c: Split parts out to...
5171         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
5172         * cilk-common.c: Include optabs-query.h rather than optabs.h.
5173         * fold-const.c: Likewise.
5174         * target-globals.c: Likewise.
5175         * tree-if-conv.c: Likewise.
5176         * tree-ssa-forwprop.c: Likewise.
5177         * tree-ssa-loop-prefetch.c: Likewise.
5178         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
5179         Remove unncessary include files.
5180         * tree-ssa-phiopt.c: Likewise.
5181         * tree-ssa-reassoc.c: Likewise.
5182         * tree-switch-conversion.c: Likewise.
5183         * tree-vect-data-refs.c: Likewise.
5184         * tree-vect-generic.c: Likewise.
5185         * tree-vect-loop.c: Likewise.
5186         * tree-vect-patterns.c: Likewise.
5187         * tree-vect-slp.c: Likewise.
5188         * tree-vect-stmts.c: Likewise.
5189         * tree-vrp.c: Likewise.
5190         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
5191         rather than optabs.h.
5192         * expr.c: Include optabs-tree.h.
5193         * function.c: Likewise.
5194
5195 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
5196
5197         PR middle-end/65958
5198         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
5199         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
5200         * config/arm/arm.c: Include common/common-target.h.
5201         (use_return_insn): Return 0 if the static chain register was saved
5202         above a non-APCS frame.
5203         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
5204         (struct scratch_reg): New.
5205         (get_scratch_register_on_entry): New function.
5206         (release_scratch_register_on_entry): Likewise.
5207         (arm_emit_probe_stack_range): Likewise.
5208         (output_probe_stack_range): Likewise.
5209         (arm_expand_prologue): Factor out code dealing with the IP register
5210         for nested function and adjust it for stack checking.
5211         Invoke arm_emit_probe_stack_range if static builtin stack checking
5212         is enabled.
5213         (thumb1_expand_prologue): Sorry out if static builtin stack checking
5214         is enabled.
5215         (arm_expand_epilogue): Add the saved static chain register, if any, to
5216         the amount of pre-pushed registers to pop.
5217         (arm_frame_pointer_required): Return true if static stack checking is
5218         enabled and we want to catch the exception with the EABI unwinder.
5219         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
5220         (UNSPEC_PROBE_STACK_RANGE): Likewise.
5221         * config/arm/arm.md (probe_stack): New insn.
5222         (probe_stack_range): Likewise.
5223
5224 2015-09-17  Richard Biener  <rguenther@suse.de>
5225
5226         * genmatch.c (parser::parse_expr): Improve error message
5227         for mis-placed flags.
5228
5229 2015-09-17  Richard Biener  <rguenther@suse.de>
5230
5231         * passes.c (rest_of_decl_compilation): Always call early_global_decl
5232         debug hook when we created a varpool node.
5233         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
5234         dwarf2out_early_global_decl, when not just add location or
5235         value attributes to existing DIEs.
5236
5237 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
5238
5239         * config/aarch64/aarch64.md (copysigndf3): New.
5240         (copysignsf3): Likewise.
5241
5242 2015-09-17  David S. Miller  <davem@davemloft.net>
5243
5244         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
5245         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
5246         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
5247         (HARD_REGNO_CALLER_SAVE_MODE): Define.
5248         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
5249         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
5250         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
5251         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
5252         provide when flag_pic.
5253
5254 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
5255
5256         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
5257         object_allocator change.
5258
5259 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5260
5261         PR tree-optimization/66388
5262         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
5263         (dump_iv): Dump no_overflow information.
5264         (alloc_iv): Initialize new field for struct iv.
5265         (mark_bivs): Count number of no_overflow bivs.
5266         (find_deriving_biv_for_expr, record_biv_for_address_use): New
5267         functions.
5268         (idx_find_step): Call new functions above.
5269         (add_candidate_1, add_candidate): New paramter.
5270         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
5271         (get_computation_aff): Simplify convertion of cand for BIV.
5272         (get_computation_cost_at): Step cand's base if necessary.
5273
5274 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
5275
5276         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
5277         parameter.
5278         (tree_simplify_using_condition): Ditto.
5279         (simplify_using_initial_conditions): Ditto.
5280         (loop_exits_before_overflow): Pass new argument to function
5281         simplify_using_initial_conditions.  Remove case for type conversions
5282         simplification.
5283         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
5284         parameter.
5285         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
5286         in iv base using loop initial conditions.
5287
5288 2015-09-16  Jeff Law  <law@redhat.com>
5289
5290         PR tree-optimization/47679
5291         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
5292         (free_all_edge_infos): Use it.
5293         (allocate_edge_info): Free preexisting edge info data.
5294         (pass_dominator::execute): Set up initial edge info structures.
5295         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
5296         thread_across_edge.
5297         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
5298         If non-null, then push/pop markers appropriately.
5299         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5300         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
5301         thread-across_edge.
5302
5303 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
5304
5305         * config/ft32/ft32.c: Fix the memory address space predicate.
5306
5307 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
5308
5309         PR target/67573
5310         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
5311         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
5312
5313 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5314
5315         * toplev.h (check_global_declaration): Remove declaration.
5316         * toplev.c (check_global_declaration): Move to ...
5317         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
5318         (analyze_functions): Update call.
5319
5320 2015-09-16  David S. Miller  <davem@davemloft.net>
5321
5322         * lra-constraints.c (simplify_operand_subreg): Do not assume that
5323         lowpart of a SUBREG has offset zero.
5324
5325 2015-09-16  Jeff Law  <law@redhat.com>
5326
5327         PR tree-optimization/47679
5328         * tree-ssa-dom.c (enum expr_kind): Moved from here to
5329         tree-ssa-scopedtables.h.
5330         (struct hashable_expr, class expr_hash_elt): Likewise.
5331         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
5332         Move associated methods into tree-ssa-scopedtables.c.
5333         (avail_expr_hash, initialize_expr_from_cond): Similarly.
5334         (hashable_expr_equal_p, add_expr_commutative): Likewise.
5335         (add_hashable_expr): Likewise.
5336         (record_cond): Delete element directly.
5337         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
5338         private copy ctor and assignment operator methods.
5339         (expr_elt_hasher): Inline trivial methods.
5340         (initialize_expr_from_cond): Prototype.
5341         * tree-ssa-scopedtables.c: Add necessary includes, functions and
5342         methods that were previously in tree-ssa-dom.c.  Improve various
5343         comments.
5344
5345 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
5346
5347         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
5348
5349 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
5350
5351         PR bootstrap/67587
5352         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
5353         fixup_partitions.
5354
5355 2015-09-16  Richard Biener  <rguenther@suse.de>
5356
5357         PR middle-end/67253
5358         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
5359         location of possibly shared trees.
5360
5361 2015-09-16  Richard Biener  <rguenther@suse.de>
5362
5363         PR middle-end/67271
5364         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
5365
5366 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
5367
5368         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
5369         offset and size computations instead of HOST_WIDE_INT.
5370
5371 2015-09-16  Richard Biener  <rguenther@suse.de>
5372
5373         PR middle-end/67442
5374         * fold-const.c (extract_muldiv_1): Properly extend multiplication
5375         result before builting a tree via wide_int_to_tree.
5376
5377 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
5378
5379         * Makefile.in: Add memory-block.cc
5380         (pool_allocator::initialize): Use fixed block size.
5381         (pool_allocator::release): Use memory_block_pool.
5382         (pool_allocator::allocate): Likewise.
5383         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
5384         object pools.
5385         * cfg.c (initialize_original_copy_tables): Likewise.
5386         * cselib.c (elt_list_pool, elt_loc_list_pool,
5387         cselib_val_pool): Likewise.
5388         * df-problems.c (df_chain_alloc): Likewise.
5389         * df-scan.c (df_scan_alloc): Likewise.
5390         * dse.c (cse_store_info_pool, rtx_store_info_pool,
5391         read_info_type_pool, insn_info_type_pool, bb_info_pool,
5392         group_info_pool, deferred_change_pool): Likewise.
5393         * et-forest.c (et_nodes, et_occurrences): Likewise.
5394         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
5395         ipcp_agg_lattice_pool): Likewise.
5396         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
5397         * ipa-profile.c (histogram_pool): Likewise.
5398         * ipa-prop.c (ipa_refdesc_pool): Likewise.
5399         * ira-build.c (live_range_pool, allocno_pool, object_pool,
5400         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
5401         * ira-color.c (update_cost_record_pool): Likewise.
5402         * lra-lives.c (lra_live_range_pool): Likewise.
5403         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
5404         * memory-block.cc: New file.
5405         * memory-block.h: New file.
5406         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
5407         * sched-deps.c (sched_deps_init): Likewise.
5408         * sel-sched-ir.c (sched_lists_pool): Likewise.
5409         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
5410         * tree-sra.c (access_pool): Likewise.
5411         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
5412         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
5413         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
5414         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
5415         * tree-ssa-strlen.c (strinfo_pool): Likewise.
5416         * tree-ssa-structalias.c (variable_info_pool): Likewise.
5417         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
5418         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
5419
5420 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5421
5422         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
5423         definition.
5424         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
5425         call0 ABI.
5426
5427 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
5428
5429         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
5430         to pass TLS call argument, according to current ABI.
5431         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
5432         callx0 for TLS call, according to current ABI.
5433
5434 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5435
5436         * tree-eh.c (lower_try_finally_dup_block): Clear location information
5437         on stack restore statements.
5438         (decide_copy_try_finally): Do not consider a stack restore statement as
5439         coming from sources.
5440
5441 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
5442
5443         * config/alpha/alpha.c (alpha_expand_block_clear): Use
5444         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
5445
5446 2015-09-15  Jeff Law  <law@redhat.com>
5447
5448         PR tree-optimization/47679
5449         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
5450         methods and private members.
5451         (avail_exprs_stack): Similarly.  Change type of global
5452         from a pair of expr_hash_elt_t to the new class.
5453         (expr_elt_hasher::hash): Corresponding changes.
5454         (expr_elt_hasher::equal): Similarly.
5455         (avail_expr_hash): Similarly.
5456         (pass_dominator::execute): Similarly.
5457         (dom_opt_dom_walker::thread_across_edge): Similarly.
5458         (record_cond): Similarly.
5459         (dom_opt_dom_walker::before_dom_children): Similarly.
5460         (dom_opt_dom_walker::after_dom_children): Similarly.
5461         (lookup_avail_expr): Likewise.
5462         (initialize_hash_element): Now a expr_hash_elt constructor.
5463         (initialize_hash_element_from_expr): Similarly.
5464         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
5465         (free_expr_hash_elt): Call dtor for the element.
5466         (remove_local_expressions_from_table): Now the "pop_to_marker"
5467         method in the available_exprs_stack class.
5468         (avail_expr_stack::record_expr): Method factored out.
5469         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
5470         Fix formatting.
5471         (hashable_expr_equal_p): Fix formatting.
5472
5473 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
5474
5475         * input.h (location_get_source_line): Drop "expanded_location"
5476         param in favor of a file and line number.
5477         * input.c (location_get_source_line): Likewise.
5478         (dump_location_info): Update for change in signature of
5479         location_get_source_line.
5480         * diagnostic.c (diagnostic_print_caret_line): Likewise.
5481
5482 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
5483
5484         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
5485         Bump to 4KB for SJLJ exceptions.
5486         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
5487         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
5488         * doc/tm.texi: Regenerate.
5489
5490 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5491
5492         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
5493         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
5494         Update prototype.
5495
5496 2015-09-15  Richard Biener  <rguenther@suse.de>
5497
5498         PR tree-optimization/67470
5499         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
5500         structure for PHI hoisting by inserting a forwarder block
5501         if appropriate.
5502
5503 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5504
5505         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
5506         (arm_option_print): New function.
5507
5508 2015-09-15  Christian Bruel  <christian.bruel@st.com>
5509
5510         PR target/52144
5511         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
5512         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
5513         Remove flags parameter.
5514         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
5515         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
5516         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
5517         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
5518         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
5519         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
5520         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
5521         * gcc/config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
5522
5523 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5524
5525         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
5526
5527         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
5528         AARCH64_VALID_SIMD_DREG_MODE.
5529
5530 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5531
5532         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
5533         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
5534         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
5535         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
5536         aarch64_ld4_lane<mode>): Combine together, making...
5537         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5538         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5539         aarch64_st4_lane<mode>): Combine together, making...
5540         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
5541         * config/aarch64/iterators.md (nregs): Add comment.
5542
5543 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5544
5545         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
5546         Change operand mode from <V_TWO_ELEM> to BLK.
5547         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
5548         (aarch64_vec_store_lanesoi_lane<mode): Likewise
5549         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5550         (aarch64_ld2_lane<mode>): Likewise.
5551         (aarch64_st2_lane<VQ:mode>): Likewise.
5552         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
5553
5554 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5555
5556         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
5557         Change operand mode from <V_FOUR_ELEM> to BLK.
5558         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
5559         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
5560         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5561         (aarch64_ld4_lane<mode>): Likewise.
5562         (aarch64_st4_lane<mode>): Likewise.
5563         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
5564
5565 2015-09-15  Richard Biener  <rguenther@suse.de>
5566
5567         PR middle-end/67563
5568         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
5569         transfer EH info from old to new stmt.
5570         (replace_call_with_value): Likewise.
5571         (replace_call_with_call_and_fold): Likewise.
5572         (gimple_fold_builtin_memory_op): Likewise.
5573         (gimple_fold_builtin_memset): Likewise.
5574         (gimple_fold_builtin_stpcpy): Likewise.
5575         (gimple_fold_call): Likewise.
5576
5577 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5578
5579         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
5580         comment.
5581         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
5582         (aarch64_simd_intEI_type_node): Likewise.
5583         (aarch64_simd_builtin_std_type): Remove EImode case.
5584         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
5585         * config/aarch64/aarch64-modes.def: Remove EImode.
5586
5587 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5588
5589         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
5590         Change operand mode from <V_THREE_ELEM> to BLK.
5591         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
5592         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
5593         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
5594         (aarch64_ld3_lane<mode>): Likewise.
5595         (aarch64_st3_lane<mode>): Likewise.
5596         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
5597
5598 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5599
5600         * config/aarch64/aarch64-simd.md
5601         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
5602         Change all TImode operands to BLKmode.
5603         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
5604         Change all EImode operands to BLKmode.
5605         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
5606         Change all OImode operands to BLKmode.
5607
5608         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
5609         and call set_mem_size.
5610         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
5611
5612         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
5613
5614 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
5615
5616         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
5617         to...
5618         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
5619
5620         (vec_store_lanesci_lane<mode>): Rename to...
5621         (aarch64_vec_store_lanesci_lane<mode>): ...this.
5622
5623         (vec_store_lanesxi_lane<mode>): Rename to...
5624         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
5625
5626         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
5627         aarch64_st4_lane<mode>): Follow renaming.
5628
5629 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5630
5631         * config/s390/s390.c (s390_const_operand_ok): Add missing
5632         brackets.
5633
5634 2015-09-15  Richard Biener  <rguenther@suse.de>
5635
5636         PR lto/67568
5637         * lto-streamer.h (lto_location_cache::current_sysp): Properly
5638         initialize.
5639         * lto-streamer-out.c (clear_line_info): Likewise.
5640
5641 2015-09-15  Richard Biener  <rguenther@suse.de>
5642
5643         * doc/match-and-simplify.texi: Fix wording.
5644
5645 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
5646
5647         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
5648         unnecessary type conversion in op1.
5649
5650 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
5651
5652         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
5653         (dup_block_and_redirect): Delete function.
5654         (can_dup_for_shrink_wrapping): New function.
5655         (fix_fake_fallthrough_edge): New function.
5656         (try_shrink_wrapping): Rewrite function.
5657         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
5658
5659 2015-09-14  Rich Felker  <dalias@libc.org>
5660
5661         * configure.ac: Change target pattern for sh TLS support
5662         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
5663         * configure: Regenerate.
5664
5665 2015-09-14  Jeff Law  <law@redhat.com>
5666
5667         PR tree-optimization/47679
5668         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
5669         type rather than void *.
5670
5671 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5672
5673         PR fortran/67460
5674         * diagnostic.c (diagnostic_initialize): Do not set
5675         some_warnings_are_errors.
5676         (diagnostic_finish): Use DK_WERROR count instead.
5677         (diagnostic_report_diagnostic): Do not set
5678         some_warnings_are_errors.
5679         * diagnostic.h (struct diagnostic_context): Remove
5680         some_warnings_are_errors.
5681
5682 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
5683
5684         * config/sparc/predicates.md (const_all_ones_operand): Use
5685         CONSTM1_RTX to simplify definition.
5686
5687 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
5688
5689         PR target/67061
5690         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
5691         Handle call insns.
5692
5693 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
5694
5695         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
5696         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
5697         OPT_fshow_column to handled saved option cases.
5698         (append_compiler_options): Do not skip the above added options.
5699
5700 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5701
5702         PR target/63304
5703         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
5704         nopcrelative_literal_loads.
5705         (aarch64_classify_address): Likewise.
5706         (aarch64_constant_pool_reload_icode): Define.
5707         (aarch64_secondary_reload): Handle secondary reloads for
5708         literal pools.
5709         (aarch64_override_options): Handle nopcrelative_literal_loads.
5710         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
5711         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
5712         Define.
5713         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
5714         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
5715         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
5716         predicate.
5717         * doc/invoke.texi (mpc-relative-literal-loads): Document.
5718
5719 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
5720
5721         PR middle-end/67401
5722         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
5723         sync_compare_and_swap_optab libcall to target_oval.
5724
5725 2015-09-14  Marek Polacek  <polacek@redhat.com>
5726
5727         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
5728         value.
5729         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
5730
5731 2015-09-11  Mark Wielaard  <mjw@redhat.com>
5732
5733         PR c/28901
5734         * toplev.c (check_global_declaration): Check and use
5735         warn_unused_const_variable.
5736         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
5737         (-Wunused-variable): Remove non-constant. For C implies
5738         -Wunused-const-variable.
5739         (-Wunused-const-variable): New.
5740
5741 2015-09-14  Richard Biener  <rguenther@suse.de>
5742
5743         * doc/match-and-simplify.texi: Update for changed syntax
5744         of inner ifs and the new switch expression.
5745
5746 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
5747
5748         * config/i386/haswell.md: New file describing Haswell pipeline.
5749         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
5750         haswell-like processors.
5751         (ix86_reassociation_width): Increase reassociation width for 64-bit
5752         Haswell processor family.
5753         * config/i386/i386.md: Introduce haswell cpu and include new md file.
5754
5755 2015-09-14  Richard Biener  <rguenther@suse.de>
5756
5757         * doc/match-and-simplify.texi: Fixup some formatting issues
5758         and document the 's' flag.
5759
5760 2015-09-13  Olivier Hainque  <hainque@adacore.com>
5761             Eric Botcazou  <ebotcazou@adacore.com>
5762
5763         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
5764         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
5765         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
5766         (TARGET_CPU_gr5): Likewise.
5767         (TARGET_CPU_gr6): Likewise.
5768         (MULTILIB_DEFAULTS): Likewise.
5769         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
5770         for mcpu=gr5 and mcpu=gr6.
5771         (MULTILIB_DIRNAMES): Adjust accordingly.
5772
5773 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5774
5775         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
5776         (mem_ref_p): Likewise.
5777         (outermost_indep_loop): Adjust.
5778         (mem_ref_in_stmt): Likewise.
5779         (determine_max_movement): Likewise.
5780         (mem_ref_alloc): Likewise.
5781         (record_mem_ref_loc): Likewise.
5782         (set_ref_stored_in_loop): Likewise.
5783         (mark_ref_stored): Likewise.
5784         (gather_mem_refs_stmt): Likewise.
5785         (mem_refs_may_alias_p): Likewise.
5786         (for_all_locs_in_loop): Likewise.
5787         (struct rewrite_mem_ref_loc): Likewise.
5788         (rewrite_mem_refs): Likewise.
5789         (struct first_mem_ref_loc_1): Likewise.
5790         (first_mem_ref_loc): Likewise.
5791         (struct sm_set_flag_if_changed): Likewise.
5792         (execute_sm_if_changed_flag_set): Likewise.
5793         (execute_sm): Likewise.
5794         (hoist_memory_references):
5795         (struct ref_always_accessed): Likewise.
5796         (ref_always_accessed_p): Likewise.
5797         (refs_independent_p): Likewise.
5798         (record_dep_loop): Likewise.
5799         (ref_indep_loop_p_1): Likewise.
5800         (ref_indep_loop_p_2): Likewise.
5801         (ref_indep_loop_p): Likewise.
5802         (can_sm_ref_p): Likewise.
5803         (find_refs_for_sm): Likewise.
5804         (tree_ssa_lim_finalize): Likewise.
5805
5806 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5807
5808         * dwarf2out.c (dw_attr_ref): Remove typedef.
5809         (dw_line_info_ref): Likewise.
5810         (pubname_ref): Likewise.
5811         (dw_ranges_ref): Likewise.
5812         (dw_ranges_by_label_ref): Likewise.
5813         (comdat_type_node_ref): Likewise.
5814         (get_AT): Adjust.
5815         (get_AT_low_pc): Likewise.
5816         (get_AT_hi_pc): Likewise.
5817         (get_AT_string): Likewise.
5818         (get_AT_flag): Likewise.
5819         (get_AT_unsigned): Likewise.
5820         (get_AT_ref): Likewise.
5821         (get_AT_file): Likewise.
5822         (remove_AT): Likewise.
5823         (print_die): Likewise.
5824         (check_die): Likewise.
5825         (die_checksum): Likewise.
5826         (attr_checksum_ordered): Likewise.
5827         (struct checksum_attributes): Likewise.
5828         (collect_checksum_attributes): Likewise.
5829         (die_checksum_ordered): Likewise.
5830         (same_die_p): Likewise.
5831         (is_declaration_die): Likewise.
5832         (clone_die): Likewise.
5833         (clone_as_declaration): Likewise.
5834         (copy_declaration_context): Likewise.
5835         (break_out_comdat_types): Likewise.
5836         (copy_decls_walk): Likewise.
5837         (output_location_lists): Likewise.
5838         (external_ref_hasher::hash): Likewise.
5839         (optimize_external_refs_1): Likewise.
5840         (build_abbrev_table): Likewise.
5841         (size_of_die): Likewise.
5842         (unmark_all_dies): Likewise.
5843         (size_of_pubnames): Likewise.
5844         (output_die_abbrevs): Likewise.
5845         (output_die): Likewise.
5846         (output_pubnames): Likewise.
5847         (add_ranges_num): Likewise.
5848         (add_ranges_by_labels): Likewise.
5849         (add_high_low_attributes): Likewise.
5850         (gen_producer_string): Likewise.
5851         (dwarf2out_set_name): Likewise.
5852         (new_line_info_table): Likewise.
5853         (prune_unused_types_walk_attribs): Likewise.
5854         (prune_unused_types_update_strings): Likewise.
5855         (prune_unused_types): Likewise.
5856         (resolve_addr): Likewise.
5857         (optimize_location_lists_1): Likewise.
5858         (index_location_lists): Likewise.
5859         (dwarf2out_finish): Likewise.
5860
5861 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5862
5863         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
5864
5865 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5866
5867         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
5868         (dump_asserts_for): Adjust.
5869         (register_new_assert_for): Likewise.
5870         (process_assert_insertions): Likewise.
5871         (insert_range_assertions): Likewise.
5872
5873 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5874
5875         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
5876         and remove typedef.
5877         (new_temp_expr_table): Adjust.
5878         (free_temp_expr_table): Likewise.
5879         (version_to_be_replaced_p): Likewise.
5880         (make_dependent_on_partition): Likewise.
5881         (add_to_partition_kill_list): Likewise.
5882         (remove_from_partition_kill_list): Likewise.
5883         (add_dependence): Likewise.
5884         (finished_with_expr): Likewise.
5885         (process_replaceable): Likewise.
5886         (kill_expr): Likewise.
5887         (kill_virtual_exprs): Likewise.
5888         (mark_replaceable): Likewise.
5889         (find_replaceable_in_bb): Likewise.
5890         (find_replaceable_exprs): Likewise.
5891         (debug_ter): Likewise.
5892
5893 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5894
5895         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
5896         (struct btr_user): Rename from btr_user_s.
5897         (struct btr_def): Rename from btr_def_s.
5898         (find_btr_def_group): Adjust.
5899         (add_btr_def): Likewise.
5900         (new_btr_user): Likewise.
5901         (note_other_use_this_block): Likewise.
5902         (compute_defs_uses_and_gen): Likewise.
5903         (link_btr_uses): Likewise.
5904         (build_btr_def_use_webs): Likewise.
5905         (block_at_edge_of_live_range_p): Likewise.
5906         (btr_def_live_range): Likewise.
5907         (combine_btr_defs): Likewise.
5908         (move_btr_def): Likewise.
5909         (migrate_btr_def): Likewise.
5910         (migrate_btr_defs): Likewise.
5911
5912 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5913
5914         * var-tracking.c (shared_hash_def): Rename to shared_hash.
5915         (shared_hash): Remove typedef.
5916         (struct dataflow_set): Adjust.
5917         (shared_hash_unshare): Likewise.
5918         (dataflow_set_merge): Likewise.
5919         (vt_initialize): Likewise.
5920         (vt_finalize): Likewise.
5921
5922 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5923
5924         * var-tracking.c (struct location_chain): Rename from
5925         location_chain_def.
5926         (struct variable_part): Adjust.
5927         (variable_htab_free): Likewise.
5928         (unshare_variable): Likewise.
5929         (get_init_value): Likewise.
5930         (get_addr_from_local_cache): Likewise.
5931         (drop_overlapping_mem_locs): Likewise.
5932         (val_reset): Likewise.
5933         (struct variable_union_info): Likewise.
5934         (variable_union): Likewise.
5935         (find_loc_in_1pdv): Likewise.
5936         (insert_into_intersection): Likewise.
5937         (intersect_loc_chains): Likewise.
5938         (canonicalize_loc_order_check): Likewise.
5939         (canonicalize_values_mark): Likewise.
5940         (canonicalize_values_star): Likewise.
5941         (canonicalize_vars_star): Likewise.
5942         (variable_merge_over_cur): Likewise.
5943         (remove_duplicate_values): Likewise.
5944         (variable_post_merge_new_vals): Likewise.
5945         (variable_post_merge_perm_vals): Likewise.
5946         (find_mem_expr_in_1pdv): Likewise.
5947         (dataflow_set_preserve_mem_locs): Likewise.
5948         (dataflow_set_remove_mem_locs): Likewise.
5949         (variable_part_different_p): Likewise.
5950         (onepart_variable_different_p): Likewise.
5951         (find_src_set_src): Likewise.
5952         (dump_var): Likewise.
5953         (set_slot_part): Likewise.
5954         (clobber_slot_part): Likewise.
5955         (delete_slot_part): Likewise.
5956         (vt_expand_var_loc_chain): Likewise.
5957         (emit_note_insn_var_location): Likewise.
5958         (vt_finalize): Likewise.
5959
5960 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5961
5962         * dse.c (store_info_t): Remove typedef.
5963         (group_info_t): Likewise.
5964         (const_group_info_t): Likewise.
5965         (deferred_change_t): Likewise.
5966         (get_group_info): Adjust.
5967         (free_store_info): Likewise.
5968         (canon_address): Likewise.
5969         (clear_rhs_from_active_local_stores): Likewise.
5970         (record_store): Likewise.
5971         (replace_read): Likewise.
5972         (check_mem_read_rtx): Likewise.
5973         (scan_insn): Likewise.
5974         (remove_useless_values): Likewise.
5975         (dse_step1): Likewise.
5976         (dse_step2_init): Likewise.
5977         (dse_step2_nospill): Likewise.
5978         (scan_stores_nospill): Likewise.
5979         (scan_reads_nospill): Likewise.
5980         (dse_step3_exit_block_scan): Likewise.
5981         (dse_step3): Likewise.
5982         (dse_step5_nospill): Likewise.
5983         (dse_step6): Likewise.
5984
5985 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5986
5987         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
5988         (alias_set_entry): Remove typedef.
5989         (alias_set_subset_of): Adjust.
5990         (alias_sets_conflict_p): Likewise.
5991         (init_alias_set_entry): Likewise.
5992         (get_alias_set): Likewise.
5993         (new_alias_set): Likewise.
5994         (record_alias_subset): Likewise.
5995
5996 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
5997
5998         * doc/install.texi (Downloading the source): Mark up
5999         contrib/download_prerequisites properly and drop leading "./".
6000
6001 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6002
6003         * config/arc/arc.h: Remove define of STRUCT_VALUE.
6004         * config/lm32/lm32.h: Likewise.
6005         * config/mep/mep.h: Likewise.
6006         * config/visium/visium.h: Likewise.
6007         * system.h: Poison STRUCT_VALUE macro.
6008
6009 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
6010
6011         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
6012         CONSTANT_P operands.
6013
6014 2015-09-11  David S. Miller  <davem@davemloft.net>
6015
6016         * config/sparc/constraints.md: Make "U" constraint a real register
6017         constraint.
6018         * config/sparc/sparc.c (TARGET_LRA_P): Define.
6019         (D_MODES, DF_MODES): Add missing cast.
6020         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
6021         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
6022         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
6023         cost to 8.
6024         * config/sparc/sparc.h (PROMOTE_MODE): Define.
6025         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
6026         provide these insn when flag_pic.
6027
6028 2015-09-11  Jeff Law  <law@redhat.com>
6029
6030         PR tree-optimization/47679
6031         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
6032         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
6033         member with m_.  Update inline member functions as necessary.  Add
6034         toplevel comment.
6035         * tree-ssa-scopedtables.c: Update const_and_copies's member
6036         functions to use m_ prefix to access the stack.
6037
6038 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6039
6040         * graphite-optimize-isl.c (disable_tiling): Remove.
6041         (get_schedule_for_band): Do not use disable_tiling.
6042         (get_prevector_map): Delete function.
6043         (enable_polly_vector): Remove.
6044         (get_schedule_for_band_list): Remove dead code.
6045
6046 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
6047
6048         * graphite-optimize-isl.c (get_tile_map): Refactor.
6049         (get_schedule_for_band): Same.
6050         (getScheduleForBand): Same.
6051         (get_prevector_map): Same.
6052         (get_schedule_for_band_list): Same.
6053         (get_schedule_map): Same.
6054         (get_single_map): Same.
6055         (apply_schedule_map_to_scop): Same.
6056         (optimize_isl): Same.
6057
6058 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6059
6060         PR target/63304
6061         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
6062         (movtf): Delete.
6063         * config/aarch64/iterators.md (GPF_TF_F16): New.
6064         (GPF_F16): Delete.
6065
6066 2015-09-10  Nathan Sidwell  <nathan@acm.org>
6067
6068         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
6069         (nvptx_reorg): Adjust comments.
6070
6071 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
6072
6073         PR bootstrap/67363
6074         * configure.ac: Check if setenv and unsetenv are declared.
6075         * configure: Rebuild.
6076         * config.in: Rebuild.
6077         * system.h: Declare setenv and unsetenv if not declared.
6078
6079 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6080
6081         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
6082         commentary to simplify permute mask adjustment equation.
6083         (special_handling_values): Add SH_VPERM.
6084         (const_load_sequence_p): New function.
6085         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
6086         the mask loaded from the constant pool.
6087         (adjust_vperm): New function.
6088         (handle_special_swappables): Call adjust_vperm.
6089         (dump_swap_insn_table): Handle SH_VPERM.
6090
6091 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
6092
6093         * shrink-wrap.c (requires_stack_frame_p): Remove static.
6094         * shrink-wrap.h (requires_stack_frame_p): Put back.
6095
6096 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
6097
6098         * reload1.c (elimination_costs_in_insn): Locally turn
6099         -Wmaybe-uninitialized into a warning.
6100
6101 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
6102
6103         * shrink-wrap.c (requires_stack_frame_p): Make static.
6104         (prepare_shrink_wrap): Likewise.
6105         (dup_block_and_redirect): Likewise.
6106         * shrink-wrap.h: Remove declarations of those functions.
6107
6108 2015-09-10  Mark Wielaard  <mjw@redhat.com>
6109
6110         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
6111
6112 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
6113
6114         PR target/67506
6115         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
6116         missing simplify_gen_subreg.
6117
6118 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6119
6120         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
6121         the vector element is bigger than 64 bit.
6122
6123 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6124
6125         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
6126         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
6127
6128 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6129
6130         * config/s390/s390.c: Add V1TImode to constant pool modes.
6131
6132 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6133
6134         PR target/67439
6135         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
6136         predicate.  Set predicable_short_it attr to "no".
6137
6138 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
6139
6140         PR rtl-optimization/67421
6141         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
6142         left wide shift tranformation.
6143
6144 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
6145
6146         * common/config/arc/arc-common.c: Remove references to A5.
6147         * config/arc/arc-opts.h: Likewise.
6148         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
6149         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
6150         * config/arc/t-arc-newlib: Likewise.
6151
6152 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
6153
6154         * config/arc/arc.md (length): Fix attribute length for conditional
6155         executed instructions with long immediate.
6156
6157 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6158
6159         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
6160         type for second alternative.
6161
6162 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
6163
6164         * doc/invoke.texi (Downloading GCC): Mention
6165         contrib/download_prerequisites script.
6166
6167 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
6168
6169         PR c++/67523
6170         * gimplify.c (gimplify_omp_for): If inner stmt is not found
6171         for combined loop, assert seen_error () and return GS_ERROR.
6172
6173         PR middle-end/67521
6174         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
6175         if decl is already in outer->variables.
6176
6177         PR middle-end/67517
6178         * gimplify.c (gimplify_scan_omp_clauses): Instead of
6179         asserting that decl is not specified in octx->variables,
6180         break out of the loop if it is.
6181
6182         PR c++/67514
6183         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
6184         iterator is not explicitly determined, but is defined inside
6185         of the combined workshare region, handle it like if it has
6186         DECL_EXPR in OMP_FOR_PRE_BODY.
6187
6188 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6189
6190         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
6191         (*cmp<mode>): Add assembler spacing.
6192         (setcc_int<mode>, set_cc_float<mode>): Likewise.
6193         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
6194         level.
6195         (write_func_decl_from_insn): Refactor argument loops & comma emission.
6196         (nvptx_expand_call): Likewise.
6197         (nvptx_output_call_insn): Likewise.
6198         (nvptx_reorg_subreg): Add spacing.
6199
6200 2015-09-09  Marek Polacek  <polacek@redhat.com>
6201
6202         PR middle-end/67512
6203         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
6204         for comparisons.
6205
6206 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
6207
6208         PR c++/53184
6209         * doc/invoke.texi ([Wsubobject-linkage]): Document.
6210
6211 2015-09-09  Tom de Vries  <tom@codesourcery.com>
6212
6213         * params-list.h: Add missing copyright notice.
6214
6215 2015-09-09  Nathan Sidwell  <nathan@acm.org>
6216
6217         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
6218         sel_truesi, not andsi.
6219
6220 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6221
6222         * config/arm/arm.md (*subsi3_compare0): Rename to...
6223         (subsi3_compare0): ... This.
6224         (modsi3): New define_expand.
6225         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
6226         when operand is power of 2.
6227
6228 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6229
6230         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
6231         (*neg<mode>2_compare0): Rename to...
6232         (neg<mode>2_compare0): ... This.
6233         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
6234         Move check for speed inside the if-then-elses.  Reflect
6235         CSNEG sequence in MOD by power of 2 case.
6236
6237 2015-09-09  Alan Modra  <amodra@gmail.com>
6238
6239         PR target/67378
6240         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
6241         reload replacement for PRE_MODIFY address reg.
6242
6243 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
6244
6245         PR tree-optimization/53852
6246         * config.in: Regenerate.
6247         * configure: Regenerate.
6248         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
6249         * graphite-optimize-isl.c (optimize_isl): Stop computation when
6250         PARAM_MAX_ISL_OPERATIONS is reached.
6251         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
6252         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
6253         result equal to isl_stat_ok as the status now can be isl_error_quota.
6254         (subtract_commutative_associative_deps): Same.
6255         (compute_deps): Same.
6256
6257 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
6258             Sebastian Pop  <s.pop@samsung.com>
6259
6260         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
6261         Return the parameter if it was saved in corresponding
6262         parameter_rename_map of the region.
6263         (copy_def): Copy def from sese region to the newly created region.
6264         (copy_internal_parameters): Copy all the internal parameters defined
6265         within a region to the newly created region.
6266         (graphite_regenerate_ast_isl): Copy parameters to the new region before
6267         translating isl to gimple.
6268         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
6269         the loop-nest does not have any data-references.
6270         (build_graphite_scops): Create a scop only when there is at least one
6271         loop inside it.
6272         (contains_only_close_phi_nodes): Deleted.
6273         (print_graphite_scop_statistics): Deleted
6274         (print_graphite_statistics): Deleted
6275         (limit_scops): Deleted.
6276         (build_scops): Removed call to limit_scops.
6277         * sese.c (new_sese): Construct.
6278         (free_sese): Destruct.
6279         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
6280         added.
6281         (set_rename): Pass sese region so that parameters inside the region can
6282         be added to its parameter_rename_map.
6283         (rename_uses): Pass sese region.
6284         (graphite_copy_stmts_from_block): Do not copy parameters that have been
6285         generated in the header of the scop. For each SSA_NAME in the
6286         parameter_rename_map rename its usage.
6287         (invariant_in_sese_p_rec): Return false if tree t is defined outside
6288         sese region.
6289         (scalar_evolution_in_region): If the tree t is invariant just return t.
6290         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
6291         struct sese to keep track of all the parameters which need renaming.
6292         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
6293         any data-refs.
6294         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
6295
6296 2015-09-08  Tom de Vries  <tom@codesourcery.com>
6297
6298         * Makefile.in (generated_files): Add params.list.
6299         (params.list, s-params.list): Add rule.
6300         * params.h (enum compiler_param): Include params-list.h.  Move define
6301         DEFPARAM, include params.def and undef DEFPARAM ...
6302         * params-list.h: ... here.  New file.
6303
6304 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
6305
6306         * pretty-print.h (printer_fn): Fix typo in comment.
6307
6308 2015-09-07  Jeff Law  <law@redhat.com>
6309
6310         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
6311
6312 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6313
6314         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
6315         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
6316         (arm_neon_fp16_hw): New.
6317
6318 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6319
6320         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
6321         UNITS_PER_WORD >= 4.
6322
6323 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6324
6325         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
6326         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
6327         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
6328         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
6329         (aarch64_float_extend_lo_v2df): Rename to...
6330         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
6331
6332         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
6333         (float_extend_lo): Add v4sf.
6334
6335         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
6336         * config/aarch64/iterators.md (VQ_HSF): New iterator.
6337         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
6338         (Vwide): New mode_attr.
6339
6340 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6341
6342         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
6343         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
6344         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
6345         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
6346         V4HF and V8HF variants to iterator.
6347
6348         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
6349
6350         * config/aarch64/iterators.md (VDQF_F16): New.
6351         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
6352
6353 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6354
6355         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
6356         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6357         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
6358         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
6359         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
6360         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6361         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
6362         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
6363         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
6364         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
6365         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
6366         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6367         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
6368         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
6369         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
6370         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
6371         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
6372         vld1q_dup_f16): New.
6373
6374 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6375
6376         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
6377         Reparameterize to...
6378         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
6379         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
6380         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
6381
6382         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
6383         v8hf variant.
6384         (float_truncate_lo_): Use BUILTIN_VDF iterator.
6385
6386         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
6387
6388         * config/aarch64/iterators.md (VDF, Vdtype): New.
6389         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
6390
6391 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6392
6393         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
6394         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
6395         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
6396         Add __builtin_aarch64_simd_hf.
6397         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
6398         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
6399         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
6400         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
6401         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
6402         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
6403         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
6404         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
6405         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
6406
6407         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
6408         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
6409         (VDC, Vdbl): Add V4HF.
6410
6411 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6412
6413         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
6414         V4HFmode and V8HFmode.
6415         (aarch64_split_simd_move): Add case for V8HFmode.
6416         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
6417         (aarch64_simd_builtin_std_type): Handle HFmode.
6418         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
6419
6420         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
6421         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
6422         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
6423
6424         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
6425         Float16x8_t.
6426
6427         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
6428         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
6429         New typedefs.
6430         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
6431         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
6432         vst1q_lane_f16): New.
6433         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
6434         (VALLDI_F16, VALL_F16): New.
6435         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
6436         Add cases for V4HF and V8HF.
6437         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
6438
6439 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6440
6441         * config/arm/arm-builtins.c (VAR11, VAR12): New.
6442         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
6443         vld4_dup): Add v4hf variant.
6444         (vget_high, vget_low): Add v8hf variant.
6445         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
6446         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
6447         v4hf and v8hf variants.
6448
6449         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
6450         (VDX): Add V4HF.
6451         (V_DOUBLE): Add case for V4HF.
6452         (VQX): Add V8HF.
6453         (V_HALF): Add case for V8HF.
6454         (VDQX): Add V4HF, V8HF.
6455         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
6456         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
6457
6458         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
6459         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
6460         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
6461         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
6462         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
6463         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
6464         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
6465         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
6466         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
6467
6468         (neon_vcreate, neon_vreinterpretv8qi<mode>,
6469         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
6470         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
6471         Change VDX to VD_RE.
6472
6473         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
6474         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
6475         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
6476
6477         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
6478         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
6479         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
6480         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
6481         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
6482         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
6483         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
6484         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
6485         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
6486
6487 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6488
6489         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
6490         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
6491         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
6492         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
6493         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
6494         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
6495         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
6496         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
6497         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
6498         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
6499         New.
6500
6501 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6502
6503         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
6504
6505         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
6506
6507         * config/arm/arm-builtins.c (v8hf_UP): New.
6508         (arm_init_simd_builtin_types): Initialise Float16x8_t.
6509
6510         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
6511
6512         * config/arm/arm_neon.h (float16x8_t): New typedef.
6513
6514 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
6515
6516         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
6517         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
6518         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
6519         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
6520         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
6521         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
6522         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
6523         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
6524         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
6525         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
6526
6527 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
6528
6529         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
6530         non-alphanumeric characters in the symbol name.
6531
6532 2015-09-07  Marek Polacek  <polacek@redhat.com>
6533
6534         PR inline-asm/67448
6535         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
6536         a memory input.
6537
6538 2015-09-07  Marek Polacek  <polacek@redhat.com>
6539
6540         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
6541
6542 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
6543
6544         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
6545         not warn.
6546
6547 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
6548
6549         PR middle-end/67452
6550         * tree-ssa-live.c: Include cfgloop.h.
6551         (remove_unused_locals): Clear loop->simduid if simduid is about
6552         to be removed from cfun->local_decls.
6553
6554 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6555
6556         PR target/65210
6557         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
6558         attribute as well.
6559
6560 2015-09-04  Tom de Vries  <tom@codesourcery.com>
6561
6562         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
6563
6564 2015-09-04  Jeff Law  <law@redhat.com>
6565
6566         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
6567         unnecessary constructor.  It's now trivial and implemented inside...
6568         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
6569         constructor.  Add comments to various methods.  Remove unused
6570         private fields.
6571         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
6572         * tree-vrp.c (identify_jump_threads): Likewise.
6573         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
6574         indentation issues.
6575         (thread_across_edge): Similarly.
6576         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
6577         arguments in constructor call.
6578
6579 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
6580
6581         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
6582         temp path contains a '-'.
6583
6584 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6585             Petr Murzin  <petr.murzin@intel.com>
6586             Kirill Yukhin  <kirill.yukhin@intel.com>
6587
6588         * config/i386/i386-builtin-types.def
6589         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
6590         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
6591         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
6592         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
6593         * config/i386/i386.c
6594         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
6595         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6596         IX86_BUILTIN_SCATTERALTDIV16SI.
6597         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
6598         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
6599         __builtin_ia32_scatteraltdiv8si.
6600         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
6601         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
6602         IX86_BUILTIN_SCATTERALTDIV16SI.
6603         (ix86_vectorize_builtin_scatter): New.
6604         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
6605         ix86_vectorize_builtin_scatter.
6606
6607 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
6608             Petr Murzin  <petr.murzin@intel.com>
6609             Kirill Yukhin  <kirill.yukhin@intel.com>
6610
6611         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
6612         * doc/tm.texi: Regenerate.
6613         * target.def: Add scatter builtin.
6614         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
6615         for loads/stores in case of gather/scatter accordingly.
6616         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6617         STMT_VINFO_GATHER_P(S).
6618         (vect_check_gather): Rename to ...
6619         (vect_check_gather_scatter): this.
6620         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
6621         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
6622         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6623         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
6624         variable and new checkings for it accordingly.
6625         * tree-vect-stmts.c
6626         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
6627         STMT_VINFO_GATHER_P(S).
6628         (vect_check_gather_scatter): Use it instead of vect_check_gather.
6629         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
6630
6631 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
6632
6633         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
6634         define_insn.
6635         (mulv16qi3): New define_expand.
6636
6637 2015-09-03  Martin Sebor  <msebor@redhat.com>
6638
6639         PR c/66516
6640         * doc/extend.texi (Other Builtins): Document when the address
6641         of a built-in function can be taken.
6642
6643 2015-09-03  Richard Biener  <rguenther@suse.de>
6644
6645         * dwarf2out.c (flush_limbo_die_list): Split out from ...
6646         (dwarf2out_early_finish): ... here.
6647         (dwarf2out_finish): Do not call dwarf2out_early_finish but
6648         flush_limbo_die_list.  Assert we have no deferred asm names.
6649
6650 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6651
6652         * optabs.c (expand_binop): Don't create a broadcast vector with a
6653         source element wider than the inner mode.
6654
6655 2015-09-03  Richard Biener  <rguenther@suse.de>
6656
6657         * varasm.c (output_constant): Use fold_convert instead of
6658         wide_int_to_tree.
6659
6660 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6661
6662         PR tree-optimization/65637
6663         * omp-low.c (expand_omp_for_static_chunk): Handle case that
6664         fin_bb has 2 predecessors.
6665
6666 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6667
6668         PR tree-optimization/65637
6669         * omp-low.c (find_phi_with_arg_on_edge): New function.
6670         (expand_omp_for_static_chunk): Fix inner loop phi.
6671
6672 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6673
6674         PR tree-optimization/65637
6675         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
6676         that head is NULL.
6677
6678 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6679
6680         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
6681
6682 2015-09-03  Tom de Vries  <tom@codesourcery.com>
6683
6684         * doc/invoke.texi (parloops-chunk-size): Add item.
6685         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
6686         * tree-parloops.c: Include params.h.
6687         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
6688         param parloops-chunk-size is used.
6689
6690 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
6691
6692         PR middle-end/67351
6693         * fold-const.c (fold_binary_loc) : Move
6694         Transform (x >> c) << c into x & (-1<<c) or
6695         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
6696         types using simplify and match.
6697         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
6698         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
6699
6700 2015-09-03  Richard Biener  <rguenther@suse.de>
6701
6702         PR ipa/66705
6703         * tree-ssa-structalias.c (ctor_for_analysis): New function.
6704         (create_variable_info_for_1): Use ctor_for_analysis instead
6705         of get_constructor.
6706         (create_variable_info_for): Likewise.
6707
6708 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
6709
6710         PR ipa/67280
6711         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
6712         in new callgraph edge.
6713
6714 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
6715
6716         PR target/59810
6717         PR target/63652
6718         PR target/63653
6719         * config/aarch64/aarch64-simd.md
6720         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
6721         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
6722         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
6723         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
6724
6725 2015-09-02  Alan Modra  <amodra@gmail.com>
6726
6727         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
6728         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
6729         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
6730
6731 2015-09-02  Alan Modra  <amodra@gmail.com>
6732
6733         PR target/67417
6734         * config/rs6000/predicates.md (current_file_function_operand): Don't
6735         return true for weak symbols.
6736         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
6737
6738 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
6739             Andrew Bennett  <andrew.bennett@imgtec.com>
6740
6741         * config/mips/mips-opts.h (mips_cb_setting): New enum.
6742         * config/mips/mips-protos.h: Add definitions for
6743         mips_output_jump and mips_output_equal_conditional_branch
6744         * gcc/config/mips/mips.c (MIPS_JR): Change to support the
6745         JIC instruction.
6746         (mips_emit_compare): Add support for the MIPS R6 conditional
6747         compact branches.
6748         (mips_process_sync_loop): Likewise.
6749         (mips_output_order_conditional_branch): Likewise.
6750         (mips16_build_call_stub): Change MIPS_CALL to
6751         mips_output_jump.
6752         (mips_print_operand_punctuation): Update 's' case to only
6753         apply to micromips r2.
6754         (mips_adjust_insn_length): Add support for forbidden slot
6755         hazards.
6756         (mips_avoid_hazard): Likewise.
6757         (mips_reorg_process_insns): Likewise.
6758         (mips_output_jump): New function.
6759         (mips_output_equal_conditional_branch): Likewise.
6760         (mips_output_conditional_branch): Use jrc/bc if compact
6761         branch support is enabled.  Ensure the forbidden slots
6762         between the two branch instructions is filled with a nop.
6763         (mips_option_override): Add support to process the compact
6764         branch option and set the correct defaults.  Prevent
6765         non-explict relocs being using for MIPS R6.
6766         (mips_trampoline_init): Add compact branch support.
6767         (mips_mult_zero_zero_cost): Allow zero initialisation of
6768         accumulators with TARGET_DSP.
6769         * gcc/config/mips/mips.h (TARGET_CB_NEVER): New define.
6770         (TARGET_CB_MAYBE): New define.
6771         (TARGET_CB_ALWAYS): New define.
6772         (ISA_HAS_DELAY_SLOTS): New define.
6773         (ISA_HAS_COMPACT_BRANCHES): New define.
6774         (ISA_HAS_JRC): New define.
6775         (MIPS_BRANCH_C): New define.
6776         (MIPS_CALL): Removed.
6777         (MICROMIPS_J): Removed.
6778         * config/mips/mips.md (compact_form): New attr.
6779         (hazard): Add support for forbidden slots.
6780         (define_delay): Add support for compact branches.
6781         (*branch_order<mode>): Likewise.
6782         (*branch_order<mode>_inverted): Likewise.
6783         (*branch_equality<mode>): Likewise.
6784         (*branch_equality<mode>_inverted): Likewise.
6785         (*jump_absolute): Likewise.
6786         (*jump_pic): Likewise.
6787         (indirect_jump): Use mips_output_jump to produce assembly output.
6788         (tablejump_<mode>"): Likewise.
6789         (*<optab>"): Likewise.
6790         (<optab>_internal): Likewise.
6791         (sibcall_internal): Likewise.
6792         (sibcall_value_internal): Likewise.
6793         (sibcall_value_multiple_internal): Likewise.
6794         (call_internal): Likewise.
6795         (call_split): Likewise.
6796         (call_internal_direct): Likewise.
6797         (call_direct_split): Likewise.
6798         (call_value_internal): Likewise.
6799         (call_value_split): Likewise.
6800         (call_value_internal_direct): Likewise.
6801         (call_value_direct_split): Likewise.
6802         (call_value_multiple_internal): Likewise.
6803         (call_value_multiple_split): Likewise.
6804         (mips_get_fcsr_mips16_<mode>): Likewise.
6805         (mips_set_fcsr_mips16_<mode>): Likewise.
6806         (tls_get_tp_mips16_<mode>): Likewise.
6807         * config/mips/mips.opt: Add -mcompact-branches option.
6808         * config/mips/predicates.md (order_operator): Ensure the
6809         conditional compact branches are only used if the ISA them.
6810         * doc/invoke.texi: Document -mcompact-branches option.
6811
6812 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
6813
6814         PR target/61578
6815         * lra-lives.c (process_bb_lives): Process move pseudos with the
6816         same value for copies and preferences
6817         * lra-constraints.c (match_reload): Create match reload pseudo
6818         with the same value from single dying input pseudo.
6819
6820 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
6821
6822         PR target/67405
6823         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
6824
6825 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
6826
6827         * trans-mem.c: Add contributed-by.
6828         * trans-mem.h: Same.
6829
6830 2015-09-01  Richard Biener  <rguenther@suse.de>
6831
6832         * expr.c (expand_expr_real_1): For expanding TERed defs
6833         set the current location to that of the def if not UNKNOWN.
6834
6835 2015-09-01  David Sherwood  <david.sherwood@arm.com>
6836
6837         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
6838
6839 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6840
6841         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
6842         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
6843         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
6844         Include rtl-iter.h.
6845         (noce_simple_bbs): New function.
6846         (noce_try_move): Bail if basic blocks are not simple.
6847         (noce_try_store_flag): Likewise.
6848         (noce_try_store_flag_constants): Likewise.
6849         (noce_try_addcc): Likewise.
6850         (noce_try_store_flag_mask): Likewise.
6851         (noce_try_cmove): Likewise.
6852         (noce_try_minmax): Likewise.
6853         (noce_try_abs): Likewise.
6854         (noce_try_sign_mask): Likewise.
6855         (noce_try_bitop): Likewise.
6856         (bbs_ok_for_cmove_arith): New function.
6857         (noce_emit_all_but_last): Likewise.
6858         (noce_emit_insn): Likewise.
6859         (noce_emit_bb): Likewise.
6860         (noce_try_cmove_arith): Handle non-simple basic blocks.
6861         (insn_valid_noce_process_p): New function.
6862         (contains_mem_rtx_p): Likewise.
6863         (bb_valid_for_noce_process_p): Likewise.
6864         (noce_process_if_block): Allow non-simple basic blocks
6865         where appropriate.
6866
6867 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
6868
6869         * tree-ssa-dom.c (record_equivalences_from_phis,
6870         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
6871         (lookup_avail_expr): Likewise, and remove comment and unused temp.
6872
6873 2015-09-01  Nick Clifton  <nickc@redhat.com>
6874
6875         * config/msp430/msp430.opt (mcpu): Fix typo.
6876
6877 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6878
6879         * config/aarch64/aarch64.c (aarch64_set_current_function):
6880         Re-layout any vector parameters have non-simd layout.
6881         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
6882         Delete.
6883         (aarch64_simd_expand_args): Delete call to the above.
6884
6885 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
6886
6887         * doc/invoke.texi (asan-stack): Add space before option.
6888
6889 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
6890
6891         * tree.h (zerop): New function.
6892         * tree.c (zerop): Likewise.
6893         (element_precision): Handle expressions.
6894         * match.pd (define_predicates): Add zerop.
6895         (x <= +Inf): Fix comment.
6896         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
6897         * fold-const.c (fold_binary_loc): ... here. Remove.
6898
6899 2015-08-31  Richard Biener  <rguenther@suse.de>
6900
6901         PR middle-end/67381
6902         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
6903
6904 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
6905
6906         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
6907         (CEXPI): New operator list.
6908         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
6909         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
6910         Converted from ...
6911         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
6912
6913 2015-08-31  Tom de Vries  <tom@codesourcery.com>
6914
6915         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
6916         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
6917         parameter.
6918         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
6919         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
6920         (rewrite_into_loop_closed_ssa): ... here.
6921         (replace_uses_in_dominated_bbs): Remove function.
6922         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
6923         rewrite_into_loop_closed_ssa_1.
6924
6925 2015-08-31  Michael Matz  <matz@suse.de>
6926
6927         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
6928         enter entry and exit blocks for reverse post order.
6929
6930 2015-08-31  Richard Biener  <rguenther@suse.de>
6931
6932         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
6933         (lto_location_cache::current_sysp): Likewise.
6934         (output_block::current_sysp): Likewise.
6935         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
6936         (lto_location_cache::apply_location_cache): Properly record
6937         system header locations.
6938         (lto_location_cache::input_location): Input whether a file
6939         is a system header.
6940         * lto-streamer-out.c (lto_output_location): Stream whether a file
6941         is a system header.
6942
6943 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6944
6945         PR bootstrap/67363
6946         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
6947
6948 2015-08-31  Tom de Vries  <tom@codesourcery.com>
6949
6950         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
6951         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
6952         Improve function header comments.
6953
6954 2015-08-30  Michael Collison  <michael.collison@linaro.org>
6955
6956         PR other/67320
6957         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
6958         standard names
6959
6960 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6961
6962         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
6963         special_handling bitfield.
6964         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
6965         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
6966         that represents a general xxpermdi.
6967         (insn_is_swappable_p): Add handling for vec_concat of two
6968         doublewords, which maps to a specific xxpermdi.
6969         (adjust_xxpermdi): New function.
6970         (adjust_concat): Likewise.
6971         (handle_special_swappables): Call adjust_xxpermdi and
6972         adjust_concat.
6973         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
6974
6975 2015-08-30  Rich Felker <dalias@libc.org>
6976
6977         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
6978         case instead of sh[123456ble]-*-*.
6979
6980 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
6981
6982         * ira.c (print_unform_and_important_classes,
6983         print_translated_classes): Remove reg_class_names static array.
6984         (print_unform_and_important_classes): Rename to ...
6985         (print_uniform_and_important_classes): ... this.
6986         (ira_debug_allocno_classes): Update accordingly.
6987
6988 2015-08-29  Tom de Vries  <tom@codesourcery.com>
6989
6990         PR tree-optimization/46193
6991         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
6992         clause.
6993
6994 2015-08-28  Jeff Law  <law@redhat.com>
6995
6996         PR lto/66752
6997         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
6998         unable to find X NE 0 in the tables, return X as the simplified
6999         condition.
7000         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
7001         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
7002         to VISISTED_BBS.
7003         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
7004         after removing the control flow statement and unnecessary edges.
7005
7006 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
7007
7008         Revert:
7009         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7010
7011         PR tree-optimization/67283
7012         * tree-sra.c (type_consists_of_records_p): Rename to...
7013         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7014
7015         (completely_scalarize_record): Rename to...
7016         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
7017         code to:
7018         (scalarize_elem): New.
7019
7020 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
7021
7022         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
7023         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
7024         (aarch64_symbol_type): Likewise.
7025         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7026         Likewise.
7027         (aarch64_expand_mov_immediate): Likewise.
7028         (aarch64_print_operand): Likewise.
7029         (aarch64_classify_tls_symbol): Likewise.
7030
7031 2015-08-28  Richard Biener  <rguenther@suse.de>
7032
7033         * cgraphunit.c (symbol_table::compile): Move early debug generation
7034         and finish...
7035         (symbol_table::finalize_compilation_unit): ... back here and
7036         add a !seen_error () guard.
7037
7038 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7039
7040         * toplev.c (process_options): Do not use flag_loop_block,
7041         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
7042         flag_loop_optimize_isl.
7043
7044 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7045
7046         * Makefile.in (OBJS): Remove graphite-blocking.o and
7047         graphite-interchange.o.
7048         * common.opt (floop-strip-mine, floop-interchange, floop-block):
7049         Alias of floop-nest-optimize.
7050         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
7051         Document as alias of -floop-nest-optimize.
7052         * graphite-blocking.c: Remove.
7053         * graphite-interchange.c: Remove.
7054         * graphite-optimize-isl.c: Include dumpfile.h.
7055         (getScheduleForBand): Add dump for tiled loops.  Use
7056         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
7057         * graphite-poly.c (scop_max_loop_depth): Remove.
7058         (print_scattering_function_1): Remove.
7059         (print_scattering_function): Remove.
7060         (print_scattering_functions): Remove.
7061         (debug_scattering_function): Remove.
7062         (debug_scattering_functions): Remove.
7063         (apply_poly_transforms): Remove use of flag_loop_block,
7064         flag_loop_strip_mine, and flag_loop_interchange.
7065         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
7066         PBB_ORIGINAL.
7067         (print_pdr_access_layout): Remove.
7068         (print_pdr): Print ISL representation.
7069         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
7070         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
7071         (free_scop): Same.
7072         (openscop_print_pbb_domain): Remove.
7073         (print_pbb): Remove call to print_scattering_function.
7074         (openscop_print_scop_context): Remove.
7075         (print_scop_context): Do not print matrices anymore.
7076         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
7077         SCOP_TRANSFORMED_SCHEDULE.
7078         (print_isl_set): Add printing of a new line.
7079         (print_isl_map): Same.
7080         (print_isl_aff): Same.
7081         (print_isl_constraint): Same.
7082         (loop_to_lst): Remove.
7083         (scop_to_lst): Remove.
7084         (lst_indent_to): Remove.
7085         (print_lst): Remove.
7086         (debug_lst): Remove.
7087         (dot_lst_1): Remove.
7088         (dot_lst): Remove.
7089         (reverse_loop_at_level): Remove.
7090         (reverse_loop_for_pbbs): Remove.
7091         * graphite-poly.h (pdr_dim_iter_domain): Remove.
7092         (pdr_nb_params): Remove.
7093         (pdr_alias_set_dim): Remove.
7094         (pdr_subscript_dim): Remove.
7095         (pdr_iterator_dim): Remove.
7096         (pdr_parameter_dim): Remove.
7097         (same_pdr_p): Remove.
7098         (struct poly_scattering): Remove.
7099         (struct poly_bb): Remove _original, _transformed, _saved.
7100         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
7101         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
7102         (PBB_NB_LOCAL_VARIABLES): Remove.
7103         (PBB_NB_SCATTERING_TRANSFORM): Remove.
7104         (schedule_to_scattering): Remove.
7105         (number_of_write_pdrs): Remove.
7106         (pbb_dim_iter_domain): Remove.
7107         (pbb_nb_params): Remove.
7108         (pbb_nb_scattering_orig): Remove.
7109         (pbb_nb_scattering_transform): Remove.
7110         (pbb_nb_dynamic_scattering_transform): Remove.
7111         (pbb_nb_local_vars): Remove.
7112         (pbb_iterator_dim): Remove.
7113         (pbb_parameter_dim): Remove.
7114         (psco_scattering_dim): Remove.
7115         (psct_scattering_dim): Remove.
7116         (psct_local_var_dim): Remove.
7117         (psco_iterator_dim): Remove.
7118         (psct_iterator_dim): Remove.
7119         (psco_parameter_dim): Remove.
7120         (psct_parameter_dim): Remove.
7121         (psct_dynamic_dim): Remove.
7122         (psct_static_dim): Remove.
7123         (psct_add_local_variable): Remove.
7124         (new_lst_loop): Remove.
7125         (new_lst_stmt): Remove.
7126         (free_lst): Remove.
7127         (copy_lst): Remove.
7128         (lst_add_loop_under_loop): Remove.
7129         (lst_depth): Remove.
7130         (lst_dewey_number): Remove.
7131         (lst_dewey_number_at_depth): Remove.
7132         (lst_pred): Remove.
7133         (lst_succ): Remove.
7134         (lst_find_pbb): Remove.
7135         (find_lst_loop): Remove.
7136         (lst_find_first_pbb): Remove.
7137         (lst_empty_p): Remove.
7138         (lst_find_last_pbb): Remove.
7139         (lst_contains_p): Remove.
7140         (lst_contains_pbb): Remove.
7141         (lst_create_nest): Remove.
7142         (lst_remove_from_sequence): Remove.
7143         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
7144         (lst_niter_for_loop): Remove.
7145         (pbb_update_scattering): Remove.
7146         (lst_update_scattering_under): Remove.
7147         (lst_update_scattering): Remove.
7148         (lst_insert_in_sequence): Remove.
7149         (lst_replace): Remove.
7150         (lst_substitute_3): Remove.
7151         (lst_distribute_lst): Remove.
7152         (lst_remove_all_before_including_pbb): Remove.
7153         (lst_remove_all_before_excluding_pbb): Remove.
7154         (struct scop): Remove original_schedule, transformed_schedule, and
7155         saved_schedule.
7156         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
7157         (SCOP_SAVED_SCHEDULE): Remove.
7158         (poly_scattering_new): Remove.
7159         (poly_scattering_free): Remove.
7160         (poly_scattering_copy): Remove.
7161         (store_scattering_pbb): Remove.
7162         (store_lst_schedule): Remove.
7163         (restore_lst_schedule): Remove.
7164         (store_scattering): Remove.
7165         (restore_scattering_pbb): Remove.
7166         (restore_scattering): Remove.
7167         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
7168         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
7169         compute the scattering polyhedron dimension from the dimension of
7170         pbb->domain.
7171         (build_scop_scattering): Update call to
7172         build_pbb_scattering_polyhedrons.
7173         (build_poly_scop): Remove call to scop_to_lst.
7174         * graphite.c (graphite_transform_loops): Add call to print_scop.
7175         (gate_graphite_transforms): Remove use of flag_loop_block,
7176         flag_loop_interchange, and flag_loop_strip_mine.
7177
7178 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
7179
7180         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
7181         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
7182         -floop-nest-optimize.
7183         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
7184         (generate_luj_sepclass): Remove.
7185         (generate_luj_options): Remove.
7186         (set_options): Remove opt_luj.
7187         (scop_to_isl_ast): Remove opt_luj.
7188         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
7189         flag_loop_unroll_jam.
7190         (getPrevectorMap_full): Remove.
7191         (getScheduleForBandList): Remove map_sepcl.
7192         (getScheduleMap): Same.
7193         (apply_schedule_map_to_scop): Remove sepcl.
7194         (optimize_isl): Same.
7195         * graphite-poly.c (apply_poly_transforms): Remove check for
7196         flag_loop_unroll_jam.
7197         (new_poly_bb): Remove map_sepclass.
7198         * graphite-poly.h (struct poly_bb): Same.
7199         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
7200         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
7201         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
7202         * toplev.c (process_options): Remove flag_loop_unroll_jam.
7203
7204 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
7205
7206         PR target/67317
7207         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
7208         (addqi3_cc): Ditto.
7209         (UNSPEC_ADD_CARRY): Remove.
7210         (addqi3_cconly_overflow): New expander.
7211         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
7212         Adjust for changed add<mode>3_carry.
7213         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
7214         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
7215         (<plusminus_insn><mode>3_carry): Remove expander.
7216         (*<plusminus_insn><mode>3_carry): Split insn pattern to
7217         add<mode>3_carry and sub<mode>3_carry.
7218         (plusminus_carry_mnemonic): Remove code attribute.
7219         (add<mode>3_carry): Canonicalize insn pattern.
7220         (*addsi3_carry_zext): Ditto.
7221         (sub<mode>3_carry): Ditto.
7222         (*subsi3_carry_zext): Ditto.
7223         (adcx<mode>3): Remove insn pattern.
7224         (addcarry<mode>): New insn pattern.
7225         (subborrow<mode>): Ditto.
7226         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
7227         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
7228         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
7229         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
7230         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
7231         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
7232         Rewrite expander to not clobber carry flag chains.
7233
7234 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
7235
7236         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
7237         instead of a rotate.
7238
7239 2015-08-27  Marek Polacek  <polacek@redhat.com>
7240
7241         PR middle-end/67005
7242         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
7243         an entry into an irreducible region.
7244
7245 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7246
7247         * configure: Regenerate.
7248
7249 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7250
7251         PR tree-optimization/67283
7252         * tree-sra.c (type_consists_of_records_p): Rename to...
7253         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7254
7255         (completely_scalarize_record): Rename to...
7256         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7257         (scalarize_elem): New.
7258
7259 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
7260
7261         * tree-sra.c (completely_scalarize_var): Rename to...
7262         (create_total_scalarization_access): ... Here. Drop call to
7263         completely_scalarize_record.
7264
7265         (analyze_all_variable_accesses): Replace completely_scalarize_var
7266         with create_total_scalarization_access and completely_scalarize_record.
7267
7268 2015-08-27  Alan Modra  <amodra@gmail.com>
7269
7270         PR target/67356
7271         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
7272         for operand 1.
7273
7274 2015-08-27  Richard Biener  <rguenther@suse.de>
7275
7276         * passes.c (rest_of_decl_compilation): Guard early_global_decl
7277         call with !seen_error ().
7278         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
7279         early debug generation and finish...
7280         (symbol_table::compile): ... here to put it after a !seen_error ()
7281         guard.
7282
7283 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7284
7285         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
7286         Solaris 12+.
7287
7288 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7289             Andre Vieira  <andre.simoesdiasvieira@arm.com>
7290
7291         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
7292         (*cb<optab><mode>1): Likewise.
7293         (*tb<optab><mode>1): Likewise.
7294         (*cb<optab><mode>1): Likewise.
7295         * config/aarch64/iterators.md (inv_cb): New code attribute.
7296         (inv_tb): Likewise.
7297         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
7298         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
7299
7300 2015-08-27  Richard Biener  <rguenther@suse.de>
7301
7302         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
7303
7304 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7305
7306         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
7307         trap to fix ICE.
7308
7309 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
7310
7311         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
7312         Add declaration.
7313
7314         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
7315         comment.
7316         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
7317         floating point in VSX registers.
7318         (rs6000_output_move_128bit): Always print out the set insn if we
7319         can't generate an appropriate 128-bit move.
7320         (rs6000_generate_compare): Add support for IEEE 128-bit floating
7321         point in VSX registers comparisons.
7322         (rs6000_expand_float128_convert): Likewise.
7323
7324         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
7325         predicate for only GPR hard registers.
7326
7327         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
7328         modes to iterators. Add new iterators for moving 128-bit values in
7329         scalar FPR registers and VSX registers.
7330         (FMOVE128): Likewise.
7331         (FMOVE128_FPR): Likewise.
7332         (FMOVE128_GPR): Likewise.
7333         (FMOVE128_VSX): Likewise.
7334         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
7335         in VSX registers.
7336         (IFKF): Likewise.
7337         (IBM128): Likewise.
7338         (TFIFKF): Likewise.
7339         (RELOAD): Add IEEE 128-bit floating point modes.
7340         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
7341         floating point in VSX registers modes.
7342         (signbit<mode>2, IBM128 iterator): Likewise.
7343         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
7344         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
7345         (negtf2): Likewise.
7346         (neg<mode>2, TFIFKF iterator): Likewise.
7347         (negtf2_internal): Likewise.
7348         (abstf2): Likewise.
7349         (abs<mode>2, TFIFKF iterator): Likewise.
7350         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
7351         VSX insn support for negate, absolute value, and negative absolute
7352         value.
7353         (ieee_128bit_vsx_neg<mode>2): Likewise.
7354         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
7355         (ieee_128bit_vsx_abs<mode>2): Likewise.
7356         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
7357         (ieee_128bit_vsx_nabs<mode>2): Likewise.
7358         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
7359         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
7360         floating point in VSX registers.
7361         (unpack<mode>_dm): Likewise.
7362         (unpack<mode>_nodm): Likewise.
7363         (pack<mode>): Likewise.
7364         (unpackv1ti): Likewise.
7365         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
7366         (packv1ti): Likewise.
7367         (pack<mode>, FMOVE128_VSX iterator): Likewise.
7368         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
7369         registers.
7370         (extenddftf2_internal): Likewise.
7371         (trunctfdf2): Likewise.
7372         (trunctfdf2_internal2): Likewise.
7373         (fix_trunc_helper): Likewise.
7374         (fix_trunctfdi2"): Likewise.
7375         (floatditf2): Likewise.
7376         (floatuns<mode>tf2): Likewise.
7377         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
7378         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
7379         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
7380         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
7381         (float<SDI:mode><IFKF:mode>2): Likewise.
7382         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
7383
7384 2015-08-26  Renlin Li  <renlin.li@arm.com>
7385
7386         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
7387
7388 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7389             Jiong Wang  <jiong.wang@arm.com>
7390
7391         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
7392         (tlsie_tiny_<mode>): New define_insn.
7393         (tlsie_tiny_sidi): Likewise.
7394         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
7395         SYMBOL_TINY_TLSIE.
7396         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
7397         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
7398         SYMBOL_TINY_TLSIE.
7399         (aarch64_expand_mov_immediate): Likewise.
7400         (aarch64_print_operand): Likewise.
7401         (arch64_classify_tls_symbol): Likewise.
7402
7403 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7404
7405         * config/arm/arm-arches.def: Replace single value flags with
7406         an initializer built from ARM_FSET_MAKE_CPU1.
7407         * config/arm/arm-cores.def: Likewise.
7408         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
7409         derivation from the ARM_CORE macro definition, use the given value
7410         instead.
7411         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
7412         ARM_ARCH macro definition, use the given value instead.
7413
7414 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7415
7416         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
7417         feature set.
7418         (struct builtin_description): Replace field mask with field
7419         features.
7420         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
7421         (IWMMXT2_BUILTIN): Likewise.
7422         (IWMMXT2_BUILTIN2): Likewise.
7423         (FP_BUILTIN): Likewise.
7424         (CRC32_BUILTIN): Likewise.
7425         (CRYPTO_BUILTIN): Likewise.
7426         (iwmmx_mbuiltin): Likewise.
7427         (iwmmx2_mbuiltin): Likewise.
7428         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
7429         struct builtin_description.
7430
7431 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7432
7433         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
7434         (struct builtin_description): Change type of mask to unsigned
7435         long.
7436         * config/arm/arm-protos.h (insn_flags): Declare as type
7437         arm_feature_set.
7438         (tune_flags): Likewise.
7439         * config/arm/arm.c (feature_count): New.
7440         (insn_flags): Define as type arm_feature_set.
7441         (tune_flags): Likewise.
7442         (struct processors): Define field flags as type arm_feature_set.
7443         (all_cores): Update for change to struct processors.
7444         (all_architectures): Likewise.
7445         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
7446         macros.
7447         (arm_option_override_internal): Likewise.
7448         (arm_option_override): Likewise.
7449
7450 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
7451             Jiong Wang  <jiong.wang@arm.com>
7452
7453         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
7454         tls size for tiny, small, large memory model.
7455         (aarch64_load_symref_appropriately): Support new symbol types.
7456         (aarch64_expand_mov_immediate): Likewise.
7457         (aarch64_print_operand): Likewise.
7458         (aarch64_classify_tls_symbol): Likewise.
7459         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
7460         (aarch64_symbol_type): Likewise.
7461         * config/aarch64/aarch64.md (tlsle): Deleted.
7462         (tlsle12_<mode>): New define_insn.
7463         (tlsle24_<mode>): Likewise.
7464         (tlsle32_<mode>): Likewise.
7465         (tlsle48_<mode>): Likewise.
7466         * doc/sourcebuild.texi (AArch64-specific attributes): Document
7467         "aarch64_tlsle32".
7468
7469 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7470
7471         * config/arm/arm-protos.h (FL_NONE): New.
7472         (FL_ANY): New.
7473         (arm_feature_set): New.
7474         (ARM_FSET_MAKE): New.
7475         (ARM_FSET_MAKE_CPU1): New.
7476         (ARM_FSET_MAKE_CPU2): New.
7477         (ARM_FSET_CPU1): New.
7478         (ARM_FSET_CPU2): New.
7479         (ARM_FSET_EMPTY): New.
7480         (ARM_FSET_ANY): New.
7481         (ARM_FSET_HAS_CPU1): New.
7482         (ARM_FSET_HAS_CPU2): New.
7483         (ARM_FSET_HAS_CPU): New.
7484         (ARM_FSET_ADD_CPU1): New.
7485         (ARM_FSET_ADD_CPU2): New.
7486         (ARM_FSET_DEL_CPU1): New.
7487         (ARM_FSET_DEL_CPU2): New.
7488         (ARM_FSET_UNION): New.
7489         (ARM_FSET_INTER): New.
7490         (ARM_FSET_XOR): New.
7491         (ARM_FSET_EXCLUDE): New.
7492         (AFM_FSET_IS_EMPTY): New.
7493         (ARM_FSET_CPU_SUBSET): New.
7494
7495 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7496
7497         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
7498         SYMBOL_TLSLE to SYMBOL_TLSLE24.
7499         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
7500         Likewise.
7501         (aarch64_expand_mov_immediate): Likewise.
7502         (aarch64_print_operand): Likewise.
7503         (aarch64_classify_symbol): Likewise.
7504
7505 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
7506
7507         * config/aarch64/aarch64.opt (mtls-size): New entry.
7508         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
7509         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
7510         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
7511
7512 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
7513
7514         * gcc/config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
7515         ARM_CORE entry.  Fix some white-space.
7516         * gcc/config/arm/arm.c: Remove FL_FOR_ARCH derivation from
7517         ARM_CORE definition.
7518
7519 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7520
7521         * fold-const.c (fold_binary_loc) : Move Optimize
7522         root(x)*root(y) as root(x*y) to match.pd.
7523         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
7524         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
7525         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
7526         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
7527         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
7528         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
7529         (mult (exps:s @0) (exps:s @1)) : New simplifier.
7530         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
7531         (rdiv @0 (exps:s @1)) : New simplifier.
7532
7533 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
7534
7535         * gcc.c (driver::finalize): Only assign to extra_specs if
7536         [EXTRA_SPECS].
7537
7538 2015-08-25  Marek Polacek  <polacek@redhat.com>
7539
7540         PR middle-end/67330
7541         * varasm.c (declare_weak): Return after giving an error.
7542
7543 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
7544
7545         * gcc-main.c (main): Add params to driver ctor.
7546         * gcc.c (class env_manager): New.
7547         (env): New global.
7548         (env_manager::init): New.
7549         (env_manager::get): New.
7550         (env_manager::xput): New.
7551         (env_manager::restore): New.
7552         Poison getenv and putenv.
7553         (DEFAULT_TARGET_SYSTEM_ROOT): New.
7554         (target_system_root): Update initialization to use
7555         DEFAULT_TARGET_SYSTEM_ROOT.
7556         (struct spec_list): Add field "default_ptr".
7557         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
7558         (init_spec): Likewise.
7559         (set_spec): Clear field "default_ptr".
7560         (read_specs): Free "spec" and "buffer".
7561         (xputenv): Reimplement in terms of env_manager.
7562         (process_command): Replace ::getenv calls with calls to the
7563         env_manager singleton.
7564         (process_brace_body): Free string in three places.
7565         (driver::driver): New.
7566         (driver::~driver): New.
7567         (used_arg): Convert from a function to...
7568         (class used_arg_t): ...this class, and...
7569         (used_arg): ...this new global instance.
7570         (used_arg_t::finalize): New function.
7571         (getenv_spec_function): Add "const" to local "value".  Replace
7572         ::getenv call with call to the env_manager singleton.
7573         (path_prefix_reset): New function.
7574         (driver::finalize): New function.
7575         * gcc.h (driver::driver): New.
7576         (driver::~driver): New.
7577         (driver::finalize): New.
7578
7579 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7580
7581         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
7582         target doesn't have one.
7583
7584 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7585
7586         PR target/67346
7587         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
7588
7589 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
7590
7591         PR target/67344
7592         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
7593         a define_insn, remove second alternative.
7594
7595 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
7596             Joseph Myers  <joseph@codesourcery.com>
7597
7598         * gcc.c (struct switchstr): Expand comment.
7599
7600 2015-08-25  Nathan Sidwell  <nathan@acm.org>
7601
7602         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
7603         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
7604
7605 2015-08-25  Richard Biener  <rguenther@suse.de>
7606
7607         PR middle-end/67306
7608         * genmatch.c (expr::gen_transform): Verify the result of
7609         builtin_decl_implicit.
7610         (dt_simplify::gen_1): Likewise.
7611
7612 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7613
7614         * config/arm/constraints.md: Also list Cs and US ARM-specific
7615         constraints as used.
7616
7617 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
7618
7619         PR target/66609
7620         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
7621         UNSPEC_PCREL.
7622         (nonpic_symbol_mentioned_p): Likewise.
7623         (sh_delegitimize_address): Likewise.
7624         (sh_function_ok_for_sibcall): Take into account weak symbols.
7625         (sh_expand_sym_label2reg): New.
7626         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
7627         * config/sh/sh.md (UNSPEC_PCREL): New enum.
7628         (call_pcrel): Use sh_expand_sym_label2reg.
7629         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7630         (symPCREL_label2reg) New expand.
7631
7632 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7633
7634         * graphite-poly.c: Change type of region from void* to sese.
7635         * graphite-poly.h (struct scop): Changing the type of scop::region
7636         from void* to sese. Change accessor macro accordingly.
7637         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
7638
7639 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
7640
7641         * graphite-scop-detection.c (stmt_simple_for_scop_p):
7642         Constrain only on INTEGER_TYPE.
7643
7644 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
7645
7646         PR target/67211
7647         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
7648         -mefficient-unaligned-vsx on ISA 2.7.
7649
7650         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
7651         option to a masked option.
7652
7653         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
7654         logic for -mefficient-unaligned-vsx so that it is set via an arch
7655         ISA option, instead of being set if -mtune=power8 is set. Move
7656         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
7657         near other default option handling.
7658
7659 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7660
7661         * genflags.c (gen_macro): Delete.
7662         (gen_proto): Don't create GEN.*CALL.* macros.
7663         * gensupport.h (get_file_location): Declare.
7664         * gensupport.c (rtx_locs): New variable.
7665         (read_md_rtx): Record rtx locations.
7666         (get_file_location): New function.
7667         * target-insns.def (call, call_pop, call_value, call_value_pop)
7668         (sibcall, sibcall_value): New patterns.
7669         * gentarget-def.c (parse_argument): New function.
7670         (def_target_insn): Use it.  Handle optional operands.  Raise an
7671         error if an .md pattern has the wrong number of operands for the
7672         pattern name.  Remove the names of unused operands from the prototype.
7673         * builtins.c (expand_builtin_apply): Use targetm functions
7674         instead of HAVE_call_value and GEN_CALL_VALUE.
7675         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
7676         and sibcall_value_pop.
7677         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
7678         of GEN_CALL.
7679         * config/alpha/alpha.md (untyped_call): Likewise.
7680         * config/iq2000/iq2000.md (untyped_call): Likewise.
7681         * config/m68k/m68k.md (untyped_call): Likewise.
7682         * config/mips/mips.md (untyped_call): Likewise.
7683         * config/pa/pa.md (untyped_call): Likewise.
7684         * config/rs6000/rs6000.md (untyped_call): Likewise.
7685         * config/sparc/sparc.md (untyped_call): Likewise.
7686         * config/tilegx/tilegx.md (untyped_call): Likewise.
7687         * config/tilepro/tilepro.md (untyped_call): Likewise.
7688         * config/visium/visium.md (untyped_call): Likewise.
7689         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
7690         gen_call_value instead of GEN_CALL_VALUE.
7691         * config/arm/arm.md (untyped_call): Likewise.
7692         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
7693         GEN_CALL.
7694
7695 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7696
7697         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
7698         (have_cbranchcc4): New variable.
7699         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
7700         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
7701         (if_convert): Initialize have_cbranchcc4.
7702
7703 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7704
7705         * builtins.c (expand_cmpstrn): Rename to...
7706         (expand_cmpstrn_or_cmpmem): ...this.
7707         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
7708         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
7709         Remove mode argument.
7710         (expand_builtin): Update accordingly.
7711
7712 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7713
7714         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
7715         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
7716         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
7717         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
7718         Add predicates for operands 0 and 3.
7719         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
7720         operand.
7721         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
7722         immediate_operand to nonmemory_operand.
7723
7724 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7725
7726         * df-scan.c (df_insn_info_init_fields): New function, split out
7727         from...
7728         (df_insn_create_insn_record): ...here.
7729         (df_insn_info_free_fields): New function, split out from...
7730         (df_insn_info_delete): ...here.
7731         (df_insn_rescan): Use the new functions instead of freeing and
7732         reallocating the df_insn_info.
7733
7734 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7735
7736         * doc/install.texi (Binaries): Remove links no longer valid.
7737
7738 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
7739
7740         * config/nvptx/mkoffload.c (process): Replace
7741         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
7742
7743 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
7744
7745         PR target/67329
7746         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
7747
7748 2015-08-24  Renlin Li  <renlin.li@arm.com>
7749
7750         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
7751         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
7752         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
7753         * config/arm/constraints.md ("j"): Add check for high code.
7754
7755 2015-08-24  Tom de Vries  <tom@codesourcery.com>
7756
7757         PR tree-optimization/65468
7758         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
7759         chunk_size is one.
7760
7761 2015-08-24  Nathan Sidwell  <nathan@acm.org>
7762
7763         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
7764         change to nvptx_type_from_mode call. Use arg_promotion for both
7765         split and non-split args.
7766
7767 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7768
7769         * target-insns.def (movstr): New pattern.
7770         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
7771         (expand_movstr): Use targetm rather than HAVE_movstr/
7772         CODE_FOR_movstr.
7773
7774 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
7775
7776         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
7777         cast syntax.
7778
7779 2015-08-24  Andrew Pinski  <apinski@cavium.com>
7780
7781         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
7782         AARCH64_EXTRA_TUNING_OPTION.
7783         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
7784         New enum.
7785         (aarch64_extra_tuning_flags): Base the shifted value on the index
7786         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
7787         * config/aarch64/aarch64.c: Remove the last argument to
7788         AARCH64_EXTRA_TUNING_OPTION.
7789
7790 2015-08-23  Nathan Sidwell  <nathan@acm.org>
7791
7792         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
7793         decls.
7794         (nvptx_declare_function_name): Insert formatting tabs for
7795         consistency.
7796
7797 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7798
7799         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
7800         parm_decl, rather than generating a dummy default def in cfun.
7801         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
7802         ssa_name from cfun and child_fn do not share a stmt as def stmt.
7803         (move_stmt_op): Handle PARM_DECl.
7804         (gather_ssa_name_hash_map_from): New function.
7805         (move_sese_region_to_fn): Add default defs for function params, and add
7806         them to vars_map.  Release copied ssa names.
7807         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
7808
7809 2015-08-23  Tom de Vries  <tom@codesourcery.com>
7810
7811         * doc/sourcebuild.texi: Rename vect_no_int_max with
7812         vect_no_int_min_max.  Update description.
7813
7814 2015-08-22  Andrew Pinski  <apinski@cavium.com>
7815
7816          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
7817         * config/aarch64/aarch64-protos.h
7818         (aarch64_fusion_pairs_index): New enum.
7819         (aarch64_fusion_pairs): Base the shifted value on the index instead
7820         Rewrite AARCH64_FUSE_ALL to be based on the end index.
7821         of the argument to AARCH64_FUSION_PAIR.
7822         * config/aarch64/aarch64.c: Remove the last argument to
7823         AARCH64_FUSION_PAIR.
7824
7825 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
7826
7827         * dominance.c (new_zero_array): Define.
7828         (dom_info): Redefine as class with proper encapsulation.
7829         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
7830         Add new members.
7831         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
7832         allocations/deallocations.  Pass function as parameter (instead of
7833         using cfun).
7834         (dom_info::get_idom): Define accessor method.
7835         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
7836         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
7837         (calculate_dominance_info): Adjust to use dom_info class.
7838         (verify_dominators): Likewise.
7839
7840 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
7841
7842         * print-rtl.c (print_rtx): Check the correct range for
7843         flag_dump_unnumbered_links to behave as documented.
7844
7845         PR rtl-optimization/67227
7846         PR rtl-optimization/64164
7847         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
7848         (nonoverlapping_memrefs_p): Test offsets and sizes when given
7849         identical gimple_reg exprs.
7850
7851 2015-08-21  Nathan Sidwell  <nathan@acm.org>
7852
7853         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
7854         expansion.
7855         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
7856         crtl->stack_alignment_needed to determine alignment.
7857         (nvptx_get_drap_rtx): New.
7858         (TARGET_GET_DRAP_RTX): Override.
7859         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
7860
7861 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7862
7863         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
7864
7865 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
7866
7867         * configure.ac: Remove uwin* cases.
7868         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
7869         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
7870         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
7871         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
7872         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
7873         i[34567]86-*-uwin*, powerpc-*-beos*.
7874
7875 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
7876
7877         * gencodes.c (gencodes): Print the comma for the preceding
7878         enum value rather than the current one.  Use aliased enum values
7879         rather than #defines for compiled-out patterns.
7880         (main): Update accordingly.  Replace LAST_INSN_CODE with
7881         NUM_INSN_CODES.
7882         * lra.c (insn_code_data): Update accordingly.
7883         (finish_insn_code_data_once, get_static_insn_data): Likewise.
7884         * recog.h (target_recog): Likewise.
7885         (preprocess_insn_constraints): Change parameter to unsigned int.
7886         * recog.c (preprocess_insn_constraints): Likewise.
7887         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
7888         * tree-vect-stmts.c (vectorizable_operation): Simplify.
7889
7890 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
7891
7892         PR rtl-optimization/61657
7893         * loop-iv.c (iv_number_of_iterations): Declare up and down as
7894         unsigned.  Remove superflous uint64_t cast.
7895
7896 2014-08-21  Felix Yang  <felix.yang@huawei.com>
7897             Jiji Jiang  <jiangjiji@huawei.com>
7898
7899         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
7900         argument and get builtin function code directly from CALL.
7901         (gimple_stringop_fixed_value): Modified accordingly.
7902         (gimple_stringops_transform, gimple_stringops_values_to_profile):
7903         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
7904
7905 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7906
7907         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
7908
7909 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
7910
7911         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
7912         to match.pd.
7913         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
7914         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
7915         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
7916         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
7917         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
7918         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
7919         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
7920         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
7921         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
7922         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
7923
7924         * match.pd (SIN ) : New Operator.
7925         (TAN) : New Operator.
7926         (mult (SQRT@1 @0) @1) : New simplifier.
7927         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
7928         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
7929         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
7930         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
7931         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
7932         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
7933         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
7934         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
7935         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
7936         (rdiv @0 (POW:s @1 @2)) : New simplifier.
7937
7938 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
7939
7940         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
7941         loop if EXPR is simplified to const value.
7942
7943 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
7944
7945         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
7946         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
7947
7948 2015-08-21  Richard Biener  <rguenther@suse.de>
7949
7950         PR middle-end/67285
7951         * gimple-fold.c (replace_stmt_with_simplification): Assert
7952         seq is empty when replacing a call with itself but different
7953         arguments.
7954         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
7955         a call require that it is const.
7956
7957 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7958
7959         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
7960         * builtins.c (get_object_alignment_2): Adjust.
7961         * varasm.c (align_variable): Likewise.
7962         (get_variable_align): Likewise.
7963         (build_constant_desc): Likewise.
7964         (force_const_mem): Likewise.
7965         * doc/tm.texi.in: Likewise.
7966         * doc/tm.texi: Regenerate.
7967
7968 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7969
7970         * genconfig.c (main): Always define HAVE_cc0.
7971         * recog.c (rest_of_handle_peephole2): Adjust.
7972
7973 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7974
7975         * reorg.c (relax_delay_slots): Don't use #if to check value of
7976         HAVE_cc0.
7977
7978 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7979
7980         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
7981         * targhooks.c (default_have_conditional_execution): Adjust.
7982
7983 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
7984
7985         * rtl.h (rtvec_all_equal_p): Declare.
7986         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
7987         * rtl.c (rtvec_all_equal_p): New function.
7988         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
7989         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
7990         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
7991         * config/arm/arm.c (neon_vdup_constant): Likewise.
7992         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
7993         * config/tilegx/constraints.md (W, Y): Likewise.
7994         * config/tilepro/constraints.md (W, Y): Likewise.
7995         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
7996         (classify_immediate): Use unwrap_const_vec_duplicate.
7997         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
7998         (reg_or_v2s8bit_operand): Likewise.
7999         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
8000         (reg_or_v4s8bit_operand): Likewise.
8001
8002 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8003
8004         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
8005         (vec_shasigma_be): New #define.
8006         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
8007         (VPMSUMH): Likewise.
8008         (VPMSUMW): Likewise.
8009         (VPMSUMD): Likewise.
8010         (VPMSUM): New BU_P8V_OVERLOAD_2.
8011         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
8012         entries for VEC_MADD and VEC_VPMSUM.
8013
8014 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
8015
8016         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
8017         Multiply argument avr_n_flash by 64 to match unit of "KiB".
8018         (avr_pgm_check_var_decl): Same.
8019
8020 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
8021
8022         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
8023         initialization of HFmode scalar type (float16_t) to...
8024         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
8025         code.
8026
8027         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
8028
8029         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
8030         having an -mfp16-format.
8031
8032 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
8033
8034         * config/i386/predicates.md (vector_all_ones_operand): Use
8035         CONSTM1_RTX to simplify definition.
8036
8037 2015-08-20  Richard Biener  <rguenther@suse.de>
8038
8039         * toplev.c (compile_file): Remove loop calling late_global_decl
8040         on all symbols.
8041         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
8042         on decls we assembled.
8043
8044 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
8045
8046         * common/config/aarch64/aarch64-common.c
8047         (AARCH64_CPU_NAME_LENGTH): Delete.
8048         (aarch64_option_extension): New.
8049         (all_extensions): Likewise.
8050         (processor_name_to_arch): Likewise.
8051         (arch_to_arch_name): Likewise.
8052         (all_cores): New.
8053         (all_architectures): Likewise.
8054         (aarch64_get_extension_string_for_isa_flags): Likewise.
8055         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
8056         architecture names.
8057         * config/aarch64/aarch64-protos.h
8058         (aarch64_get_extension_string_for_isa_flags): New.
8059         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
8060         (aarch64_option_print): Get the string to print from
8061         aarch64_get_extension_string_for_isa_flags.
8062         (aarch64_declare_function_name): Likewise.
8063         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
8064         (MCPU_TO_MARCH_SPEC): This.
8065         (ASM_CPU_SPEC): Use it.
8066         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
8067         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
8068         (EXTRA_SPEC_FUNCTIONS): Use it.
8069
8070 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
8071
8072         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
8073         expansion when !ISA_HAS_LWL_LWR.
8074         (mips_block_move_straight): Update the size of elements copied to
8075         account for alignment when !ISA_HAS_LWL_LWR.
8076         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
8077
8078 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8079
8080         * expr.c (expand_expr_real_2): Check gimple statement during
8081         LSHIFT_EXPR expand.
8082
8083 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
8084
8085         * common.opt (fstack-protector): Initialize to -1.
8086         (fstack-protector-all): Likewise.
8087         (fstack-protector-strong): Likewise.
8088         (fstack-protector-explicit): Likewise.
8089         * configure.ac: Add --enable-default-ssp.
8090         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
8091         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
8092         -1.
8093         * doc/install.texi: Document --enable-default-ssp.
8094         * config.in: Regenerated.
8095         * configure: Likewise.
8096
8097 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
8098
8099         PR rtl-optimization/64164
8100         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
8101         (parm_in_stack_slot_p): ... this.  Disregard mode, what
8102         matters is whether the parm will live in a pseudo or a stack
8103         slot.
8104         (expand_one_ssa_partition): Deal with params without a default
8105         def.  Disregard mode.
8106         * cfgexpand.h: Renamed function declaration.
8107         * tree-ssa-coalesce.c: Adjust.
8108         * function.c (split_complex_args): Allocate stack slot for
8109         unassigned parms before splitting.
8110         (parm_in_unassigned_mem_p): New.  Use it instead of
8111         parm_maybe_byref_p throughout this file.
8112         (assign_parm_setup_block): Use it.  Accept pseudos in the
8113         expand-assigned rtl.
8114         (assign_parm_setup_reg): Drop BLKmode requirement.
8115         (assign_parm_setup_stack): Allocate and fill in the address of
8116         unassigned MEM parms.
8117
8118 2015-08-19  David Sherwood  <david.sherwood@arm.com>
8119
8120         * genmodes.c (emit_mode_unit_size_inline): New function.
8121         (emit_mode_unit_precision_inline): New function.
8122         (emit_insn_modes_h): Emit new #define.  Emit new functions.
8123         (emit_mode_unit_size): New function.
8124         (emit_mode_unit_precision): New function.
8125         (emit_mode_adjustments): Add mode_unit_size adjustments.
8126         (emit_insn_modes_c): Emit new arrays.
8127         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
8128         use new inline methods.
8129
8130 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8131
8132         * config/aarch64/aarch64.c (bit_count): Delete prototype
8133         and definition.
8134         (aarch64_print_operand): Use popcount_hwi instead of the above.
8135
8136 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8137
8138         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
8139         comment.
8140
8141 2015-08-19  Marek Polacek  <polacek@redhat.com>
8142
8143         PR middle-end/67133
8144         * gimple-ssa-isolate-paths.c
8145         (insert_trap_and_remove_trailing_statements): Rename to ...
8146         (insert_trap): ... this.  Don't remove trailing statements; split
8147         block instead.
8148         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
8149
8150 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
8151
8152         PR other/67042
8153         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
8154         conditionalize the whole on __GNUC__.  Add fallback code
8155         depending neither on undefined nor implementation-defined behaviour.
8156
8157 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
8158
8159         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
8160         whitespaces with tab.
8161
8162 2015-08-19  Florian Weimer  <fweimer@redhat.com>
8163
8164         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
8165         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
8166         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
8167         Move Name_Ids instantiation to the Prj.Proc package, to avoid
8168         trampolines.
8169
8170 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8171
8172         * config/arm/arm.c (bounds_check): Use %wd print format
8173         for HOST_WIDE_INT arguments.
8174
8175 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
8176
8177         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
8178         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
8179         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
8180         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
8181         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
8182         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
8183         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
8184         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
8185         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
8186         typedefs.
8187
8188 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
8189
8190         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
8191         function.c, graphite-scop-detection.c, haifa-sched.c,
8192         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
8193         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
8194         varasm.c: Remove typedefs of structs.
8195
8196 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
8197
8198         * config/rs6000/altivec.h (vec_adde): New define.
8199         (vec_addec): Likewise.
8200         (vec_double): Likewise.
8201         (vec_bperm): Likewise.
8202         (vec_gb): Likewise.
8203         * config/rs6000/rs6000-builtin.def (ADDE): New
8204         BU_ALTIVEC_OVERLOAD_3.
8205         (ADDEC): Likewise.
8206         (DOUBLE): New BU_VSX_OVERLOAD_1.
8207         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
8208         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
8209         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
8210         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
8211         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
8212         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
8213         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
8214         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
8215         and P8V_BUILTIN_VEC_VBPERMQ.
8216
8217 2015-08-18  Jason Merrill  <jason@redhat.com>
8218
8219         * print-tree.c (print_node): Handle TREE_BINFO.
8220
8221 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
8222
8223         PR middle-end/36757
8224         * builtins.c (expand_builtin_signbit): Add asserts to make sure
8225         we can expand BUILT_IN_SIGNBIT inline.
8226         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
8227         * doc/extend.texi: Document the type-generic __builtin_signbit.
8228
8229 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
8230
8231         PR rtl-optimization/67218
8232         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
8233         (simplify_unary_operation_1): Use it.
8234
8235 2015-08-18  Marek Polacek  <polacek@redhat.com>
8236
8237         PR middle-end/67222
8238         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
8239         if the call isn't valid.
8240         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
8241         gimple_call_builtin_p.
8242         (call_may_clobber_ref_p_1): Likewise.
8243         (stmt_kills_ref_p): Likewise.
8244
8245 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
8246
8247         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
8248         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
8249         (mips_hard_regno_scratch_ok): Likewise.
8250         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
8251         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
8252
8253 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
8254
8255         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
8256         (determine_value_range): Call refine_value_range_using_guard for
8257         each loop initial condition to improve value range.
8258
8259 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
8260
8261         * config/i386/i386.c: Remove include of fibheap.h.
8262
8263 2015-08-17  Richard Biener  <rguenther@suse.de>
8264
8265         PR tree-optimization/67221
8266         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
8267         (sccvn_dom_walker::before_dom_children): Mark backedges of
8268         non-executable blocks as not executable.
8269
8270 2015-08-17  David Sherwood  <david.sherwood@arm.com>
8271
8272         * config/arm/arm.c (neon_element_bits): Replace call to
8273         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
8274         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
8275         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
8276         (neon_vdup_lane<mode>): Likewise.
8277         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
8278         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
8279         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
8280         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
8281         * config/spu/spu.c (arith_immediate_p): Likewise.
8282         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
8283         * expr.c (expand_expr_real_2): Likewise.
8284         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
8285         * simplify-rtx.c (simplify_immed_subreg): Likewise.
8286         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
8287         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
8288         New variable.
8289         * fold-const.c (fold_binary_loc): Replace call to
8290         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
8291         GET_MODE_UNIT_PRECISION (m).
8292
8293 2015-08-17  Mike Stump  <mikestump@comcast.net>
8294
8295         * config/arm/arm.c (arm_block_move_unaligned_straight):
8296         Emit normal move instead of unaligned load when source or destination
8297         are appropriately aligned.
8298
8299 2015-08-17  Richard Biener  <rguenther@suse.de>
8300             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8301
8302         PR middle-end/16107
8303         * match.pd (div (coss (op @0) : New simplifier.
8304
8305 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
8306
8307         PR rtl-optimization/64164
8308         PR bootstrap/66978
8309         PR middle-end/66983
8310         PR rtl-optimization/67000
8311         PR middle-end/67034
8312         PR middle-end/67035
8313         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
8314         * tree-ssa-copyrename.c: Removed.
8315         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
8316         -ftree-coalesce-vars.
8317         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
8318         * common.opt (ftree-copyrename): Ignore.
8319         (ftree-coalesce-inlined-vars): Likewise.
8320         * doc/invoke.texi: Remove the ignored options above.
8321         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
8322         * tree-ssa-coalesce.h: ... here.
8323         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
8324         headers required by it.
8325         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
8326         across variables when flag_tree_coalesce_vars.  Check register
8327         use and promoted modes to allow coalescing.  Do not coalesce
8328         maybe-byref parms with SSA_NAMEs of other variables, or
8329         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
8330         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
8331         with its member functions to tree-ssa-coalesce.c.
8332         (var_map_base_init): Likewise.  Renamed to
8333         compute_samebase_partition_bases.
8334         (partition_view_normal): Drop want_bases parameter.
8335         (partition_view_bitmap): Likewise.
8336         * tree-ssa-live.h: Adjust declarations.
8337         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
8338         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
8339         default defs at the entry point.
8340         (dump_part_var_map): New.
8341         (compute_optimized_partition_bases): New, called by...
8342         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
8343         of compute_samebase_partition_bases.  Adjust.
8344         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
8345         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
8346         (ssa_default_def_partition): New.
8347         (get_rtl_for_parm_ssa_default_def): New.
8348         (align_local_variable, add_stack_var): Support anonymous SSA
8349         names.
8350         (defer_stack_allocation): Likewise.  Declare earlier.
8351         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
8352         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
8353         Do no record deferred-allocation marker in
8354         SA.partition_to_pseudo.
8355         (expand_stack_vars): Adjust check for the marker in it.
8356         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
8357         redundant MEM attr setting.
8358         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
8359         from...
8360         (expand_one_stack_var): ... this.  New wrapper to check and
8361         skip already expanded SSA partitions.
8362         (record_alignment_for_reg_var): New, factored out of...
8363         (expand_one_var): ... this.
8364         (expand_one_ssa_partition): New.
8365         (adjust_one_expanded_partition_var): New.
8366         (expand_one_register_var): Check and skip already expanded SSA
8367         partitions.
8368         (expand_used_vars): Don't create DECLs for anonymous SSA
8369         names.  Expand all SSA partitions, then adjust all SSA names.
8370         (pass::execute): Replace the loops that set
8371         SA.partition_to_pseudo from partition leaders and cleared
8372         DECL_RTL for multi-location variables, and that which used to
8373         rename vars and set attrs, with one that clears DECL_RTL and
8374         checks that PARMs and RESULTs default_defs match DECL_RTL.
8375         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
8376         * emit-rtl.c: Include stor-layout.h.
8377         (set_reg_attrs_for_parm): Handle NULL decl.
8378         (set_reg_attrs_for_decl_rtl): Take mode from expression if
8379         it's not a DECL.
8380         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
8381         rather than its possibly-NULL DECL.
8382         * explow.c (promote_ssa_mode): New.
8383         * explow.h (promote_ssa_mode): Declare.
8384         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
8385         (read_complex_part): Export.
8386         * expr.h (read_complex_part): Declare.
8387         * cfgexpand.h (parm_maybe_byref_p): Declare.
8388         * function.c: Include cfgexpand.h.
8389         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
8390         (use_register_for_parm_decl): Wrapper for the above to
8391         special-case the result_ptr.
8392         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
8393         (split_complex_args): Take assign_parm_data_all argument.
8394         Pass it to rtl_for_parm.  Set up rtl and context for split
8395         args.  Reset complex parm before fetching its default decl
8396         rtl.
8397         (assign_parms_unsplit_complex): Use the default-def complex
8398         parm rtl if it matches the components.
8399         (assign_parms_augmented_arg_list): Adjust.
8400         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
8401         multiple locations.  Recognize split complex args.
8402         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
8403         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
8404         (assign_parm_setup_block): Prefer SSA-assigned location, and
8405         fill in its address if the memory location of a maybe-byref
8406         parm was not assigned by cfgexpand.
8407         (assign_parm_setup_reg): Likewise.  Adjust its mode as
8408         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
8409         sure passed_pointer parms don't need conversion.  Copy address
8410         or value as needed.
8411         (assign_parm_setup_stack): Prefer SSA-assigned location.
8412         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
8413         rtl before testing for pointer bounds.  Special-case result_ptr.
8414         (expand_function_start): Maybe reset DECL_RTL of result.
8415         Prefer SSA-assigned location for result and static chain.
8416         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
8417         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
8418         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
8419         anonymous SSA names.  Use promote_ssa_mode.
8420         (get_temp_reg): Likewise.
8421         (remove_ssa_form): Adjust.
8422         * stor-layout.c (layout_decl): Don't set mem attributes of
8423         non-MEMs.
8424         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
8425         and get its reg_usage for reg invalidation.
8426         (compute_bb_dataflow): Pass it insn.
8427         (emit_notes_in_bb): Likewise.
8428
8429 2015-08-14  Marek Polacek  <polacek@redhat.com>
8430
8431         * tree-core.h (tree_base): Fix typo.
8432
8433 2015-08-14  Marek Polacek  <polacek@redhat.com>
8434
8435         PR middle-end/67133
8436         * gimple.c (infer_nonnull_range_by_attribute): Check that the
8437         nonnull argument position is not outside function arguments.
8438
8439 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
8440
8441         PR target/67143
8442         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
8443         'lconst_atomic' with 'const_atomic'.
8444         (atomic_fetch_<optab><mode>): Likewise.
8445         (atomic_<optab>_fetch<mode>): Likewise.
8446         * config/aarch64/iterators.md (lconst-atomic): Move below
8447         'const_atomic'.
8448         (const_atomic): New.
8449
8450 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
8451             Bernd Schmidt  <bernds@codesourcery.com>
8452
8453         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
8454         debug options.
8455         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
8456         (DWARF2_DEBUGGING_INFO): Don't define.
8457         * debug.h (dwarf2_lineno_debug_hooks): Declare.
8458         * toplev.c (process_options): Add a case for it.
8459         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
8460         (dwarf2out_init): Skip most initializations if
8461         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
8462         case.
8463         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
8464         DWARF2_LINENO_DEBUGGING_INFO.
8465         * opts.c (set_debug_level): Likewise.
8466
8467 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
8468
8469         * config/arm/types.md (is_neon_type): Add missing types.
8470
8471 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8472
8473         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
8474         for skylake.
8475         * config/i386/i386.c (PTA_SKYLAKE): New macros.
8476         (processor_alias_table): Add skylake description.
8477         (enum processor_model): Add skylake processor.
8478         (arch_names_table): Add skylake record.
8479         * doc/invoke.texi: Add skylake item.
8480
8481 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
8482
8483         * ira-int.h: Include recog.h.
8484         * ira-build.c: Don't include recog.h.
8485         * ira-color.c: Likewise.
8486         * ira-conflicts.c: Likewise.
8487         * ira-costs.c: Likewise.
8488         * ira-emit.c: Likewise.
8489         * ira-lives.c: Likewise.
8490         * ira.c: Likewise.
8491         * sched-deps.c: Likewise.
8492         * sel-sched.c: Likewise.
8493         * target-globals.c: Likewise.
8494
8495 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
8496
8497         PR bootstrap/55035
8498         * reload1.c (elimination_costs_in_insn): Make it obvious to the
8499         compiler that the n_dups and n_operands loop bounds are invariant.
8500
8501 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8502
8503         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
8504         expressions in A and B.
8505
8506 2015-08-13  Richard Biener  <rguenther@suse.de>
8507
8508         * tree.c (nonnull_arg_p): Move from ...
8509         * tree-vrp.c (nonnull_arg_p): ... here.
8510         * tree.h (nonnull_arg_p): Declare.
8511         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
8512         here, register ptr != 0 for nonnull_arg_p pointer arguments.
8513         Properly initialize static chain and by-reference result pointer.
8514         (run_scc_vn): Adjust.
8515
8516 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8517
8518         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
8519         TUNE_I6400.
8520
8521 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8522
8523         * config/aarch64/aarch64-protos.h
8524         (aarch64_gen_atomic_cas): Declare.
8525         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
8526         Choose appropriate instruction pattern for the target.
8527         (aarch64_gen_atomic_cas): New.
8528         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
8529         (atomic_compare_and_swap<mode>_1): Rename to
8530         aarch64_compare_and_swap<mode>.  Fix some indentation.
8531         (aarch64_compare_and_swap<mode>_lse): New.
8532         (aarch64_atomic_cas<mode>): New.
8533
8534 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
8535
8536         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
8537         (TARGET_LSE): New.
8538
8539 2015-08-13  Richard Biener  <rguenther@suse.de>
8540
8541         PR tree-optimization/67191
8542         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
8543         assert we value-numbered last stmts operand because it can validly
8544         trigger for unreachable code.
8545
8546 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8547
8548         PR rtl-optimization/67103
8549         * ifcvt.c (noce_try_store_flag_constants): Move
8550         x = (-(test != 0) & (b - a)) + a transformation to...
8551         (noce_try_cmove): ... Here.  Try it if normal conditional
8552         move fails.
8553
8554 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
8555
8556         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
8557         pseudo-processors.
8558         * config/mips/mips.md (processor): Remove w32 and w64.
8559
8560 2015-08-13  Richard Biener  <rguenther@suse.de>
8561
8562         PR tree-optimization/66502
8563         PR tree-optimization/67167
8564         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
8565         backedge arguments.
8566         (vn_phi_lookup): Adjust.
8567         (vn_phi_insert): Likewise.
8568         (visit_phi): Prefer to value-number to another PHI node
8569         over value-numbering to a PHI argument.
8570         (init_scc_vn): Mark DFS back edges.
8571
8572 2015-08-13  Richard Biener  <rguenther@suse.de>
8573
8574         * gimple.h (gcall::code_): New constant static member.
8575         (gcond::code_): Likewise.
8576         * gimple.c (gcall::code_): Define.
8577         (gcond::code_): Likewise.
8578         (is_a_helper <const gcond *>): Add.
8579         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
8580         and forward to a new gcall overload with less checking and a
8581         cheaper way to access the operand.
8582         (gimple_call_lhs_ptr): Likewise.
8583         (gimple_call_set_lhs): Likewise.
8584         (gimple_call_internal_p): Likewise.
8585         (gimple_call_with_bounds_p): Likewise.
8586         (gimple_call_set_with_bounds): Likewise.
8587         (gimple_call_internal_fn): Likewise.
8588         (gimple_call_set_ctrl_altering): Likewise.
8589         (gimple_call_ctrl_altering_p): Likewise.
8590         (gimple_call_fntype): Likewise.
8591         (gimple_call_fn): Likewise.
8592         (gimple_call_fn_ptr): Likewise.
8593         (gimple_call_set_fndecl): Likewise.
8594         (gimple_call_fndecl): Likewise.
8595         (gimple_call_chain): Likewise.
8596         (gimple_call_num_args): Likewise.
8597         (gimple_call_arg): Likewise.
8598         (gimple_call_arg_ptr): Likewise.
8599         (gimple_call_set_arg): Likewise.
8600         (gimple_call_noreturn_p): Likewise.
8601         (gimple_cond_code): Likewise.
8602         (gimple_cond_lhs): Likewise.
8603         (gimple_cond_rhs): Likewise.
8604         (gimple_has_lhs): Reduce checking.
8605
8606 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
8607
8608         PR middle-end/25529
8609         * match.pd (div (mult @0 @1) @1) : New simplifier.
8610
8611 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8612
8613         PR target/67071
8614         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
8615         predicate to allow construction of vector constants using the
8616         VSLDOI vector shift instruction.
8617
8618         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
8619         declaration.
8620
8621         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
8622         the number of bytes to be shifted left and filled in with either
8623         all zero or all one bits.
8624         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
8625         methods exist.
8626         (output_vec_const_move): On power8, generate XXLORC to generate
8627         a vector constant with all 1's. Do a split if we need to use a
8628         VSLDOI instruction.
8629
8630         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
8631         properly test for the MSB.
8632
8633         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
8634         vector constants that can be created with VSLDOI.
8635
8636 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8637
8638         revert:
8639         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8640         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8641         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8642         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8643         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8644         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8645         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8646         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8647         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8648
8649 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
8650
8651         * config/xtensa/constraints.md (define_constraint "Y"): New
8652         constraint.
8653         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
8654         * config/xtensa/linux.h (ASM_SPEC): Likewise.
8655         * config/xtensa/predicates.md (move_operand): Match constants
8656         and symbols in the presence of TARGET_AUTO_LITPOOLS.
8657         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
8658         immediate references to TLS data.
8659         (xtensa_emit_move_sequence): Don't force constants to memory in
8660         the presence of TARGET_AUTO_LITPOOLS.
8661         (print_operand): Add 'y' format, same as default, but capable of
8662         printing SF mode constants as well.
8663         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
8664         (movsf_internal): Add movi pattern that loads literal.
8665         (movsf, movdf): Don't force constants to memory in the presence
8666         of TARGET_AUTO_LITPOOLS.
8667         (movdf_internal): Add 'Y' constraint.
8668         * config/xtensa/xtensa.opt (mauto-litpools): New option.
8669         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
8670
8671 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8672
8673         * config/arm/arm-fpus.def: Replace booleans with feature flags.
8674         Update comment.
8675         * config/arm/arm.c (ARM_FPU): Update macro.
8676         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
8677         (TARGET_FP16): Likewise.
8678         (TARGET_CRYPTO): Likewise.
8679         (TARGET_NEON): Likewise.
8680         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
8681         field features.
8682
8683 2015-08-12  Tom de Vries  <tom@codesourcery.com>
8684
8685         PR other/67092
8686         PR other/67098
8687         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
8688         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
8689         accordingly.  Mention default for --with-stage1-ldflags.
8690
8691 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
8692
8693         * config/arm/arm.h (arm_fpu_feature_set): New.
8694         (ARM_FPU_FSET_HAS): New.
8695         (FPU_FL_NONE): New.
8696         (FPU_FL_NEON): New.
8697         (FPU_FL_FP16): New.
8698         (FPU_FL_CRYPTO): New.
8699
8700 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8701
8702         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
8703         after -mcmodel=large -fPIC sorry.
8704
8705 2015-08-12  Richard Biener  <rguenther@suse.de>
8706
8707         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
8708         comparison operand order and commutative ternary op operand order.
8709         (sccvn_dom_walker::cond_stack): New state to track temporary
8710         expressions.
8711         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
8712         no longer valid.
8713         (sccvn_dom_walker::record_cond): Add a single temporary conditional
8714         expression.
8715         (sccvn_dom_walker::record_conds): Add a temporary conditional
8716         expressions and all related expressions also true/false.
8717         (sccvn_dom_walker::before_dom_children): Record temporary
8718         expressions based on the controlling condition of a single
8719         predecessor.  When trying to simplify a conditional statement
8720         lookup expressions we might have inserted earlier.
8721
8722 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
8723
8724         PR target/67127
8725         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
8726         to ARM core registers.
8727
8728 2015-08-12  Nathan Sidwell  <nathan@acm.org>
8729
8730         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
8731         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
8732
8733 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
8734
8735         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
8736         line with comments.
8737         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
8738
8739 2015-08-12  Richard Biener  <rguenther@suse.de>
8740
8741         * gimple.h (remove_pointer): New trait.
8742         (GIMPLE_CHECK2): New inline template function.
8743         (gassign::code_): New constant static member.
8744         (is_a_helper<const gassign *>): Add.
8745         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
8746         and forward to a new gassign overload with less checking and a
8747         cheaper way to access the operand.
8748         (gimple_assign_lhs_ptr): Likewise.
8749         (gimple_assign_set_lhs): Likewise.
8750         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
8751         Likewise.
8752         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
8753         Likewise.
8754         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
8755         Likewise.
8756         (gimple_assign_rhs_code): Likewise.
8757         * gimple.c (gassign::code_): Define.
8758
8759 2015-08-12  Richard Biener  <rguenther@suse.de>
8760
8761         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8762         Eliminate edges marked as not executable by SCCVN.
8763         * tree-ssa-sccvn.c: Include gimple-iterator.h.
8764         (cond_dom_walker): Rename to sccvn_dom_walker.
8765         (sccvn_dom_walker::before_dom_children): Value-number defs
8766         of all stmts.
8767         (run_scc_vn): Remove loop value-numbering all SSA names.
8768         Drop not visited SSA names to varying.
8769
8770 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
8771
8772         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
8773         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
8774         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
8775         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
8776         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
8777         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
8778         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
8779         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
8780         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
8781
8782 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
8783
8784         PR target/66954
8785         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
8786         to enum feature_priority and feature_list.
8787         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
8788         and isa_names_table.
8789
8790 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
8791
8792         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
8793         vect_induction_def.
8794
8795 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8796
8797         PR c/66098
8798         PR c/66711
8799         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
8800         account when deciding what was the command-line status.
8801
8802 2015-08-11  Nathan Sidwell  <nathan@acm.org>
8803
8804         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
8805
8806         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
8807         we're not the only contributor to target phi.
8808
8809 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
8810
8811         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
8812         FIXED_REG0.
8813
8814 2015-08-11  Tom de Vries  <tom@codesourcery.com>
8815
8816         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
8817
8818 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
8819
8820         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
8821         with CPU_SLM.
8822         * config/i386/i386.md (cpu): Remove knl.
8823
8824 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8825
8826         PR libgomp/65742
8827         PR middle-end/66332
8828         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
8829         open-coded sequence.
8830         * omp-low.c (oacc_process_reduction_data): Remove handline of
8831         GOMP_DEVICE_HOST_NONSHM.
8832
8833         * lto-streamer-in.c (lto_input_mode_table): Adjust to
8834         GET_MODE_INNER changes.
8835
8836 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
8837             Ilya Verbin  <ilya.verbin@intel.com>
8838
8839         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
8840
8841 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8842
8843         * doc/options.texi (EnabledBy): Document that the argument must be
8844         a Common option.
8845         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
8846         Not enabled by -Wall.
8847         * optc-gen.awk: Give nicer error messages. Detect if the argument
8848         of EnabledBy is not a Common option.
8849         * common.opt (Wnull-dereference): Not enabled by -Wall.
8850         * opt-functions.awk (lang_enabled_by): Nicer error messages.
8851
8852 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
8853
8854         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
8855         model == 0x4f as Broadwell.
8856
8857 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
8858
8859         PR rtl-optimization/67028
8860         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
8861         Add test to see if a const_int fits in the new mode.
8862
8863 2015-08-07  DJ Delorie  <dj@redhat.com>
8864
8865         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
8866
8867 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
8868
8869         PR rtl-optimization/67029
8870         * ira-color.c: Include "recog.h" before including "ira-int.h".
8871         * target-globals.c: Likewise.
8872         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
8873         adds an alternative_mask argument and use it instead of
8874         preferred_alternatives.
8875         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
8876         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
8877         * sched-deps.c: Include "ira-int.h" after including "ira.h".
8878         (sched_analyze_insn): Update call to
8879         ira_implicitly_set_insn_hard_regs.
8880         * sel-sched.c: Include "ira-int.h" after including "ira.h".
8881         (implicit_clobber_conflict_p): Update call to
8882         ira_implicitly_set_insn_hard_regs.
8883
8884 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8885
8886         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
8887
8888 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
8889
8890         PR target/67002
8891         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
8892         currently_expanding_to_rtl is set.
8893
8894 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
8895
8896         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
8897         * configure: Regenerate.
8898
8899 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8900             Jiong Wang  <jiong.wang@arm.com>
8901
8902         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
8903         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
8904         (REG_CLASS_NAMES): Likewise.
8905         (REG_CLASS_CONTENTS): Likewise.
8906         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
8907         (aarch64_register_move_cost): Likewise.
8908         (aarch64_load_symref_appropriately): Invoke the new added pattern if
8909         possible.
8910         * config/aarch64/constraints.md (Uc0): New constraint.
8911
8912 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
8913
8914         * config/aarch64/constraints.md (Usf): Add the test of
8915         aarch64_is_noplt_call_p.
8916
8917 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
8918
8919         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
8920         declaration.
8921         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
8922         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
8923         (call_symbol): Likewise.
8924
8925 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
8926
8927         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
8928         for vectorizing multiplication patterns.
8929         * tree-vectorizer.h: Adjust the number of patterns.
8930
8931 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
8932
8933         * config/i386/sse.md (*vec_concatv2df): Declare added
8934         alternatives as sselog type.
8935
8936 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8937
8938         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
8939         all GPRs.
8940
8941 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8942
8943         * config/s390/s390.c (s390_expand_tbegin): Expand either
8944         tbegin_1_z13 or tbegin_1 depending on VX flag.
8945         * config/s390/s390.md ("tbegin_1_z13"): New expander.
8946
8947 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8948
8949         * config/s390/s390.opt: Clarify description for -mzvector
8950         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
8951         -mzvector.
8952
8953 2015-08-06  Richard Biener  <rguenther@suse.de>
8954
8955         * gimple.h (gimple_call_set_fn): Access op member directly.
8956         (gimple_call_chain_ptr): Likewise.
8957         (gimple_call_set_chain): Likewise.
8958         (gimple_cond_lhs_ptr): Likewise.
8959         (gimple_cond_set_lhs): Likewise.
8960         (gimple_cond_rhs_ptr): Likewise.
8961         (gimple_cond_set_rhs): Likewise.
8962         (gimple_cond_true_label): Likewise.
8963         (gimple_cond_set_true_label): Likewise.
8964         (gimple_cond_set_false_label): Likewise.
8965         (gimple_cond_false_label): Likewise.
8966         (gimple_label_label): Likewise.
8967         (gimple_label_set_label): Likewise.
8968         (gimple_goto_set_dest): Likewise.
8969         (gimple_asm_input_op): Likewise.
8970         (gimple_asm_input_op_ptr): Likewise.
8971         (gimple_asm_set_input_op): Likewise.
8972         (gimple_asm_output_op): Likewise.
8973         (gimple_asm_output_op_ptr): Likewise.
8974         (gimple_asm_set_output_op): Likewise.
8975         (gimple_asm_clobber_op): Likewise.
8976         (gimple_asm_set_clobber_op): Likewise.
8977         (gimple_asm_label_op): Likewise.
8978         (gimple_asm_set_label_op): Likewise.
8979         (gimple_switch_index): Likewise.
8980         (gimple_switch_index_ptr): Likewise.
8981         (gimple_return_retval_ptr): Likewise.
8982         (gimple_return_retval): Likewise.
8983         (gimple_return_set_retval): Likewise.
8984         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
8985         (gimple_switch_label): Likewise.
8986         (gimple_switch_set_label): Likewise.
8987
8988 2015-08-06  Richard Biener  <rguenther@suse.de>
8989
8990         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
8991         bool comparison canonicalization and restrict to integers.
8992
8993 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
8994
8995         * coretypes.h (enum symbol_visibility): Relocate here.
8996         * flag-types.h (enum symbol_visibility): Remove.
8997         * tree-core.h (enum symbol_visibility): Remove.
8998
8999 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
9000
9001         PR target/66870
9002         * gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
9003         for no_split_stack function attribute along with
9004         flag_split_stack.
9005         (rs6000_expand_split_stack_prologue): Likewise.
9006
9007 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
9008             Jeff Law  <law@redhat.com>
9009
9010         PR c/16351
9011         * doc/invoke.texi (Wnull-dereference): New.
9012         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
9013         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
9014         Warn for potential NULL dereferences.
9015         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
9016         * ubsan.c (instrument_nonnull_arg): Call
9017         infer_nonnull_range_by_attribute.
9018         (instrument_nonnull_return): Likewise.
9019         * common.opt (Wnull-dereference); New.
9020         * gimple.c (infer_nonnull_range): Remove bool arguments.
9021         (infer_nonnull_range_by_dereference): New.
9022         (infer_nonnull_range_by_attribute): New.
9023         * gimple.h: Update declarations.
9024
9025 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9026
9027         * gensupport.c (sequence_num): Replace with...
9028         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
9029         ...these new variables.
9030         (init_rtx_reader_args_cb): Update accordingly.
9031         (get_num_code_insns): Likewise.
9032         (read_md_rtx): Rework to use a while loop and get_c_test.
9033         Use the new counters.  Remove redundant DEFINE_SUBST case.
9034         * genoutput.c (gen_split): Delete.
9035         (main): Don't call it.
9036
9037 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9038
9039         * gensupport.h (get_c_test): Declare.
9040         * gensupport.c (get_c_test): New function.
9041         * genconditions.c (main): Use it.
9042         * genrecog.c (validate_pattern): Likewise.
9043         (match_pattern_1): Likewise.  Remove c_test argument.
9044         (match_pattern): Update accordingly and remove c_test argument.
9045         (main): Update accordingly.
9046
9047 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9048
9049         * gensupport.h (get_num_insn_codes): Declare.
9050         * gensupport.c (get_num_insn_codes): New function.
9051         * genattrtab.c (optimize_attrs): Rename max_insn_code to
9052         num_insn_codes.
9053         (main): Likewise.  Use get_num_insn_codes.
9054         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
9055
9056 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9057
9058         PR middle-end/66311
9059         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
9060         is zero- rather than sign-extended.
9061
9062 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
9063
9064         * target-insns.def (can_extend): Delete.
9065
9066 2015-08-05  Richard Biener  <rguenther@suse.de>
9067
9068         PR tree-optimization/67121
9069         * tree-if-conv.c (combine_blocks): Clear range-info produced
9070         by stmts no longer executed conditionally.
9071
9072 2015-08-05  Nick Clifton  <nickc@redhat.com>
9073
9074         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
9075         to allow identical far pointers to remain.
9076
9077 2015-08-05  Richard Biener  <rguenther@suse.de>
9078
9079         PR middle-end/67120
9080         * match.pd: Compare address bases with == if they are decls
9081         or SSA names, not operand_equal_p.  Otherwise fail.
9082
9083 2015-08-05  Richard Biener  <rguenther@suse.de>
9084
9085         PR tree-optimization/67055
9086         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
9087         NULL gimple_block.
9088
9089         * g++.dg/torture/pr67055.C: New testcase.
9090
9091 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9092
9093         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
9094         noavx512vl.
9095         (define_attr "enabled"): Handle avx521vl and noavx512vl.
9096         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
9097         AVX-512 alternative out of SSE.
9098         (define_insn "*vec_concatv2df"): Ditto.
9099
9100 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
9101
9102         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
9103         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
9104         CODE_FOR_avx_ptestv4di.
9105         * config/i386/sse.md (define_mode_iterator V_AVX): New.
9106         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
9107         (define_insn "avx_ptest256"): Merge this ...
9108         (define_insn "sse4_1_ptest"): And this ...
9109         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
9110
9111 2015-08-05  Richard Biener  <rguenther@suse.de>
9112
9113         PR tree-optimization/67109
9114         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
9115         against too big groups.  Print whether this is a load or store
9116         group.  Rename from ...
9117         (vect_analyze_group_access): ... this which is now a wrapper
9118         dissolving an invalid group.
9119         (vect_analyze_data_ref_accesses): Print whether this is a load
9120         or store group.
9121
9122 2015-08-05  Richard Biener  <rguenther@suse.de>
9123
9124         PR middle-end/67107
9125         * match.pd: Guard const_binop result checking against NULL_TREE
9126         result.
9127
9128 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
9129
9130         * cse.c (cse_insn): Restoring old behaviour for src_eqv
9131          when dest and value in the REG_EQUAL are same and dest
9132          is STRICT_LOW_PART.
9133
9134 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
9135
9136         * config/moxie/moxie.h (PRINT_OPERAND,
9137           PRINT_OPERAND_ADDRESS): Remove macros.
9138         * config/moxie/moxie-protos.h (moxie_print_operand,
9139           moxie_print_operand_address): Remove declaration.
9140         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
9141           TARGET_PRINT_OPERAND_ADDRESS): Define.
9142           (moxie_print_operand, moxie_print_operand_address): Make static.
9143
9144 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9145
9146         PR target/66731
9147         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
9148         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
9149
9150 2015-08-04  Richard Biener  <rguenther@suse.de>
9151
9152         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
9153         generated code.
9154         (dt_operand::gen_gimple_expr): Adjust.
9155
9156 2015-08-04  Richard Biener  <rguenther@suse.de>
9157
9158         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
9159         bool compares on RHS.
9160         * match.pd: Add X ==/!= !X is false/true pattern.
9161
9162 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
9163
9164         * config/aarch64/aarch64.c: Change inner loop statement cost
9165         to be consistent with other targets.
9166
9167 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
9168
9169         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
9170         targets.
9171
9172 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
9173
9174         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
9175         (machine_function): Remove pseudos field.
9176
9177 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9178
9179         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9180         Exit early and use target_option_current_node if processing current
9181         pragma.
9182
9183 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9184
9185         * doc/extend.texi (AArch64 Function Attributes): New node.
9186         (AArch64 Pragmas): Likewise.
9187
9188 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9189
9190         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
9191         Initialize simd builtins if TARGET_SIMD.
9192         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
9193         Make sure that the builtins are initialized only once no matter how
9194         many times the function is called.
9195         (aarch64_init_builtins): Unconditionally initialize crc builtins.
9196         (aarch64_relayout_simd_param): New function.
9197         (aarch64_simd_expand_args): Use above during argument expansion.
9198         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
9199         simd builtins if TARGET_SIMD.
9200         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
9201         prototype.
9202         (aarch64_relayout_simd_types): Likewise.
9203
9204 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9205
9206         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
9207         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
9208         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
9209         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9210         static keyword.
9211         (aarch64_reset_previous_fndecl): New function.
9212         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
9213         the string.
9214         * config/aarch64/aarch64-c.c: New file.
9215         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
9216         Push and pop options at beginning and end.  Remove ifdef
9217         __ARM_FEATURE_CRC32.
9218         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
9219         Add pragma +nothing+simd and +nothing+crypto where appropriate.
9220         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
9221         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
9222         Define prototype.
9223         (aarch64_register_pragmas): Likewise.
9224         (aarch64_reset_previous_fndecl): Likewise.
9225         (aarch64_process_target_attr): Likewise.
9226         (aarch64_override_options_internal): Likewise.
9227
9228 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9229
9230         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
9231         New function.
9232         (aarch64_can_inline_p): Likewise.
9233         (TARGET_CAN_INLINE_P): Define.
9234
9235 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9236
9237         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
9238         Remove static.  Handle OPT_mgeneral_regs_only,
9239         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
9240         OPT_momit_leaf_frame_pointer.
9241         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
9242         (aarch64_attr_opt_type): New enum.
9243         (aarch64_attribute_info): New struct.
9244         (aarch64_handle_attr_arch): New function.
9245         (aarch64_handle_attr_cpu): Likewise.
9246         (aarch64_handle_attr_tune): Likewise.
9247         (aarch64_handle_attr_isa_flags): Likewise.
9248         (aarch64_attributes): New table.
9249         (aarch64_process_one_target_attr): New function.
9250         (num_occurences_in_str): Likewise.
9251         (aarch64_process_target_attr): Likewise.
9252         (aarch64_option_valid_attribute_p): Likewise.
9253         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
9254         * config/aarch64/aarch64-protos.h: Include input.h
9255         (aarch64_handle_option): Declare prototype.
9256
9257 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9258
9259         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
9260         * config/aarch64/aarch64.c: Include target-globals.h
9261         (aarch64_previous_fndecl): New variable.
9262         (aarch64_set_current_function): New function.
9263         (TARGET_SET_CURRENT_FUNCTION): Define.
9264
9265 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9266
9267         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
9268         (explicit_arch): Likewise.
9269         (x_aarch64_isa_flags): Likewise.
9270         (mgeneral-regs-only): Mark as Save.
9271         (mfix-cortex-a53-835769): Likewise.
9272         (mcmodel=): Likewise.
9273         (mstrict-align): Likewise.
9274         (momit-leaf-frame-pointer): Likewise.
9275         (mtls-dialect): Likewise.
9276         (master=): Likewise.
9277         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
9278         (aarch64_isa_flags): Remove extern declaration.
9279         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
9280         to indicate success or failure.
9281         (aarch64_validate_march): Likewise.
9282         (aarch64_validate_mtune): Likewise.
9283         (aarch64_isa_flags): Delete.
9284         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
9285         instead of aarch64_isa_flags.
9286         (aarch64_get_tune_cpu): New function.
9287         (aarch64_get_arch): Likewise.
9288         (aarch64_override_options): Use above and set up explicit_tune_core
9289         and explicit_arch.
9290         (aarch64_print_extension): Move earlier in file.  Add isa_flags
9291         argument and use that instead of the global aarch64_isa_flags.
9292         (aarch64_option_save): New function.
9293         (aarch64_option_restore): Likewise.
9294         (aarch64_option_print): Likewise.
9295         (aarch64_declare_function_name): Likewise.
9296         (aarch64_start_file): Delete.
9297         (TARGET_ASM_FILE_START): Do not define.
9298         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
9299         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
9300         Declare prototype.
9301
9302 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9303
9304         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
9305         flag_omit_leaf_frame_pointer to 2.
9306
9307 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9308
9309         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
9310         define to 0 or 1.
9311         (TARGET_FIX_ERR_A53_835769): New macro.
9312         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
9313         handling of opts->x_aarch64_fix_a53_err835769.
9314         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
9315         than aarch64_fix_a53_err835769.
9316         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
9317         * config/aarch64/aarch64-linux.h: Likewise.
9318
9319 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
9320
9321         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
9322         ix86_expand_int_movcc as boolean.
9323
9324 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9325
9326         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
9327         (aarch64_cpu_string): Likewise.
9328         (aarch64_tune_string): Likewise.
9329         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
9330         (aarch64_parse_extension): Return aarch64_parse_opt_result.
9331         Add extra argument to put result into.
9332         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
9333         (aarch64_parse_cpu): Add arguments to put results into. Return
9334         aarch64_parse_opt_result.
9335         (aarch64_parse_tune): Likewise.
9336         (aarch64_override_options_after_change_1): New function.
9337         (aarch64_override_options_internal): New function.
9338         (aarch64_validate_mcpu): Likewise.
9339         (aarch64_validate_march): Likewise.
9340         (aarch64_validate_mtune): Likewise.
9341         (aarch64_override_options): Update to reflect above changes.
9342         Move some logic into aarch64_override_options_internal.
9343         Initialize target_option_default_node and target_option_current_node.
9344         (aarch64_override_options_after_change): Move logic into
9345         aarch64_override_options_after_change_1 and call it with global_options.
9346         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
9347         flag values from that.
9348
9349 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9350
9351         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
9352         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
9353         * config/aarch64/aarch64.c (struct processor): Add arch field.
9354         (all_architectures): Handle above, move above all_cores.
9355         (all_cores): Handle above.
9356         (aarch64_parse_arch): Handle above changes.
9357         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
9358         above.  Update comments.
9359         (armv8.1-a): Likewise.
9360         * config/aarch64/aarch64-cores.def: Update according to above.
9361         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
9362         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
9363         aarch64_arch_driver_info.
9364
9365 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9366
9367         * config/aarch64/aarch64.c (struct processor): Add ident field.
9368         Rename core sched_core.
9369         (all_cores): Handle above changes.
9370         (all_architectures): Likewise.
9371         (aarch64_parse_arch): Likewise.
9372         (aarch64_override_options): Likewise.
9373
9374 2015-08-04  Richard Biener  <rguenther@suse.de>
9375
9376         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
9377         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
9378         comparisons embedded in [VEC_]COND_EXPRs.
9379
9380 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
9381
9382         * tree-if-conv.c: Fix various typos in comments.
9383         * tree-vect-stmts.c: Likewise.
9384
9385 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9386
9387         PR tree-optimization/67043
9388         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
9389         preheader after hoisting invariant in it.
9390         (find_defs): Force recomputation of all luids.
9391
9392 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
9393
9394         * config/rs6000/htm.md (tabort.): Restrict the source operand to
9395         using a base register.
9396
9397 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
9398
9399         * main.c (main): Pass in NULL for toplev's external_timer.
9400         * timevar.c: Include coretypes.h.
9401         (class timer::named_items): New.
9402         (timer::named_items::named_items): New.
9403         (timer::named_items::~named_items): New.
9404         (timer::named_items::push): New.
9405         (timer::named_items::pop): New.
9406         (timer::named_items::print): New.
9407         (timer::timer): Initialize field "m_jit_client_items".
9408         (timer::~timer): New.
9409         (timer::push): Move bulk of implementation to...
9410         (timer::push_internal): ...here.  New function.
9411         (timer::pop): Move bulk of implementation to...
9412         (timer::pop_internal): ...here.  New function.
9413         (timer::push_client_item): New.
9414         (timer::pop_client_item): New.
9415         (timer::print_row): New function, taken from timer::print.
9416         (timer::print): Print "GCC items" header if we also have client
9417         items.  Move row-printing to timer::print_row.  Print any client
9418         items.
9419         (timer::get_topmost_item_name): New method.
9420         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
9421         (TV_JIT_CLIENT_CODE): New.
9422         * timevar.h (timer::push_client_item): New declaration.
9423         (timer::pop_client_item): New declaration.
9424         (timer::get_topmost_item_name): New method.
9425         (timer::push_internal): New declaration.
9426         (timer::pop_internal): New declaration.
9427         (timer::print_row): New declaration.
9428         (timer::named_items): New declaration.
9429         (timer::m_jit_client_items): New field.
9430         (timer): Add friend class named_items.
9431         (auto_timevar::auto_timevar): Add timer param.
9432         (auto_timevar::~auto_timevar): Use field "m_timer".
9433         (auto_timevar::m_timer): New field.
9434         * toplev.c (initialize_rtl): Add g_timer as param when
9435         constructing auto_timevar instance.
9436         (toplev::toplev): Add "external_timer" param, and use it to
9437         initialize the "g_timer" global if non-NULL.
9438         (toplev::~toplev): If this created "g_timer", delete it.
9439         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
9440         with "external_timer" timer *.
9441
9442 2015-08-03  Alexander Basov <coohpt@gmail.com>
9443
9444         PR middle-end/64744
9445         PR middle-end/48470
9446         PR middle-end/43404
9447         * cfgexpand.c (expand_one_var): Add check if stack is going to
9448         be used in naked function.
9449         * expr.c (expand_expr_addr_expr_1): Remove excess checking
9450         whether expression should not reside in MEM.
9451         * function.c (use_register_for_decl): Do not use registers for
9452         non-register things (volatile, float, BLKMode) in naked functions.
9453
9454 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
9455
9456         PR target/67060
9457         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
9458         Adjust splits to match new pattern.
9459
9460 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
9461
9462         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
9463         (VEC_M): Likewise.
9464         (VEC_N): Likewise.
9465         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
9466         point in VSX registers.
9467
9468         * config/rs6000/constraints.md (wb constraint): Document unused
9469         w<x> constraint.
9470         (we constraint): Likewise.
9471         (wo constraint): Likewise.
9472         (wp constraint): New constraint for IEEE 128-bit floating point in
9473         VSX registers.
9474         (wq constraint): Likewise.
9475
9476         * config/rs6000/predicates.md (easy_fp_constant): Add support for
9477         IEEE 128-bit floating point in VSX registers.
9478         (easy_scalar_constant): Likewise.
9479
9480         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
9481         constraints (wp, wq) for IEEE 128-bit floating point in VSX
9482         registers.
9483         (rs6000_init_hard_regno_mode_ok): Likewise.
9484
9485         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
9486         floating point in VSX registers.
9487         (VSX_L): Likewise.
9488         (VSX_M): Likewise.
9489         (VSX_M2): Likewise.
9490         (VSm): Likewise.
9491         (VSs): Likewise.
9492         (VSr): Likewise.
9493         (VSa): Likewise.
9494         (VSv): Likewise.
9495         (vsx_le_permute_<mode>): Add support to properly swap bytes for
9496         IEEE 128-bit floating point in VSX registers on little endian.
9497         (vsx_le_undo_permute_<mode>): Likewise.
9498         (vsx_le_perm_load_<mode>): Likewise.
9499         (vsx_le_perm_store_<mode>): Likewise.
9500         (splitters for IEEE 128-bit fp moves): Likewise.
9501
9502         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
9503         wq constraints.
9504
9505         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
9506         floating point in VSX registers.
9507         (VM2): Likewise.
9508
9509         * doc/md.text (Machine Constraints): Document wp and wq
9510         constraints on PowerPC.
9511
9512 2015-08-03  Jeff Law  <law@redhat.com>
9513
9514         PR middle-end/66314
9515         PR gcov-profile/66899
9516         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
9517         iterate over the jump threading paths when an element in the
9518         jump threading paths array is eliminated.
9519
9520 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
9521
9522         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
9523
9524 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
9525
9526         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
9527         is_use_properly_guarded the variable def_preds.  Free its
9528         contents before returning.
9529         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
9530         (is_use_properly_guarded): Replace local variable def_preds with
9531         a parameter.  Adjust accordingly.  Only update *def_preds if it's
9532         the empty vector.
9533
9534 2015-08-03  Richard Biener  <rguenther@suse.de>
9535
9536         * genmatch.c (simplify::for_subst_vec): New member.
9537         (binary_ok): New helper for for lowering.
9538         (lower_for): Delay substituting operators into result expressions
9539         if we can merge the results eventually again.
9540         (capture_info::walk_result): Adjust for user_id appearing as
9541         result expression operator.
9542         (expr::gen_transform): Likewise.
9543         (dt_simplify::gen_1): Likewise.
9544         (dt_simplify::gen): Pass not substituted operators to tail
9545         functions or initialize local variable with it.
9546         (decision_tree::gen): Adjust function signature.
9547         * match.pd: Fix tests against global code and add default
9548         cases to switch stmts.
9549
9550 2015-08-03  Richard Biener  <rguenther@suse.de>
9551
9552         * genmatch.c (dt_simplify::gen): Create captures array
9553         with an initializer.
9554
9555 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
9556
9557         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
9558         the host compiler is affected by placement new aliasing bug.
9559         * configure: Regenerate.
9560         * Makefile.in (ALIASING_FLAGS): New variable.
9561         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
9562
9563 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9564
9565         PR target/66731
9566         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
9567         (negmulsf3_vfp): Likewise.
9568         (muldf3negdf_vfp): Disable for -frounding-math.
9569         (mulsf3negsf_vfp): Likewise.
9570         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
9571         fix MULT cost with -frounding-math.
9572
9573 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9574
9575         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
9576         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
9577         explicit.  Prefer to add the flag whenever possible.
9578         (noce_process_if_block): Try noce_try_store_flag_constants before
9579         noce_try_cmove.
9580
9581 2015-08-03  Richard Biener  <rguenther@suse.de>
9582
9583         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
9584         New hash-map to record equivalent transforms.
9585         (dt_node::analyze): Populate the equivalent transforms hash-map.
9586         (dt_simplify::info): Add reference to hash-map entry.
9587         (dt_simplify::gen): If we have split out a function for the
9588         transform, generate a call to it.
9589         (sinfo_hashmap_traits::hash): New function.
9590         (compare_op): New helper function for ...
9591         (sinfo_hashmap_traits::equal_keys): ... this new function.
9592         (decision_tree::gen): Split out common equivalent transforms
9593         into functions.
9594
9595 2015-08-03  Richard Biener  <rguenther@suse.de>
9596
9597         * gimple-fold.c (fold_gimple_assign): Remove folding of
9598         the comparison in COND_EXPRs.
9599
9600 2015-08-03  Richard Biener  <rguenther@suse.de>
9601
9602         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
9603         on the rhs of assignments first simplify the embedded
9604         GENERIC condition.
9605
9606 2015-08-03  Richard Biener  <rguenther@suse.de>
9607
9608         PR tree-optimization/66917
9609         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
9610         field.
9611         (DR_VECT_AUX): New macro.
9612         (set_dr_misalignment): Adjust.
9613         (dr_misalignment): Likewise.
9614         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
9615         Compute whether the base is at least element aligned.
9616         * tree-vect-stmts.c (ensure_base_align): Adjust.
9617         (vectorizable_store): If the base is not element aligned
9618         preserve alignment of the original access if misalignment is unknown.
9619         (vectorizable_load): Likewise.
9620
9621 2015-08-02  Martin Sebor  <msebor@redhat.com>
9622
9623         * c-family/c.opt (-Wframe-address): New warning option.
9624         * doc/invoke.texi (Wframe-address): Document it.
9625         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
9626         Clarify possible effects of calling the functions with non-zero
9627         arguments and mention -Wframe-address.
9628         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
9629
9630 2015-08-01  Michael Collison  <michael.collison@linaro.org
9631             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
9632
9633         * gcc/config/arm/arm.md (*arm_smin_cmp): New pattern.
9634         (*arm_umin_cmp): Likewise.
9635
9636 2015-08-01  Caroline Tice  <cmtice@google.com>
9637
9638         PR 66521
9639         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
9640         global variables.
9641         (vtbl_find_mangled_name):  New function.
9642         (vtbl_register_mangled_name):  New function.
9643         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
9644         mangled name in mangled name vectors.
9645         (find_or_create_vtbl_map_node):  Ditto.
9646         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
9647         update recursion_depth on function entry; pass it to every recursive
9648         call; automatically exit if depth > 25 (give up looking at that point).
9649         (verify_bb_vtables):  Initialize recursion_depth and pass it to
9650         var_is_used_for_virtual_call_p.
9651         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
9652         global variable decls.
9653         (vtbl_register_mangled_name): New extern function decl.
9654
9655 2015-08-01  Tom de Vries  <tom@codesourcery.com>
9656
9657         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
9658         function.
9659         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
9660         Declare.
9661         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
9662         operation_no_trapping_overflow.  Allow non-overflow operations.
9663         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
9664         operations.
9665
9666 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
9667
9668         PR target/67049
9669         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
9670
9671 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9672
9673         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
9674         Enable for TARGET_32BIT.
9675         (*if_move_neg): Likewise.
9676
9677 2015-07-31  Nick Clifton  <nickc@redhat.com>
9678
9679         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
9680         Returns true for __model__.
9681         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
9682
9683 2015-07-31  Alan Modra  <amodra@gmail.com>
9684
9685         PR target/66870
9686         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
9687         (rs6000_emit_prologue): Set it.
9688         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
9689
9690 2015-07-31  Richard Biener  <rguenther@suse.de>
9691
9692         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
9693         -> X == (C1 ^ C2) which is already implemented in match.pd.
9694         Remove redundant dispatching to fold_relational_const.
9695         Move unordered self and NaN compares ...
9696         * match.pd: ... as patterns here.  Remove some stray captures
9697         and add a comment.
9698
9699 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
9700
9701         * config/i386/i386.c
9702         (bdesc_special_args): Convert mask type from signed to unsigned for
9703         masked builtins.
9704         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
9705         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
9706         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
9707         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
9708         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
9709         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
9710         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
9711         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
9712         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
9713         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
9714         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
9715         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
9716         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
9717         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
9718         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
9719         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
9720         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
9721         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
9722         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
9723         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
9724         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
9725         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
9726         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
9727         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
9728         * config/i386/i386-builtin-types.def
9729         (V16QI_FTYPE_V16SI): Remove.
9730         (V8DF_FTYPE_V8SI): Ditto.
9731         (V8HI_FTYPE_V8DI): Ditto.
9732         (V8SI_FTYPE_V8DI): Ditto.
9733         (V8SF_FTYPE_V8DF): Ditto.
9734         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
9735         (V16HI_FTYPE_V16SI): Ditto.
9736         (V16SF_FTYPE_V16HI): Ditto.
9737         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
9738         (V16SF_FTYPE_V16SI): Ditto.
9739         (V4DI_FTYPE_V4DI): Ditto.
9740         (V16SI_FTYPE_V16SF): Ditto.
9741         (V16SF_FTYPE_FLOAT): Ditto.
9742         (V8DF_FTYPE_DOUBLE): Ditto.
9743         (V8DI_FTYPE_INT64): Ditto.
9744         (V8DI_FTYPE_V4DI): Ditto.
9745         (V16QI_FTYPE_V8DI): Ditto.
9746         (UINT_FTYPE_V4SF): Ditto.
9747         (UINT64_FTYPE_V4SF): Ditto.
9748         (UINT_FTYPE_V2DF): Ditto.
9749         (UINT64_FTYPE_V2DF): Ditto.
9750         (V16SI_FTYPE_V16SI): Ditto.
9751         (V8DI_FTYPE_V8DI): Ditto.
9752         (V16SI_FTYPE_PV4SI): Ditto.
9753         (V16SF_FTYPE_PV4SF): Ditto.
9754         (V8DI_FTYPE_PV2DI): Ditto.
9755         (V8DF_FTYPE_PV2DF): Ditto.
9756         (V4DI_FTYPE_PV2DI): Ditto.
9757         (V4DF_FTYPE_PV2DF): Ditto.
9758         (V16SI_FTYPE_PV2SI): Ditto.
9759         (V16SF_FTYPE_PV2SF): Ditto.
9760         (V8DI_FTYPE_PV4DI): Ditto.
9761         (V8DF_FTYPE_PV4DF): Ditto.
9762         (V8SF_FTYPE_FLOAT): Ditto.
9763         (V4SF_FTYPE_FLOAT): Ditto.
9764         (V4DF_FTYPE_DOUBLE): Ditto.
9765         (V8SF_FTYPE_PV4SF): Ditto.
9766         (V8SI_FTYPE_PV4SI): Ditto.
9767         (V4SI_FTYPE_PV2SI): Ditto.
9768         (V8SF_FTYPE_PV2SF): Ditto.
9769         (V8SI_FTYPE_PV2SI): Ditto.
9770         (V16SF_FTYPE_PV8SF): Ditto.
9771         (V16SI_FTYPE_PV8SI): Ditto.
9772         (V8DI_FTYPE_V8SF): Ditto.
9773         (V4DI_FTYPE_V4SF): Ditto.
9774         (V2DI_FTYPE_V4SF): Ditto.
9775         (V64QI_FTYPE_QI): Ditto.
9776         (V32HI_FTYPE_HI): Ditto.
9777         (V8UHI_FTYPE_V8UHI): Ditto.
9778         (V16UHI_FTYPE_V16UHI): Ditto.
9779         (V32UHI_FTYPE_V32UHI): Ditto.
9780         (V2UDI_FTYPE_V2UDI): Ditto.
9781         (V4UDI_FTYPE_V4UDI): Ditto.
9782         (V8UDI_FTYPE_V8UDI): Ditto.
9783         (V4USI_FTYPE_V4USI): Ditto.
9784         (V8USI_FTYPE_V8USI): Ditto.
9785         (V16USI_FTYPE_V16USI): Ditto.
9786         (V2DF_FTYPE_V2DF_UINT64): Ditto.
9787         (V2DI_FTYPE_V2DF_V2DF): Ditto.
9788         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
9789         (V8DF_FTYPE_V8DF_V8DI): Ditto.
9790         (V4SF_FTYPE_V4SF_UINT64): Ditto.
9791         (V4SI_FTYPE_V4SF_V4SF): Ditto.
9792         (V16SF_FTYPE_V16SF_V16SI): Ditto.
9793         (V64QI_FTYPE_V32HI_V32HI): Ditto.
9794         (V32HI_FTYPE_V16SI_V16SI): Ditto.
9795         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
9796         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
9797         (V32HI_FTYPE_V64QI_V64QI): Ditto.
9798         (V32HI_FTYPE_V32HI_V32HI): Ditto.
9799         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
9800         (V16SI_FTYPE_V16SI_V4SI): Ditto.
9801         (V16SI_FTYPE_V16SI_V16SI): Ditto.
9802         (V16SI_FTYPE_V32HI_V32HI): Ditto.
9803         (V16SI_FTYPE_V16SI_SI): Ditto.
9804         (V8DI_FTYPE_V8DI_V8DI): Ditto.
9805         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
9806         (V8DI_FTYPE_V16SI_V16SI): Ditto.
9807         (V8DI_FTYPE_V8DI_V2DI): Ditto.
9808         (QI_FTYPE_QI): Ditto.
9809         (SI_FTYPE_SI): Ditto.
9810         (DI_FTYPE_DI): Ditto.
9811         (QI_FTYPE_QI_QI): Ditto.
9812         (QI_FTYPE_QI_INT): Ditto.
9813         (HI_FTYPE_HI_INT): Ditto.
9814         (SI_FTYPE_SI_INT): Ditto.
9815         (DI_FTYPE_DI_INT): Ditto.
9816         (HI_FTYPE_V16QI_V16QI): Ditto.
9817         (SI_FTYPE_V32QI_V32QI): Ditto.
9818         (DI_FTYPE_V64QI_V64QI): Ditto.
9819         (QI_FTYPE_V8HI_V8HI): Ditto.
9820         (HI_FTYPE_V16HI_V16HI): Ditto.
9821         (SI_FTYPE_V32HI_V32HI): Ditto.
9822         (QI_FTYPE_V4SI_V4SI): Ditto.
9823         (QI_FTYPE_V8SI_V8SI): Ditto.
9824         (QI_FTYPE_V2DI_V2DI): Ditto.
9825         (QI_FTYPE_V4DI_V4DI): Ditto.
9826         (QI_FTYPE_V8DI_V8DI): Ditto.
9827         (HI_FTYPE_V16SI_V16SI): Ditto.
9828         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
9829         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
9830         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
9831         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
9832         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
9833         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
9834         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
9835         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
9836         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
9837         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
9838         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
9839         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
9840         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
9841         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
9842         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
9843         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
9844         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
9845         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
9846         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
9847         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
9848         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
9849         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
9850         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
9851         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
9852         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
9853         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
9854         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
9855         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
9856         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
9857         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
9858         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
9859         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
9860         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
9861         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
9862         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
9863         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
9864         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
9865         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
9866         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
9867         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
9868         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
9869         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
9870         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
9871         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
9872         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
9873         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
9874         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
9875         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
9876         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
9877         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
9878         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
9879         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
9880         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
9881         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
9882         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
9883         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
9884         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
9885         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
9886         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
9887         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
9888         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
9889         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
9890         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
9891         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
9892         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
9893         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
9894         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
9895         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
9896         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
9897         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
9898         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
9899         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
9900         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
9901         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
9902         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
9903         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
9904         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
9905         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
9906         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
9907         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
9908         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
9909         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
9910         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
9911         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
9912         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
9913         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
9914         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
9915         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
9916         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
9917         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
9918         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
9919         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
9920         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
9921         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
9922         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
9923         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
9924         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
9925         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
9926         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
9927         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
9928         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
9929         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
9930         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
9931         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
9932         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
9933         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
9934         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
9935         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
9936         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
9937         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
9938         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
9939         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
9940         (HI_FTYPE_HI): Ditto.
9941         (HI_FTYPE_V16QI): Ditto.
9942         (SI_FTYPE_V32QI): Ditto.
9943         (DI_FTYPE_V64QI): Ditto.
9944         (QI_FTYPE_V8HI): Ditto.
9945         (HI_FTYPE_V16HI): Ditto.
9946         (SI_FTYPE_V32HI): Ditto.
9947         (QI_FTYPE_V4SI): Ditto.
9948         (QI_FTYPE_V8SI): Ditto.
9949         (HI_FTYPE_V16SI): Ditto.
9950         (QI_FTYPE_V2DI): Ditto.
9951         (QI_FTYPE_V4DI): Ditto.
9952         (QI_FTYPE_V8DI): Ditto.
9953         (V16QI_FTYPE_HI): Ditto.
9954         (V32QI_FTYPE_SI): Ditto.
9955         (V64QI_FTYPE_DI): Ditto.
9956         (V8HI_FTYPE_QI): Ditto.
9957         (V16HI_FTYPE_HI): Ditto.
9958         (V32HI_FTYPE_SI): Ditto.
9959         (V4SI_FTYPE_QI): Ditto.
9960         (V4SI_FTYPE_HI): Ditto.
9961         (V8SI_FTYPE_QI): Ditto.
9962         (V8SI_FTYPE_HI): Ditto.
9963         (V2DI_FTYPE_QI): Ditto.
9964         (V4DI_FTYPE_QI): Ditto.
9965         (HI_FTYPE_HI_HI): Ditto.
9966         (SI_FTYPE_SI_SI): Ditto.
9967         (DI_FTYPE_DI_DI): Ditto.
9968         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
9969         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
9970         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
9971         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
9972         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
9973         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
9974         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
9975         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
9976         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
9977         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
9978         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
9979         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
9980         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
9981         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
9982         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
9983         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
9984         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
9985         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
9986         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
9987         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
9988         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
9989         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
9990         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
9991         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
9992         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
9993         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
9994         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
9995         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
9996         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
9997         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
9998         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
9999         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
10000         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
10001         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
10002         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
10003         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
10004         (V16SI_FTYPE_HI): Ditto.
10005         (V8DI_FTYPE_QI): Ditto.
10006         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
10007         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
10008         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
10009         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
10010         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
10011         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
10012         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
10013         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
10014         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
10015         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
10016         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
10017         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
10018         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
10019         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
10020         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
10021         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
10022         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
10023         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
10024         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
10025         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
10026         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
10027         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
10028         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
10029         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
10030         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
10031         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
10032         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
10033         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
10034         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
10035         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
10036         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
10037         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
10038         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
10039         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
10040         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
10041         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
10042         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
10043         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
10044         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
10045         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
10046         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
10047         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
10048         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
10049         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
10050         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
10051         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
10052         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
10053         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
10054         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
10055         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
10056         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
10057         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
10058         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
10059         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
10060         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
10061         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
10062         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
10063         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
10064         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
10065         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
10066         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
10067         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
10068         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
10069         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
10070         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
10071         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
10072         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
10073         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
10074         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
10075         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
10076         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
10077         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
10078         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
10079         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
10080         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
10081         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
10082         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
10083         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
10084         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
10085         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
10086         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
10087         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
10088         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
10089         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
10090         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
10091         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
10092         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
10093         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
10094         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
10095         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
10096         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
10097         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
10098         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
10099         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
10100         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
10101         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
10102         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
10103         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
10104         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
10105         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
10106         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
10107         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
10108         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
10109         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
10110         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
10111         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
10112         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
10113         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
10114         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
10115         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
10116         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
10117         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
10118         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
10119         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
10120         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
10121         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
10122         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
10123         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
10124         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
10125         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
10126         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
10127         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
10128         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
10129         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
10130         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
10131         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
10132         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
10133         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
10134         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
10135         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
10136         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
10137         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
10138         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
10139         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
10140         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
10141         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
10142         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
10143         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
10144         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
10145         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
10146         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
10147         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
10148         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
10149         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
10150         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
10151         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
10152         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
10153         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
10154         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
10155         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
10156         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
10157         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
10158         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
10159         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
10160         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
10161         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
10162         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
10163         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
10164         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
10165         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
10166         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
10167         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
10168         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
10169         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
10170         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
10171         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
10172         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
10173         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
10174         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
10175         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
10176         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
10177         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
10178         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
10179         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
10180         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
10181         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
10182         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
10183         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
10184         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
10185         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
10186         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
10187         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
10188         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
10189         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
10190         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
10191         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
10192         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
10193         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
10194         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
10195         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
10196         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
10197         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
10198         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
10199         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
10200         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
10201         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
10202         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
10203         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
10204         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
10205         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
10206         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
10207         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
10208         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
10209         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
10210         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
10211         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
10212         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
10213         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
10214         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
10215         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
10216         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
10217         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
10218         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
10219         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
10220         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
10221         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
10222         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
10223         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
10224         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
10225         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
10226         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
10227         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
10228         (QI_FTYPE_V8DF_INT_QI): Ditto.
10229         (QI_FTYPE_V4DF_INT_QI): Ditto.
10230         (QI_FTYPE_V2DF_INT_QI): Ditto.
10231         (HI_FTYPE_V16SF_INT_HI): Ditto.
10232         (QI_FTYPE_V8SF_INT_QI): Ditto.
10233         (QI_FTYPE_V4SF_INT_QI): Ditto.
10234         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
10235
10236 2015-07-31  Richard Biener  <rguenther@suse.de>
10237
10238         * gimple-fold.c (fold_gimple_assign): Remove folding of
10239         GIMPLE_BINARY_RHS.
10240
10241 2015-07-31  Tom de Vries  <tom@codesourcery.com>
10242
10243         PR tree-optimization/66846
10244         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
10245         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
10246         (expand_omp_target) [ENABLE_CHECKING]: Same.
10247         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
10248         cfun if !LOOPS_NEED_FIXUP.
10249         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
10250         that omp_for already has its own loop struct.
10251         * tree-parloops.c (create_phi_for_local_result)
10252         (create_call_for_reduction): Handle simple latch bb.
10253         (create_parallel_loop): Add simple latch bb to preserve
10254         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
10255         (gen_parallel_loop): Remove call to cancel_loop_tree.
10256         (parallelize_loops): Skip loops that are inner loops of parallelized
10257         loops.
10258         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
10259         verify_loop_structure.
10260
10261 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10262
10263         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
10264         * config/v850/v850.md (RV_REGNUM): New constants.
10265         * config/v850/v850.c (v850_libcall_value): New functions.
10266         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
10267         (TARGET_LIBCALL_VALUE): Define.
10268
10269 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
10270
10271         * rtl.h (lowpart_subreg): Move in file.
10272         * loop-iv.c (lowpart_subreg): Move to...
10273         * simplify-rtx.c (lowpart_subreg): ...here.
10274           (simplify_binary_operation_1): Use lowpart_subreg instead of
10275           simplify_gen_subreg.
10276         * expr.c (expand_expr_real_2): Ditto.
10277         * emit-rtl.c (gen_lowpart_common): Ditto.
10278         * combine.c (gen_lowpart_for_combine): Ditto.
10279         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
10280           expand_debug_source_expr): Ditto.
10281
10282 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
10283
10284         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
10285         (expand_builtin_atomic_clear): Remove support for atomic_clear
10286         pattern.
10287
10288 2015-07-30  Richard Biener  <rguenther@suse.de>
10289
10290         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
10291         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
10292         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
10293         redundant operand canonicalization.
10294
10295 2015-07-30  David Sherwood  <david.sherwood@arm.com>
10296
10297         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
10298         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
10299         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
10300         * config/arm/arm.c (neon_valid_immediate): Likewise.
10301         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
10302         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
10303         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
10304         (expand_vec_perm_vpshufb2_vpermq): Likewise.
10305         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
10306         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
10307         * config/i386/sse.md
10308         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
10309         (*ssse3_palignr<mode>_perm): Likewise.
10310         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
10311         * config/spu/spu.c (arith_immediate_p): Likewise.
10312         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
10313         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
10314
10315 2015-07-30  Richard Biener  <rguenther@suse.de>
10316
10317         * genmatch.c (decision_tree::gen_gimple): Merge with ...
10318         (decision_tree::gen_generic): ... this into ...
10319         (decision_tree::gen): ... this.
10320         (main): Adjust callers.
10321
10322 2015-07-30  Richard Biener  <rguenther@suse.de>
10323
10324         * genmatch.c (verbose): New global.
10325         (warning_at): Add overload with source_location.
10326         (capture_info::capture_info): Add bool whether generating gimple
10327         or generic.  Add gimple member.
10328         (capture_info::cinfo): Add capture member.
10329         (capture_info::walk_match): Record capture.  Warn on
10330         non-captured leafs.
10331         (capture_info::walk_c_expr): Add more fragments captures cannot
10332         escape through.  Warn on escaped captures.
10333         (dt_simplify::gen_1): Warn on operands we force to have no
10334         side-effects.
10335         (main): Initialize verbose.
10336         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
10337
10338 2015-07-30  Richard Biener  <rguenther@suse.de>
10339
10340         PR middle-end/67053
10341         * match.pd: Allow both operands to independently have conversion
10342         when simplifying compares of addresses.
10343
10344 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
10345
10346         PR target/66217
10347         PR target/67045
10348         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
10349         around those cases that need one.
10350
10351 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
10352
10353         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
10354
10355 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
10356
10357         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
10358         New.  Copied from config/i386/gnu-user.h.
10359         (ASM_COMMENT_START): Likewise.
10360         (DBX_REGISTER_NUMBER): Likewise.
10361
10362 2015-07-29  Richard Biener  <rguenther@suse.de>
10363
10364         * gimple-fold.c (fold_gimple_cond): Remove.
10365         (fold_stmt_1): Do not call it.
10366
10367 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
10368
10369         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
10370         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
10371
10372         * config/aarch64/aarch64-modes.def: Add HFmode.
10373
10374         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
10375         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
10376
10377         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
10378         aarch64_promoted_type): New.
10379
10380         (aarch64_float_const_representable_p): Disable HFmode.
10381         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
10382         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
10383         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
10384
10385         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
10386         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
10387
10388         * config/aarch64/iterators.md (GPF_F16): New.
10389
10390 2015-07-29  Richard Biener  <rguenther@suse.de>
10391
10392         * match.pd: Merge address comparison patterns and make them
10393         handle some more cases.
10394
10395 2015-07-29  Richard Biener  <rguenther@suse.de>
10396
10397         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
10398         (parser::parse_capture): Add bool argument on whether to reject
10399         unknown captures.
10400         (parser::parse_expr): Adjust.
10401         (parser::parse_op): Likewise.
10402         (parser::parse_pattern): Likewise.
10403
10404 2015-07-29  Richard Biener  <rguenther@suse.de>
10405
10406         * gimple-fold.c (has_use_on_stmt): New function.
10407         (replace_stmt_with_simplification): Use it to allow
10408         abnormals originally referenced in the stmt.
10409         (fold_stmt_1): Canonicalize operand order.
10410
10411 2015-07-28  David Sherwood  <david.sherwood@arm.com>
10412
10413         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
10414         GET_MODE_INNER unconditionally.
10415         * config/spu/spu.c (arith_immediate_p): Likewise.
10416         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
10417         * expmed.c (synth_mult): Remove check for VOIDmode result from
10418         GET_MODE_INNER.
10419         (expand_mult_const): Likewise.
10420         * fold-const.c (fold_binary_loc): Replace call to element_precision
10421         with call to GET_MODE_PRECISION.
10422         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
10423         m->name.
10424         (emit_mode_inner): Likewise.
10425         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
10426         result check.
10427         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
10428         (GET_MODE_UNIT_PRECISION): Likewise.
10429         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
10430         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10431         * stor-layout.c (bitwise_type_for_mode): Update assert.
10432         (element_precision): Remove.
10433
10434 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10435
10436         * target-insns.def (reload_load_address): New targetm instruction
10437         pattern.
10438         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
10439
10440 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10441
10442         * target-insns.def (atomic_test_and_set): New targetm instruction
10443         pattern.
10444         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
10445         HAVE_*/gen_* interface.
10446
10447 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10448
10449         * target-insns.def (can_extend, ptr_extend): New targetm instruction
10450         patterns.
10451         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
10452         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10453         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
10454         * rtlanal.c (nonzero_bits1): Likewise.
10455         (num_sign_bit_copies1): Likewise.
10456
10457 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10458
10459         * target-insns.def (eh_return): New targetm instruction pattern.
10460         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
10461         interface.
10462         * function.c (thread_prologue_and_epilogue_insns): Remove
10463         preprocessor condition.
10464
10465 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10466
10467         * target-insns.def (indirect_jump): New targetm instruction pattern.
10468         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
10469         interface.
10470
10471 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
10472
10473         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
10474         instead of nonimmediate_operand.  Remove C condiition.
10475
10476 2015-07-28  Richard Biener  <rguenther@suse.de>
10477
10478         * match.pd: Add more simplification of address comparisons.
10479
10480 2015-07-28  Richard Biener  <rguenther@suse.de>
10481
10482         * match.pd: Re-order two cases in comparison with max/min
10483         value simplification to make it apply for bools.
10484
10485 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10486
10487         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
10488         Handle simple SIGN_EXTEND or ZERO_EXTEND.
10489         (aarch64_rtx_costs): Properly strip extend or extract before
10490         passing down to rtx costs again.
10491
10492 2015-07-28  Nick Clifton  <nickc@redhat.com>
10493
10494         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
10495         Optimizes the case where -mes0 is active and a constant symbolic
10496         address is used.
10497         * config/rl78/rl78-protos.h: Prototype the new function.
10498         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
10499
10500 2015-07-28  Tom de Vries  <tom@codesourcery.com>
10501
10502         * tree-parloops.c (reduc_stmt_res): New function.
10503         (initialize_reductions, add_field_for_reduction)
10504         (create_phi_for_local_result, create_loads_for_reductions)
10505         (create_stores_for_reduction, build_new_reduction): Handle case that
10506         reduc_stmt is a phi.
10507         (gather_scalar_reductions): Allow double_reduc reductions.
10508
10509 2015-07-28  Richard Biener  <rguenther@suse.de>
10510
10511         * fold-const.c (fold_comparison): Remove equality folding
10512         of decl addresses ...
10513         * match.pd: ... here and merge with existing pattern.
10514
10515 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10516
10517         PR tree-optimization/66828
10518         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
10519         from int64_t to uint64_t.
10520
10521 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10522
10523         * opts-common.c (read_cmdline_option): List DriverOnly enum values
10524         as valid only in the error message of the driver, not in the
10525         messages of the language compilers.
10526
10527 2015-07-27  Tom de Vries  <tom@codesourcery.com>
10528
10529         * tree-parloops.c (gather_scalar_reductions): Simplify function
10530         structure.
10531
10532 2015-07-27  Marek Polacek  <polacek@redhat.com>
10533
10534         * ipa-devirt.c (types_same_for_odr): Fix typo.
10535
10536 2015-07-27  Jason Merrill  <jason@redhat.com>
10537
10538         PR debug/66468
10539         * dwarf2out.c (gen_inlined_subroutine_die): Check
10540         cgraph_function_possibly_inlined_p.
10541
10542 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10543
10544         * gcc/config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
10545         Place integer variant first.
10546         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10547
10548 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10549
10550         PR/63870
10551         * config/arm/arm-builtins.c (enum arm_builtins):
10552         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
10553         (ARM_BUILTIN_NEON_BASE): Rename macro to....
10554         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
10555         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
10556         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
10557
10558 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
10559
10560         PR/63870
10561         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
10562         Add qualifier_lane_index.
10563         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
10564         (arm_getlane_qualifiers): Use qualifier_lane_index.
10565         (arm_lanemac_qualifiers): Rename to...
10566         (arm_mac_n_qualifiers): ...this.
10567         (LANEMAC_QUALIFIERS): Rename to...
10568         (MAC_N_QUALIFIERS): ...this.
10569         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
10570         (arm_setlane_qualifiers): Use qualifier_lane_index.
10571         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
10572         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
10573         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
10574         (arm_expand_neon_builtin): Handle qualifier_lane_index.
10575
10576         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
10577         * config/arm/arm.c (bounds_check): Likewise, improve error message.
10578         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
10579         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
10580         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
10581         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
10582         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
10583         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
10584         qualifiers to TERNOP_IMM.
10585         (vdup_lane): Change qualifiers to GETLANE.
10586         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
10587         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
10588         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
10589         vqdmlsl_n): Change qualifiers to MAC_N.
10590
10591         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
10592         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
10593         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
10594         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
10595         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
10596         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
10597         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
10598         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
10599         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
10600         Remove call to neon_lane_bounds.
10601
10602 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
10603
10604         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10605         Place integer variant first.
10606
10607 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
10608
10609         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
10610         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
10611         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
10612         for armv6kz targets.
10613         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
10614         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
10615         (FL_FOR_ARCH6ZK): Remove.
10616         (FL_FOR_ARCH6KZ): New.
10617         (arm_arch6zk): New declaration.
10618         * config/arm/arm-tables.opt: Regenerate.
10619         * config/arm/arm.c (arm_arch6kz): New.
10620         (arm_option_override): Set arm_arch6kz.
10621         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
10622         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
10623         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
10624
10625 2015-07-27  Marek Polacek  <polacek@redhat.com>
10626
10627         PR c++/66555
10628         PR c/54979
10629         * doc/invoke.texi: Document -Wtautological-compare.
10630
10631 2015-07-27  Richard Biener  <rguenther@suse.de>
10632
10633         * genmatch.c (decision_tree::gen_gimple): Split out large
10634         subtrees into separate functions.
10635         (decision_tree::gen_generic): Likewise.
10636
10637 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
10638
10639         * config/alpha/alpha.c: Use SUBREG_P predicate.
10640         * config/alpha/predicates.md: Ditto.
10641
10642 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10643
10644         * config.host (s390*-*-*): Include driver-native.c only when
10645         building with s390* as host *and* target.
10646
10647 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
10648
10649         PR target/66930
10650         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
10651         T bit register modified_between_p check.
10652
10653 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10654
10655         * config/i386/i386.c: Use SUBREG_P predicate.
10656         * config/i386/i386.md: Ditto.
10657         * config/i386/sse.md: Ditto.
10658         * config/i386/predicates.md: Ditto.
10659
10660 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10661
10662         PR target/67004
10663         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
10664         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
10665
10666 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10667
10668         * Makefile.in: Remove use of TREEBROWSER.
10669         * config.in: Regenerated.
10670         * configure: Regenerated.
10671         * configure.ac: Remove definition of TREEBROWSER.
10672         * tree-browser.c: Removed.
10673         * tree-browser.def: Removed.
10674
10675 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10676
10677         * graphite-scop-detection.c: Include gimple-pretty-print.h.
10678         (stmt_simple_for_scop_p): Print when a stmt is not handled in
10679         Graphite.
10680         (scopdet_basic_block_info): Print when a loop or bb cannot be
10681         represented in Graphite.
10682
10683 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10684
10685         PR target/66648
10686         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
10687         execution guard when min_size is less than size_needed.
10688
10689 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
10690
10691         * doc/install.texi: Document supported versions of ISL.
10692
10693 2015-07-25  Jeff Law  <law@redhat.com>
10694
10695         Revert:
10696         PR lto/66752
10697         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
10698         unable to find X NE 0 in the tables, return X as the simplified
10699         condition.
10700         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
10701         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
10702         to VISISTED_BBS.  */
10703         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
10704         after removing the control flow statement and unnecessary edges.
10705
10706 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
10707
10708         Revert:
10709         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
10710
10711         PR rtl-optimization/64164
10712         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10713         * tree-ssa-copyrename.c: Removed.
10714         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10715         -ftree-coalesce-vars.
10716         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10717         * common.opt (ftree-copyrename): Ignore.
10718         (ftree-coalesce-inlined-vars): Likewise.
10719         * doc/invoke.texi: Remove the ignored options above.
10720         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10721         * tree-ssa-coalesce.h: ... here.
10722         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10723         headers required by it.
10724         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10725         across variables when flag_tree_coalesce_vars.  Check register
10726         use and promoted modes to allow coalescing.  Moved to
10727         tree-ssa-coalesce.c.
10728         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10729         with its member functions to tree-ssa-coalesce.c.
10730         (var_map_base_init): Likewise.  Renamed to
10731         compute_samebase_partition_bases.
10732         (partition_view_normal): Drop want_bases parameter.
10733         (partition_view_bitmap): Likewise.
10734         * tree-ssa-live.h: Adjust declarations.
10735         * tree-ssa-coalesce.c: Include explow.h.
10736         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10737         default defs at the entry point.
10738         (dump_part_var_map): New.
10739         (compute_optimized_partition_bases): New, called by...
10740         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10741         of compute_samebase_partition_bases.  Adjust.
10742         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10743         * cfgexpand.c (leader_merge): New.
10744         (get_rtl_for_parm_ssa_default_def): New.
10745         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10746         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10747         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10748         redundant MEM attr setting.
10749         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10750         from...
10751         (expand_one_stack_var): ... this.  New wrapper to check and
10752         skip already expanded SSA partitions.
10753         (record_alignment_for_reg_var): New, factored out of...
10754         (expand_one_var): ... this.
10755         (expand_one_ssa_partition): New.
10756         (adjust_one_expanded_partition_var): New.
10757         (expand_one_register_var): Check and skip already expanded SSA
10758         partitions.
10759         (expand_used_vars): Don't create DECLs for anonymous SSA
10760         names.  Expand all SSA partitions, then adjust all SSA names.
10761         (pass::execute): Replace the loops that set
10762         SA.partition_to_pseudo from partition leaders and cleared
10763         DECL_RTL for multi-location variables, and that which used to
10764         rename vars and set attrs, with one that clears DECL_RTL and
10765         checks that PARMs and RESULTs default_defs match DECL_RTL.
10766         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10767         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
10768         * explow.c (promote_ssa_mode): New.
10769         * explow.h (promote_ssa_mode): Declare.
10770         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10771         * function.c: Include cfgexpand.h.
10772         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10773         (use_register_for_parm_decl): Wrapper for the above to
10774         special-case the result_ptr.
10775         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10776         (split_complex_args): Take assign_parm_data_all argument.
10777         Pass it to rtl_for_parm.  Set up rtl and context for split
10778         args.
10779         (assign_parms_augmented_arg_list): Adjust.
10780         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10781         multiple locations.  Recognize split complex args.
10782         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10783         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10784         (assign_parm_setup_block): Prefer SSA-assigned location.
10785         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
10786         if stack_parm is NULL.
10787         (assign_parm_setup_stack): Prefer SSA-assigned location.
10788         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10789         rtl before testing for pointer bounds.  Special-case result_ptr.
10790         (expand_function_start): Maybe reset DECL_RTL of result.
10791         Prefer SSA-assigned location for result and static chain.
10792         Factor out DECL_RESULT and SET_DECL_RTL.
10793         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10794         anonymous SSA names.  Use promote_ssa_mode.
10795         (get_temp_reg): Likewise.
10796         (remove_ssa_form): Adjust.
10797         * stor-layout.c (layout_decl): Don't set mem attributes of
10798         non-MEMs.
10799         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10800         and get its reg_usage for reg invalidation.
10801         (compute_bb_dataflow): Pass it insn.
10802         (emit_notes_in_bb): Likewise.
10803
10804 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
10805
10806         * config/i386/i386.c (ix86_va_start): Remove
10807         unneeded !TARGET_64BIT check.
10808         (ix86_gimplify_va_arg): Ditto.
10809
10810 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10811
10812         * graphite-sese-to-poly.c (build_poly_scop): Always call
10813         rewrite_commutative_reductions_out_of_ssa.
10814
10815 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10816
10817         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
10818         flag_associative_math to FLOAT_TYPE_P.  Honour
10819         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
10820
10821 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
10822
10823         PR c++/64079
10824         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
10825         and "%qD" in warning_at instead of "%q+D" in warning.
10826
10827 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10828
10829         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
10830         (ix86_function_abi): Cleanup.
10831
10832 2015-07-24  Michael Darling  <darlingm@gmail.com>
10833
10834         PR other/66259
10835         * acinclude.m4: Reflects renaming of configure.in to configure.ac
10836         * configure: Likewise
10837         * configure.ac: Likewise
10838         * doc/install.texi: Likewise
10839         * doc/tm.texi: Likewise
10840         * doc/tm.texi.in: Likewise
10841
10842 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10843
10844         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
10845         manually swapping values.
10846         * cse.c (fold_rtx): Likewise.
10847         * lra-eliminations.c (form_sum): Likewise.
10848
10849 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
10850
10851         PR target/64003
10852         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
10853         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
10854         (*jcc_1, *jcc_2, jump, simple_return_internal)
10855         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
10856         Set length_nobnd attribute instead of length attribute.
10857         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
10858         (length_nobnd): Remove attribute.
10859         (length): Remove length_nobnd processing.
10860
10861 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
10862
10863         * gimplify.c (omp_default_clause): New function.  Reorganize flow
10864         for clarity. Broken out of ...
10865         (omp_notice_variable): ... here.
10866
10867 2015-07-24  Gary Funck  <gary@intrepid.com>
10868
10869         PR middle-end/66984
10870         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
10871         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
10872
10873 2015-07-24  Tom de Vries  <tom@codesourcery.com>
10874
10875         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
10876         exit-first loop transform.
10877
10878 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
10879
10880         PR 66714
10881         * tree-cfg.c (struct replace_decls_d): New struct.
10882         (replace_block_vars_by_duplicates_1): New function.
10883         (replace_block_vars_by_duplicates): Use it to replace the decls
10884         in the value exprs by duplicates.
10885
10886 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10887
10888         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
10889         -shared, -symbolic, -rdynamic.
10890
10891 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
10892
10893         PR target/65711
10894         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
10895         -dynamic-linker within %{!static %{!shared, and -rdynamic within
10896         %{!static.
10897
10898 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
10899
10900         PR ipa/66566
10901         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
10902         edge summary is available.
10903
10904 2015-07-24  Richard Biener  <rguenther@suse.de>
10905
10906         * genmatch.c (struct dt_node): Add statistic fields.
10907         (dt_node::analyze): New method.
10908         (decision_tree::gen_gimple): Call analyze on the root node
10909         and print statistics to stderr.
10910         (decision_tree::gen_generic): Likewise.
10911
10912 2015-07-24  Richard Biener  <rguenther@suse.de>
10913
10914         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
10915         against the highest or lowest possible integer ...
10916         * match.pd: ... as patterns here.
10917
10918 2015-07-24  Richard Biener  <rguenther@suse.de>
10919
10920         * genmatch.c (struct capture_info): Add same_as field.
10921         (capture_info::capture_info): Initialize same_as.
10922         (capture_info::walk_match): Compute same_as.
10923         (capture_info::walk_result): Compute stuff for the leader.
10924         (capture_info::walk_c_expr): Likewise.
10925         (dt_simplify::gen_1): Only look at leaders when deciding
10926         to force no side-effects or emit side-effects of omitted operands.
10927
10928 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10929
10930         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
10931         reg note to the GPR -> FPR save instructions.
10932
10933 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10934
10935         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
10936         cheaper.
10937         (s390_expand_insv): Don't generate risbg pattern for constant zero
10938         sources.
10939         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
10940         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
10941         splitters.
10942
10943 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10944
10945         * config/s390/s390.c (s390_reorg): Clean up handling of processors
10946         with
10947         -mtune=
10948         (s390_issue_rate): Likewise.
10949         (s390_sched_reorder): Likewise.
10950         (s390_sched_variable_issue): Likewise.
10951         (s390_loop_unroll_adjust): Likewise.
10952         (s390_option_override):  Likewise.
10953
10954 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10955
10956         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
10957         processor capabilities with -march=native.
10958         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
10959         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
10960         (S390_TARGET_BITS_STRING): Macro to simplify specs.
10961
10962 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10963
10964         * config/s390/s390.c (s390_issue_rate): Handle
10965         PROCESSOR_2094_Z9_EC.
10966         (s390_option_override): Likewise.
10967         (s390_adjust_priority): Likewise.
10968
10969 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10970
10971         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
10972         when cross compiling.
10973
10974 2015-07-24  Richard Biener  <rguenther@suse.de>
10975
10976         * fold-const.c (maybe_canonicalize_comparison_1): Move
10977         A code CST canonicalization ...
10978         * match.pd: ... to a pattern here.
10979
10980 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
10981
10982         Revert:
10983         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
10984         PR target/63521
10985         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
10986         (HONOR_REG_ALLOC_ORDER): Define.
10987
10988 2015-07-24  Richard Biener  <rguenther@suse.de>
10989
10990         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
10991         * fold-const.c (fold_comparison): Move parameter does not
10992         alias &local simplification ...
10993         * match.pd: ... as a pattern here.
10994
10995 2015-07-24  Richard Biener  <rguenther@suse.de>
10996
10997         * gimple-fold.c (replace_stmt_with_simplification): Special-case
10998         valueizing call operands.
10999         * gimple-match-head.c (maybe_push_res_to_seq): Take
11000         number of call arguments from ops array.
11001         (do_valueize): New function.
11002         (gimple_simplify): Return true if valueization changed
11003         any operand even if the result didn't simplify further.
11004
11005 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11006
11007         PR middle-end/25530
11008         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
11009
11010 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11011
11012         PR middle-end/25529
11013         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
11014
11015 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11016
11017         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
11018         instruction.
11019
11020 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
11021
11022         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
11023         clean up.
11024
11025 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
11026
11027         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
11028         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
11029         targets here.
11030         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
11031         ms_va_list_type_node initialization.
11032
11033 2015-07-23  Jeff Law  <law@redhat.com>
11034
11035         PR lto/66752
11036         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
11037         unable to find X NE 0 in the tables, return X as the simplified
11038         condition.
11039         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
11040         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
11041         to VISISTED_BBS.  */
11042         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
11043         after removing the control flow statement and unnecessary edges.
11044
11045 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11046
11047         * tree-pass.h (get_current_pass_name): Removed.
11048
11049 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
11050
11051         PR rtl-optimization/64164
11052         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
11053         * tree-ssa-copyrename.c: Removed.
11054         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
11055         -ftree-coalesce-vars.
11056         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
11057         * common.opt (ftree-copyrename): Ignore.
11058         (ftree-coalesce-inlined-vars): Likewise.
11059         * doc/invoke.texi: Remove the ignored options above.
11060         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
11061         * tree-ssa-coalesce.h: ... here.
11062         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
11063         headers required by it.
11064         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
11065         across variables when flag_tree_coalesce_vars.  Check register
11066         use and promoted modes to allow coalescing.  Moved to
11067         tree-ssa-coalesce.c.
11068         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
11069         with its member functions to tree-ssa-coalesce.c.
11070         (var_map_base_init): Likewise.  Renamed to
11071         compute_samebase_partition_bases.
11072         (partition_view_normal): Drop want_bases parameter.
11073         (partition_view_bitmap): Likewise.
11074         * tree-ssa-live.h: Adjust declarations.
11075         * tree-ssa-coalesce.c: Include explow.h.
11076         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
11077         default defs at the entry point.
11078         (dump_part_var_map): New.
11079         (compute_optimized_partition_bases): New, called by...
11080         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
11081         of compute_samebase_partition_bases.  Adjust.
11082         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
11083         * cfgexpand.c (leader_merge): New.
11084         (get_rtl_for_parm_ssa_default_def): New.
11085         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
11086         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
11087         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
11088         redundant MEM attr setting.
11089         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
11090         from...
11091         (expand_one_stack_var): ... this.  New wrapper to check and
11092         skip already expanded SSA partitions.
11093         (record_alignment_for_reg_var): New, factored out of...
11094         (expand_one_var): ... this.
11095         (expand_one_ssa_partition): New.
11096         (adjust_one_expanded_partition_var): New.
11097         (expand_one_register_var): Check and skip already expanded SSA
11098         partitions.
11099         (expand_used_vars): Don't create DECLs for anonymous SSA
11100         names.  Expand all SSA partitions, then adjust all SSA names.
11101         (pass::execute): Replace the loops that set
11102         SA.partition_to_pseudo from partition leaders and cleared
11103         DECL_RTL for multi-location variables, and that which used to
11104         rename vars and set attrs, with one that clears DECL_RTL and
11105         checks that PARMs and RESULTs default_defs match DECL_RTL.
11106         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
11107         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
11108         * explow.c (promote_ssa_mode): New.
11109         * explow.h (promote_ssa_mode): Declare.
11110         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
11111         * function.c: Include cfgexpand.h.
11112         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
11113         (use_register_for_parm_decl): Wrapper for the above to
11114         special-case the result_ptr.
11115         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
11116         (split_complex_args): Take assign_parm_data_all argument.
11117         Pass it to rtl_for_parm.  Set up rtl and context for split
11118         args.
11119         (assign_parms_augmented_arg_list): Adjust.
11120         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
11121         multiple locations.  Recognize split complex args.
11122         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
11123         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
11124         (assign_parm_setup_block): Prefer SSA-assigned location.
11125         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
11126         if stack_parm is NULL.
11127         (assign_parm_setup_stack): Prefer SSA-assigned location.
11128         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
11129         rtl before testing for pointer bounds.  Special-case result_ptr.
11130         (expand_function_start): Maybe reset DECL_RTL of result.
11131         Prefer SSA-assigned location for result and static chain.
11132         Factor out DECL_RESULT and SET_DECL_RTL.
11133         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
11134         anonymous SSA names.  Use promote_ssa_mode.
11135         (get_temp_reg): Likewise.
11136         (remove_ssa_form): Adjust.
11137         * stor-layout.c (layout_decl): Don't set mem attributes of
11138         non-MEMs.
11139         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
11140         and get its reg_usage for reg invalidation.
11141         (compute_bb_dataflow): Pass it insn.
11142         (emit_notes_in_bb): Likewise.
11143
11144 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
11145
11146         PR target/66217
11147         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
11148         prototype.
11149         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
11150         (rs6000_emit_2insn_and): Handle dot forms.
11151         * config/rs6000/rs6000.md (and<mode>3): Adjust.
11152         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
11153         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
11154
11155 2015-07-23  Richard Biener  <rguenther@suse.de>
11156
11157         * generic-match-head.c: Include cgraph.h.
11158         * gimple-match-head.c: Likewise.
11159         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
11160         SSA names.
11161         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
11162         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
11163         pattern.
11164
11165 2015-07-23  Richard Biener  <rguenther@suse.de>
11166
11167         * gimple-fold.c (fold_gimple_cond): Do not require folding
11168         results to pass valid_gimple_rhs_p.
11169         * tree-cfg.h (fold_cond_expr_cond): Remove.
11170         * tree-cfg.c (fold_cond_expr_cond): Likewise.
11171         (make_edges): Do not call it.
11172         * tree-inline.c (tree_function_versioning): Likewise.
11173
11174 2015-07-23  Tom de Vries  <tom@codesourcery.com>
11175
11176         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
11177         vect_force_simple_reduction.
11178         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
11179         (vect_is_simple_reduction_1): Add and handle
11180         need_wrapping_integral_overflow parameter.
11181         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
11182         need_wrapping_integral_overflow parameter.
11183         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
11184         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
11185         decl.
11186
11187 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
11188
11189         PR tree-optimization/66926,66951
11190         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
11191         INNER_LOOP and fix up condition for renaming virtual operands.
11192
11193 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11194
11195         * combine.c (try_combine): Use std::swap instead of manually
11196         swapping.
11197
11198 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
11199
11200         * config/mips/i6400.md: New file.
11201         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
11202         (mips64r6): Likewise.
11203         (i6400): Define.
11204         * config/mips/mips-tables.opt: Regenerate.
11205         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
11206         (mips_issue_rate): Add support for i6400.
11207         (mips_multipass_dfa_lookahead): Likewise.
11208         * config/mips/mips.h (TUNE_I6400): Define.
11209         * config/mips/mips.md: Include i6400.md.
11210         (processor): Add i6400.
11211         * doc/invoke.texi (-march=@var{arch}): Add i6400.
11212
11213 2015-07-23  Richard Biener  <rguenther@suse.de>
11214
11215         PR middle-end/66916
11216         * match.pd: Guard widen and sign-change comparison simplification
11217         with single_use.
11218
11219 2015-07-23  Richard Biener  <rguenther@suse.de>
11220
11221         PR tree-optimization/66945
11222         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
11223         ::before_dom_children): Force the propagators idea of
11224         non-executable edges to materialize, not what the folder
11225         chooses.
11226
11227 2015-07-23  Richard Biener  <rguenther@suse.de>
11228
11229         * gimple.h (gimple_cond_make_false): Use 0 != 0.
11230         (gimple_cond_make_true): Use 1 != 0.
11231
11232 2015-07-22  DJ Delorie  <dj@redhat.com>
11233
11234         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
11235         slashes.
11236
11237         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
11238         (ashrhi3): Likewise.
11239         (lshrhi3): Likewise.
11240         (movhi): Take advantage of zero-extend to load small constants.
11241         (movpsi): Likewise.
11242         (and<mode>3): Likewise.
11243         (zero_extendqihi2): Likewise.
11244         (zero_extendqisi2): New.
11245         * config/msp430/constraints.md (N,O): New.
11246         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
11247
11248 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
11249
11250         PR target/66954
11251         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
11252         to enum feature_priority and feature_list.
11253         (fold_builtin_cpu): Add F_AES to enum processor_features
11254         and isa_names_table.
11255
11256 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
11257
11258         PR driver/66737
11259         * config/i386/linux-common.h (MPX_SPEC): Use linker option
11260         for 64bit target only.
11261
11262 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
11263
11264         * config/nvptx/nvptx.c: Expand some comments.
11265
11266 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
11267
11268         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
11269         (cortex_a53_advsimd): ...This.
11270
11271 2015-07-22  Richard Biener  <rguenther@suse.de>
11272
11273         * genmatch.c (expr::gen_transform): Clarify error message
11274         and display location.
11275
11276 2015-07-22  Richard Biener  <rguenther@suse.de>
11277
11278         * genmatch.c (struct operand): Add location member.
11279         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
11280         constructors.
11281         (struct simplify): Remove match_location and result_location
11282         members.
11283         (elsehwere): Adjust.
11284
11285 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
11286
11287         * config/mips/m5100.md: New file.
11288         * config/mips/mips-cpus.def (m5100, m5101): Define.
11289         * config/mips/mips-tables.opt: Regenerate.
11290         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
11291         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
11292         -march=m5101 to -mips32r5.
11293         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
11294         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
11295         !-msoft-float.
11296         * config/mips/mips.md: Include m5100.md.
11297         (processor): Add m5100.
11298         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
11299
11300 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
11301
11302         * config/mips/mips-cpus.def (interaptiv): Define.
11303         * config/mips/mips-tables.opt: Regenerate.
11304         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
11305         -mips32r2.
11306         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
11307         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
11308
11309 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
11310
11311         PR target/63521
11312         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
11313         (HONOR_REG_ALLOC_ORDER): Define.
11314
11315 2015-07-22  Richard Biener  <rguenther@suse.de>
11316
11317         PR tree-optimization/66952
11318         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
11319         blocks we end up executing unconditionally reset all SSA
11320         info such as range and alignment.
11321         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
11322         * tree-ssanames.c (reset_flow_sensitive_info): New function.
11323
11324 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11325
11326         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
11327         typo in attribute.
11328
11329 2015-07-22  Richard Biener  <rguenther@suse.de>
11330
11331         * genmatch.c (parser::parse_result): Properly handle
11332         match with result operands and conditions.
11333
11334 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
11335
11336         PR target/63870
11337         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11338         Add qualifier_struct_load_store_lane_index.
11339         (aarch64_types_loadstruct_lane_qualifiers): Use
11340         qualifier_struct_load_store_lane_index for lane index argument for
11341         last argument.
11342         (aarch64_types_storestruct_lane_qualifiers): Ditto.
11343         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11344         (aarch64_simd_expand_args): Add new argument describing mode of
11345         builtin. Check lane bounds for arguments with
11346         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11347         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
11348         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
11349         (aarch64_simd_expand_builtin): Handle arguments with
11350         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
11351         aarch64_simd_expand_args.
11352         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
11353         vst[234]_lane with BUILTIN_VALLDIF.
11354         * config/aarch64/aarch64-simd.md:
11355         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
11356         endianness reversal on lane index.
11357         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
11358         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
11359         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
11360         (vec_store_lanesci_lane<mode>): Ditto.
11361         (vec_store_lanesxi_lane<mode>): Ditto.
11362         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
11363         reversal of lane index.
11364         (aarch64_ld3_lane<mode>): Ditto.
11365         (aarch64_ld4_lane<mode>): Ditto.
11366         (aarch64_st2_lane<mode>): Ditto.
11367         (aarch64_st3_lane<mode>): Ditto.
11368         (aarch64_st4_lane<mode>): Ditto.
11369         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
11370         to qmode. Add new mode parameter. Update uses.
11371         (__LD3_LANE_FUNC): Ditto.
11372         (__LD4_LANE_FUNC): Ditto.
11373         (__ST2_LANE_FUNC): Ditto.
11374         (__ST3_LANE_FUNC): Ditto.
11375         (__ST4_LANE_FUNC): Ditto.
11376
11377 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
11378
11379         * doc/invoke.texi (Language Independent Options): Rename node to
11380         Diagnostic Message Formatting Options.
11381
11382 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
11383
11384         PR ipa/66424.
11385         * lra-remat.c (operand_to_remat): Prevent using insns with input
11386         subregs processed separately by IRA.
11387
11388 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
11389
11390         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
11391         straight loops.
11392         (single_imm_use): Check for iterator node.
11393         (num_imm_uses): Likewise.
11394         * tree-ssa-operands.c (has_zero_uses_1): Delete.
11395         (single_imm_use_1): Check for iterator node.
11396
11397 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
11398             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
11399
11400         * configure.ac: Add check for new options in isl-0.15.
11401         * config.in, configure: Rebuilt.
11402         * graphite-blocking.c: Include <isl/constraint.h>
11403         * graphite-interchange.c,  graphite-poly.c: Likewise.
11404         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
11405         * graphite.c: Likewise.
11406         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
11407         <isl/union_set.h>.
11408         * graphite-dependences.c: Include <isl/constraint.h>.
11409         (max_number_of_out_dimensions): Returns isl_stat.
11410         (extend_schedule_1): Likewise
11411         (extend_schedule): Corresponding changes.
11412         * graphite-optimize-isl.c: Include <isl/constraint.h> and
11413         <isl/union_set.h>.
11414         (getSingleMap): Change return type of isl_stat.
11415         (optimize_isl): Conditionally use
11416         isl_options_set_schedule_serialize_sccs.
11417         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
11418         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
11419
11420 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
11421
11422         PR target/66956
11423         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
11424         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
11425
11426 2015-07-21  Richard Biener  <rguenther@suse.de>
11427
11428         PR tree-optimization/66948
11429         * genmatch.c (capture_info::walk_match): Also recurse to
11430         captures.  Properly compute expr state from captures of
11431         captures.
11432         * match.pd: Add single-use guards to
11433         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
11434
11435 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
11436
11437         * config/nvptx/mkoffload.c (process): Add static destructor call.
11438
11439 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11440
11441         PR middle-end/66915
11442         * match.pd (A - B -> A + (-B)): Don't allow folding
11443         when type if a fixed-point type.
11444
11445 2015-07-20  DJ Delorie  <dj@redhat.com>
11446
11447         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
11448         (iorqi3_real): Likewise for set1.
11449
11450 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
11451
11452         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
11453         for !TARGET_64BIT.
11454
11455 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
11456
11457         * graphite-isl-ast-to-gimple.c:
11458         Refactor so that each function can access 'region'. This will help
11459         maintain a parameter rename_map within a region.
11460
11461 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11462
11463         * config/rs6000/rs6000.md (*lt0_disi): New.
11464
11465 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
11466
11467         PR target/66217
11468         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
11469         "available letters" comment.
11470         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
11471         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
11472         and_2rld_operand):  Delete.
11473         (and_operand): Adjust.
11474         (rotate_mask_operator): New.
11475         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
11476         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
11477         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
11478         extract_ME): Delete.
11479         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11480         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
11481         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
11482         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11483         rs6000_emit_2insn_and): New.
11484         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
11485         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
11486         includes_rldic_lshift_p, includes_rldicr_lshift_p,
11487         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
11488         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
11489         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
11490         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
11491         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
11492         rs6000_emit_2insn_and): New.
11493         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
11494         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
11495         handling.
11496         <NOT>: Don't fall through to next case.
11497         <AND>: Handle the various rotate-and-mask cases directly.
11498         <IOR>: Always cost as one insn.
11499         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
11500         (and<mode>3): Adjust expander for the new patterns.
11501         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
11502         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
11503         (*and<mode>3_imm_dot_shifted): New.
11504         (*and<mode>3_mask): Delete, rewrite as ...
11505         (and<mode>3_mask): ... New.
11506         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
11507         (andsi3_internal0_nomc): Delete.
11508         (*andsi3_internal6): Delete.
11509         (*and<mode>3_2insn): New.
11510         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
11511         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
11512         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
11513         *insvdi_internal3): Delete.
11514         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
11515         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
11516         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
11517         *ior<mode>_mask): New.
11518         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
11519         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11520         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11521         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11522         Delete.
11523         (ashr<mode>3): Delete expander.
11524         (*ashr<mode>3): Rename to ...
11525         (ashr<mode>3): ... This.
11526         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
11527         (*rotldi3_internal4, *rotldi3_internal5 and split,
11528         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
11529         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
11530         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
11531         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
11532         (splitter for loading a mask): Adjust.
11533         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
11534
11535 2015-07-20  Marek Polacek  <polacek@redhat.com>
11536
11537         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
11538         output_add_clobbers, output_added_clobbers_hard_reg_p,
11539         gen_rtx_scratch): Remove declarations.
11540
11541 2015-07-20  Marek Polacek  <polacek@redhat.com>
11542
11543         PR c++/55095
11544         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
11545
11546 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11547
11548         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
11549         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
11550
11551 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11552
11553         * combine.c (combine_simplify_rtx): Move simplification step
11554         before various transformations/substitutions.
11555
11556 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
11557
11558         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
11559         (struct int_traits): Likewise.
11560
11561 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
11562
11563         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
11564         function to vmsdbgout_function_decl.
11565
11566 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11567
11568         PR target/66922
11569         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
11570         from misaligned positions.
11571         (ix86_expand_pinsr): Reject insertions to misaligned positions.
11572
11573 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
11574
11575         PR middle-end/46851
11576         PR middle-end/60340
11577         * Makefile.in: Removed omega.o.
11578         * common.opt: Document flag fcheck-data-deps as deprecated.
11579         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
11580         its associated params: omega-max-vars, omega-max-geqs,
11581         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
11582         omega-max-keys, omega-eliminate-redundant-constraints.
11583         * doc/loop.texi: Remove all the section on Omega.
11584         * graphite-blocking.c: Include missing params.h: it used to be
11585         included through tree-data-ref.h and omega.h.
11586         * graphite-isl-ast-to-gimple.c: Same.
11587         * graphite-optimize-isl.c: Same.
11588         * graphite-sese-to-poly.c: Same.
11589         * graphite.c: Same.
11590         * omega.c: Remove.
11591         * omega.h: Remove.
11592         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
11593         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
11594         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
11595         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
11596         * passes.def: Remove pass_check_data_deps.
11597         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
11598         (dump_conflict_function): Same.
11599         (dump_subscript): Same.
11600         (print_direction_vector): Same.
11601         (print_dir_vectors): Same.
11602         (print_lambda_vector): Same.
11603         (print_dist_vectors): Same.
11604         (dump_data_dependence_relation): Same.
11605         (dump_data_dependence_relations): Same.
11606         (dump_dist_dir_vectors): Same.
11607         (dump_ddrs): Same.
11608         (init_omega_eq_with_af): Removed.
11609         (omega_extract_distance_vectors): Removed.
11610         (omega_setup_subscript): Removed.
11611         (init_omega_for_ddr_1): Removed.
11612         (init_omega_for_ddr): Removed.
11613         (ddr_consistent_p): Removed.
11614         (compute_affine_dependence): Do not use omega to check data
11615         dependences.
11616         (compute_data_dependences_for_bb): Removed.
11617         (analyze_all_data_dependences): Removed.
11618         (tree_check_data_deps): Removed.
11619         * tree-data-ref.h: Do not include omega.h.
11620         (compute_data_dependences_for_bb): Removed.
11621         (tree_check_data_deps): Removed.
11622         * tree-ssa-loop.c (pass_check_data_deps): Removed.
11623         (make_pass_check_data_deps): Removed.
11624         * tree-ssa-phiopt.c: Include params.h.
11625         * tree-vect-data-refs.c: Same.
11626         * tree-vect-slp.c: Same.
11627
11628 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
11629
11630         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
11631         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
11632         (mem->fpreg splitters): Ditto.
11633         (general_operand->nonimmediate_operand splitter): Use explicit modes.
11634         Disable DFmode for TARGET_64BIT.
11635
11636 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
11637
11638         PR target/66906
11639         * config/i386/i386.c (ix86_expand_prologue): Replicate static
11640         chain on the stack.
11641
11642 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11643
11644         * config/nvptx/mkoffload.c (process): Constify host data.
11645         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11646         Constify host data.
11647         (generate_host_descr_file): Likewise.
11648
11649 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
11650             Sebastian Pop  <s.pop@samsung.com>
11651
11652         PR middle-end/61929
11653         * graphite-dependences.c (add_pdr_constraints): Renamed
11654         pdr->extent to pdr->subscript_sizes.
11655         * graphite-interchange.c (build_linearized_memory_access): Add
11656         back all gcc_assert's that the "isl_int to isl_val conversion"
11657         patch has removed.  Refactored.
11658         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
11659         * graphite-poly.c (new_poly_dr): Same.
11660         (free_poly_dr): Same.
11661         * graphite-poly.h (struct poly_dr): Same.
11662         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
11663         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
11664         * graphite-scop-detection.h: Fix space.
11665         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
11666         back all gcc_assert's removed by a previous patch.
11667         (wrap): Remove the_isl_ctx global variable that the same patch has
11668         added.
11669         (build_loop_iteration_domains): Same.
11670         (add_param_constraints): Same.
11671         (pdr_add_data_dimensions): Same.  Refactored.
11672         (build_poly_dr): Renamed extent to subscript_sizes.
11673
11674 2015-07-17  Marek Polacek  <polacek@redhat.com>
11675
11676         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
11677         * match.pd: ... here.
11678
11679 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
11680
11681         * config/nvptx/mkoffload.c (process): Constify target data.
11682         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
11683         Constify target data.
11684         (generate_target_offloadend_file): Likewise.
11685
11686 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
11687
11688         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
11689         to allow renaming of PHI arguments on edges incoming from outer
11690         loop header, add corresponding check before start PHI iterator.
11691         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
11692         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
11693         with true force_vectorize.  Set-up dominator for outer loop too.
11694         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
11695         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
11696         was marked with force_vectorize and has restricted cfg.
11697         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
11698         inner loop.
11699         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
11700         do peeling for outer loops.
11701
11702 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
11703             Matthias Klose  <doko@ubuntu.com>
11704
11705         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
11706         build-sysroot, sysroot from the `Miscenalleous configure options' to
11707         the `Directories' section and strip trailing `/' from with_sysroot.
11708         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
11709         * configure: Regenerated.
11710
11711 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11712
11713         PR target/66824
11714         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
11715         (TARGET_HARD_DF_REGS): Ditto.
11716         (TARGET_HARD_XF_REGS): Ditto.
11717         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
11718         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
11719         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
11720         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
11721         (*movsf_internal): Add alternatives 16 and 17. Enable
11722         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
11723
11724 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
11725
11726         PR rtl-optimization/66891
11727         * calls.c (expand_call): Wrap precompute_register_parameters with
11728         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
11729
11730 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
11731
11732         * config/nvptx/mkoffload.c (process): Constify mapping variables.
11733         Define target data struct and initialize it.
11734
11735 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
11736
11737         PR rtl-optimization/66626
11738         * ira.h (emit-rtl.h): Include.
11739         (non_spilled_static_chain_regno_p): New.
11740         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
11741         unless it is non spilled static chain pseudo.
11742         (assign_hard_rego): Spill memory profitable allocno unless it is
11743         non spilled static chain pseudo.
11744         (allocno_spill_priority_compare): Put non spilled static chain
11745         pseudo at the end of sorted array.
11746         (improve_allocation): Do nothing if we have static chain and
11747         non-local goto.
11748         (allocno__priority_compare_func): Put non spilled static chain
11749         pseudo at the beginning of sorted array.
11750         (move_spill_restore): Ignore non spilled static chain pseudo.
11751         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
11752         to non spilled static chain pseudo.
11753         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
11754         pseudo at the beginning of sorted array.
11755         (spill_for): Spill non spilled static chain pseudo last.
11756         * lra-constraints.c (lra_constraints): Remove static chain pseudo
11757         check for equivalence.
11758
11759 2015-07-16  Martin Liska  <mliska@suse.cz>
11760
11761         PR ipa/66896.
11762         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
11763         dst_ctx if it does not exist.
11764
11765 2015-07-16  Martin Liska  <mliska@suse.cz>
11766
11767         * hash-set.h (remove): New function.
11768         (iterator): New iteration class for hash_set.
11769
11770 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11771
11772         * genattrtab.c (make_canonical): Add a file_location parameter.
11773         Use fatal_at rather than fatal.
11774         (get_attr_value): Likewise.  Update call to make_canonical.
11775         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
11776         (make_internal_attr): Update calls accordingly.
11777
11778 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11779
11780         * read-md.h (message_with_line, error_with_line): Delete.
11781         * read-md.c (message_with_line, error_with_line): Delete.
11782         * gensupport.h: Include read-md.h.
11783         (md_rtx_info): New structure.
11784         (read_md_rtx): Use it.  Return a bool success value.
11785         * gensupport.c (read_md_rtx): Likewise.
11786         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
11787         (main): Update after interface changes.
11788         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
11789         (main): Update after interface changes.
11790         * genattrtab.c (insn_code_number): Delete.
11791         (optimize_attrs): Add a max_insn_code parameter and use it instead
11792         of insn_code_number.
11793         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
11794         Use *_at rather than *_with_line functions.
11795         (gen_insn): Likewise.
11796         (gen_delay): Likewise.
11797         (gen_insn_reserv): Likewise.
11798         (gen_bypass): Take an md_rtx_info rather than an rtx.
11799         (main): Update after interface changes.  Use a local max_insn_code
11800         variable instead of insn_code_number.
11801         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
11802         an rtx.  Use fatal_at rather than fatal.
11803         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
11804         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
11805         (gen_absence_set, gen_final_absence_set, gen_automaton)
11806         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
11807         (main): Update after interface changes.
11808         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
11809         and code number.
11810         (main): Update after interface changes.
11811         * genconditions.c (main): Use new read_md_rtx interface.
11812         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
11813         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
11814         (main): Update after interface changes.
11815         * genemit.c (insn_code_number, insn_index_number): Delete.
11816         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11817         Use fatal_at rather than fatal.
11818         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
11819         rather than fatal.
11820         (gen_split): Likewise.
11821         (main): Update after interface changes.
11822         * genextract.c (line_no): Delete.
11823         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11824         Update call to walk_rtx.
11825         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
11826         rather than message_with_line.
11827         (walk_rtx): Add an md_rtx_info argument.  Update call to
11828         VEC_safe_set_locstr.
11829         (main): Update after interface changes.
11830         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
11831         and lineno.  Use error_at rather than separate message_with_line
11832         calls and have_error assignments.
11833         (main): Update after interface changes.
11834         * genmddump.c (main): Use new read_md_rtx interface.
11835         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
11836         (main): Update after interface changes.
11837         * genoutput.c (next_code_number): Delete.
11838         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
11839         (gen_peephole, gen_expand, gen_split): Likewise.
11840         (note_constraint): Likewise.  Use *_at rather than *_with_line
11841         functions.
11842         (main): Update after interface changes.
11843         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
11844         rtx and lineno.
11845         (main): Update after interface changes.
11846         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
11847         than an rtx and lineno.
11848         (process_define_constraint): Likewise.
11849         (process_define_register_constraint): Likewise.
11850         (main): Update after interface changes.
11851         * genrecog.c (next_insn_code, pattern_lineno): Delete.
11852         (validate_pattern): Replace top-level rtx with an md_rtx_info.
11853         Use *_at rather than *_with_line functions.
11854         (match_pattern_2): Likewise.
11855         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
11856         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
11857         Use *_at rather than *_with_line functions.
11858         * gentarget-def.c (add_insn): New function.
11859         (main): Use it.  Use new read_md_rtx interface.
11860
11861 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11862
11863         * gensupport.h (compute_test_codes): Take a file_location rather
11864         than a line number.
11865         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
11866         rather than *_with_line functions.
11867         (process_define_predicate): Update call to compute_test_codes.
11868         * genpreds.c (validate_exp): Take a file_location rather than a
11869         line number.  Use *_at functions rather than *_with_line functions.
11870         (process_define_predicate): Update call to validate_exp.
11871         (constraint_data): Replace lineno field with a file_location.
11872         (add_constraint): Take a file_location rather than a line number.
11873         Use *_at functions rather than *_with_line functions.  Fix error
11874         message for address constraints.  Update after changes to
11875         validate_exp, constraint_data and compute_test_codes.
11876         (process_define_constraint): Update accordingly.
11877         (process_define_register_constraint): Likewise.
11878
11879 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11880
11881         * genoutput.c (data): Use a file_location to record the source
11882         position.
11883         (nothing): Delete.
11884         (idata, idata_end): Remove initialization.
11885         (constraint_data): Replace lineno with a file_location.
11886         (output_insn_data): Update after changes to data.
11887         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
11888         (scan_operands): Likewise, using *_at rather than *_with_line
11889         functions.
11890         (process_template): Likewise.
11891         (validate_insn_alternatives): Likewise.
11892         (validate_insn_operands): Likewise.
11893         (validate_optab_operands): Likewise.
11894         (init_insn_for_nothing): Initialize idata and idata_end.
11895         (note_constraint): Update after changes to constraint_data,
11896         using at rather than with_line functions.
11897         (mdep_constraint_len): Take a file_location rather than a
11898         line number.  Use at rather than with_line functions.
11899
11900 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11901
11902         * read-md.h (fatal_at): Declare.
11903         * read-md.c (fatal_at): New function.
11904         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
11905         to record the source position.
11906         (check_attr_test): Take a file_location instead of a line number.
11907         Use fatal_at instead of fatal.
11908         (check_attr_value): Update after above changes, using "at"
11909         rather than "with_line" reporting functions.
11910         (convert_set_attr_alternative): Likewise.
11911         (gen_attr): Likewise.
11912         (check_defs): Likewise.  Don't assign to read_md_filename.
11913         (gen_insn): Update initialization after above changes.
11914         (gen_delay): Likewise.
11915         (write_insn_cases): Print the filename for a define_peephole.
11916         (gen_insn_reserv): Take a line number as argument and update
11917         the call to check_attr_test.
11918         (main): Pass a line number to gen_insn_reserv.
11919
11920 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11921
11922         * read-md.h (file_location): New structure.
11923         (directive_handler_t): Take a file_location rather than a line number.
11924         (message_at, error_at): Declare.
11925         (read_skip_construct): Delete.
11926         * read-md.c (message_with_line_1): Replace with...
11927         (message_at_1): ...this new function.
11928         (message_at, error_at): New functions.
11929         (message_with_line, error_with_line): Update to use message_at_1.
11930         (handle_enum): Take a file_location rather than a line number
11931         and use error_at for error reporting.
11932         (handle_include): Likewise.
11933         (read_skip_construct): Likewise.  Make static.
11934         (handle_file): Update after above changes.  Pass a file_location
11935         rather than a line number to handle_directive.
11936         * gensupport.c (queue_elem): Replace separate filename and lineno
11937         with a file_location.
11938         (queue_pattern): Replace filename and lineno arguments with a
11939         file_location.  Update after change to queue_elem.
11940         (process_define_predicate): Replace lineno argument with a
11941         file_location and use error_at for error reporting.  Update
11942         after above changes.
11943         (process_rtx): Likewise.
11944         (subst_pattern_match): Likewise.
11945         (get_alternatives_number): Likewise.
11946         (alter_predicate_for_insn): Likewise.
11947         (rtx_handle_directive): Likewise.
11948         (is_predicable): Update after above changes, using error_at rather
11949         than error_with_line.
11950         (has_subst_attribute): Likewise.
11951         (identify_predicable_attribute): Likewise.
11952         (alter_attrs_for_subst_insn): Likewise.
11953         (process_one_cond_exec): Likewise.
11954         (process_substs_on_one_elem): Likewise.
11955         (process_define_subst): Likewise.
11956         (check_define_attr_duplicates): Likewise.
11957         (read_md_rtx): Update after change to queue_elem.
11958
11959 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11960
11961         * genoutput.c (next_index_number): Delete.
11962         (data): Remove index_number.
11963         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
11964         (main): Remove manipulation of next_index_number.
11965
11966 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
11967
11968         * genattrtab.c (check_attr_value): Remove handling of null attrs.
11969         (make_canonical): Likewise.
11970
11971 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
11972
11973         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
11974         instead of adjust_address_nv.
11975         (restore_stack_nonlocal): Likewise.
11976         (nonlocal_goto): Likewise.
11977
11978 2015-07-16  Tom de Vries  <tom@codesourcery.com>
11979
11980         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
11981         not have a corresponding loop header phi.
11982
11983 2015-07-16  Tom de Vries  <tom@codesourcery.com>
11984
11985         * tree-parloops.c (create_loads_for_reductions): Handle case that
11986         reduction is unused.
11987
11988 2015-07-16  Richard Biener  <rguenther@suse.de>
11989
11990         PR tree-optimization/66894
11991         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
11992         about deriving NE_EXPR from truncated values.
11993
11994 2015-07-16  Martin Liska  <mliska@suse.cz>
11995
11996         * alloc-pool.h
11997         (object_allocator): Add new class.
11998         (pool_allocator::initialize): Use the underlying class.
11999         (pool_allocator::allocate): Likewise.
12000         (pool_allocator::remove): Likewise.
12001         (operator new): A new generic allocator.
12002         * asan.c (struct asan_mem_ref): Remove unused members.
12003         (asan_mem_ref_new): Replace new operator with
12004         object_allocator::allocate.
12005         (free_mem_ref_resources): Change deallocation.
12006         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
12007         with object_allocator.
12008         * config/sh/sh.c (add_constant): Replace new operator with
12009         object_allocator::allocate.
12010         (sh_reorg): Change call to a release method.
12011         * cselib.c (struct elt_list): Remove unused members.
12012         (new_elt_list): Replace new operator with
12013         object_allocator::allocate.
12014         (new_elt_loc_list): Likewise.
12015         (new_cselib_val): Likewise.
12016         (unchain_one_elt_list): Change delete operator with remove method.
12017         (unchain_one_elt_loc_list): Likewise.
12018         (unchain_one_value): Likewise.
12019         (cselib_finish): Release newly added static allocators.
12020         * cselib.h (struct cselib_val): Remove unused members.
12021         (struct elt_loc_list): Likewise.
12022         * df-problems.c (df_chain_alloc): Replace pool_allocator with
12023         object_allocator.
12024         * df-scan.c (struct df_scan_problem_data): Likewise.
12025         (df_scan_alloc): Likewise.
12026         * df.h (struct dataflow): Likewise.
12027         * dse.c (struct read_info_type): Likewise.
12028         (struct insn_info_type): Likewise.
12029         (struct dse_bb_info_type): Likewise.
12030         (struct group_info): Likewise.
12031         (struct deferred_change): Likewise.
12032         (get_group_info): Likewise.
12033         (delete_dead_store_insn): Likewise.
12034         (free_read_records): Likewise.
12035         (replace_read): Likewise.
12036         (check_mem_read_rtx): Likewise.
12037         (scan_insn): Likewise.
12038         (dse_step1): Likewise.
12039         (dse_step7): Likewise.
12040         * et-forest.c (struct et_occ): Remove unused members.
12041         (et_new_occ): Use allocate instead of new operator.
12042         (et_new_tree): Likewise.
12043         (et_free_tree): Call release method explicitly.
12044         (et_free_tree_force): Likewise.
12045         (et_free_pools): Likewise.
12046         (et_split): Use remove instead of delete operator.
12047         * et-forest.h (struct et_node): Remove unused members.
12048         * ipa-cp.c: Change pool_allocator to object_allocator.
12049         * ipa-inline-analysis.c: Likewise.
12050         * ipa-profile.c: Likewise.
12051         * ipa-prop.c: Likewise.
12052         * ipa-prop.h: Likewise.
12053         * ira-build.c (initiate_cost_vectors): Cast return value.
12054         (ira_allocate_cost_vector): Likewise.
12055         * ira-color.c (struct update_cost_record): Remove unused members.
12056         * lra-int.h (struct lra_live_range): Likewise.
12057         (struct lra_copy): Likewise.
12058         (struct lra_insn_reg): Likewise.
12059         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
12060         * lra.c (new_insn_reg): Replace new operator with allocate method.
12061         (free_insn_regs): Same for operator delete.
12062         (finish_insn_regs): Release new static allocator.
12063         (finish_insn_recog_data): Likewise.
12064         (lra_free_copies): Replace delete operator with remove method.
12065         (lra_create_copy): Replace operator new with allocate method.
12066         (invalidate_insn_data_regno_info): Same for remove method.
12067         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
12068         (free_debug_insn_changes): Replace delete operator with remove method.
12069         (replace_oldest_value_reg): Replace operator new with allocate method.
12070         (pass_cprop_hardreg::execute): Release new static variable.
12071         * sched-deps.c (sched_deps_init): Change pool_allocator to
12072         object_allocator.
12073         * sel-sched-ir.c: Likewise.
12074         * sel-sched-ir.h: Likewise.
12075         * stmt.c (expand_case): Likewise.
12076         (expand_sjlj_dispatch_table): Likewise.
12077         * tree-sra.c (struct access): Remove unused members.
12078         (struct assign_link): Likewise.
12079         (sra_deinitialize): Release newly added static pools.
12080         (create_access_1):Replace operator new with allocate method.
12081         (build_accesses_from_assign): Likewise.
12082         (create_artificial_child_access): Likewise.
12083         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
12084         pool_allocator to object_allocator.
12085         * tree-ssa-pre.c: Likewise.
12086         * tree-ssa-reassoc.c: Likewise.
12087         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
12088         * tree-ssa-strlen.c: Likewise.
12089         * tree-ssa-structalias.c: Likewise.
12090         * var-tracking.c (onepart_pool_allocate): New function.
12091         (unshare_variable): Use the newly added function.
12092         (variable_merge_over_cur): Likewise.
12093         (variable_from_dropped): Likewise.
12094         (variable_was_changed): Likewise.
12095         (set_slot_part): Likewise.
12096         (emit_notes_for_differences_1): Likewise.
12097         (vt_finalize): Release newly added static pools.
12098
12099 2015-07-16  Martin Jambor  <mjambor@suse.cz>
12100
12101         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
12102         all uses.  Fix two typos in its general comment.
12103         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
12104
12105 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
12106
12107         * config/i386/linux-common.h (LINK_MPX): New.
12108         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
12109         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
12110         indicating '-z bndplt' support by linker.
12111         * configure: Regenerate.
12112         * config.in: Regenerate.
12113
12114 2015-07-16  Richard Biener  <rguenther@suse.de>
12115
12116         * fold-const.c (fold_widened_comparison): Remove.
12117         (fold_sign_changed_comparison): Likewise.
12118         (fold_comparison): Move widened and sign-changed comparison
12119         simplification ...
12120         * match.pd: ... to patterns here.
12121         * generic-match-head.c: Include target.h.
12122         * gimple-match-head.c: Likewise.
12123
12124 2015-07-16  Richard Biener  <rguenther@suse.de>
12125
12126         * tree-ssa-dom.c (dom_valueize): New function.
12127         (record_temporary_equivalences): Also record equivalences
12128         for dominating stmts that have uses of equivalences we are
12129         about to record.
12130
12131 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
12132
12133         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
12134         add_autoinc_candidates.
12135         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
12136         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
12137         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
12138         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
12139         Call new function.
12140         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
12141         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
12142         Remove parameter struct iv*.  Call add_autoinc_candidates here.
12143         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
12144         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
12145         Call new function.
12146         (find_iv_candidates): Call new functions.
12147
12148 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
12149
12150         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
12151         uninitialized-variable warning.
12152
12153 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12154
12155         PR target/65249
12156         * config/sh/sh.md (movdi): Split simple reg move to two movsi
12157         when the destination is R0.
12158
12159 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
12160
12161         PR target/66866
12162         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
12163         * config/i386/i386.c (ix86_expand_pextr): New function.
12164         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
12165         for non-lowpart subregs.
12166         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
12167         (insv<mode>): Use SWI248 mode iterator.
12168         (insv<mode>_1): Ditto.
12169
12170 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12171             Sebastian Pop  <s.pop@samsung.com>
12172
12173         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
12174         iterator to use_stmt.
12175
12176 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12177             Sebastian Pop <s.pop@samsung.com>
12178
12179         * graphite-scop-detection.c (build_scops_1): Discard scops for
12180         which entry==exit.
12181
12182 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12183             Sebastian Pop <s.pop@samsung.com>
12184
12185         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
12186         case of a return statement in scop.
12187
12188 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
12189             Sebastian Pop <s.pop@samsung.com>
12190
12191         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
12192         INTEGER_TYPE parameters.
12193         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
12194         VECTOR_CST in scan_tree_for_params.
12195         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
12196
12197 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12198
12199         * gimple-pretty-print.h: Don't include pretty-print.h.
12200         * tree-streamer.h: Don't include lto-streamer.h.
12201         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
12202         * gimple-streamer-in.c: Remove redundant includes.
12203         * gimple-streamer-out.c: Likewise.
12204         * ipa-devirt.c: Likewise.
12205         * ipa-icf.c: Likewise.
12206         * ipa-inline-analysis.c: Likewise.
12207         * ipa-polymorphic-call.c: Likewise.
12208         * ipa-profile.c: Likewise.
12209         * ipa-prop.c: Likewise.
12210         * ipa-pure-const.c: Likewise.
12211         * lto-cgraph.c: Likewise.
12212         * lto-streamer-in.c: Likewise.
12213         * lto-streamer-out.c: Likewise.
12214         * lto-streamer.c: Likewise.
12215         * tree-streamer-in.c: Likewise.
12216         * tree-streamer-out.c: Likewise.
12217         * tree-streamer.c: Likewise.
12218
12219 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
12220
12221         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
12222         include input.h.
12223         * opts.c: Remove multiline #include comment.
12224
12225 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
12226
12227         * config/nvptx/mkoffload.c (process): Add C++ protection to
12228         emitted code.
12229
12230 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
12231
12232         PR target/66854
12233         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
12234         null before IEEE 128-bit floating point support patch.
12235
12236 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12237
12238         * simplify-rtx.c (simplify_ternary_operation): Add simplification
12239         for (!c) != {0,...,0} ? a : b for vector modes.
12240
12241 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
12242             Martin Jambor  <mjambor@suse.cz>
12243
12244         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
12245         struct func_body_info* instead of struct ipa_node_params*, expecting
12246         fbi->info to be filled in.  Replace throughout.  Adjust call to
12247         ipa_load_from_parm_agg.
12248         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
12249         instead of struct ipa_node_params*.  Adjust calls to other functions
12250         so that they pass either fbi or fbi->info.
12251         (set_switch_stmt_execution_predicate): Likewise.
12252         (will_be_nonconstant_predicate): Likewise.
12253         (compute_bb_predicates): Likewise.
12254         (estimate_function_body_sizes): Move asserts earlier.  Fill in
12255         struct func_body_info, replace parms_info with fbi.info.  Adjust
12256         calls to functions that now accept struct func_body_info.
12257         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
12258         (struct func_body_info): Likewise.
12259         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
12260         remove static.  Adjust callers.
12261         (ipa_load_from_parm_agg): Remove.
12262         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
12263         (func_body_info): Likewise.
12264         (ipa_load_from_parm_agg): Adjust prototype.
12265
12266 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12267
12268         * gensupport.c (rtx_handle_directive): Adjust.
12269         * read-rtl.c (apply_iterators): Take vector to add rtxs to
12270         instead of expr list rtx.
12271         (add_define_attr_for_define_subst): Likewise.
12272         (add_define_subst_attr): Likewise.
12273         (read_subst_mapping): Likewise.
12274         (read_rtx): Likewise.
12275         * rtl.h (read_rtx): Adjust.
12276
12277 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12278
12279         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
12280
12281 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12282
12283         PR target/58066
12284         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
12285         (*tls_local_dynamic_base_64_<mode>): Ditto.
12286         (*tls_local_dynamic_base_64_largepic): Ditto.
12287         (tls_global_dynamic_64_<mode>): Update expander pattern.
12288         (tls_local_dynamic_base_64_<mode>): Ditto.
12289
12290 2015-07-15  Richard Biener  <rguenther@suse.de>
12291
12292         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
12293         and bool_var == 1 -> bool_var simplifications ...
12294         * match.pd: ... to patterns here.  Factor out negate_expr_p
12295         cases from the A - B -> A + (-B) patterns as negate_expr_p
12296         predicate and add a -(A + B) -> (-B) - A pattern.
12297
12298 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12299
12300         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
12301
12302 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
12303             Robert Suchanek  <robert.suchanek@imgtec.com>
12304
12305         * config/mips/mips.c (mips_int_mask): New enum.
12306         (mips_shadow_set): Likewise.
12307         (int_mask): New variable.
12308         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
12309         (machine_function): Add int_mask and use_shadow_register_set.
12310         (mips_attribute_table): Add attribute handlers for interrupt and
12311         use_shadow_register_set.
12312         (mips_interrupt_mask): New static function.
12313         (mips_handle_interrupt_attr): Likewise.
12314         (mips_handle_use_shadow_register_set_attr): Likewise.
12315         (mips_use_shadow_register_set): Change return type to enum
12316         mips_shadow_set.  Add argument handling for use_shadow_register_set
12317         attribute.
12318         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
12319         compare with mips_shadow_set enum.
12320         (mips_compute_frame_info): Add interrupt mask and
12321         use_shadow_register_set to per-function information structure.
12322         Add a stack slot for EPC unconditionally.
12323         (mips_expand_prologue): Compare use_shadow_register_set value
12324         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
12325         masked interrupt register but in EIC mode use K0 and save Cause in K0.
12326         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
12327         copying the stack pointer from the shadow register set.
12328         * config/mips/mips.h (SR_IM0): New define.
12329         * config/mips/mips.md (mips_rdpgpr): Rename to...
12330         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
12331         * doc/extend.texi (Declaring Attributes of Functions): Document
12332         optional arguments for interrupt and use_shadow_register_set
12333         attributes.
12334
12335 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
12336
12337         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
12338         interrupt attribute.
12339         (mips_expand_prologue): Disable the floating point unit in an ISR.
12340         * config/mips/mips.h (SR_COP1): New define.
12341
12342 2015-07-15  Richard Biener  <rguenther@suse.de>
12343
12344         * genmatch.c (parser::peek, parser::peek_ident): Add argument
12345         to tell how many tokens to peek ahead (default 1).
12346         (parser::eat_token, parser::eat_ident): Return token consumed.
12347         (parser::parse_result): Parse new switch statement.
12348         * match.pd: Use case statements where appropriate.
12349
12350 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12351
12352         PR rtl-optimization/58066
12353         * calls.c (expand_call): Precompute register parameters before stack
12354         alignment is performed.
12355
12356 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
12357
12358         PR rtl-optimization/66838
12359         * postreload.c (reload_cse_move2add): Also process
12360         CALL_INSN_FUNCTION_USAGE when resetting information of
12361         call-clobbered registers.
12362
12363 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12364             Cesar Philippidis  <cesar@codesourcery.com>
12365             Chung-Lin Tang  <cltang@codesourcery.com>
12366
12367         * config/nios2/constraints.md (U, v): New constraints.
12368         * config/nios2/predicates.md (rdprs_dcache_operand): New.
12369         (ldstex_memory_operand): New.
12370         * config/nios2/sync.md: New file.
12371         * config/nios2/nios2.md (unspecv): Add new builtin function
12372         UNSPECV codes.
12373         (rdprs, flushd, flushda, wrpie, eni): New patterns.
12374         (top-level): Include sync.md.
12375         * config/nios2/nios2.c (N2_FTYPES): Add function types for
12376         new builtins.
12377         (N2_BUILTINS): Add arch field setting, add new builtins.
12378         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
12379         for arch field.
12380         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
12381         Also handle ldex/stex/ldsex/stsex builtins.
12382         (nios2_expand_rdprs_builtin): New function.
12383         (nios2_expand_cache_builtin): New function.
12384         (nios2_expand_wrpie_builtin): New function.
12385         (nios2_expand_eni_builtin): New function.
12386         (nios2_expand_builtin): Add arch field handling and new builtin
12387         cases.
12388         * doc/extend.texi (Altera Nios II Built-in Functions): Document
12389         new builtins.
12390         * doc/md.texi (Machine Constraints): Document U and v constraints.
12391
12392 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12393             Cesar Philippidis  <cesar@codesourcery.com>
12394             Chung-Lin Tang  <cltang@codesourcery.com>
12395
12396         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
12397         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
12398         callee_save_reg_size and uses_anonymous_args fields.
12399         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
12400         (nios2_create_cfa_notes): New function.
12401         (nios2_adjust_stack): New function for adjusting stack.
12402         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
12403         Use nios2_adjust_stack.
12404         (nios2_expand_epilogue): Likewise.
12405         (nios2_expand_return): New function.
12406         (nios2_can_use_return_insn): Update for CDX pop.n usage.
12407         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
12408         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
12409         * config/nios2/nios2.md (return): Use nios2_expand_return.
12410
12411 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12412             Cesar Philippidis  <cesar@codesourcery.com>
12413             Chung-Lin Tang  <cltang@codesourcery.com>
12414
12415         * config/nios2/predicates.md (pop_operation): New.
12416         (ldwm_operation, stwm_operation): New.
12417         (nios2_hard_register_operand): New.
12418         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
12419         (ldstwm_operation_p): Declare.
12420         (gen_ldstwm_peep): Declare.
12421         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
12422         (base_reg_adjustment_p): New.
12423         (pop_operation_p): New.
12424         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
12425         (nios2_ldstwm_regset_p): New.
12426         (ldstwm_operation_p): New.
12427         (gen_ldst): New.
12428         (nios2_ldst_parallel): New.
12429         (struct ldswm_operand): Declare.
12430         (compare_ldstwm_operands): New.
12431         (can_use_cdx_ldstw): New.
12432         (gen_ldstwm_peep): New.
12433         * config/nios2/nios2-ldstwm.sml: New.
12434         * config/nios2/nios2.md: Include ldstwm.md.
12435         * config/nios2/ldstwm.md: Generated.
12436
12437 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12438             Cesar Philippidis  <cesar@codesourcery.com>
12439             Chung-Lin Tang  <cltang@codesourcery.com>
12440
12441         * config/nios2/nios2.h (LABEL_ALIGN): Define.
12442         (REG_ALLOC_ORDER): Define.
12443         (ADJUST_REG_ALLOC_ORDER): Define.
12444         (HONOR_REG_ALLOC_ORDER): Define.
12445         (CDX_REG_P): Define.
12446         (ANDCLEAR_INT): Define.
12447         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
12448         (nios2_label_align): Declare.
12449         (nios2_cdx_narrow_form_p): Declare.
12450         (nios2_adjust_reg_alloc_order): Declare.
12451         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
12452         operation.
12453         (nios2_large_unspec_reloc_p): New function, split from...
12454         (nios2_legitimate_pic_operand_p): ...here.
12455         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
12456         (nios2_print_operand_punct_valid_p): New.
12457         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
12458         (split_mem_address): New.
12459         (split_alu_insn): New.
12460         (cdxreg): New.
12461         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
12462         (enum nios2_add_insn_kind): New.
12463         (nios2_add_insn_names, nios2_add_insn_narrow): New.
12464         (nios2_add_insn_classify): New.
12465         (nios2_add_insn_asm): New.
12466         (nios2_cdx_narrow_form_p): New.
12467         (label_align, min_labelno, max_labelno): New.
12468         (nios2_reorg): New.
12469         (nios2_label_align): New.
12470         (nios2_adjust_reg_alloc_order): New.
12471         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
12472         (TARGET_MACHINE_DEPENDENT_REORG): Define.
12473         * config/nios2/constraints.md (P): New constraint.
12474         * config/nios2/predicates.md (const_and_operand): New.
12475         (and_operand): New.
12476         (stack_memory_operand): New.
12477         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
12478         (length): Update to use nios2_cdx_narrow_form_p().
12479         (type): Add new insn type values.
12480         (control, alu, st, ld, shift): Update insn reservations with
12481         new insn type values.
12482         (*high, *lo_sum): Define new insn patterns for constant generation.
12483         (movqi_internal, movhi_internal, movsi_internal): Reduce
12484         alternatives, update asm template to handle CDX variants, update
12485         type attributes.
12486         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
12487         template, update type attributes.
12488         (extendhisi2, extendqi<mode>2): Likewise.
12489         (addsi3): Change to use function for asm string.
12490         (subsi3): Add CDX notation to asm template, update type attributes.
12491         (negsi3, one_cmplsi3): Likewise.
12492         (andsi3): New pattern, specialized from logical patterns.
12493         (<code>si3): Remove and case, combine alternatives, update asm
12494         template.
12495         (<shift_op>si3): Add CDX notation, update type attributes.
12496         (rotrsi3): Update type attribute.
12497         (*merge, extzv, insv): New insn patterns.
12498         (return): Change to define_expand.
12499         (simple_return): Add CDX notation, update type attributes.
12500         (indirect_jump): Add CDX notation.
12501         (jump): Update asm cases, update length attribute expression.
12502         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
12503         (nios2_cbranch): Update asm cases and length attribute expression
12504         to handle CDX variants.
12505         (nios2_cmp<code>): Update asm template.
12506         (nop): Add CDX notation, update type attributes.
12507         (trap): Add CDX notation.
12508         (ctrapsi4): Update asm cases and length attribute expression to
12509         handle CDX variant.
12510         * doc/md.texi (Machine Constraints): Document P constraint.
12511
12512 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12513             Cesar Philippidis  <cesar@codesourcery.com>
12514             Chung-Lin Tang  <cltang@codesourcery.com>
12515
12516         * config/nios2/nios2.h (SMALL_INT12): New macro.
12517         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
12518         (nios2_valid_addr_expr_p): Use it.
12519         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
12520         with implicit "io" instructions on R2.
12521         * config/nios2/constraints.md (w): New constraint.
12522         * config/nios2/predicates.md (ldstio_memory_operand): New.
12523         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
12524         operand predicate and constraint.
12525         (ld<bh>io_signed, st<bhw>io>): Likewise.
12526         * doc/md.texi (Machine Constraints): Document w constraint.
12527
12528 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12529             Cesar Philippidis  <cesar@codesourcery.com>
12530             Chung-Lin Tang  <cltang@codesourcery.com>
12531
12532         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
12533         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
12534         Nios II architecture level.
12535         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
12536         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
12537         (OPTION_DEFAULT_SPECS): Define.
12538         (ASM_SPEC): Add -march= spec strings.
12539         * config/nios2/nios2.c (nios2_option_override): Check for
12540         conflicts involving new options.
12541         * config.gcc (nios2*-*-*): Support --with-arch=.
12542         * doc/invoke.texi (Option Summary, Nios II Options): Document
12543         -march=, -mbmx, and -mcdx.
12544
12545 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
12546
12547         PR rtl-optimization/66626
12548         * lra-constraints.c (lra_constraints): Prevent equivalence
12549         substitution for static chain pseudo in functions with nonlocal
12550         goto.
12551
12552 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
12553
12554         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
12555         (nios2_emit_stack_limit_check): Add size parameter.  Handle
12556         -fstack-limit-symbol as well as -fstack-limit-register.
12557         (nios2_expand_prologue): Emit only a single stack limit check,
12558         even if multiple stack adjustments are required.
12559         (nios2_option_override): Diagnose unsupported combination of -fpic
12560         and -stack-limit-symbol.
12561
12562 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
12563
12564         * Makefile.in (top_srcdir): New.
12565         * configure.ac: Use AM_ZLIB.
12566         * configure: Regeneated.
12567
12568 2015-07-14  Matthias Klose  <doko@ubuntu.com>
12569
12570         PR target/66840
12571         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
12572
12573 2015-07-14  Richard Biener  <rguenther@suse.de>
12574
12575         PR tree-optimization/66863
12576         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
12577         what we record for conversion use stmt lhs inequalities.
12578
12579 2015-07-14  Richard Biener  <rguenther@suse.de>
12580
12581         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
12582         (decision_tree::gen_gimple): Likewise.
12583
12584 2015-07-14  Tom de Vries  <tom@codesourcery.com>
12585
12586         * gcc.c (greater_than_spec_func): Declare forward.
12587         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
12588         -ftree-parallelize-loops={0,1}.
12589         (static_spec_functions): Add greater_than_spec_func function with name
12590         "gt".
12591         (greater_than_spec_func): New function.
12592
12593 2015-07-14  Richard Biener  <rguenther@suse.de>
12594
12595         * tree-ssa-dom.c (record_temporary_equivalences): Merge
12596         wideing type conversion case from record_equivalences_from_incoming_edge
12597         and use record_equality to record equivalences.
12598         (record_equivalences_from_incoming_edge): Call
12599         record_temporary_equivalences.
12600
12601 2015-07-14  Richard Biener  <rguenther@suse.de>
12602
12603         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
12604         (struct if_expr): New.
12605         (struct with_expr): Likewise.
12606         (is_a_helper): Add helpers for if_expr and with_expr.
12607         (struct simplify): Add simplify_kind enum and member.  Remove
12608         ifexpr_vec member.
12609         (simplify::simplify): Adjust.
12610         (lower_commutative): Adjust.
12611         (lower_opt_convert): Likewise.
12612         (lower_cond): Likewise.
12613         (replace_id): Handle with_expr and if_expr.
12614         (lower_for): Adjust.
12615         (dt_simplify::gen_1): New recursive worker, split out from ...
12616         (dt_simplify::gen): ... here.  Deal with if and with expansion
12617         recursively.
12618         (capture_info::capture_info): Take context argument
12619         (capture_info::walk_result): Only analyze specific result.
12620         (parser::parse_result): New function.
12621         (parser::parse_simplify): Adjust to parse ifs with then end
12622         else case.
12623         (parser::parse_if): Simplify.
12624         (parser::parse_pattern): Pass down simplify kind.
12625         * match.pd: Convert if structure to new syntax.
12626
12627 2015-07-13  Marek Polacek  <polacek@redhat.com>
12628
12629         * rtl.c (rtx_equal_p_cb): Fix typo.
12630
12631 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
12632
12633         * omega.h: Don't include config.h, don't include params.h again if
12634         omega.h has already been included.
12635         * graphite-poly.h: Include sese.h.
12636         * graphite.c: Don't include sese.h, remove needless includes and
12637         minimize includes outside #ifdef HAVE_isl block.
12638         * graphite-blocking.c: Don't include sese.h, remove needless includes,
12639         and wrap entire file in #ifdef HAVE_isl
12640         * graphite-dependences.c: Likewise.
12641         * graphite-interchange.c: Likewise.
12642         * graphite-isl-ast-to-gimple.c: Likewise.
12643         * graphite-optimize-isl.c: Likewise.
12644         * graphite-poly.c: Likewise.
12645         * graphite-scop-detection.c: Likewise.
12646         * graphite-sese-to-poly.c: Likewise.
12647
12648 2015-07-13  Tom de Vries  <tom@codesourcery.com>
12649
12650         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
12651
12652 2015-07-13  Renlin Li  <renlin.li@arm.com>
12653
12654         PR rtl/66556
12655         * simplify-rtx.c (simplify_const_relational_operation): Add
12656         side_effects_p checks.
12657
12658 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
12659
12660         * bitmap.h: Fix double word typos.
12661         * builtins.c: Same.
12662         * calls.c: Same.
12663         * cfgloopmanip.c: Same.
12664         * cgraph.c: Same.
12665         * cgraph.h: Same.
12666         * cgraphclones.c: Same.
12667         * combine.c: Same.
12668         * config/aarch64/aarch64-protos.h: Same.
12669         * config/aarch64/aarch64.c: Same.
12670         * config/aarch64/aarch64.md: Same.
12671         * config/arm/arm.md: Same.
12672         * config/arm/arm1020e.md: Same.
12673         * config/arm/arm1026ejs.md: Same.
12674         * config/arm/arm926ejs.md: Same.
12675         * config/arm/fa526.md: Same.
12676         * config/arm/fa606te.md: Same.
12677         * config/arm/fa626te.md: Same.
12678         * config/arm/fa726te.md: Same.
12679         * config/arm/fmp626.md: Same.
12680         * config/darwin.c: Same.
12681         * config/epiphany/epiphany.c: Same.
12682         * config/frv/frv.c: Same.
12683         * config/ft32/ft32.c: Same.
12684         * config/gnu-user.h: Same.
12685         * config/h8300/constraints.md: Same.
12686         * config/i386/i386.c: Same.
12687         * config/i386/i386.md: Same.
12688         * config/iq2000/iq2000.md: Same.
12689         * config/mips/mips.c: Same.
12690         * config/mmix/mmix.md: Same.
12691         * config/moxie/moxie.c: Same.
12692         * config/nds32/nds32.md: Same.
12693         * config/pa/pa.h: Same.
12694         * config/rs6000/aix.h: Same.
12695         * config/rs6000/rs6000.h: Same.
12696         * config/sh/sh.c: Same.
12697         * config/tilegx/tilegx.md: Same.
12698         * config/tilepro/gen-mul-tables.cc: Same.
12699         * cse.c: Same.
12700         * dbxout.c: Same.
12701         * doc/invoke.texi: Same.
12702         * dse.c: Same.
12703         * dwarf2out.c: Same.
12704         * final.c: Same.
12705         * gcc.c: Same.
12706         * genmatch.c: Same.
12707         * gimplify.c: Same.
12708         * hash-table.h: Same.
12709         * internal-fn.c: Same.
12710         * ipa-cp.c: Same.
12711         * ipa-devirt.c: Same.
12712         * ipa-icf.c: Same.
12713         * ipa-icf.h: Same.
12714         * ipa-profile.c: Same.
12715         * ipa-prop.c: Same.
12716         * ipa-prop.h: Same.
12717         * ira.c: Same.
12718         * omp-low.c: Same.
12719         * reg-stack.c: Same.
12720         * regcprop.c: Same.
12721         * reorg.c: Same.
12722         * rtl.h: Same.
12723         * sbitmap.h: Same.
12724         * tree-eh.c: Same.
12725         * tree-inline.c: Same.
12726         * tree-sra.c: Same.
12727         * tree-ssa-dom.c: Same.
12728         * tree-ssa-loop-ivopts.c: Same.
12729         * tree-ssa-structalias.c: Same.
12730         * tree-ssa-tail-merge.c: Same.
12731         * tree-ssa-ter.c: Same.
12732         * tree-ssa-threadupdate.c: Same.
12733         * tree-ssa-uninit.c: Same.
12734         * tree-ssanames.c: Same.
12735         * tree-vect-loop-manip.c: Same.
12736         * tree-vrp.c: Same.
12737         * tree.c: Same.
12738         * valtrack.c: Same.
12739         * vec.h: Same.
12740
12741 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12742
12743         PR middle-end/66726
12744         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
12745         tree_ssa_phiopt_worker): Call it.
12746
12747 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12748
12749         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
12750         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
12751         REG_EQUAL note.
12752
12753 2015-07-11  Marek Polacek  <polacek@redhat.com>
12754
12755         PR middle-end/66353
12756         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
12757         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
12758         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
12759         rather than bb_has_abnormal_call_pred.
12760         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
12761         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
12762         rather than bb_has_abnormal_call_pred.
12763
12764 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
12765
12766         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
12767         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
12768         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
12769         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
12770         v850_legitimate_address_p): New functions.
12771         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
12772
12773 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
12774
12775         PR target/66819
12776         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
12777         indirect sibcall with register arguments if register available
12778         for argument passing.
12779         (init_cumulative_args): Set cfun->machine->arg_reg_available
12780         to (cum->nregs > 0) or to true if function has a variable
12781         argument list.
12782         (function_arg_advance_32): Set cfun->machine->arg_reg_available
12783         to false if cum->nregs <= 0.
12784         * config/i386/i386.h (machine_function): Add arg_reg_available.
12785
12786 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
12787
12788         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
12789         and gen_higpart instead of gen_rtx_SUBREG.
12790         * config/i386/i386.md
12791         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
12792         (read-modify peephole2): Use gen_lowpart instead of
12793         gen_rtx_SUBREG for operand 5.
12794
12795 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12796
12797         * config/tilepro/gen-mul-tables.cc (main): Change include list for
12798         generated files.
12799         * config/tilepro/mul-tables.c: Regenerate.
12800         * config/tilegx/mul-tables.c: Regenerate.
12801
12802 2015-07-10  Richard Biener  <rguenther@suse.de>
12803
12804         * fold-const.c (distribute_bit_expr): Remove.
12805         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
12806         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
12807         to A & (B | C) and simplifying A << C1 << C2 to ...
12808         * match.pd: ... patterns here.
12809
12810 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
12811
12812         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12813         Mark mem as READONLY and NOTRAP for PIC symbol.
12814
12815 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
12816
12817         * gimple-predict.h: New file.
12818         (gimple_predict_predictor, gimple_predict_set_predictor,
12819         gimple_predict_outcome, gimple_predict_set_outcome,
12820         gimple_build_predict): Relocate here.
12821         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
12822         gimple_predict_outcome, gimple_predict_set_outcome): Move to
12823         gimple-predict.h.
12824         * gimple.c (gimple_build_predict): Move to gimple-predict.h
12825         * basic-block.h: Don't include cfghooks.h.
12826         * backend.h: Don't include predict.h.
12827         * cfghooks.h: Include predict.h.
12828         * gimple-pretty-print.c: Include gimple-predict.h.
12829         * gimplify.c: Likwise.
12830         * predict.c: Adjust includes.
12831         * tree-inline.c: Likewise.
12832         * asan.c: Likewise.
12833         * auto-inc-dec.c: Likewise.
12834         * auto-profile.c: Likewise.
12835         * bb-reorder.c: Likewise.
12836         * builtins.c: Likewise.
12837         * caller-save.c: Likewise.
12838         * calls.c: Likewise.
12839         * cfganal.c: Likewise.
12840         * cfgbuild.c: Likewise.
12841         * cfg.c: Likewise.
12842         * cfgcleanup.c: Likewise.
12843         * cfgexpand.c: Likewise.
12844         * cfghooks.c: Likewise.
12845         * cfgloopanal.c: Likewise.
12846         * cfgloop.c: Likewise.
12847         * cfgloopmanip.c: Likewise.
12848         * cfgrtl.c: Likewise.
12849         * cgraph.c: Likewise.
12850         * cgraphunit.c: Likewise.
12851         * combine.c: Likewise.
12852         * cprop.c: Likewise.
12853         * cse.c: Likewise.
12854         * dce.c: Likewise.
12855         * dojump.c: Likewise.
12856         * dse.c: Likewise.
12857         * except.c: Likewise.
12858         * expmed.c: Likewise.
12859         * expr.c: Likewise.
12860         * final.c: Likewise.
12861         * fold-const.c: Likewise.
12862         * function.c: Likewise.
12863         * fwprop.c: Likewise.
12864         * gcc-plugin.h: Likewise.
12865         * gcse.c: Likewise.
12866         * genattrtab.c: Likewise.
12867         * genemit.c: Likewise.
12868         * gengtype.c: Likewise.
12869         * genopinit.c: Likewise.
12870         * genoutput.c: Likewise.
12871         * genpreds.c: Likewise.
12872         * genrecog.c: Likewise.
12873         * gimple-fold.c: Likewise.
12874         * gimple-iterator.c: Likewise.
12875         * gimple-ssa-isolate-paths.c: Likewise.
12876         * gimple-ssa-strength-reduction.c: Likewise.
12877         * graph.c: Likewise.
12878         * graphite-blocking.c: Likewise.
12879         * graphite.c: Likewise.
12880         * graphite-dependences.c: Likewise.
12881         * graphite-interchange.c: Likewise.
12882         * graphite-isl-ast-to-gimple.c: Likewise.
12883         * graphite-optimize-isl.c: Likewise.
12884         * graphite-poly.c: Likewise.
12885         * graphite-scop-detection.c: Likewise.
12886         * graphite-sese-to-poly.c: Likewise.
12887         * haifa-sched.c: Likewise.
12888         * ifcvt.c: Likewise.
12889         * internal-fn.c: Likewise.
12890         * ipa-cp.c: Likewise.
12891         * ipa-profile.c: Likewise.
12892         * ipa-split.c: Likewise.
12893         * ipa-utils.c: Likewise.
12894         * ira-build.c: Likewise.
12895         * ira-color.c: Likewise.
12896         * ira-conflicts.c: Likewise.
12897         * ira-costs.c: Likewise.
12898         * ira-emit.c: Likewise.
12899         * ira-lives.c: Likewise.
12900         * jump.c: Likewise.
12901         * loop-doloop.c: Likewise.
12902         * loop-init.c: Likewise.
12903         * loop-invariant.c: Likewise.
12904         * loop-unroll.c: Likewise.
12905         * lower-subreg.c: Likewise.
12906         * lra-assigns.c: Likewise.
12907         * lra.c: Likewise.
12908         * lra-coalesce.c: Likewise.
12909         * lra-constraints.c: Likewise.
12910         * lra-lives.c: Likewise.
12911         * lto-cgraph.c: Likewise.
12912         * lto-streamer-in.c: Likewise.
12913         * mode-switching.c: Likewise.
12914         * modulo-sched.c: Likewise.
12915         * omp-low.c: Likewise.
12916         * optabs.c: Likewise.
12917         * passes.c: Likewise.
12918         * postreload.c: Likewise.
12919         * postreload-gcse.c: Likewise.
12920         * profile.c: Likewise.
12921         * recog.c: Likewise.
12922         * regstat.c: Likewise.
12923         * reload1.c: Likewise.
12924         * reorg.c: Likewise.
12925         * rtlanal.c: Likewise.
12926         * sched-ebb.c: Likewise.
12927         * sel-sched-ir.c: Likewise.
12928         * sese.c: Likewise.
12929         * shrink-wrap.c: Likewise.
12930         * simplify-rtx.c: Likewise.
12931         * stmt.c: Likewise.
12932         * store-motion.c: Likewise.
12933         * tracer.c: Likewise.
12934         * trans-mem.c: Likewise.
12935         * tree-call-cdce.c: Likewise.
12936         * tree-cfg.c: Likewise.
12937         * tree-cfgcleanup.c: Likewise.
12938         * tree-chkp.c: Likewise.
12939         * tree-complex.c: Likewise.
12940         * tree-eh.c: Likewise.
12941         * tree-if-conv.c: Likewise.
12942         * tree-loop-distribution.c: Likewise.
12943         * tree-outof-ssa.c: Likewise.
12944         * tree-parloops.c: Likewise.
12945         * tree-predcom.c: Likewise.
12946         * tree-pretty-print.c: Likewise.
12947         * tree-profile.c: Likewise.
12948         * tree-sra.c: Likewise.
12949         * tree-ssa.c: Likewise.
12950         * tree-ssa-coalesce.c: Likewise.
12951         * tree-ssa-dce.c: Likewise.
12952         * tree-ssa-dom.c: Likewise.
12953         * tree-ssa-forwprop.c: Likewise.
12954         * tree-ssa-ifcombine.c: Likewise.
12955         * tree-ssa-loop-ch.c: Likewise.
12956         * tree-ssa-loop-im.c: Likewise.
12957         * tree-ssa-loop-ivcanon.c: Likewise.
12958         * tree-ssa-loop-ivopts.c: Likewise.
12959         * tree-ssa-loop-manip.c: Likewise.
12960         * tree-ssa-loop-prefetch.c: Likewise.
12961         * tree-ssa-loop-unswitch.c: Likewise.
12962         * tree-ssa-math-opts.c: Likewise.
12963         * tree-ssa-phiopt.c: Likewise.
12964         * tree-ssa-pre.c: Likewise.
12965         * tree-ssa-reassoc.c: Likewise.
12966         * tree-ssa-sink.c: Likewise.
12967         * tree-ssa-tail-merge.c: Likewise.
12968         * tree-ssa-threadedge.c: Likewise.
12969         * tree-ssa-threadupdate.c: Likewise.
12970         * tree-switch-conversion.c: Likewise.
12971         * tree-tailcall.c: Likewise.
12972         * tree-vect-data-refs.c: Likewise.
12973         * tree-vect-loop.c: Likewise.
12974         * tree-vect-loop-manip.c: Likewise.
12975         * tree-vectorizer.c: Likewise.
12976         * tree-vrp.c: Likewise.
12977         * ubsan.c: Likewise.
12978         * value-prof.c: Likewise.
12979         * varasm.c: Likewise.
12980         * var-tracking.c: Likewise.
12981         * config/aarch64/aarch64-builtins.c: Likewise.
12982         * config/aarch64/aarch64.c: Likewise.
12983         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
12984         * config/alpha/alpha.c: Likewise.
12985         * config/arc/arc.c: Likewise.
12986         * config/arm/arm.c: Likewise.
12987         * config/avr/avr.c: Likewise.
12988         * config/bfin/bfin.c: Likewise.
12989         * config/c6x/c6x.c: Likewise.
12990         * config/cr16/cr16.c: Likewise.
12991         * config/cris/cris.c: Likewise.
12992         * config/darwin.c: Likewise.
12993         * config/darwin-c.c: Likewise.
12994         * config/epiphany/epiphany.c: Likewise.
12995         * config/epiphany/mode-switch-use.c: Likewise.
12996         * config/epiphany/resolve-sw-modes.c: Likewise.
12997         * config/fr30/fr30.c: Likewise.
12998         * config/frv/frv.c: Likewise.
12999         * config/ft32/ft32.c: Likewise.
13000         * config/h8300/h8300.c: Likewise.
13001         * config/i386/i386.c: Likewise.
13002         * config/i386/winnt.c: Likewise.
13003         * config/ia64/ia64.c: Likewise.
13004         * config/iq2000/iq2000.c: Likewise.
13005         * config/lm32/lm32.c: Likewise.
13006         * config/m32c/m32c.c: Likewise.
13007         * config/m32r/m32r.c: Likewise.
13008         * config/m68k/m68k.c: Likewise.
13009         * config/mcore/mcore.c: Likewise.
13010         * config/mep/mep.c: Likewise.
13011         * config/microblaze/microblaze.c: Likewise.
13012         * config/mips/mips.c: Likewise.
13013         * config/mmix/mmix.c: Likewise.
13014         * config/mn10300/mn10300.c: Likewise.
13015         * config/moxie/moxie.c: Likewise.
13016         * config/msp430/msp430.c: Likewise.
13017         * config/nds32/nds32.c: Likewise.
13018         * config/nds32/nds32-cost.c: Likewise.
13019         * config/nds32/nds32-fp-as-gp.c: Likewise.
13020         * config/nds32/nds32-intrinsic.c: Likewise.
13021         * config/nds32/nds32-isr.c: Likewise.
13022         * config/nds32/nds32-md-auxiliary.c: Likewise.
13023         * config/nds32/nds32-memory-manipulation.c: Likewise.
13024         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13025         * config/nds32/nds32-predicates.c: Likewise.
13026         * config/nios2/nios2.c: Likewise.
13027         * config/nvptx/nvptx.c: Likewise.
13028         * config/pa/pa.c: Likewise.
13029         * config/pdp11/pdp11.c: Likewise.
13030         * config/rl78/rl78.c: Likewise.
13031         * config/rs6000/rs6000.c: Likewise.
13032         * config/rx/rx.c: Likewise.
13033         * config/s390/s390.c: Likewise.
13034         * config/sh/sh.c: Likewise.
13035         * config/sh/sh-mem.cc: Likewise.
13036         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
13037         * config/sh/sh_treg_combine.cc: Likewise.
13038         * config/sparc/sparc.c: Likewise.
13039         * config/spu/spu.c: Likewise.
13040         * config/stormy16/stormy16.c: Likewise.
13041         * config/tilegx/tilegx.c: Likewise.
13042         * config/tilepro/tilepro.c: Likewise.
13043         * config/v850/v850.c: Likewise.
13044         * config/vax/vax.c: Likewise.
13045         * config/visium/visium.c: Likewise.
13046         * config/xtensa/xtensa.c: Likewise.
13047
13048 2015-07-10  Richard Biener  <rguenther@suse.de>
13049
13050         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
13051         (decision_tree::gen_gimple): Likewise.
13052         (decision_tree::gen_generic): Likewise.
13053
13054 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
13055
13056         PR target/66813
13057         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
13058         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
13059
13060 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
13061
13062         PR middle-end/66820
13063         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
13064         or ORT_TASK contexts.
13065         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
13066         is non-zero.
13067
13068 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13069
13070         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
13071         above function.
13072
13073 2015-07-10  Tom de Vries  <tom@codesourcery.com>
13074
13075         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
13076         insert nit + 1 bound.
13077
13078 2015-07-10  Richard Biener  <rguenther@suse.de>
13079
13080         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
13081         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
13082         (if_convertible_loop_p_1): For this always compute bb predicates.
13083         (if_convertible_loop_p): And free them.
13084
13085 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13086
13087         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
13088         in dump message.
13089
13090 2015-07-10  Richard Biener  <rguenther@suse.de>
13091
13092         PR tree-optimization/66823
13093         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
13094         inverted predicate.
13095
13096 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
13097
13098         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
13099         to handle mips[32|64]r3 and mips[32|64]r5.
13100
13101 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
13102
13103         PR middle-end/66633
13104         * tree-nested.c (get_static_chain): Or in a flag into
13105         info->static_chain_added.
13106         (get_frame_field, get_nonlocal_debug_decl): Likewise.
13107         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
13108         2015-07-01 changes.
13109         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
13110         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
13111         add it to clauses.
13112
13113         PR tree-optimization/66718
13114         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
13115         field.
13116         (vect_simd_lane_linear): New function.
13117         (vectorizable_simd_clone_call): Support using linear arguments for
13118         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
13119
13120 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13121
13122         PR target/66821
13123         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
13124
13125 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
13126
13127         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
13128         Use machine mode, not enum machine_mode in the prototype.
13129
13130         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
13131         classify 128-bit floating point support.
13132         (FLOAT128_IBM_P): Likewise.
13133         (FLOAT128_VECTOR_P): Likewise.
13134         (FLOAT128_2REG_P): Likewise.
13135         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
13136         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
13137         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
13138         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
13139
13140         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
13141         tests against TFmode/TDmode, since those modes do not use VSX
13142         addresses.
13143         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
13144         support.
13145         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
13146         tests against TFmode, etc.
13147         (invalid_e500_subreg): Add tests against IFmode/KFmode.
13148         (reg_offset_addressing_ok_p): Likewise.
13149         (rs6000_legitimate_offset_address_p): Likewise.
13150         (rs6000_legitimize_address): Likewise.
13151         (rs6000_legitimize_reload_address): Likewise.
13152         (rs6000_legitimate_address_p): Clean up tests against TFmode and
13153         TDmode to use the new helper macros, which will include IFmode and
13154         KFmode.
13155         (rs6000_emit_move): Likewise.
13156         (rs6000_darwin64_record_arg_recurse): Likewise.
13157         (print_operand): Likewise.
13158         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
13159         that uses a single vector register as a vector and not as a
13160         floating point register in terms of the calling sequence.
13161         (rs6000_discover_homogeneous_aggregate): Likewise.
13162         (rs6000_return_in_memory): Likewise.
13163         (init_cumulative_args): Likewise.
13164         (rs6000_function_arg_boundary): Likewise.
13165         (rs6000_function_arg_advance_1): Likewise.
13166         (rs6000_function_arg): Likewise.
13167         (rs6000_pass_by_reference): Likewise.
13168         (rs6000_gimplify_va_arg): Likewise.
13169         (rs6000_secondary_reload_memory): Use machine_mode not enum
13170         machine mode.
13171         (rs6000_split_multireg_move): Use new helper macros.
13172         (spe_func_has_64bit_regs_p): Likewise.
13173         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
13174         (output_toc): Use new helper macros.
13175         (rs6000_register_move_cost): Likewise.
13176         (rs6000_function_value): Add IEEE 128-bit floating point calling
13177         sequence support.
13178         (rs6000_libcall_value): Likewise.
13179         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
13180         floating point support.
13181         (rs6000_vector_mode_supported_p): Likewise.
13182
13183 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
13184
13185         PR rtl-optimization/66782
13186         * lra-int.h (struct lra_insn_recog_data): Add comment about
13187         clobbered hard regs for arg_hard_regs.
13188         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
13189         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
13190         Add condition for processing used hard regs.
13191         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
13192         Process clobbered hard regs.
13193
13194 2015-07-09  Michael Matz  <matz@suse.de>
13195
13196         * genmatch.c (fprintf_indent): New function.
13197         (operand::gen_transform): Add indent parameter.
13198         (expr::gen_transform, c_expr::gen_transform,
13199         capture::gen_transform): Ditto and use fprintf_indent.
13200         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
13201         (dt_operand::gen, dt_operand::gen_predicate,
13202         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
13203         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
13204         (decision_tree::gen_gimple): Adjust calls and indent generated
13205         code.
13206         (decision_tree::gen_generic): Ditto.
13207         (write_predicate): Ditto.
13208
13209 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13210
13211         PR target/66814
13212         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
13213         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
13214         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
13215         {GENERAL,SSE,MMX}_REG_P where appropriate.
13216
13217 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13218
13219         * lto-streamer.h: Don't include target.h and alloc-pool.h.
13220         * builtins.c: Adjust includes.
13221         * gimple.c: Likewise.
13222         * ipa-icf.c: Likewise.
13223         * lto-opts.c: Likewise.
13224         * ipa-reference.c: Likewise.
13225         * lto-section-out.c: Likewise.
13226         * lto-streamer-in.c: Likewise.
13227         * lto-streamer-out.c: Likewise.
13228         * opts-global.c: Likewise.
13229         * symtab.c: Likewise.
13230         * tree-chkp.c: Likewise.
13231         * tree-ssa-live.c: Likewise.
13232         * tree-streamer-in.c: Likewise.
13233         * tree-streamer-out.c: Likewise.
13234         * config/darwin.c: Likewise.
13235         * config/i386/winnt.c: Likewise.
13236
13237 2015-07-09  Richard Biener  <rguenther@suse.de>
13238
13239         * genmatch.c (struct expr): Add force_single_use flag.
13240         (expr::expr): Add copy constructor.
13241         (capture_info::walk_match): Gather force_single_use captures.
13242         (expr::gen_transform): Use possibly NULLified sequence.
13243         (dt_simplify::gen): Apply single-use restrictions by NULLifying
13244         seq if any constrained expr is not single-use.
13245         (parser::parse_expr): Refactor to allow multiple flags.  Handle
13246         's' flag to force an expression have a single-use if the pattern
13247         simplifies to more than one statement.
13248         * match.pd: Convert most single_use conditionals to :s flags.
13249
13250 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13251
13252         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
13253         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
13254         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
13255
13256 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
13257
13258         * flags.h: Don't include flag-types.h or options.h.
13259         * opts-common.c: Adjust includes.
13260         * opts-global.c: Likewise.
13261         * common/config/epiphany/epiphany-common.c: Likewise.
13262
13263 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13264
13265         PR target/66818
13266         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
13267         for IA MCU.
13268
13269 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
13270
13271         PR target/66817
13272         * config/i386/i386.c (ix86_return_in_memory): Return true
13273         if int_size_in_bytes returns negative for IA MCU.
13274
13275 2015-07-09  Marek Polacek  <polacek@redhat.com>
13276
13277         PR tree-optimization/66718
13278         * Makefile.in (OBJS): Add gimple-laddress.o.
13279         * passes.def: Schedule pass_laddress.
13280         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
13281         * tree-pass.h (make_pass_laddress): Declare.
13282         * gimple-laddress.c: New file.
13283
13284 2015-07-09  Richard Biener  <rguenther@suse.de>
13285
13286         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
13287
13288 2015-07-09  Richard Biener  <rguenther@suse.de>
13289
13290         PR tree-optimization/66807
13291         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
13292
13293 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
13294
13295         * function.c (stack_protect_epilogue): Use if rather than switch for
13296         check targetm.have_stack_protect_test.
13297
13298 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13299
13300         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
13301         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
13302         * config/arc/arc.h: Likewise.
13303         * config/arm/arm.h: Likewise.
13304         * config/bfin/bfin.h: Likewise.
13305         * config/epiphany/epiphany.h: Likewise.
13306         * config/frv/frv.h: Likewise.
13307         * config/ia64/ia64.h: Likewise.
13308         * config/iq2000/iq2000.h: Likewise.
13309         * config/lm32/lm32.h: Likewise.
13310         * config/m32r/m32r.h: Likewise.
13311         * config/mcore/mcore.h: Likewise.
13312         * config/mep/mep.h: Likewise.
13313         * config/microblaze/microblaze.h: Likewise.
13314         * config/mips/mips.h: Likewise.
13315         * config/mmix/mmix.h: Likewise.
13316         * config/mn10300/mn10300.h: Likewise.
13317         * config/nds32/nds32.h: Likewise.
13318         * config/nios2/nios2.h: Likewise.
13319         * config/pa/pa.h: Likewise.
13320         * config/rl78/rl78.h: Likewise.
13321         * config/sh/sh.h: Likewise.
13322         * config/sparc/sparc.h: Likewise.
13323         * config/stormy16/stormy16.h: Likewise.
13324         * config/tilegx/tilegx.h: Likewise.
13325         * config/tilepro/tilepro.h: Likewise.
13326         * config/v850/v850.h: Likewise.
13327         * config/xtensa/xtensa.h: Likewise.
13328         * doc/tm.texi: Regenerate.
13329         * doc/tm.texi.in: Adjust.
13330         * combine.c (simplify_set): Likewise.
13331         (simplify_comparison): Likewise.
13332         * expr.c (store_constructor): Likewise.
13333         * internal-fn.c (expand_arith_overflow): Likewise.
13334         * reload.c (push_reload): Likewise.
13335         (find_reloads): Likewise.
13336         (find_reloads_subreg_address): Likewise.
13337         * reload1.c (eliminate_regs_1): Likewise.
13338         * rtlanal.c (nonzero_bits1): Likewise.
13339         (num_sign_bit_copies1): Likewise.
13340         * simplify-rtx.c (simplify_truncation): Likewise.
13341
13342 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13343
13344         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
13345         of AUTO_INC_DEC with the preprocessor.
13346         * combine.c (combine_instructions): Likewise.
13347         (can_combine_p): Likewise.
13348         (try_combine): Likewise.
13349         * emit-rtl.c (try_split): Likewise.
13350         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13351         * lower-subreg.c (resolve_simple_move): Likewise.
13352         * lra.c (update_inc_notes): Likewise.
13353         * recog.c (asm_operand_ok): Likewise.
13354         (constrain_operands): Likewise.
13355         * regrename.c (scan_rtx_address): Likewise.
13356         * reload.c (update_auto_inc_notes): Likewise.
13357         (reg_inc_found_and_valid_p): Likewise.
13358         * reload1.c (reload): Likewise.
13359         (emit_input_reload_insns): Likewise.
13360         (delete_output_reload): Likewise.
13361         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13362         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13363
13364 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13365
13366         * rtl.h: Always define AUTO_INC_DEC.
13367         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
13368         * combine.c (combine_instructions): Likewise.
13369         (can_combine_p): Likewise.
13370         (try_combine): Likewise.
13371         * emit-rtl.c (try_split): Likewise.
13372         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
13373         * lower-subreg.c (resolve_simple_move): Likewise.
13374         * lra.c (update_inc_notes): Likewise.
13375         * recog.c (asm_operand_ok): Likewise.
13376         (constrain_operands): Likewise.
13377         * regrename.c (scan_rtx_address): Likewise.
13378         * reload.c (update_auto_inc_notes): Likewise.
13379         (find_equiv_reg): Likewise.
13380         * reload1.c (reload): Likewise.
13381         (reload_as_needed): Likewise.
13382         (choose_reload_regs): Likewise.
13383         (emit_input_reload_insns): Likewise.
13384         (delete_output_reload): Likewise.
13385         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
13386         * valtrack.c (cleanup_auto_inc_dec): Likewise.
13387
13388 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13389
13390         * combine.c (can_combine_def_p): Don't check the value of
13391         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
13392         (combinable_i3pat): Likewise.
13393         (mark_used_regs_combine): Likewise.
13394         * regrename.c (rename_chains): Likewise.
13395         * reload.c (find_reloads_address): Likewise.
13396         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
13397
13398 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13399
13400         * combine.c (update_rsp_from_reg_equal): Don't check if
13401         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
13402         (reg_nonzero_bits_for_combine): Likewise.
13403         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
13404         1.
13405         * config/frv/frv.h: Likewise.
13406         * config/lm32/lm32.h: Likewise.
13407         * config/mep/mep.h: Likewise.
13408         * config/mips/mips.h: Likewise.
13409         * config/rs6000/rs6000.h: Likewise.
13410         * config/sh/sh.h: Likewise.
13411         * config/tilegx/tilegx.h (enum reg_class): Likewise.
13412         * config/tilepro/tilepro.h: Likewise.
13413         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
13414         * doc/tm.texi: Regenerate.
13415         * doc/tm.texi.in: Adjust.
13416         * rtlanal.c (nonzero_bits1): Likewise.
13417
13418 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13419
13420         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
13421         with the preprocessor.
13422         (combine_instructions): Likewise.
13423         (try_combine): Likewise.
13424         (subst): Likewise.
13425         (distribute_notes): Likewise.
13426
13427 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13428
13429         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
13430         defined.
13431         (simplify_set): Likewise.
13432         * cse.c (cse_insn): Likewise.
13433         * fold-const.c (fold_single_bit_test): Likewise.
13434         (fold_unary_loc): Likewise.
13435         * postreload.c (reload_cse_simplify_set): Likewise.
13436         (reload_cse_simplify_operands): Likewise.
13437
13438 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
13439
13440         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
13441         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
13442
13443 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13444
13445         PR target/66746
13446         * config/i386/x86intrin.h: Include <adxintrin.h> even if
13447         __iamcu__ is defined.
13448
13449 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13450
13451         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
13452
13453 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
13454
13455         PR target/66523
13456         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
13457         names from preservation.
13458
13459 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
13460
13461         PR target/66806
13462         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
13463         change for IAMCU.
13464         (function_arg_advance_32): Don't pass vectors in registers for
13465         IAMCU.
13466         (function_arg_32): Likewise.
13467         (ix86_return_in_memory): Don't return vectors in registers for
13468         IAMCU.
13469
13470 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
13471
13472         PR middle-end/66334
13473         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
13474         hard regno live at the start of BB with incoming abnormal edges.
13475         * lra-lives.c (process_bb_lives): Ditto.
13476
13477 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
13478
13479         PR libgomp/65099
13480         * config/nvptx/mkoffload.c (main): Create an offload image only in
13481         64-bit configurations.
13482
13483 2015-07-08  Martin Liska  <mliska@suse.cz>
13484
13485         PR bootstrap/66744
13486         * tree-sra.c (create_access_1): Call ctor without brackets.
13487         (create_artificial_child_access): Likewise.
13488
13489 2015-07-08  Richard Biener  <rguenther@suse.de>
13490
13491         PR tree-optimization/66793
13492         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
13493         Properly split the block after stmts ending it.
13494
13495 2015-07-08  Richard Biener  <rguenther@suse.de>
13496
13497         PR tree-optimization/66794
13498         * passes.c (execute_function_todo): Assert that post-dominators
13499         are not computed.
13500         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
13501         Free post-dominators.
13502
13503 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13504
13505         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
13506         with early exit.
13507
13508 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
13509
13510         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
13511         more than or equal 8 and less than 32 when optimizing for size.
13512
13513 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13514
13515         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
13516         COSTS_N_INSNS (1) and increment it appropriately throughout the
13517         function.
13518
13519 2015-07-08  Richard Biener  <rguenther@suse.de>
13520
13521         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
13522
13523 2015-07-08  Alan Modra  <amodra@gmail.com>
13524
13525         * target.def (rtx_costs): Remove "code" param, add "mode".
13526         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
13527         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
13528         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
13529         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
13530         call.  Track mode when given in rtx.
13531         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
13532         (default_address_cost): Pass Pmode to rtx_cost.
13533         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
13534         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
13535         with NULL set.
13536         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
13537         (notreg_cost): Add mode param.  Use it.
13538         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
13539         mode param and pass to set_src_cost.  Update all calls.
13540         (hash_scan_set): Formatting.
13541         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
13542         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
13543         * hooks.h: Ditto.
13544         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
13545         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
13546         emit_store_flag): Update set_src_cost and rtx_cost calls.
13547         * auto-inc-dec.c (attempt_change): Likewise.
13548         * calls.c (precompute_register_parameters): Likewise.
13549         * combine.c (expand_compound_operation, make_extraction,
13550         force_to_mode, distribute_and_simplify_rtx): Likewise.
13551         * dojump.c (prefer_and_bit_test): Likewise.
13552         * dse.c (find_shift_sequence): Likewise.
13553         * expr.c (compress_float_constant): Likewise.
13554         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
13555         * ifcvt.c (noce_try_sign_mask): Likewise.
13556         * loop-doloop.c (doloop_optimize): Likewise.
13557         * loop-invariant.c (create_new_invariant): Likewise.
13558         * lower-subreg.c (shift_cost, compute_costs): Likewise.
13559         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
13560         lshift_cheap_p): Likewise.
13561         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
13562         try_replace_in_use, reload_cse_move2add): Likewise.
13563         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
13564         Likewise.
13565         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13566         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
13567         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
13568         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
13569         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
13570         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
13571         to rtx_cost calls.
13572         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
13573         * config/arc/arc.c (arc_rtx_costs): Likewise.
13574         * config/arm/arm.c (arm_rtx_costs): Likewise.
13575         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
13576         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
13577         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
13578         * config/cris/cris.c (cris_rtx_costs): Likewise.
13579         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
13580         * config/frv/frv.c (frv_rtx_costs): Likewise.
13581         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
13582         * config/i386/i386.c (ix86_rtx_costs): Likewise.
13583         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
13584         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
13585         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
13586         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
13587         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
13588         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
13589         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
13590         * config/mep/mep.c (mep_rtx_cost): Likewise.
13591         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
13592         * config/mips/mips.c (mips_rtx_costs): Likewise.
13593         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
13594         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
13595         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
13596         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
13597         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
13598         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
13599         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
13600         * config/pa/pa.c (hppa_rtx_costs): Likewise.
13601         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
13602         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
13603         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
13604         * config/s390/s390.c (s390_rtx_costs): Likewise.
13605         * config/sh/sh.c (sh_rtx_costs): Likewise.
13606         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
13607         * config/spu/spu.c (spu_rtx_costs): Likewise.
13608         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
13609         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
13610         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
13611         * config/v850/v850.c (v850_rtx_costs): Likewise.
13612         * config/vax/vax.c (vax_rtx_costs): Likewise.
13613         * config/visium/visium.c (visium_rtx_costs): Likewise.
13614         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
13615         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
13616         "code" param, and pass as outer_code to first rtx_cost call.  Pass
13617         mode to rtx_cost calls.
13618         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
13619         calls.
13620         (aarch64_rtx_costs_wrapper): Update.
13621         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
13622         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
13623         rtx_cost calls.
13624         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
13625         and rtx_cost calls.
13626         (avr_operand_rtx_cost): Similarly.
13627         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
13628         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
13629         * config/mips/mips.c (mips_stack_address_p): Comment typo.
13630         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
13631         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
13632         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
13633         rtx_cost.
13634         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
13635         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
13636         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
13637         * doc/tm.texi: Regenerate.
13638
13639 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
13640
13641         * tree-core.h: Include symtab.h.
13642         * rtl.h: Include hard-reg-set.h but not flags.h.
13643         (HARD_CONST): Remove condition compilation involving HARD_CONST since
13644         hard-reg-set.h is always included.
13645         * regs.h: Don't include hard-reg-set.h or rtl.h.
13646         * cfg.h: Include dominance.h.
13647         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
13648         * backend.h: New.  Aggregate commonly used backend header files.
13649         * gimple-ssa.h: Don't include tree-hasher.h.
13650         * ssa.h: New.  Aggregate commonly used SSA header files.
13651         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
13652         * sel-sched-ir.h: Flatten includes.
13653         * lra-int.h: Flatten completely.
13654         * sel-sched-dump.h: Flatten includes.
13655         * ira-int.h: Flatten includes.
13656         * gimple-streamer.h: Remove all includes.
13657         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
13658         * resource.h: Flatten hard-reg-set.h and df.h.
13659         * sched-int.h: Flatten insn-arrt.h and df.h.
13660         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
13661         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
13662         * genattrtab.c (write_header): Adjust generated includes.
13663         * genautomata.c (main): Likewise.
13664         * genconditions.c (write-header): Likewise.
13665         * genemit.c (main): Likewise.
13666         * gengtype.c (open_base_files): Likewise.
13667         * genopinit.c (main): Likewise.
13668         * genoutput.c (output_prologue): Likewise.
13669         * genpeep.c (main): Likewise.
13670         * genpreds.c (write_insn_preds_c): Likewise.
13671         * genrecog.c (write_header): Likewise.
13672         * alias.c: Adjust includes.
13673         * asan.c: Likewise.
13674         * attribs.c: Likewise.
13675         * auto-inc-dec.c: Likewise.
13676         * auto-profile.c: Likewise.
13677         * bb-reorder.c: Likewise.
13678         * bt-load.c: Likewise.
13679         * builtins.c: Likewise.
13680         * caller-save.c: Likewise.
13681         * calls.c: Likewise.
13682         * ccmp.c: Likewise.
13683         * cfg.c: Likewise.
13684         * cfganal.c: Likewise.
13685         * cfgbuild.c: Likewise.
13686         * cfgcleanup.c: Likewise.
13687         * cfgexpand.c: Likewise.
13688         * cfghooks.c: Likewise.
13689         * cfgloop.c: Likewise.
13690         * cfgloopanal.c: Likewise.
13691         * cfgloopmanip.c: Likewise.
13692         * cfgrtl.c: Likewise.
13693         * cgraph.c: Likewise.
13694         * cgraphbuild.c: Likewise.
13695         * cgraphclones.c: Likewise.
13696         * cgraphunit.c: Likewise.
13697         * cilk-common.c: Likewise.
13698         * combine-stack-adj.c: Likewise.
13699         * combine.c: Likewise.
13700         * compare-elim.c: Likewise.
13701         * convert.c: Likewise.
13702         * coverage.c: Likewise.
13703         * cppbuiltin.c: Likewise.
13704         * cprop.c: Likewise.
13705         * cse.c: Likewise.
13706         * cselib.c: Likewise.
13707         * data-streamer-in.c: Likewise.
13708         * data-streamer-out.c: Likewise.
13709         * data-streamer.c: Likewise.
13710         * dbxout.c: Likewise.
13711         * dce.c: Likewise.
13712         * ddg.c: Likewise.
13713         * debug.c: Likewise.
13714         * df-core.c: Likewise.
13715         * df-problems.c: Likewise.
13716         * df-scan.c: Likewise.
13717         * dfp.c: Likewise.
13718         * dojump.c: Likewise.
13719         * dominance.c: Likewise.
13720         * domwalk.c: Likewise.
13721         * double-int.c: Likewise.
13722         * dse.c: Likewise.
13723         * dumpfile.c: Likewise.
13724         * dwarf2asm.c: Likewise.
13725         * dwarf2cfi.c: Likewise.
13726         * dwarf2out.c: Likewise.
13727         * emit-rtl.c: Likewise.
13728         * et-forest.c: Likewise.
13729         * except.c: Likewise.
13730         * explow.c: Likewise.
13731         * expmed.c: Likewise.
13732         * expr.c: Likewise.
13733         * final.c: Likewise.
13734         * fixed-value.c: Likewise.
13735         * fold-const.c: Likewise.
13736         * function.c: Likewise.
13737         * fwprop.c: Likewise.
13738         * gcc-plugin.h: Likewise.
13739         * gcse-common.c: Likewise.
13740         * gcse.c: Likewise.
13741         * generic-match-head.c: Likewise.
13742         * ggc-page.c: Likewise.
13743         * gimple-builder.c: Likewise.
13744         * gimple-expr.c: Likewise.
13745         * gimple-fold.c: Likewise.
13746         * gimple-iterator.c: Likewise.
13747         * gimple-low.c: Likewise.
13748         * gimple-match-head.c: Likewise.
13749         * gimple-pretty-print.c: Likewise.
13750         * gimple-ssa-isolate-paths.c: Likewise.
13751         * gimple-ssa-strength-reduction.c: Likewise.
13752         * gimple-streamer-in.c: Likewise.
13753         * gimple-streamer-out.c: Likewise.
13754         * gimple-walk.c: Likewise.
13755         * gimple.c: Likewise.
13756         * gimplify-me.c: Likewise.
13757         * gimplify.c: Likewise.
13758         * godump.c: Likewise.
13759         * graph.c: Likewise.
13760         * graphite-blocking.c: Likewise.
13761         * graphite-dependences.c: Likewise.
13762         * graphite-interchange.c: Likewise.
13763         * graphite-isl-ast-to-gimple.c: Likewise.
13764         * graphite-optimize-isl.c: Likewise.
13765         * graphite-poly.c: Likewise.
13766         * graphite-scop-detection.c: Likewise.
13767         * graphite-sese-to-poly.c: Likewise.
13768         * graphite.c: Likewise.
13769         * haifa-sched.c: Likewise.
13770         * hw-doloop.c: Likewise.
13771         * ifcvt.c: Likewise.
13772         * init-regs.c: Likewise.
13773         * internal-fn.c: Likewise.
13774         * ipa-chkp.c: Likewise.
13775         * ipa-comdats.c: Likewise.
13776         * ipa-cp.c: Likewise.
13777         * ipa-devirt.c: Likewise.
13778         * ipa-icf-gimple.c: Likewise.
13779         * ipa-icf.c: Likewise.
13780         * ipa-inline-analysis.c: Likewise.
13781         * ipa-inline-transform.c: Likewise.
13782         * ipa-inline.c: Likewise.
13783         * ipa-polymorphic-call.c: Likewise.
13784         * ipa-profile.c: Likewise.
13785         * ipa-prop.c: Likewise.
13786         * ipa-pure-const.c: Likewise.
13787         * ipa-ref.c: Likewise.
13788         * ipa-reference.c: Likewise.
13789         * ipa-split.c: Likewise.
13790         * ipa-utils.c: Likewise.
13791         * ipa-visibility.c: Likewise.
13792         * ipa.c: Likewise.
13793         * ira-build.c: Likewise.
13794         * ira-color.c: Likewise.
13795         * ira-conflicts.c: Likewise.
13796         * ira-costs.c: Likewise.
13797         * ira-emit.c: Likewise.
13798         * ira-lives.c: Likewise.
13799         * ira.c: Likewise.
13800         * jump.c: Likewise.
13801         * langhooks.c: Likewise.
13802         * lcm.c: Likewise.
13803         * loop-doloop.c: Likewise.
13804         * loop-init.c: Likewise.
13805         * loop-invariant.c: Likewise.
13806         * loop-iv.c: Likewise.
13807         * loop-unroll.c: Likewise.
13808         * lower-subreg.c: Likewise.
13809         * lra-assigns.c: Likewise.
13810         * lra-coalesce.c: Likewise.
13811         * lra-constraints.c: Likewise.
13812         * lra-eliminations.c: Likewise.
13813         * lra-lives.c: Likewise.
13814         * lra-remat.c: Likewise.
13815         * lra-spills.c: Likewise.
13816         * lra.c: Likewise.
13817         * lto-cgraph.c: Likewise.
13818         * lto-compress.c: Likewise.
13819         * lto-opts.c: Likewise.
13820         * lto-section-in.c: Likewise.
13821         * lto-section-out.c: Likewise.
13822         * lto-streamer-in.c: Likewise.
13823         * lto-streamer-out.c: Likewise.
13824         * lto-streamer.c: Likewise.
13825         * mcf.c: Likewise.
13826         * mode-switching.c: Likewise.
13827         * modulo-sched.c: Likewise.
13828         * omega.c: Likewise.
13829         * omp-low.c: Likewise.
13830         * optabs.c: Likewise.
13831         * opts-global.c: Likewise.
13832         * passes.c: Likewise.
13833         * plugin.c: Likewise.
13834         * postreload-gcse.c: Likewise.
13835         * postreload.c: Likewise.
13836         * predict.c: Likewise.
13837         * print-rtl.c: Likewise.
13838         * print-tree.c: Likewise.
13839         * profile.c: Likewise.
13840         * real.c: Likewise.
13841         * realmpfr.c: Likewise.
13842         * recog.c: Likewise.
13843         * ree.c: Likewise.
13844         * reg-stack.c: Likewise.
13845         * regcprop.c: Likewise.
13846         * reginfo.c: Likewise.
13847         * regrename.c: Likewise.
13848         * regstat.c: Likewise.
13849         * reload.c: Likewise.
13850         * reload1.c: Likewise.
13851         * reorg.c: Likewise.
13852         * resource.c: Likewise.
13853         * rtl-chkp.c: Likewise.
13854         * rtlanal.c: Likewise.
13855         * rtlhooks.c: Likewise.
13856         * sanopt.c: Likewise.
13857         * sched-deps.c: Likewise.
13858         * sched-ebb.c: Likewise.
13859         * sched-rgn.c: Likewise.
13860         * sched-vis.c: Likewise.
13861         * sdbout.c: Likewise.
13862         * sel-sched-dump.c: Likewise.
13863         * sel-sched-ir.c: Likewise.
13864         * sel-sched.c: Likewise.
13865         * sese.c: Likewise.
13866         * shrink-wrap.c: Likewise.
13867         * simplify-rtx.c: Likewise.
13868         * stack-ptr-mod.c: Likewise.
13869         * stmt.c: Likewise.
13870         * stor-layout.c: Likewise.
13871         * store-motion.c: Likewise.
13872         * stringpool.c: Likewise.
13873         * symtab.c: Likewise.
13874         * target-globals.c: Likewise.
13875         * targhooks.c: Likewise.
13876         * toplev.c: Likewise.
13877         * tracer.c: Likewise.
13878         * trans-mem.c: Likewise.
13879         * tree-affine.c: Likewise.
13880         * tree-browser.c: Likewise.
13881         * tree-call-cdce.c: Likewise.
13882         * tree-cfg.c: Likewise.
13883         * tree-cfgcleanup.c: Likewise.
13884         * tree-chkp-opt.c: Likewise.
13885         * tree-chkp.c: Likewise.
13886         * tree-chrec.c: Likewise.
13887         * tree-complex.c: Likewise.
13888         * tree-data-ref.c: Likewise.
13889         * tree-dfa.c: Likewise.
13890         * tree-diagnostic.c: Likewise.
13891         * tree-dump.c: Likewise.
13892         * tree-eh.c: Likewise.
13893         * tree-emutls.c: Likewise.
13894         * tree-if-conv.c: Likewise.
13895         * tree-inline.c: Likewise.
13896         * tree-into-ssa.c: Likewise.
13897         * tree-iterator.c: Likewise.
13898         * tree-loop-distribution.c: Likewise.
13899         * tree-nested.c: Likewise.
13900         * tree-nrv.c: Likewise.
13901         * tree-object-size.c: Likewise.
13902         * tree-outof-ssa.c: Likewise.
13903         * tree-parloops.c: Likewise.
13904         * tree-phinodes.c: Likewise.
13905         * tree-predcom.c: Likewise.
13906         * tree-pretty-print.c: Likewise.
13907         * tree-profile.c: Likewise.
13908         * tree-scalar-evolution.c: Likewise.
13909         * tree-sra.c: Likewise.
13910         * tree-ssa-address.c: Likewise.
13911         * tree-ssa-alias.c: Likewise.
13912         * tree-ssa-ccp.c: Likewise.
13913         * tree-ssa-coalesce.c: Likewise.
13914         * tree-ssa-copy.c: Likewise.
13915         * tree-ssa-copyrename.c: Likewise.
13916         * tree-ssa-dce.c: Likewise.
13917         * tree-ssa-dom.c: Likewise.
13918         * tree-ssa-dse.c: Likewise.
13919         * tree-ssa-forwprop.c: Likewise.
13920         * tree-ssa-ifcombine.c: Likewise.
13921         * tree-ssa-live.c: Likewise.
13922         * tree-ssa-loop-ch.c: Likewise.
13923         * tree-ssa-loop-im.c: Likewise.
13924         * tree-ssa-loop-ivcanon.c: Likewise.
13925         * tree-ssa-loop-ivopts.c: Likewise.
13926         * tree-ssa-loop-manip.c: Likewise.
13927         * tree-ssa-loop-niter.c: Likewise.
13928         * tree-ssa-loop-prefetch.c: Likewise.
13929         * tree-ssa-loop-unswitch.c: Likewise.
13930         * tree-ssa-loop.c: Likewise.
13931         * tree-ssa-math-opts.c: Likewise.
13932         * tree-ssa-operands.c: Likewise.
13933         * tree-ssa-phiopt.c: Likewise.
13934         * tree-ssa-phiprop.c: Likewise.
13935         * tree-ssa-pre.c: Likewise.
13936         * tree-ssa-propagate.c: Likewise.
13937         * tree-ssa-reassoc.c: Likewise.
13938         * tree-ssa-sccvn.c: Likewise.
13939         * tree-ssa-scopedtables.c: Likewise.
13940         * tree-ssa-sink.c: Likewise.
13941         * tree-ssa-strlen.c: Likewise.
13942         * tree-ssa-structalias.c: Likewise.
13943         * tree-ssa-tail-merge.c: Likewise.
13944         * tree-ssa-ter.c: Likewise.
13945         * tree-ssa-threadedge.c: Likewise.
13946         * tree-ssa-threadupdate.c: Likewise.
13947         * tree-ssa-uncprop.c: Likewise.
13948         * tree-ssa-uninit.c: Likewise.
13949         * tree-ssa.c: Likewise.
13950         * tree-ssanames.c: Likewise.
13951         * tree-stdarg.c: Likewise.
13952         * tree-streamer-in.c: Likewise.
13953         * tree-streamer-out.c: Likewise.
13954         * tree-streamer.c: Likewise.
13955         * tree-switch-conversion.c: Likewise.
13956         * tree-tailcall.c: Likewise.
13957         * tree-vect-data-refs.c: Likewise.
13958         * tree-vect-generic.c: Likewise.
13959         * tree-vect-loop-manip.c: Likewise.
13960         * tree-vect-loop.c: Likewise.
13961         * tree-vect-patterns.c: Likewise.
13962         * tree-vect-slp.c: Likewise.
13963         * tree-vect-stmts.c: Likewise.
13964         * tree-vectorizer.c: Likewise.
13965         * tree-vrp.c: Likewise.
13966         * tree.c: Likewise.
13967         * tsan.c: Likewise.
13968         * ubsan.c: Likewise.
13969         * valtrack.c: Likewise.
13970         * value-prof.c: Likewise.
13971         * var-tracking.c: Likewise.
13972         * varasm.c: Likewise.
13973         * varpool.c: Likewise.
13974         * vmsdbgout.c: Likewise.
13975         * vtable-verify.c: Likewise.
13976         * web.c: Likewise.
13977         * wide-int.cc: Likewise.
13978         * xcoffout.c: Likewise.
13979         * config/aarch64/aarch64-builtins.c: Likewise.
13980         * config/aarch64/aarch64.c: Likewise.
13981         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13982         * config/alpha/alpha.c: Likewise.
13983         * config/arc/arc.c: Likewise.
13984         * config/arm/aarch-common.c: Likewise.
13985         * config/arm/arm-builtins.c: Likewise.
13986         * config/arm/arm-c.c: Likewise.
13987         * config/arm/arm.c: Likewise.
13988         * config/avr/avr-c.c: Likewise.
13989         * config/avr/avr-log.c: Likewise.
13990         * config/avr/avr.c: Likewise.
13991         * config/bfin/bfin.c: Likewise.
13992         * config/c6x/c6x.c: Likewise.
13993         * config/cr16/cr16.c: Likewise.
13994         * config/cris/cris.c: Likewise.
13995         * config/darwin-c.c: Likewise.
13996         * config/darwin.c: Likewise.
13997         * config/epiphany/epiphany.c: Likewise.
13998         * config/epiphany/mode-switch-use.c: Likewise.
13999         * config/epiphany/resolve-sw-modes.c: Likewise.
14000         * config/fr30/fr30.c: Likewise.
14001         * config/frv/frv.c: Likewise.
14002         * config/ft32/ft32.c: Likewise.
14003         * config/h8300/h8300.c: Likewise.
14004         * config/i386/i386-c.c: Likewise.
14005         * config/i386/i386.c: Likewise.
14006         * config/i386/msformat-c.c: Likewise.
14007         * config/i386/winnt-cxx.c: Likewise.
14008         * config/i386/winnt-stubs.c: Likewise.
14009         * config/i386/winnt.c: Likewise.
14010         * config/ia64/ia64-c.c: Likewise.
14011         * config/ia64/ia64.c: Likewise.
14012         * config/iq2000/iq2000.c: Likewise.
14013         * config/lm32/lm32.c: Likewise.
14014         * config/m32c/m32c-pragma.c: Likewise.
14015         * config/m32c/m32c.c: Likewise.
14016         * config/m32r/m32r.c: Likewise.
14017         * config/m68k/m68k.c: Likewise.
14018         * config/mcore/mcore.c: Likewise.
14019         * config/mep/mep-pragma.c: Likewise.
14020         * config/mep/mep.c: Likewise.
14021         * config/microblaze/microblaze-c.c: Likewise.
14022         * config/microblaze/microblaze.c: Likewise.
14023         * config/mips/mips.c: Likewise.
14024         * config/mmix/mmix.c: Likewise.
14025         * config/mn10300/mn10300.c: Likewise.
14026         * config/moxie/moxie.c: Likewise.
14027         * config/msp430/msp430-c.c: Likewise.
14028         * config/msp430/msp430.c: Likewise.
14029         * config/nds32/nds32-cost.c: Likewise.
14030         * config/nds32/nds32-fp-as-gp.c: Likewise.
14031         * config/nds32/nds32-intrinsic.c: Likewise.
14032         * config/nds32/nds32-isr.c: Likewise.
14033         * config/nds32/nds32-md-auxiliary.c: Likewise.
14034         * config/nds32/nds32-memory-manipulation.c: Likewise.
14035         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
14036         * config/nds32/nds32-predicates.c: Likewise.
14037         * config/nds32/nds32.c: Likewise.
14038         * config/nios2/nios2.c: Likewise.
14039         * config/nvptx/nvptx.c: Likewise.
14040         * config/pa/pa.c: Likewise.
14041         * config/pdp11/pdp11.c: Likewise.
14042         * config/rl78/rl78-c.c: Likewise.
14043         * config/rl78/rl78.c: Likewise.
14044         * config/rs6000/rs6000-c.c: Likewise.
14045         * config/rs6000/rs6000.c: Likewise.
14046         * config/rx/rx.c: Likewise.
14047         * config/s390/s390-c.c: Likewise.
14048         * config/s390/s390.c: Likewise.
14049         * config/sh/sh-c.c: Likewise.
14050         * config/sh/sh-mem.cc: Likewise.
14051         * config/sh/sh.c: Likewise.
14052         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
14053         * config/sh/sh_treg_combine.cc: Likewise.
14054         * config/sol2-c.c: Likewise.
14055         * config/sol2-cxx.c: Likewise.
14056         * config/sol2-stubs.c: Likewise.
14057         * config/sol2.c: Likewise.
14058         * config/sparc/sparc-c.c: Likewise.
14059         * config/sparc/sparc.c: Likewise.
14060         * config/spu/spu-c.c: Likewise.
14061         * config/spu/spu.c: Likewise.
14062         * config/stormy16/stormy16.c: Likewise.
14063         * config/tilegx/mul-tables.c: Likewise.
14064         * config/tilegx/tilegx-c.c: Likewise.
14065         * config/tilegx/tilegx.c: Likewise.
14066         * config/tilepro/mul-tables.c: Likewise.
14067         * config/tilepro/tilepro-c.c: Likewise.
14068         * config/tilepro/tilepro.c: Likewise.
14069         * config/v850/v850-c.c: Likewise.
14070         * config/v850/v850.c: Likewise.
14071         * config/vax/vax.c: Likewise.
14072         * config/visium/visium.c: Likewise.
14073         * config/vms/vms-c.c: Likewise.
14074         * config/vms/vms.c: Likewise.
14075         * config/vxworks.c: Likewise.
14076         * config/xtensa/xtensa.c: Likewise.
14077
14078 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
14079
14080         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
14081         Remove operand constraints.  Change operand 2 predicate to
14082         nonmemory operand.  Limit const_int values to mode bitsize.  Only
14083         allow const_int values less than 32 when optimizing for size.
14084         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
14085         Remove operand constraints.
14086         (*bt<mode>): Use SImode for const_int values less than 32.
14087         (regmode): Remove mode attribute.
14088
14089 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
14090
14091         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
14092         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
14093           moxie_legitimate_address_p): New functions.
14094           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
14095
14096 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14097
14098         PR tree-optimization/66642
14099         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
14100         header comment.  Rename split_edge variable to edge_at_split.  Split
14101         exit edge to create new loop exit bb.  Insert loop exit phis in new
14102         loop exit bb.
14103
14104 2015-07-07  Tom de Vries  <tom@codesourcery.com>
14105
14106         * tree-cfg.c (get_virtual_phi): New function.
14107         * tree-cfg.h (get_virtual_phi): Declare.
14108         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
14109         (rewrite_virtuals_into_loop_closed_ssa): New function.
14110         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
14111         Declare.
14112         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
14113         (transform_to_exit_first_loop_alt): Use
14114         rewrite_virtuals_into_loop_closed_ssa.
14115
14116 2015-07-07  Richard Biener  <rguenther@suse.de>
14117
14118         * fold-const.c (fold_binary_loc): Move
14119         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
14120         * match.pd: ... here.
14121         Add (X * C1) % C2 -> 0 simplification pattern derived from
14122         extract_muldiv_1.
14123
14124 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
14125
14126         PR target/66780
14127         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
14128         change for target/65249.
14129
14130 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
14131
14132         * symtab.c (address_matters_1): Fix typo in comment above.
14133         (can_increase_alignment_p): Likewise.
14134
14135 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
14136
14137         * function.c (free_after_compilation): Clear PROP_cfg in
14138         f->curr_properties.
14139
14140 2015-07-07  Richard Biener  <rguenther@suse.de>
14141
14142         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
14143         add which use to.
14144         (add_control_edge): Remove excessive vertical space in dumping.
14145         (process_ssa_edge_worklist): Simulate at most one statement and
14146         return whether we did.  Do not simulate PHIs if they are in a
14147         BB not yet simulated.
14148         (ssa_propagate): Adjust to always drain the BB worklist whenever
14149         a BB is available there, likewise the VARYING edges list before
14150         the interesting edge list.
14151
14152 2015-07-07  Christian Bruel  <christian.bruel@st.com>
14153
14154         PR target/52144
14155         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
14156
14157 2015-07-07  Richard Biener  <rguenther@suse.de>
14158
14159         PR middle-end/66739
14160         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
14161         A - B.
14162
14163 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14164
14165         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
14166         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
14167         Copy operand 0 to a temporary if !ext_register_operand.  Remove
14168         ancient extract_bit_field workaround.
14169         (insv<mode>_1): Rename from mov<mode>_insv_1.
14170         (*insvqi): Rename from *movqi_insv_2.
14171         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
14172         for renamed insvsi_1.
14173         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
14174
14175 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
14176
14177         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
14178         call to nvptx_reorg_subreg.
14179
14180 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
14181
14182         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
14183         * graphite-dependencies.c, graphite-interchange.c,
14184         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
14185         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
14186         Likewise.
14187
14188 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
14189
14190         * match.pd: Remove element_mode inside HONOR_*.
14191         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
14192         (~X | X -> -1, ~X ^ X -> -1): Merge.
14193         * tree.c (build_each_one_cst): New function.
14194         * tree.h (build_each_one_cst): Likewise.
14195
14196 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14197
14198         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14199         PROCESSOR_IAMCU.
14200
14201 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
14202
14203         * config.gcc <mips*-*-*>: Add fused-madd.opt.
14204         * config/mips/mips.opt (mfused-madd): Remove.
14205         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
14206         * config/mips/mips.h (TARGET_MIPS8000): New.
14207         (ISA_HAS_FP_MADD4_MSUB4): Remove.
14208         (ISA_HAS_FP_MADDF_MSUBF): Remove.
14209         (ISA_HAS_FP_MADD3_MSUB3): Remove.
14210         (ISA_HAS_NMADD4_NMSUB4): Remove.
14211         (ISA_HAS_NMADD3_NMSUB3): Remove.
14212         (ISA_HAS_FUSED_MADD4): New.
14213         (ISA_HAS_UNFUSED_MADD4): New.
14214         (ISA_HAS_FUSED_MADDF): New.
14215         (ISA_HAS_FUSED_MADD3): New.
14216         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
14217         (*fma<mode>4_madd3) New.
14218         (*fma<mode>4_madd4) New.
14219         (*fma<mode>4_maddf) New.
14220         (fms<mode>4) New.
14221         (*fms<mode>4_msub3) New.
14222         (*fms<mode>4_msub4) New.
14223         (fnma<mode>4) New.
14224         (*fnma<mode>4_nmadd3) New.
14225         (*fnma<mode>4_nmadd4) New.
14226         (fnms<mode>4) New.
14227         (*fnms<mode>4_nmsub3) New.
14228         (*fnms<mode>4_nmsub4) New.
14229         (*madd4<mode>) Modify to be unfused only.
14230         (*msub4<mode>) Modify to be unfused only.
14231         (*nmadd4<mode>) Modify to be unfused only.
14232         (*nmsub4<mode>) Modify to be unfused only.
14233         (*madd3<mode>) Remove.
14234         (*msub3<mode>) Remove.
14235         (*nmadd3<mode>) Remove.
14236         (*nmsub3<mode>) Remove.
14237         (*nmadd3<mode>_fastmath) Remove.
14238         (*nmsub3<mode>_fastmath) Remove.
14239         (*nmadd4<mode>_fastmath) Update condition.
14240         (*nmsub4<mode>_fastmath) Update condition.
14241
14242 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14243
14244         PR target/65956
14245         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
14246         alignment attribute, exploring one level down for records and arrays.
14247
14248 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
14249
14250         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
14251         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
14252         Copy operand 1 to a temporary if !ext_register_operand.  Remove
14253         ancient extract_bit_field workaround.
14254         (*extv<mode>): Rename from *mov<mode>_extv_1.
14255         (*extvqi): Rename from *movqi_extv_1.
14256         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
14257         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
14258         to a temporary if !ext_register_operand.  Remove ancient
14259         extract_bit_field workaround.
14260         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
14261         (*extzvqi): Rename from *movqi_extzv_2.
14262         (*testqi_ext_3): Remove modes from const_int_operand predicated
14263         operands.  Add "n" constraint.
14264         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
14265         operand.  Add "J" constraint.
14266         (*btsq, *btrq, *btcq peephole2s): Remove mode from
14267         const_0_to_63 predicated operand.
14268         (regmode): New insn attribute.
14269         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
14270         to nonmemory_operand.  Use regmode insn attribute.
14271         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
14272         (*jcc_bt<mode>_mask): Remove mode from operand 3.
14273         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
14274         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
14275         operands.  Use "N" constraint instead of "n".
14276
14277 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
14278
14279         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
14280
14281 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14282
14283         PR target/66749
14284         * config/i386/i386.c (iamcu_cost): New.
14285         (m_IAMCU): Likewise.
14286         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
14287         (processor_target_table): Add an entry for "iamcu".
14288         (processor_alias_table): Likewise.
14289         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
14290         (ix86_adjust_cost): Likewise.
14291         (ia32_multipass_dfa_lookahead): Likewise.
14292         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
14293         * config/i386/x86-tune.def: Updated for m_IAMCU.
14294
14295 2015-07-06  Richard Biener  <rguenther@suse.de>
14296
14297         PR tree-optimization/66772
14298         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
14299         values are available in the PHI node BB when there are
14300         still unexecutable edges.
14301
14302 2015-07-06  Richard Biener  <rguenther@suse.de>
14303
14304         PR tree-optimization/66767
14305         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
14306         Make sure to build the alignment test on a SSA name without
14307         final alignment info valid only if the alignment test
14308         evaluates to true.
14309
14310 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
14311
14312         PR target/66620
14313         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
14314         loop start when inserting LSETUP.
14315
14316 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
14317
14318         PR target/53383
14319         * config/i386/i386.c (ix86_option_override_internal): Allow
14320         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
14321
14322 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14323
14324         * read-md.c (decimal_string): Rename to ...
14325         (md_decimal_string): ... this.
14326         (handle_enum): Reflect this.
14327
14328 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
14329
14330         PR target/66731
14331         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
14332
14333 2015-07-06  Richard Biener  <rguenther@suse.de>
14334
14335         PR middle-end/66759
14336         * match.pd: Add missing constraint of y to REAL_CST in
14337         REAL_CST - x CMP y to y - CST CMP x simplification.
14338
14339 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
14340
14341         PR tree-optimization/66757
14342         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
14343
14344 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
14345             Sandra Loosemore <sandra@codesourcery.com>
14346
14347         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
14348         Delete extern declaration.
14349         (gprel_constant_p): Add extern declaration.
14350         * config/nios2/constraints.md ("S"): Use gprel_constant_p
14351         instead of nios2_symbol_ref_in_small_data_p.
14352         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
14353         (nios2_symbol_ref_in_small_data_p): Make static.
14354         (gprel_constant_p): Make non-static.
14355
14356 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
14357
14358         * doc/fragments.texi (Target Fragment): Convert debian.org
14359         link to use https.
14360         * doc/install.texi (Configuration): Ditto.
14361
14362 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
14363
14364         PR tree-optimization/66718
14365         * tree-vect-stmts.c (vectorizable_call): Replace uses of
14366         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
14367
14368         PR tree-optimization/66718
14369         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
14370         vectorizable_load, vectorizable_condition): Move vectype,
14371         nunits, ncopies computation after checking what kind of statement
14372         stmt is.
14373
14374 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14375
14376         * target-insns.def (extv, extzv, insv): New targetm instruction
14377         patterns.
14378         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
14379         interface.
14380         * recog.c (simplify_while_replacing): Likewise.
14381
14382 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14383
14384         * target-insns.def (doloop_begin, doloop_end): New targetm
14385         instruction patterns.
14386         * loop-init.c: Include target.h.
14387         (pass_loop2::gate): Use the new targetm patterns instead of
14388         HAVE_*/gen_* interface.
14389         (pass_rtl_doloop::gate): Likewise.
14390         (pass_rtl_doloop::execute): Remove preprocessor condition.
14391         * hw-doloop.c: Build unconditionally.
14392         * loop-doloop.c: Likewise.
14393         (doloop_optimize): Use the new targetm patterns instead of
14394         HAVE_*/gen_* interface.
14395         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
14396         * modulo-sched.c (doloop_register_get): Likewise.
14397
14398 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14399
14400         * target-insns.def (clear_cache): New targetm instruction pattern.
14401         * builtins.c (expand_builtin___clear_cache): Use it instead of
14402         HAVE_*/gen_* interface.
14403
14404 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14405
14406         * target-insns.def (allocate_stack, check_stack, probe_stack)
14407         (probe_stack_address, split_stack_prologue, split_stack_space_check):
14408         New targetm instruction patterns.
14409         * explow.c (allocate_dynamic_stack_space): Use them instead of
14410         HAVE_*/gen_* interface.
14411         (emit_stack_probe): Likewise.
14412         (probe_stack_range): Likewise.
14413         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14414
14415 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14416
14417         * target-insns.def (stack_protect_set, stack_protect_test): New
14418         targetm instruction patterns.
14419         * cfgexpand.c (stack_protect_prologue): Use them instead of
14420         HAVE_*/gen_* interface.
14421         * function.c (stack_protect_epilogue): Likewise.
14422
14423 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14424
14425         * expr.h (gen_move_insn_uncast): Delete.
14426         * expr.c (gen_move_insn_uncast): Delete.
14427
14428 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14429
14430         * target-insns.def (restore_stack_block, restore_stack_function)
14431         (restore_stack_nonlocal, save_stack_block, save_stack_function)
14432         (save_stack_nonlocal): New targetm instruction patterns.
14433         * builtins.c (expand_builtin_apply): Use them instead of
14434         HAVE_*/gen_* interface.
14435         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
14436
14437 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14438
14439         * target-insns.def (trap): New targetm instruction pattern.
14440         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
14441         interface.
14442         * explow.c (allocate_dynamic_stack_space): Likewise.
14443         * ifcvt.c (find_if_header): Likewise.
14444
14445 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14446
14447         * target-insns.def (prefetch): New targetm instruction pattern.
14448         * tree-ssa-loop-prefetch.c: Include targeth.
14449         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
14450         of HAVE_*/gen_* interface.
14451         * builtins.c (expand_builtin_prefetch): Likewise.
14452         * toplev.c (process_options): Likewise.
14453
14454 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14455
14456         * target-insns.def (untyped_call, untyped_return): New targetm
14457         instruction patterns.
14458         * builtins.c (expand_builtin_apply): Use them instead of
14459         HAVE_*/gen_* interface.
14460         (result_vector): Define unconditionally.
14461
14462 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14463
14464         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
14465         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
14466         (nonlocal_goto_receiver): New targetm instruction patterns.
14467         * builtins.c (expand_builtin_setjmp_setup): Use them instead
14468         of HAVE_*/gen_* interface.
14469         (expand_builtin_setjmp_receiver): Likewise.
14470         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
14471         * except.c (expand_dw2_landing_pad_for_region): Likewise.
14472
14473 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
14474
14475         * target.def: Add code_for_* hooks.
14476         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
14477         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
14478         * target-insns.def (casesi, tablejump): New targetm instruction
14479         patterns.
14480         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
14481         (do_tablejump): Likewise.
14482         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
14483         (expand_sjlj_dispatch_table): Likewise.
14484         * targhooks.c (default_case_values_threshold): Likewise.
14485
14486 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
14487
14488         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
14489         Use rtx_insn * instead of rtx.
14490         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
14491         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
14492         (nios2_call_tls_get_addr): Likewise.
14493         (nios2_emit_expensive_div): Likewise.
14494         (nios2_emit_move_sequence): Change return type to bool.
14495         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
14496         Change return type to bool.
14497
14498 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14499
14500         PR target/66747
14501         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
14502
14503 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
14504
14505         PR target/66114
14506         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
14507         of register_operand.  Remove constraint.
14508
14509 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
14510
14511         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
14512         the first argument.
14513
14514 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
14515
14516         * attribs.c (decl_attributes): Guard inform with the return value
14517         of the preceding warning.
14518
14519 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14520
14521         * doc/invoke.texi (moverride): Move to correct section.
14522
14523 2015-07-03  Richard Biener  <rguenther@suse.de>
14524
14525         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
14526         Copy from tree.c
14527         (dt_operand::gen_gimple_expr): After valueizing operands
14528         re-canonicalize operand order for commutative tree codes.
14529
14530 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
14531
14532         PR target/66746.
14533         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
14534         is defined.
14535         (__crc32w): Likewise.
14536         (__crc32d): Likewise.
14537         (__rdpmc): Likewise.
14538         (__rdtscp): Likewise.
14539         (_rdpmc): Likewise.
14540         (_rdtscp): Likewise.
14541         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
14542         is defined.
14543
14544 2015-07-03  Richard Biener  <rguenther@suse.de>
14545
14546         * fold-const.c (fold_mathfn_compare): Remove.
14547         (fold_inf_compare): Likewise.
14548         (fold_comparison): Move floating point comparison simplifications...
14549         * match.pd: ... to patterns here.  Introduce simple_comparisons
14550         operator list and use it for patterns formerly in fold_comparison.
14551
14552 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
14553
14554         PR tree-optimization/66119
14555         * toplev.c (process_options): Don't set up default values for
14556         the sra_max_scalarization_size_{speed,size} parameters.
14557         * tree-sra (analyze_all_variable_accesses): If no values
14558         have been set for the sra_max_scalarization_size_{speed,size}
14559         parameters, call get_move_ratio to get target defaults.
14560
14561 2015-07-03  Richard Biener  <rguenther@suse.de>
14562
14563         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
14564         * match.pd: ... here.
14565
14566 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
14567
14568         PR target/37072
14569         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
14570         is not actually the default on FreeBSD.
14571
14572 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14573
14574         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
14575         definition.
14576         (CMPGE_8HI): Likewise.
14577         (CMPGE_4SI): Likewise.
14578         (CMPGE_2DI): Likewise.
14579         (CMPGE_U16QI): Likewise.
14580         (CMPGE_U8HI): Likewise.
14581         (CMPGE_U4SI): Likewise.
14582         (CMPGE_U2DI): Likewise.
14583         (CMPLE_16QI): Likewise.
14584         (CMPLE_8HI): Likewise.
14585         (CMPLE_4SI): Likewise.
14586         (CMPLE_2DI): Likewise.
14587         (CMPLE_U16QI): Likewise.
14588         (CMPLE_U8HI): Likewise.
14589         (CMPLE_U4SI): Likewise.
14590         (CMPLE_U2DI): Likewise.
14591         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14592         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
14593         ALTIVEC_BUILTIN_VEC_CMPLE.
14594         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
14595         floating-point vector modes.
14596         (vector_nlt<mode>): New define_expand.
14597         (vector_nltu<mode>): Likewise.
14598         (vector_ngt<mode>): Likewise.
14599         (vector_ngtu<mode>): Likewise.
14600
14601 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
14602
14603         PR rtl-optimization/66706
14604         * combine.c (make_compound_operation): If an AND of SUBREG of
14605         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
14606
14607 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
14608
14609         * tree-pass.h (make_pass_ch_vect): New.
14610         * passes.def: Add pass_ch_vect just before pass_if_conversion.
14611
14612         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
14613         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
14614         make_pass_ch_vect): New.
14615         (pass_ch): Extend ch_base.
14616
14617         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
14618         (ch_base::copy_headers): ...here.
14619
14620 2015-07-02  Richard Biener  <rguenther@suse.de>
14621
14622         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
14623         * fold-const.c (get_pointer_modulus_and_residue): Remove.
14624         (fold_binary_loc): Implement (T)ptr & CST in terms of
14625         get_pointer_alignment_1.
14626         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
14627         Make sure to build the alignment test on a SSA name without
14628         final alignment info valid only after the prologue.
14629
14630 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
14631
14632         * config/cris/cris.md ("epilogue"): Remove condition.
14633         ("prologue"): Ditto.
14634
14635 2015-07-02  Richard Biener  <rguenther@suse.de>
14636
14637         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
14638         parameter to record a condition that is false.
14639         (record_conditions): When recording an extra NE_EXPR that is
14640         true also record a EQ_EXPR that is false.
14641
14642 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
14643
14644         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
14645         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
14646         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
14647         (set_iv, find_interesting_uses_address, add_candidate_1): New
14648         argument to alloc_iv.
14649         (find_interesting_uses_op, find_interesting_uses_cond): Don't
14650         duplicate struct iv.
14651         (free_loop_data): Don't free struct iv explicitly.
14652         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
14653
14654 2015-07-01  DJ Delorie  <dj@redhat.com>
14655
14656         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
14657         (LIB_SPEC): Add.
14658         (SUPPORTS_DISCRIMINATOR): Define.
14659
14660 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14661
14662         PR bootstrap/66685
14663         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
14664         there are no CALLs in the same pattern.
14665
14666 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14667
14668         PR rtl-optimization/61047
14669         * rtlanal.c (get_initial_register_offset): New function.
14670         (rtx_addr_can_trap_p_1): Check offsets of stack references.
14671
14672 2015-07-01  Richard Biener  <rguenther@suse.de>
14673
14674         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
14675         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
14676         ~X CMP C -> X CMP' ~C to ...
14677         * match.pd: ... patterns here.
14678
14679 2015-07-01  Nick Clifton  <nickc@redhat.com>
14680
14681         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
14682         a 16-bit value into a 20-bit memory slot.
14683
14684 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14685
14686         * doc/sourcebuild.texi (AArch64-specific attributes): Document
14687         "aarch64_tiny", "aarch64_small", "aarch64_large",
14688         "aarch64_little_endian", "aarch64_big_endian".
14689
14690 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14691
14692         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
14693         Document "aarch64_small_fpic".
14694
14695 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
14696
14697         * configure.ac: Add check for aarch64 assembler -fpic relocation
14698         modifier support.
14699         * configure: Regenerate.
14700         * config.in: Regenerate.
14701         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
14702         to -fPIC if not support of -fpic relocation modifier in assembler.
14703
14704 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
14705
14706         PR bootstrap/66685
14707         * rtl.c (classify_insn): Handle returns in PARALLELs.
14708
14709 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
14710
14711         PR middle-end/66633
14712         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
14713         to true if the function is nested and if not optimizing.
14714         (convert_local_omp_clauses): Initialize need_frame to true if the
14715         function contains nested functions and if not optimizing.
14716
14717 2015-07-01  Richard Biener  <rguenther@suse.de>
14718
14719         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
14720         (X & Y) ^ Y -> ~X & Y transforms to ...
14721         * match.pd: ... here.
14722
14723 2015-07-01  Richard Biener <rguenther@suse.de>
14724
14725         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
14726         of converts to avoid uninteresting noise from the conversion
14727         simplifying patterns.
14728
14729 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
14730
14731         * config/c6x/c6x.c (try_rename_operands): Do not depend on
14732         gcc_assert evaluating its argument for side-effect.
14733
14734 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
14735
14736         PR target/64833
14737         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
14738         flag_pic is set.
14739
14740 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14741
14742         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
14743         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
14744         (hash_scc): Add this_ref_p and ref_p parameters and pass them
14745         to the inner DFS walk.
14746
14747 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14748
14749         * target-insns.def (jump): New targetm instruction pattern.
14750         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
14751         instead of gen_jump.
14752         (fix_up_crossing_landing_pad): Likewise.
14753         (add_labels_and_missing_jumps): Likewise.
14754         (fix_crossing_conditional_branches): Likewise.
14755         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
14756         (force_nonfallthru_and_redirect): Likewise.
14757         * cse.c (cse_insn): Likewise.
14758         * expmed.c (expand_divmod): Likewise.
14759         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
14760         * haifa-sched.c (init_before_recovery): Likewise.
14761         (sched_create_recovery_edges): Likewise.
14762         * ifcvt.c (find_cond_trap): Likewise.
14763         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
14764         (expand_float, expand_fix): Likewise.
14765         * stmt.c (emit_jump): Likewise.
14766
14767 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14768
14769         * defaults.h (HAVE_load_multiple, gen_load_multiple)
14770         (HAVE_store_multiple, gen_store_multiple): Delete.
14771         * target-insns.def (load_multiple, store_multiple): New targetm
14772         instruction patterns.
14773         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
14774         of HAVE_*/gen_* interface.
14775
14776 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14777
14778         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
14779         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
14780         (gen_mem_signal_fence): Delete.
14781         * target-insns.def (mem_signal_fence, mem_thread_fence)
14782         (memory_barrier): New targetm instruction patterns.
14783         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
14784         interface.
14785         (expand_mem_signal_fence): Likewise.
14786
14787 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
14788
14789         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
14790         * target-insns.def (epilogue, prologue, sibcall_prologue): New
14791         targetm instruction patterns.
14792         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
14793         interface.
14794         * calls.c (expand_call): Likewise.
14795         * cfgrtl.c (cfg_layout_finalize): Likewise.
14796         * df-scan.c (df_get_entry_block_def_set): Likewise.
14797         (df_get_exit_block_use_set): Likewise.
14798         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
14799         * final.c (final_start_function): Likewise.
14800         * function.c (thread_prologue_and_epilogue_insns): Likewise.
14801         (reposition_prologue_and_epilogue_notes): Likewise.
14802         * reorg.c (find_end_label): Likewise.
14803         * toplev.c (process_options): Likewise.
14804
14805 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
14806
14807         * typed-splay-tree.h: New file.
14808
14809 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
14810
14811         PR debug/66691
14812         * lra-int.h (lra_substitute_pseudo): Add a parameter.
14813         (lra_substitute_pseudo_within_insn): Ditto.
14814         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
14815         of constant.
14816         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
14817         to lra_substitute_pseudo.
14818         * lra-lives.c (process_bb_lives): Add an argument to
14819         lra_substitute_pseudo_within_insn call.
14820         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
14821         argument to lra_substitute_pseudo and
14822         lra_substitute_pseudo_within_insn calls.
14823         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
14824
14825 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14826
14827         * configure: Regenerated.
14828
14829 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
14830
14831         * config.gcc: Support i[34567]86-*-elfiamcu target.
14832         * config/i386/iamcu.h: New.
14833         * config/i386/i386.opt: Add -miamcu.
14834         * doc/invoke.texi: Document -miamcu.
14835         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
14836         off x87/MMX/SSE/AVX codegen for -miamcu.
14837         * config/i386/i386-c.c (ix86_target_macros_internal): Define
14838         __iamcu/__iamcu__ for -miamcu.
14839         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
14840         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
14841         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
14842         * config/i386/i386.c (ix86_option_override_internal): Ignore and
14843         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
14844         MCU by default.  Default long double to 64-bit for Intel MCU.
14845         Turn on -freg-struct-return for Intel MCU.  Issue an error when
14846         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
14847         AVX is turned on.
14848         (function_arg_advance_32): Pass value whose size is no larger
14849         than 8 bytes in registers for Intel MCU.
14850         (function_arg_32): Likewise.
14851         (ix86_return_in_memory): Return value whose size is no larger
14852         than 8 bytes in registers for Intel MCU.
14853         (iamcu_alignment): New function.
14854         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
14855         true.
14856         (ix86_local_alignment): Don't increase alignment for Intel MCU.
14857         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
14858         true.
14859
14860 2015-06-30  Marek Polacek  <polacek@redhat.com>
14861
14862         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
14863         both operands of the resulting expression.
14864
14865         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
14866         the final expression with the operand's type and then convert
14867         it to the type of the expression.
14868
14869 2015-06-30  Richard Biener  <rguenther@suse.de>
14870
14871         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
14872         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
14873         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
14874         * match.pd: ... to patterns here.
14875
14876 2015-06-30  Richard Biener  <rguenther@suse.de>
14877
14878         PR tree-optimization/66704
14879         * tree-vect-data-refs.c (vect_setup_realignment): Use
14880         make_ssa_name for non-SSA name source.
14881
14882 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
14883
14884         PR middle-end/66702
14885         * omp-low.c (simd_clone_adjust): Handle addressable linear
14886         or uniform parameters or non-gimple type uniform parameters.
14887
14888 2015-06-30  Richard Biener  <rguenther@suse.de>
14889
14890         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
14891         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
14892         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
14893         * match.pd: ... here.
14894         Add a few cases of A - B -> A + (-B) when B "easily" negates.
14895         Move (x & y) | x -> x and friends before
14896         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
14897
14898 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
14899
14900         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
14901         -mfix-ut699 is not specified.
14902         (leon3_load): Rename into...
14903         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
14904         is specified.
14905
14906 2015-06-30  Marek Polacek  <polacek@redhat.com>
14907
14908         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
14909         * match.pd: ... here.
14910
14911 2015-06-30  Richard Biener  <rguenther@suse.de>
14912
14913         * target-insns.def (canonicalize_funcptr_for_compare): Add.
14914         * fold-const.c (build_range_check): Replace uses of
14915         HAVE_canonicalize_funcptr_for_compare.
14916         (fold_widened_comparison): Likewise.
14917         (fold_sign_changed_comparison): Likewise.
14918         * dojump.c: Include "target.h".
14919         (do_compare_and_jump): Replace uses of
14920         HAVE_canonicalize_funcptr_for_compare and
14921         gen_canonicalize_funcptr_for_compare.
14922         * expr.c (do_store_flag): Likewise.
14923
14924 2015-06-30  Tom de Vries  <tom@codesourcery.com>
14925
14926         PR tree-optimization/66652
14927         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
14928         max_loop_iterations to determine if nit + 1 overflows.
14929
14930 2015-06-30  Richard Biener  <rguenther@suse.de>
14931
14932         * tree-vrp.c (register_edge_assert_for_2): Also register
14933         asserts for dominating conversion results.
14934
14935 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
14936
14937         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
14938         field in struct iv.
14939
14940 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
14941
14942         PR target/66509
14943         * configure.ac: Fix filds and fildq test for 64-bit.
14944         * configure: Regenerated.
14945
14946 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
14947
14948         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
14949         (nvptx_reorg): Here.  Keep the non-subreg pieces.
14950
14951 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
14952
14953         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
14954         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
14955
14956 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
14957
14958         * config/i386/i386.md (*jcc_1): Use %! in asm template.
14959         Set attribute "length_nobnd" instead of "length".
14960         (*jcc_2): Ditto.
14961         (jump): Ditto.
14962         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
14963
14964 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
14965
14966         * config/nios2/nios2.c (nios2_delegitimize_address): Make
14967         assert less restrictive.
14968
14969 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
14970
14971         PR fortran/66605
14972         * cgraphunit.c (cgraph_node::finalize_function): Do not call
14973         do_warn_unused_parameter.
14974         * function.c (do_warn_unused_parameter): Move from here.
14975         * function.h (do_warn_unused_parameter): Do not declare.
14976
14977 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14978
14979         PR target/65697
14980         * gcc.target/arm/armv-sync-comp-swap.c: New.
14981         * gcc.target/arm/armv-sync-op-acquire.c: New.
14982         * gcc.target/arm/armv-sync-op-full.c: New.
14983         * gcc.target/arm/armv-sync-op-release.c: New.
14984
14985 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14986
14987         PR target/65697
14988         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
14989         initial acquire barrier with final barrier.
14990
14991 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
14992
14993         PR target/65697
14994         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
14995         initial acquire barrier with final barrier.
14996
14997 2015-06-29  Richard Henderson  <rth@redhat.com>
14998
14999         * config/i386/constraints.md (Bf): New constraint.
15000         * config/i386/i386-c.c (ix86_target_macros): Define
15001         __GCC_ASM_FLAG_OUTPUTS__.
15002         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
15003         as flags outputs.
15004         * doc/extend.texi (FlagOutputOperands): Document them.
15005
15006 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
15007
15008         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
15009         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
15010         unspec name.
15011         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
15012         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
15013         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
15014         (aarch64_symbol_context): Ditto.
15015         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
15016         and use new pattern name.
15017         (aarch64_expand_mov_immediate): Ditto.
15018         (aarch64_print_operand): Ditto.
15019         (aarch64_classify_tls_symbol): Ditto.
15020
15021 2015-06-29  Marek Polacek  <polacek@redhat.com>
15022             Marc Glisse  <marc.glisse@inria.fr>
15023
15024         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
15025         * match.pd: ... pattern here.
15026
15027 2015-06-29  Tom de Vries  <tom@codesourcery.com>
15028
15029         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
15030         function structure.
15031
15032 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
15033
15034         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
15035         feature description, split out the native option, add a link to
15036         the feature documentation, rearrange and slightly rewrite text.
15037         (Aarch64 options, -mcpu): Likewise.
15038         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
15039         +rdma implies Adv. SIMD.
15040
15041 2015-06-29  Marek Polacek  <polacek@redhat.com>
15042
15043         PR c/66322
15044         * function.c (stack_protect_epilogue): Remove a cast to int.
15045         * doc/invoke.texi: Update -Wswitch-bool description.
15046
15047 2015-06-29  Richard Biener  <rguenther@suse.de>
15048
15049         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
15050         * fold-const.c (fold_binary_loc): Move &A - &B simplification
15051         via ptr_difference_const ...
15052         * match.pd: ... here.
15053         When matching (X ^ Y) == Y also match with swapped operands.
15054
15055 2015-06-29  Richard Biener  <rguenther@suse.de>
15056
15057         * lto-streamer.h (LTO_major_version): Bump to 5.
15058
15059 2015-06-29  Richard Biener  <rguenther@suse.de>
15060
15061         PR tree-optimization/66677
15062         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
15063         STMT_VINFO_VEC_STMT clobbering less strict.
15064
15065 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
15066
15067         PR middle-end/64130
15068         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
15069         division, compute max and min when value ranges for dividend and
15070         divisor are available.
15071
15072 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
15073             Sandra Loosemore <sandra@codesourcery.com>
15074
15075         * regrename.h (regrename_do_replace): Change to return bool.
15076         * regrename.c (rename_chains): Check return value of
15077         regname_do_replace.
15078         (regrename_do_replace): Re-validate the modified insns and
15079         return bool status.
15080         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
15081         Update to match rename_chains changes.
15082         * config/c6x/c6x.c (try_rename_operands): Assert that
15083         regrename_do_replace returns true.
15084
15085 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
15086
15087         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
15088         operand 2 here.  Use copy_addr_to_reg to copy non-index
15089         register operand 2 to a temporary.
15090         (<mode>_stx): Ditto for operand 1.
15091         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
15092         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
15093         (ix86_store_bounds): Ditto.
15094
15095 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
15096
15097         * print-tree.c (print_node) [TREE_VEC]: Print its length.
15098
15099 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
15100
15101         * gimple.c (gimple_call_set_fndecl): Remove.
15102         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
15103         build1_loc directly instead of build_fold_addr_expr_loc.
15104
15105 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15106
15107         * hash-map.h (hash_map::traverse): Use the definition of the
15108         Key typedef rather than the typedef itself.
15109
15110 2015-06-26  Martin Jambor  <mjambor@suse.cz>
15111
15112         PR debug/66301
15113         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
15114         NULL instead of calling dump_enabled_p.
15115
15116 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15117
15118         * config/aarch64/aarch64.opt: (override): New.
15119         * doc/invoke.texi (override): Document.
15120         * config/aarch64/aarch64.c (aarch64_flag_desc): New
15121         (aarch64_fusible_pairs): Likewise.
15122         (aarch64_tuning_flags): Likewise.
15123         (aarch64_tuning_override_function): Likewise.
15124         (aarch64_tuning_override_functions): Likewise.
15125         (aarch64_parse_one_option_token): Likewise.
15126         (aarch64_parse_boolean_options): Likewise.
15127         (aarch64_parse_fuse_string): Likewise.
15128         (aarch64_parse_tune_string): Likewise.
15129         (aarch64_parse_one_override_token): Likewise.
15130         (aarch64_parse_override_string): Likewise.
15131         (aarch64_override_options): Parse the -override string if it
15132         is present.
15133
15134 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15135
15136         * config/aarch64/aarch64-protos.h (tune_params): Remove
15137         const from members.
15138         (aarch64_tune_params): Remove const, change to no longer be
15139         a pointer.
15140         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
15141         change to no longer be a pointer, initialize to generic_tunings.
15142         (aarch64_min_divisions_for_recip_mul): Change dereference of
15143         aarch64_tune_params to member access.
15144         (aarch64_reassociation_width): Likewise.
15145         (aarch64_rtx_mult_cost): Likewise.
15146         (aarch64_address_cost): Likewise.
15147         (aarch64_branch_cost): Likewise.
15148         (aarch64_rtx_costs): Likewise.
15149         (aarch64_register_move_cost): Likewise.
15150         (aarch64_memory_move_cost): Likewise.
15151         (aarch64_sched_issue_rate): Likewise.
15152         (aarch64_builtin_vectorization_cost): Likewise.
15153         (aarch64_override_options): Take a copy of the selected tuning
15154         struct in to aarch64_tune_params, rather than just setting
15155         a pointer, change dereferences of aarch64_tune_params to member
15156         accesses.
15157         (aarch64_override_options_after_change): Change dereferences of
15158         aarch64_tune_params to member access.
15159         (aarch64_macro_fusion_p): Likewise.
15160         (aarch_macro_fusion_pair_p): Likewise.
15161         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
15162
15163 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15164
15165         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
15166         (aarch64_tune_flags): Likewise.
15167         (AARCH64_TUNE_FMA_STEERING): Likewise.
15168         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
15169         to AARCH64_FL_USE_FMA_STEERING_PASS.
15170         (cortex-a57.cortex-a53): Likewise.
15171         (cortex-a72): Use cortexa72_tunings.
15172         (cortex-a72.cortex-a53): Likewise.
15173         (exynos-m1): Likewise.
15174         * config/aarch64/aarch64-protos.h (tune_params): Add
15175         a field: extra_tuning_flags.
15176         * config/aarch64/aarch64-tuning-flags.def: New.
15177         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
15178         (aarch64_extra_tuning_flags): Likewise.
15179         (aarch64_tune_params): Declare here.
15180         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
15181         (cortexa53_tunings): Likewise.
15182         (cortexa57_tunings): Likewise.
15183         (thunderx_tunings): Likewise.
15184         (xgene1_tunings): Likewise.
15185         (cortexa72_tunings): New.
15186         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
15187          (gate): Check against aarch64_tune_params.
15188         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
15189         aarch64-protos.h.
15190
15191 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
15192
15193         * config/aarch64/aarch64-fusion-pairs.def: New.
15194         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
15195         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
15196         aarch64_fusion_pairs.
15197         (AARCH64_FUSE_MOV_MOVK): Likewise.
15198         (AARCH64_FUSE_ADRP_ADD): Likewise.
15199         (AARCH64_FUSE_MOVK_MOVK): Likewise.
15200         (AARCH64_FUSE_ADRP_LDR): Likewise.
15201         (AARCH64_FUSE_CMP_BRANCH): Likewise.
15202
15203 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15204
15205         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
15206         SYMBOL_SMALL_GOT_28K.
15207         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
15208         relocation modifiers.
15209         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
15210         (ldr_got_small_28k_<mode>): New.
15211         (ldr_got_small_28k_sidi): New.
15212         * config/aarch64/iterators.md (got_modifier): New mode iterator.
15213         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
15214         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
15215         SYMBOL_SMALL_GOT_28K.
15216         (aarch64_rtx_costs): Add costs for new instruction sequences.
15217         (initialize_aarch64_code_model): Initialize new model.
15218         (aarch64_classify_symbol): Recognize new model and new symbol classification.
15219         (aarch64_asm_preferred_eh_data_format): Support new model.
15220         (aarch64_load_symref_appropriately): Generate new instruction
15221         sequences for -fpic.
15222         (TARGET_USE_PSEUDO_PIC_REG): New definition.
15223         (aarch64_use_pseudo_pic_reg): New function.
15224
15225 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
15226
15227         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
15228         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
15229         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
15230         (aarch64_expand_mov_immediate): Ditto.
15231         (aarch64_print_operand): Ditto.
15232         (aarch64_classify_symbol): Ditto.
15233
15234 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
15235
15236         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
15237
15238 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
15239
15240         PR bootstrap/66638
15241         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
15242         assertion failed.  Remove assertion itself.
15243
15244 2015-06-26  Richard Biener  <rguenther@suse.de>
15245
15246         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
15247         and -A CMP CST -> A CMP -CST which is redundant with a pattern
15248         in match.pd.
15249         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
15250         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
15251         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
15252         * match.pd: ... patterns here.
15253
15254 2015-06-26  Marek Polacek  <polacek@redhat.com>
15255
15256         * match.pd ((x | y) & ~(x & y) -> x ^ y,
15257         (x | y) & (~x ^ y) -> x & y): New patterns.
15258
15259 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
15260
15261         * rtl.h (emit): Add an optional boolean parameter to control
15262         whether barriers are emitted.
15263         * emit-rtl.c (emit): Likewise.
15264         * gensupport.c (get_emit_function): Return null rather than "emit".
15265         * genemit.c (gen_emit_seq): Handle the null return value.
15266         Don't emit barriers after the final instruction in the sequence.
15267         * gentarget-def.c (main): Don't emit barriers after the instruction.
15268
15269 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15270
15271         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
15272         TARGET_UNIFIED_ASM.
15273
15274 2015-06-26  Richard Biener  <rguenther@suse.de>
15275
15276         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
15277
15278 2015-06-26  Richard Biener  <rguenther@suse.de>
15279
15280         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
15281         irrespective on whether the inner operation has a single use
15282         of both off are constant.
15283
15284 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
15285             Segher Boessenkool  <segher@kernel.crashing.org>
15286
15287         PR target/66412
15288         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
15289         before doing PUT_MODE or PUT_CODE on operands to avoid
15290         in-place RTX modification.
15291
15292 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15293
15294         * gentarget-def.c (def_target_insn): Cast return of strtol to
15295         unsigned int.
15296
15297 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15298
15299         * gimple.h (gimple_call_set_fn): Move inline function.
15300         * gimple.c (gimple_call_set_fn): Relocate here.
15301
15302 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
15303
15304         PR target/65979
15305         PR target/66611
15306         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
15307         the replacement insn will work.
15308
15309 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
15310
15311         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
15312         by default.
15313
15314 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15315
15316         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
15317         * cgraph.h: Include ipa-ref.h and plugin-api.h.
15318         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
15319         (symtab_node::address_can_be_compared_p): Move function.
15320         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
15321         definition here.
15322         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
15323         * auto-profile.c: Likewise.
15324         * bb-reorder.c: Likewise.
15325         * builtins.c: Likewise.
15326         * calls.c: Likewise.
15327         * cfgexpand.c: Likewise.
15328         * cgraphbuild.c: Likewise.
15329         * cgraphclones.c: Likewise.
15330         * cgraphunit.c: Likewise.
15331         * combine.c: Likewise.
15332         * coverage.c: Likewise.
15333         * data-streamer-in.c: Likewise.
15334         * data-streamer-out.c: Likewise.
15335         * data-streamer.c: Likewise.
15336         * dbxout.c: Likewise.
15337         * dwarf2out.c: Likewise.
15338         * except.c: Likewise.
15339         * expr.c: Likewise.
15340         * final.c: Likewise.
15341         * fold-const.c: Likewise.
15342         * ggc-page.c: Likewise.
15343         * gimple-fold.c: Likewise.
15344         * gimple-iterator.c: Likewise.
15345         * gimple-pretty-print.c: Likewise.
15346         * gimple-streamer-in.c: Likewise.
15347         * gimple-streamer-out.c: Likewise.
15348         * gimple.c: Likewise.
15349         * gimplify.c: Likewise.
15350         * ipa-chkp.c: Likewise.
15351         * ipa-comdats.c: Likewise.
15352         * ipa-cp.c: Likewise.
15353         * ipa-devirt.c: Likewise.
15354         * ipa-icf-gimple.c: Likewise.
15355         * ipa-icf.c: Likewise.
15356         * ipa-inline-analysis.c: Likewise.
15357         * ipa-inline-transform.c: Likewise.
15358         * ipa-inline.c: Likewise.
15359         * ipa-polymorphic-call.c: Likewise.
15360         * ipa-profile.c: Likewise.
15361         * ipa-prop.c: Likewise.
15362         * ipa-pure-const.c: Likewise.
15363         * ipa-ref.c: Likewise.
15364         * ipa-reference.c: Likewise.
15365         * ipa-split.c: Likewise.
15366         * ipa-utils.c: Likewise.
15367         * ipa-visibility.c: Likewise.
15368         * ipa.c: Likewise.
15369         * langhooks.c: Likewise.
15370         * lto-cgraph.c: Likewise.
15371         * lto-compress.c: Likewise.
15372         * lto-opts.c: Likewise.
15373         * lto-section-in.c: Likewise.
15374         * lto-section-out.c: Likewise.
15375         * lto-streamer-in.c: Likewise.
15376         * lto-streamer-out.c: Likewise.
15377         * lto-streamer.c: Likewise.
15378         * omp-low.c: Likewise.
15379         * opts-global.c: Likewise.
15380         * passes.c: Likewise.
15381         * predict.c: Likewise.
15382         * print-tree.c: Likewise.
15383         * profile.c: Likewise.
15384         * ree.c: Likewise.
15385         * sanopt.c: Likewise.
15386         * stor-layout.c: Likewise.
15387         * symtab.c: Likewise.
15388         * toplev.c: Likewise.
15389         * trans-mem.c: Likewise.
15390         * tree-cfg.c: Likewise.
15391         * tree-chkp.c: Likewise.
15392         * tree-eh.c: Likewise.
15393         * tree-emutls.c: Likewise.
15394         * tree-inline.c: Likewise.
15395         * tree-nested.c: Likewise.
15396         * tree-parloops.c: Likewise.
15397         * tree-pretty-print.c: Likewise.
15398         * tree-profile.c: Likewise.
15399         * tree-sra.c: Likewise.
15400         * tree-ssa-alias.c: Likewise.
15401         * tree-ssa-live.c: Likewise.
15402         * tree-ssa-loop-ivcanon.c: Likewise.
15403         * tree-ssa-loop-ivopts.c: Likewise.
15404         * tree-ssa-pre.c: Likewise.
15405         * tree-ssa-sccvn.c: Likewise.
15406         * tree-ssa-strlen.c: Likewise.
15407         * tree-ssa-structalias.c: Likewise.
15408         * tree-streamer-in.c: Likewise.
15409         * tree-streamer-out.c: Likewise.
15410         * tree-streamer.c: Likewise.
15411         * tree-switch-conversion.c: Likewise.
15412         * tree-tailcall.c: Likewise.
15413         * tree-vect-data-refs.c: Likewise.
15414         * tree-vect-stmts.c: Likewise.
15415         * tree-vectorizer.c: Likewise.
15416         * tree.c: Likewise.
15417         * tsan.c: Likewise.
15418         * ubsan.c: Likewise.
15419         * value-prof.c: Likewise.
15420         * varasm.c: Likewise.
15421         * varpool.c: Likewise.
15422         * config/arm/arm.c: Likewise.
15423         * config/bfin/bfin.c: Likewise.
15424         * config/c6x/c6x.c: Likewise.
15425         * config/cris/cris.c: Likewise.
15426         * config/darwin-c.c: Likewise.
15427         * config/darwin.c: Likewise.
15428         * config/i386/i386.c: Likewise.
15429         * config/i386/winnt.c: Likewise.
15430         * config/microblaze/microblaze.c: Likewise.
15431         * config/mips/mips.c: Likewise.
15432         * config/rs6000/rs6000.c: Likewise.
15433         * config/rx/rx.c: Likewise.
15434         * config/s390/s390.c: Likewise.
15435         * config/tilegx/mul-tables.c: Likewise.
15436
15437 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15438
15439         * config/aarch64/aarch64.c, config/alpha/alpha.c,
15440         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
15441         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
15442         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
15443         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15444         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15445         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15446         config/microblaze/microblaze.c, config/mips/mips.c,
15447         config/mmix/mmix.c, config/mn10300/mn10300.c,
15448         config/moxie/moxie.c, config/msp430/msp430.c,
15449         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15450         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15451         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15452         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15453         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15454         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15455         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
15456         target-def.h include.
15457         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
15458
15459 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15460
15461         * Makefile.in (TARGET_DEF): Add target-insns.def.
15462         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
15463         (build/gentarget-def.o): New rule.
15464         (genprogrtl): Add target-def.
15465         * target-insns.def, gentarget-def.c: New files.
15466         * target.def: Add targetm.have_* and targetm.gen_* hooks,
15467         based on the contents of target-insns.def.
15468         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
15469         (HAVE_return, gen_return): Delete.
15470         * target-def.h: Include insn-target-def.h.
15471         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
15472         instead of direct calls.  Rely on them to do the appropriate assertions.
15473         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
15474         (convert_jumps_to_returns): Use targetm interface instead of
15475         direct calls.
15476         (thread_prologue_and_epilogue_insns): Likewise.
15477         * reorg.c (find_end_label, dbr_schedule): Likewise.
15478         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
15479         * shrink-wrap.c (convert_to_simple_return): Likewise.
15480         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
15481
15482 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15483
15484         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
15485         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
15486         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
15487         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
15488         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
15489         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
15490         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
15491         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
15492         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
15493         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
15494         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
15495         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
15496         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
15497         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
15498         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
15499         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
15500         includes to end.
15501
15502 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15503
15504         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
15505         (unbounded_int_hashmap_traits::key_type): Likewise.
15506         * hash-map.h (hash_map): Get the key type from the traits.
15507         * hash-traits.h (default_hash_traits): By default, inherit from the
15508         template parameter.
15509         * alias.c (alias_set_traits): Delete.
15510         (alias_set_entry_d::children): Use alias_set_hash as the first
15511         template parameter.
15512         (record_alias_subset): Update accordingly.
15513         * except.c (tree_hash_traits): Delete.
15514         (type_to_runtime_map): Use tree_hash as the first template parameter.
15515         (init_eh): Update accordingly.
15516         * genmatch.c (capture_id_map_hasher): Delete.
15517         (cid_map_t): Use nofree_string_hash as first template parameter.
15518         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
15519         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
15520         Use symbol_compare_hash as the first template parameter in
15521         subdivide_hash_map.
15522         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
15523         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
15524         template parameter.
15525         * passes.c (pass_registry_hasher): Delete.
15526         (name_to_pass_map): Use nofree_string_hash as the first template
15527         parameter.
15528         (register_pass_name): Update accordingly.
15529         * sanopt.c (sanopt_tree_map_traits): Delete.
15530         (sanopt_tree_triplet_map_traits): Delete.
15531         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
15532         template parameter.
15533         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
15534         the first template parameter.
15535         * sese.c (rename_map_hasher): Delete.
15536         (rename_map_type): Use tree_ssa_name_hash as the first template
15537         parameter.
15538         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
15539         (function_summary::m_map): Use map_hash as the first template
15540         parameter.
15541         (function_summary::release): Update accordingly.
15542         * tree-if-conv.c (phi_args_hash_traits): Delete.
15543         (predicate_scalar_phi): Use tree_operand_hash as the first template
15544         parameter to phi_arg_map.
15545         * tree-inline.h (dependence_hasher): Delete.
15546         (copy_body_data::dependence_map): Use dependence_hash as the first
15547         template parameter.
15548         * tree-inline.c (remap_dependence_clique): Update accordingly.
15549         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
15550         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
15551         parameter.
15552         (addr_stridxptr): Update accordingly.
15553         * value-prof.c (profile_id_traits): Delete.
15554         (cgraph_node_map): Use profile_id_hash as the first template
15555         parameter.
15556         (init_node_map): Update accordingly.
15557         * config/alpha/alpha.c (string_traits): Delete.
15558         (machine_function::links): Use nofree_string_hash as the first
15559         template parameter.
15560         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
15561         * config/m32c/m32c.c (pragma_traits): Delete.
15562         (pragma_htab): Use nofree_string_hash as the first template parameter.
15563         (m32c_note_pragma_address): Update accordingly.
15564         * config/mep/mep.c (pragma_traits): Delete.
15565         (pragma_htab): Use nofree_string_hash as the first template parameter.
15566         (mep_note_pragma_flag): Update accordingly.
15567         * config/mips/mips.c (mips16_flip_traits): Delete.
15568         (mflip_mips16_htab): Use nofree_string_hash as the first template
15569         parameter.
15570         (mflip_mips16_use_mips16_p): Update accordingly.
15571         (local_alias_traits): Delete.
15572         (mips16_local_aliases): Use nofree_string_hash as the first template
15573         parameter.
15574         (mips16_local_alias): Update accordingly.
15575
15576 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15577
15578         * hash-map-traits.h (default_hashmap_traits): Delete.
15579
15580 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15581
15582         * hash-map-traits.h (unbounded_hashmap_traits): New class.
15583         (unbounded_int_hashmap_traits): Likewise.
15584         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
15585
15586 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15587
15588         * ipa-icf.h (symbol_compare_hash): New class.
15589         (symbol_compare_hashmap_traits): Use it.
15590         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
15591         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
15592         (mem_alloc_description::reverse_mem_map_t): Remove redundant
15593         default_hashmap_traits.
15594         * sanopt.c (sanopt_tree_triplet_hash): New class.
15595         (sanopt_tree_triplet_map_traits): Use it.
15596
15597 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15598
15599         * gengtype-parse.c (require_template_declaration): Allow '+' in
15600         template parameters.  Consolidate cases.
15601         * hash-traits.h (int_hash): New class.
15602         * alias.c (alias_set_hash): New structure.
15603         (alias_set_traits): Use it.
15604         * symbol-summary.h (function_summary::map_hash): New class.
15605         (function_summary::summary_hashmap_traits): Use it.
15606         * tree-inline.h (dependence_hash): New class.
15607         (dependence_hasher): Use it.
15608         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
15609         * value-prof.c (profile_id_hash): New class.
15610         (profile_id_traits): Use it.
15611
15612 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15613
15614         * config/mips/mips.c (mips16_flip_traits): Use it.
15615         (local_alias_traits, mips16_local_aliases): Convert from a map of
15616         rtxes to a map of symbol names.
15617         (mips16_local_alias): Update accordingly.
15618
15619 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15620
15621         * hash-traits.h (string_hash, nofree_string_hash): New classes.
15622         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
15623         * passes.c (pass_registry_hasher): Likewise.
15624         * config/alpha/alpha.c (string_traits): Likewise.
15625         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
15626         * config/m32c/m32c.c (pragma_traits): Likewise.
15627         * config/mep/mep.c (pragma_traits): Likewise.
15628
15629 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15630
15631         * tree-hash-traits.h (tree_hash): New class.
15632         * except.c: Include tree-hash-traits.h.
15633         (tree_hash_traits): Use tree_hash.
15634
15635 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15636
15637         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
15638         * sese.c: Include tree-hash-traits.h.
15639         (rename_map_hasher): Use tree_ssa_name_hasher.
15640
15641 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15642
15643         * tree-hash-traits.h (tree_decl_hash): New class.
15644         * tree-ssa-strlen.c: Include tree-hash-traits.h.
15645         (stridxlist_hash_traits): Use tree_decl_hash.
15646
15647 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15648
15649         * tree-hash-traits.h: New file.
15650         (tree_operand_hash): New class.
15651         * sanopt.c: Include tree-hash-traits.h.
15652         (sanopt_tree_map_traits): Use tree_operand_hash.
15653         * tree-if-conv.c: Include tree-hash-traits.h.
15654         (phi_args_hash_traits): Use tree_operand_hash.
15655         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
15656         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
15657
15658 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15659
15660         * hash-map-traits.h: Include hash-traits.h.
15661         (simple_hashmap_traits): New class.
15662         * mem-stats.h (hash_map): Change the default traits to
15663         simple_hashmap_traits<default_hash_traits<Key> >.
15664
15665 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15666
15667         * hash-table.h: Update comments.
15668
15669 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15670
15671         * hash-traits.h (default_hash_traits): New structure.
15672         * hash-set.h (default_hashset_traits): Delete.
15673         (hash_set): Use default_hash_traits<Key> instead of
15674         default_hashset_traits.  Delete hash_entry type and use Key directly.
15675         * ipa-devirt.c (pair_traits): Delete.
15676         (default_hash_traits <type_pair>): Override.
15677         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
15678         (odr_types_equivalent_p, add_type_duplicate): Likewise.
15679
15680 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15681
15682         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
15683
15684 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15685
15686         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
15687         (has_is_empty, is_empty_helper): Delete.
15688         (has_mark_deleted, mark_deleted_helper): Delete.
15689         (has_mark_empty, mark_empty_helper): Delete.
15690         (hash_table::is_deleted): Call the Descriptor unconditionally.
15691         (hash_table::is_empty): Likewise.
15692         (hash_table::mark_deleted): Likewise.
15693         (hash_table::mark_empty): Likewise.
15694
15695 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15696
15697         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
15698         redundant typedefs and members.
15699         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
15700         redundant typedefs.
15701         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
15702         * ipa-devirt.c (odr_name_hasher): Likewise.
15703         (polymorphic_call_target_hasher): Likewise.
15704         * ira-costs.c (cost_classes_hasher): Likewise.
15705         * statistics.c (stats_counter_hasher): Likewise.
15706         * trans-mem.c (log_entry_hasher): Likewise.
15707         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
15708         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
15709         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
15710         * var-tracking.c (variable_hasher): Likewise.
15711         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
15712         Remove redundant typedefs and members.
15713
15714 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15715
15716         * hash-traits.h (ggc_cache_hasher): Rename to...
15717         (ggc_cache_remove): ...this and remove typedefs.
15718         (ggc_cache_ptr_hash): New class.
15719         * hash-table.h: Update commentary.
15720         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
15721         rather than ggc_cache_hasher.
15722         (const_wide_int_hasher, reg_attr_hasher): Likewise.
15723         (const_double_hasher, const_fixed_hasher): Likewise.
15724         * function.c (insn_cache_hasher): Likewise.
15725         * trans-mem.c (tm_wrapper_hasher): Likewise.
15726         * tree.h (tree_decl_map_cache_hasher): Likewise.
15727         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
15728         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
15729         * ubsan.c (tree_type_map_cache_hasher): Likewise.
15730         * varasm.c (tm_clone_hasher): Likewise.
15731         * config/i386/i386.c (dllimport_hasher): Likewise.
15732         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
15733         (tree_hasher): Likewise.
15734
15735 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15736
15737         * hash-traits.h (ggc_hasher): Rename to...
15738         (ggc_remover): ...this and remove typedefs.
15739         (ggc_cache_hasher): Update accordingly.  Add typedefs.
15740         (ggc_ptr_hash): New class.
15741         * hash-table.h: Update comment.
15742         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
15743         ggc_hasher.
15744         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
15745         (tree_descriptor_hasher): Likewise.
15746         * cgraph.c (function_version_hasher): Likewise.
15747         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
15748         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
15749         (dw_loc_list_hasher, addr_hasher): Likewise.
15750         * function.h (used_type_hasher): Likewise.
15751         * function.c (temp_address_hasher): Likewise.
15752         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
15753         * libfuncs.h (libfunc_hasher): Likewise.
15754         * lto-streamer.h (decl_state_hasher): Likewise.
15755         * optabs.c (libfunc_decl_hasher): Likewise.
15756         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
15757         * varasm.c (section_hasher, object_block_hasher): Likewise.
15758         (const_rtx_desc_hasher): Likewise.
15759         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
15760         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
15761
15762 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15763
15764         * hash-traits.h (free_ptr_hash): New class.
15765         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
15766         rather than typed_free_remove.  Remove redudant typedefs.
15767         (external_ref_hasher): Likewise.
15768         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
15769         (ehspec_hasher): Likewise.
15770         * ggc-common.c (saving_hasher): Likewise.
15771         * gimplify.c (gimplify_hasher): Likewise.
15772         * haifa-sched.c (delay_i2_hasher): Likewise.
15773         * loop-invariant.c (invariant_expr_hasher): Likewise.
15774         * loop-iv.c (biv_entry_hasher): Likewise.
15775         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
15776         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
15777         * tree-cfg.c (locus_discrim_hasher): Likewise.
15778         * tree-eh.c (finally_tree_hasher): Likewise.
15779         * tree-into-ssa.c (var_info_hasher): Likewise.
15780         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
15781         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
15782         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
15783         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
15784         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
15785         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
15786         (shared_bitmap_hasher): Likewise.
15787         * tree-ssa-threadupdate.c (redirection_data): Likewise.
15788         * tree-vectorizer.h (peel_info_hasher): Likewise.
15789         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
15790         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
15791
15792 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15793
15794         * hash-table.h: Update comments.
15795         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
15796         (nofree_ptr_hash): New class.
15797         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
15798         than typed_noop_remove.  Remove redudant typedefs.
15799         * attribs.c (attribute_hasher): Likewise.
15800         * cfg.c (bb_copy_hasher): Likewise.
15801         * cselib.c (cselib_hasher): Likewise.
15802         * dse.c (invariant_group_base_hasher): Likewise.
15803         * dwarf2cfi.c (trace_info_hasher): Likewise.
15804         * dwarf2out.c (macinfo_entry_hasher): Likewise.
15805         (comdat_type_hasher, loc_list_hasher): Likewise.
15806         * gcse.c (pre_ldst_expr_hasher): Likewise.
15807         * genmatch.c (id_base): Likewise.
15808         * genrecog.c (test_pattern_hasher): Likewise.
15809         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
15810         * haifa-sched.c (delay_i1_hasher): Likewise.
15811         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
15812         * ipa-icf.h (congruence_class_group_hash): Likewise.
15813         * ipa-profile.c (histogram_hash): Likewise.
15814         * ira-color.c (allocno_hard_regs_hasher): Likewise.
15815         * lto-streamer.h (string_slot_hasher): Likewise.
15816         * lto-streamer.c (tree_entry_hasher): Likewise.
15817         * plugin.c (event_hasher): Likewise.
15818         * postreload-gcse.c (expr_hasher): Likewise.
15819         * store-motion.c (st_expr_hasher): Likewise.
15820         * tree-sra.c (uid_decl_hasher): Likewise.
15821         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
15822         (ssa_name_var_hash): Likewise.
15823         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
15824         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
15825         * tree-ssa-pre.c (pre_expr_d): Likewise.
15826         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
15827         * vtable-verify.h (registration_hasher): Likewise.
15828         * vtable-verify.c (vtbl_map_hasher): Likewise.
15829         * config/arm/arm.c (libcall_hasher): Likewise.
15830         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
15831         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
15832         * config/sol2.c (comdat_entry_hasher): Likewise.
15833         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
15834         (print_fold_checksum, fold_checksum_tree): Likewise.
15835         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
15836         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
15837         (fold_build_call_array_loc): Likewise.
15838         * tree-ssa-ccp.c (gimple_htab): Likewise.
15839         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
15840         rather than pointer_type.
15841
15842 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15843
15844         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
15845         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
15846
15847 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15848
15849         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
15850         (ggc_hasher::ggc_mx): Likewise.
15851         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
15852         that duplicate ggc_hasher ones.
15853
15854 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15855
15856         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
15857         (gt_cleare_cache): Check here for deleted and empty entries.
15858         Replace handle_cache_entry with a call to keep_cache_entry.
15859         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
15860         (ggc_cache_hasher::keep_cache_entry): New function.
15861         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
15862         (tm_wrapper_hasher::keep_cache_entry): New function.
15863         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
15864         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15865         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
15866         (type_cache_hasher::keep_cache_entry): New function.
15867         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
15868         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
15869         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
15870         (tree_type_map_cache_hasher::keep_cache_entry): New function.
15871         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
15872         (tm_clone_hasher::keep_cache_entry): New function.
15873         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
15874         (dllimport_hasher::keep_cache_entry): New function.
15875
15876 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15877
15878         * hash-table.h: Include hash-traits.h.
15879         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
15880         (ggc_cache_hasher): Move to...
15881         * hash-traits.h: ...this new file.
15882
15883 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15884
15885         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
15886         struct cl_optimization.
15887         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
15888         * tree.c (make_node_stat): Allocate cl_optimization struct.
15889         (copy_node_stat): Allocate and copy cl_optimization struct.
15890
15891 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15892
15893         * function.h (struct incoming_args): Move struct.
15894         (pass_by_reference, reference_callee_copied): Remove prototypes.
15895         * emit-rtl.h (struct incoming_args): Relocate struct here.
15896         * calls.h (pass_by_reference, reference_callee_copied): Relocate
15897         prototypes here.
15898         * function.c (pass_by_reference, reference_callee_copied): Move.
15899         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
15900         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
15901         * ipa-chkp.c: Include calls.h.
15902
15903 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
15904
15905         * alias.h (alias_set_type): Move typedef.
15906         * coretypes.h (alias_set_type): Relocate typedef here.
15907         * rtl.h: Don't include alias.h.
15908
15909 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
15910
15911         * cgraph.h (cgraph_rtl_info): Move to rtl.h
15912         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
15913         and instance.
15914         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
15915         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
15916         doesn't exist.
15917         * calls.c: Include hard-reg-set.h before rtl.h.
15918         * ira.c: Likewise.
15919
15920 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
15921             Vladimir Makarov  <vmakarov@redhat.com>
15922
15923         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
15924         Add assert.
15925
15926 2015-06-25  Richard Biener  <rguenther@suse.de>
15927
15928         * fold-const.c (fold_binary_loc): Move simplification of
15929         (X <<>> C1) & C2 ...
15930         * match.pd: ... here.
15931
15932 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
15933
15934         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
15935
15936 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
15937
15938         * match.pd: Add patterns for vec_conds between 1 and 0.
15939
15940 2015-06-25  Richard Biener  <rguenther@suse.de>
15941
15942         * tree-vect-stmts.c (vectorizable_conversion): Do not set
15943         STMT_VINFO_VEC_STMT for SLP.
15944         (vectorizable_store): Likewise.
15945         (vectorizable_load): Likewise.
15946         (vect_transform_stmt): Catch SLP vectorization clobbering
15947         STMT_VINFO_VEC_STMT.
15948
15949 2015-06-25  Richard Biener  <rguenther@suse.de>
15950
15951         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
15952         dumping.
15953         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
15954         cleanup resulting dead code and parameters.
15955         (vect_transform_slp_perm_load): Adjust.
15956
15957 2015-06-25  Nick Clifton  <nickc@redhat.com>
15958
15959         * config/bfin/bfin.c (bfin_expand_prologue): Set
15960         current_function_static_stack_size if flag_stack_usage_info is set.
15961         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
15962         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
15963         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
15964         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
15965
15966 2015-06-25  Tom de Vries  <tom@codesourcery.com>
15967
15968         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
15969         comment that the generated IV is unsigned.
15970
15971 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15972
15973         PR target/29693
15974         * config/arm/arm.c (arm_dbx_register_number): Return
15975         DWARF_FRAME_REGISTERS by default.
15976
15977 2015-06-25  Tom de Vries  <tom@codesourcery.com>
15978
15979         * dominance.c (calculate_dominance_info): Fix verify_dominators call
15980         argument.  Call verify_dominator when reusing dominator info.
15981
15982 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
15983
15984         PR target/66563
15985         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
15986         an additional element of the unspec vector.  Modify indices
15987         of operands.
15988         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
15989         * config/sh/sh.c (prepare_move_operands): Pass incremented
15990         const_int to gen_GOTaddr2picreg.
15991         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
15992
15993 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15994
15995         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
15996         Condition on TARGET_FLOAT.
15997
15998 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
15999
16000         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
16001         and (no)crypto.
16002
16003 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
16004
16005         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
16006
16007         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
16008         aarch64_err_no_fpadvsimd.
16009
16010         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
16011         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
16012         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
16013         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
16014         Turn error into assert, test TARGET_FLOAT.
16015         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
16016         TARGET_FLOAT.
16017
16018 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
16019
16020         PR debug/66482
16021         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
16022
16023 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
16024
16025         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
16026
16027 2015-06-24  Renlin Li <renlin.li@arm.com>
16028
16029         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
16030         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
16031
16032 2015-06-24  Richard Biener  <rguenther@suse.de>
16033
16034         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
16035         (main): Likewise.
16036         (lower_opt_convert): Support lowering of conditional view_convert.
16037         (parser::parse_operation): Likewise.
16038         (parser::parse_for): Likewise.
16039
16040 2015-06-24  Renlin Li  <renlin.li@arm.com>
16041
16042         * varasm.c (emit_local): Use unsigned int for align variable.
16043
16044 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16045
16046         PR target/63408
16047         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
16048         for negative numbers.
16049
16050 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16051
16052         PR rtl-optimization/66306
16053         * reload.c (find_reloads): Swap the match_dup info for
16054         commutative operands.
16055
16056 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16057
16058         * config/s390/vx-builtins.md
16059         ("vec_scatter_element<mode>_<non_vec_int>")
16060         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
16061         attribute with bhfgq.
16062
16063 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16064
16065         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
16066
16067 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16068
16069         * config/s390/s390-builtin-types.def: Add flag to indicate the
16070         options under which the function type is needed.
16071         * config/s390/s390-builtins.def: Add flag to indicate the options
16072         under which the builtin is enabled.
16073         * config/s390/s390-builtins.h: Add flags parameter to macro
16074         definitions.
16075         (bflags_for_builtin): New function.
16076         (flags_for_builtin): Renamed to ...
16077         (opflags_for_builtin): ... this.
16078         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
16079         flags_for_builtin to bflags_for_builtin and
16080         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
16081         * config/s390/s390.c: Add initialization of bflags_builtin and
16082         opflags_builtin arrays.
16083         Remove code for flags_builtin.
16084         (s390_init_builtins): Only create builtin function types if one of
16085         their flags is active.
16086         Only create builtins if all of their flags are active.
16087         (s390_expand_builtin): Rename flags_for_builtin to
16088         opflags_for_builtin.
16089
16090 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16091
16092         * config/s390/vecintrin.h: Remove internal builtins.
16093
16094 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16095
16096         * config/s390/s390.c (s390_secondary_reload): Fix check for
16097         GENERAL_REGS register class.
16098
16099 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16100
16101         * config/s390/s390.c (s390_support_vector_misalignment): Call
16102         default implementation for !TARGET_VX.
16103
16104 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16105
16106         * config/s390/s390.c (s390_legitimate_constant_p): Add
16107         TARGET_VX check.
16108
16109 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16110
16111         * config/s390/s390.c (s390_vector_abi): New variable definition.
16112         (s390_check_type_for_vector_abi): New function.
16113         (TARGET_ASM_FILE_END): New macro definition.
16114         (s390_asm_file_end): New function.
16115         (s390_function_arg): Call s390_check_type_for_vector_abi.
16116         (s390_gimplify_va_arg): Likewise.
16117         * configure: Regenerate.
16118         * configure.ac: Check for .gnu_attribute Binutils feature.
16119
16120 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
16121
16122         PR target/65803
16123         * config/bfin/bfin.c (hwloop_optimize): Initialize
16124         JUMP_LABEL for newly created jump.
16125
16126 2015-06-23  Tristan Gingold  <gingold@adacore.com>
16127
16128         * collect-utils.c (collect_wait): Unlink the response file here
16129         instead of...
16130         (do_wait): ...here.
16131         (utils_cleanup): ...and here.
16132
16133 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
16134
16135         * df-scan.c: Don't include target-def.h.
16136         * targhooks.c: Likewise.
16137         * config/arm/arm-c.c: Likewise.
16138         * config/i386/i386-c.c: Likewise.
16139         * config/nds32/nds32-cost.c: Likewise.
16140         * config/nds32/nds32-fp-as-gp.c: Likewise.
16141         * config/nds32/nds32-intrinsic.c: Likewise.
16142         * config/nds32/nds32-isr.c: Likewise.
16143         * config/nds32/nds32-md-auxiliary.c: Likewise.
16144         * config/nds32/nds32-memory-manipulation.c: Likewise.
16145         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16146         * config/nds32/nds32-predicates.c: Likewise.
16147
16148 2015-06-23  Richard Biener  <rguenther@suse.de>
16149
16150         PR tree-optimization/66636
16151         * tree-vect-stmts.c (vectorizable_store): Properly compute the
16152         def type for further defs for strided stores.
16153
16154 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
16155
16156         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
16157         conditional selects.
16158         (setcc_int<mode>, setcc_float<mode>): Reformat.
16159
16160 2015-06-23  Marek Polacek  <polacek@redhat.com>
16161
16162         * match.pd ((x + y) - (x | y) -> x & y,
16163         (x + y) - (x & y) -> x | y): New patterns.
16164
16165 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
16166
16167         PR 65711
16168         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
16169         '-dynamic-linker' within %{!shared: ...}.
16170
16171 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
16172
16173         PR target/66560
16174         * config/i386/predicates.md (addsub_vm_operator): New predicate.
16175         (addsub_vs_operator): Ditto.
16176         (addsub_vs_parallel): Ditto.
16177         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
16178         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
16179         Put minus RTX before plus and adjust vec_merge selector.
16180         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
16181         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
16182         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
16183         (addsub vec_merge splitters): New combiner splitters.
16184         (addsub vec_select/vec_concat splitters): Ditto.
16185
16186 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
16187
16188         PR tree-optimization/66449
16189         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
16190         POINTER_PLUS_EXPR for pointers.
16191
16192 2015-06-23  Alan Modra  <amodra@gmail.com>
16193
16194         * rtlanal.c (commutative_operand_precedence): Correct comments.
16195         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
16196         declaration.  Return an int.  Distinguish REG,REG return from
16197         others.
16198         (struct simplify_plus_minus_op_data): Make local to function.
16199         (simplify_plus_minus): Don't set canonicalized if merely sorting
16200         registers.  Avoid packing ops if nothing changes.  White space fixes.
16201
16202 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
16203
16204         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
16205         -fdump-ada-spec is passed but not if -fsyntax-only is.
16206
16207 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
16208
16209         PR bootstrap/63740
16210         * lra-lives.c (process_bb_lives): Check insn copying the same
16211         reload pseudo and don't create a copy for it.
16212
16213 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16214
16215         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
16216         for cond_stmt.
16217
16218 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16219
16220         * builtins.def (DEF_GOMP_BUILTIN): Test
16221         'flag_tree_parallelize_loops > 1' instead of
16222         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
16223
16224 2015-06-22  Tom de Vries  <tom@codesourcery.com>
16225
16226         * dominance.c (calculate_dominance_info): Verify dominators if
16227         early-out.
16228
16229 2015-06-22  Marek Polacek  <polacek@redhat.com>
16230
16231         * match.pd ((x ^ y) ^ (x | y) -> x & y,
16232         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
16233         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
16234         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
16235
16236 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
16237
16238         PR target/65871
16239         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
16240         cost of embedded comparison.
16241
16242 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16243
16244         PR target/65914
16245         * config/rs6000/predicates.md (altivec_register_operand): Permit
16246         virtual stack registers.
16247         (vsx_register_operand): Likewise.
16248         (vfloat_operand): Likewise.
16249         (vint_operand): Likewise.
16250         (vlogical_operand): Likewise.
16251
16252 2015-06-22  Richard Biener  <rguenther@suse.de>
16253
16254         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
16255         and single_scalar_iteration_cost members.
16256         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
16257         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
16258         (vect_get_single_scalar_iteration_cost): Remove.
16259         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
16260         Use LOOP_VINFO_SCALAR_ITERATION_COST.
16261         * tree-vect-loop.c (destroy_loop_vec_info): Free
16262         scalar_cost_vec.
16263         (vect_get_single_scalar_iteration_cost): Compute result into
16264         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
16265         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
16266         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
16267         (vect_estimate_min_profitable_iters): Use them.
16268
16269 2015-06-22  Christian Bruel  <christian.bruel@st.com>
16270
16271         PR target/52144
16272         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
16273         (TARGET_INSERT_ATTRIBUTES): Define.
16274         (thumb_flipper): New var.
16275         * config/arm/arm.opt (-mflip-thumb): New switch.
16276
16277 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16278             Martin Liska  <mliska@suse.cz>
16279
16280         PR ipa/65908
16281         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
16282         construction of arg_types.
16283         (sem_function::sem_function): Likewise.
16284         (sem_function::~sem_function): Remove destruction of arg_types.
16285         (sem_function::compatible_parm_types_p): New function.
16286         (sem_function::equals_wpa): Reorg matching of return values
16287         and parameter types.
16288         (sem_function::equals_private): Reorg mathcing of argument types.
16289         (sem_function::parse_tree_args): Remove.
16290         * ipa-icf.h (init_wpa): Do not call it.
16291         (parse_tree_args): Remove.
16292         (compatible_parm_types_p): Declare.
16293         (result_type): Remove.
16294         (arg_types): Remove.
16295
16296 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
16297
16298         PR ipa/66351
16299         * ipa-polymorphic-call.c
16300         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
16301         initializing alias oracle; fix formating; set base_alias_set if it
16302         is known.
16303
16304 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
16305
16306         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
16307         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
16308         (find_inc): Likewise.
16309         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
16310         swapping.
16311         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
16312         * df-scan.c (df_swap_refs): Remove.
16313         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
16314         * dominance.c (link_roots): Use std::swap instead of manually swapping.
16315         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
16316         * fold-const.c (fold_relational_const): Likewise.
16317         * genattrtab.c (simplify_test_exp): Likewise.
16318         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
16319         gimple_simplify): Likewise.
16320         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
16321         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
16322         * ipa-devirt.c (add_type_duplicate): Likewise.
16323         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
16324         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
16325         * lra.c (lra_create_copy): Likewise.
16326         * lto-streamer-out.c (DFS::DFS): Likewise.
16327         * modulo-sched.c (get_sched_window): Likewise.
16328         * omega.c (omega_pretty_print_problem): Likewise.
16329         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
16330         * reload1.c (reloads_unique_chain_p): Likewise.
16331         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
16332         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
16333         use std::swap.
16334         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
16335         manually swapping.
16336         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
16337         predicate_mem_writes): Likewise.
16338         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
16339         * tree-predcom.c (combine_chains): Likewise.
16340         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
16341         refs_may_alias_p_1): Likewise.
16342         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
16343         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
16344         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
16345         number_of_iterations_cond): Likewise.
16346         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
16347         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
16348         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16349         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
16350         * tree-vrp.c (extract_range_from_binary_expr_1,
16351         extract_range_from_unary_expr_1): Likewise.
16352
16353 2015-06-20  Marek Polacek  <polacek@redhat.com>
16354
16355         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
16356
16357 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
16358
16359         PR target/66591
16360         * config/sh/sh.c (prepare_move_operands): Replace subreg
16361         index term with R0 for base and index addressing.
16362
16363 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
16364
16365         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
16366         op1 is an fp zero.
16367         (movsf_aarch64): Change condition from register_operand to
16368         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
16369         load1.  Change type for alternative 7 to store1.
16370         (movdf_aarch64): Likewise.
16371
16372 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
16373
16374         * config/vax/vax.md: Adjust sign/zero extend patterns to
16375         handle SUBREGs in operands[1].
16376
16377 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16378
16379         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
16380         of manually swapping.
16381         (expand_vec_perm_interleave2): Likewise.
16382
16383 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
16384
16385         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
16386         reuse bounds created for abnormal ssa names.
16387
16388 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
16389
16390         * config/nvptx/nvptx.md (allocate_stack): Rename to...
16391         (allocate_stack_<mode>): ... this, and add :P on both
16392         match_operand and unspec.
16393         (allocate_stack): New expander.
16394
16395 2015-06-19  Christian Bruel  <christian.bruel@st.com>
16396
16397         PR target/66541
16398         PR target/52144
16399         * config/arm/arm.c (arm_set_current_function): Handle
16400         explicit default options.
16401
16402 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16403
16404         * config/i386/i386.md (*movsicc_noc_zext): New insn.
16405         (zero-extended cmove with mem peephole2): New pattern.
16406         (cmove with mem peephole2): Merge patterns.
16407
16408 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
16409
16410         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
16411
16412 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
16413
16414         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
16415         * config/mips/mips.md (*madd4<mode>): Ditto.
16416         (*nmadd3<mode>) Ditto.
16417         (*nmadd4<mode>_fastmath): Ditto.
16418         (*nmadd3<mode>_fastmath): Ditto.
16419         (*nmsub4<mode>): Ditto.
16420         (*nmsub3<mode>): Ditto.
16421         (*nmsub4<mode>_fastmath): Ditto.
16422         (*nmsub3<mode>_fastmath): Ditto.
16423
16424 2015-06-18  Michael Matz  <matz@suse.de>
16425
16426         PR middle-end/66253
16427         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
16428         grouped strided stores.
16429         (vectorizable_load): Don't use the DR from first_stmt in
16430         the non-SLP grouped strided case.
16431
16432 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16433
16434         PR target/66569
16435         * function.c (assign_bounds): Add arguments assign_regs,
16436         assign_special, assign_bt.
16437         (assign_parms): For vararg functions handle bounds in BT
16438         and special slots after incoming vararg bounds.
16439
16440 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16441
16442         PR middle-end/66568
16443         * cfgexpand.c (expand_return): Handle missing bounds.
16444         (expand_gimple_stmt_1): Likewise.
16445         * tree-chkp.c (chkp_expand_zero_bounds): New.
16446         * tree-chkp.h (chkp_expand_zero_bounds): New.
16447
16448 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
16449
16450         PR middle-end/66567
16451         * ipa-chkp.c (chkp_maybe_create_clone): Require
16452         functions to be instrumentable.
16453         * tree-chkp.c (chkp_replace_function_pointer): Use
16454         chkp_instrumentable_p instead of attribute check.
16455
16456 2015-06-18  Richard Biener  <rguenther@suse.de>
16457
16458         PR tree-optimization/66510
16459         * tree-vect-stmts.c (vectorizable_load): Properly compute the
16460         number of vector loads for SLP permuted loads.
16461         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
16462         check the stride for loop vectorization.
16463         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
16464         vectorization factor.
16465         (vect_analyze_group_access): If the group size is not a power
16466         of two require a epilogue loop.
16467         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
16468         compute and optimizing and alias test pruning after final
16469         vectorization factor computation.
16470         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
16471         vector alignment.
16472         (vect_transform_slp_perm_load): Properly compute the original
16473         number of vector load stmts.
16474
16475 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
16476
16477         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
16478         "unlikely character , in @var" warning.
16479
16480 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
16481
16482         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
16483         (ix86_function_arg_advance): Ditto.
16484         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
16485
16486 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16487
16488         * function.h (struct rtl_data): Remove struct and accessor macros.
16489         * emit-rtl.h (struct rtl_data): Relocate to here.
16490         * Makefile.in (GTFILES): Add emit-rtl.h.
16491         * df-core.c: Include emit-rtl.h.
16492         * genattrtab.c: Likewise.
16493         * genconditions.c: Likewise.
16494         * genpreds.c: Likewise.
16495         * genrecog.c: Likewise.
16496         * regcprop.c: Likewise.
16497         * resource.c: Likewise.
16498         * sched-rgn.c: Likewise.
16499         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16500         * config/i386/winnt.c: Likewise.
16501
16502 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
16503
16504         PR middle-end/66429
16505         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
16506         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
16507         and has_force_vectorize_loops flags from cfun into
16508         child_cfun.
16509         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
16510         if simduid is non-NULL.
16511         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
16512         * passes.def (pass_simduid_cleanup): Add new pass after loop
16513         passes.
16514         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
16515         indirection from htab argument's type.
16516         (shrink_simd_arrays): New function.
16517         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
16518         Don't call adjust_simduid_builtins if there are no loops.
16519         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
16520         (pass_simduid_cleanup::execute): New method.
16521         (make_pass_simduid_cleanup): New function.
16522
16523 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
16524
16525         * tree-core.h (tree_target_option): Make opts field a pointer to a
16526         cl_target_option instead of an instance of the struct.
16527         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
16528         the structure.
16529         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
16530         TARGET_OPTION_NODE.
16531         (copy_node_stat): Allocate and copy struct cl_target_option.
16532
16533 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16534
16535         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
16536         Remove conditional exposure of prototypes.
16537         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
16538         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
16539         definitions in tree.h with functions.
16540         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
16541         anon_aggrname_p.
16542         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
16543
16544 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
16545
16546         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
16547         (*cmp<mode>_signed): ... this.
16548         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
16549         (*cmp<mode>_unsigned): ... this.  Remove %b.
16550
16551 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
16552
16553         * coretypes.h: Include input.h and as-a.h.
16554         * rtl.h: Include input.h and as-a.h for generator files.
16555         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
16556         * vec.c: Don't include diagnostic-core.h.
16557         * alias.c: Do not include input.h, line-map.h or is-a.h.
16558         * asan.c: Likewise.
16559         * attribs.c: Likewise.
16560         * auto-inc-dec.c: Likewise.
16561         * auto-profile.c: Likewise.
16562         * bb-reorder.c: Likewise.
16563         * bt-load.c: Likewise.
16564         * builtins.c: Likewise.
16565         * caller-save.c: Likewise.
16566         * calls.c: Likewise.
16567         * ccmp.c: Likewise.
16568         * cfg.c: Likewise.
16569         * cfganal.c: Likewise.
16570         * cfgbuild.c: Likewise.
16571         * cfgcleanup.c: Likewise.
16572         * cfgexpand.c: Likewise.
16573         * cfghooks.c: Likewise.
16574         * cfgloop.c: Likewise.
16575         * cfgloop.h: Likewise.
16576         * cfgloopanal.c: Likewise.
16577         * cfgloopmanip.c: Likewise.
16578         * cfgrtl.c: Likewise.
16579         * cgraph.c: Likewise.
16580         * cgraphbuild.c: Likewise.
16581         * cgraphclones.c: Likewise.
16582         * cgraphunit.c: Likewise.
16583         * cilk-common.c: Likewise.
16584         * combine-stack-adj.c: Likewise.
16585         * combine.c: Likewise.
16586         * compare-elim.c: Likewise.
16587         * convert.c: Likewise.
16588         * coverage.c: Likewise.
16589         * cppbuiltin.c: Likewise.
16590         * cprop.c: Likewise.
16591         * cse.c: Likewise.
16592         * cselib.c: Likewise.
16593         * data-streamer-in.c: Likewise.
16594         * data-streamer-out.c: Likewise.
16595         * data-streamer.c: Likewise.
16596         * dbxout.c: Likewise.
16597         * dce.c: Likewise.
16598         * ddg.c: Likewise.
16599         * debug.c: Likewise.
16600         * df-core.c: Likewise.
16601         * df-problems.c: Likewise.
16602         * df-scan.c: Likewise.
16603         * df.h: Likewise.
16604         * dfp.c: Likewise.
16605         * diagnostic-core.h: Likewise.
16606         * diagnostic.c: Likewise.
16607         * dojump.c: Likewise.
16608         * dominance.c: Likewise.
16609         * domwalk.c: Likewise.
16610         * double-int.c: Likewise.
16611         * dse.c: Likewise.
16612         * dumpfile.c: Likewise.
16613         * dumpfile.h: Likewise.
16614         * dwarf2asm.c: Likewise.
16615         * dwarf2cfi.c: Likewise.
16616         * dwarf2out.c: Likewise.
16617         * emit-rtl.c: Likewise.
16618         * et-forest.c: Likewise.
16619         * except.c: Likewise.
16620         * explow.c: Likewise.
16621         * expmed.c: Likewise.
16622         * expr.c: Likewise.
16623         * final.c: Likewise.
16624         * fixed-value.c: Likewise.
16625         * fold-const.c: Likewise.
16626         * function.c: Likewise.
16627         * fwprop.c: Likewise.
16628         * gcc-plugin.h: Likewise.
16629         * gcse.c: Likewise.
16630         * generic-match-head.c: Likewise.
16631         * ggc-page.c: Likewise.
16632         * gimple-builder.c: Likewise.
16633         * gimple-expr.c: Likewise.
16634         * gimple-fold.c: Likewise.
16635         * gimple-iterator.c: Likewise.
16636         * gimple-low.c: Likewise.
16637         * gimple-match-head.c: Likewise.
16638         * gimple-pretty-print.c: Likewise.
16639         * gimple-ssa-isolate-paths.c: Likewise.
16640         * gimple-ssa-strength-reduction.c: Likewise.
16641         * gimple-streamer-in.c: Likewise.
16642         * gimple-streamer-out.c: Likewise.
16643         * gimple-streamer.h: Likewise.
16644         * gimple-walk.c: Likewise.
16645         * gimple.c: Likewise.
16646         * gimplify-me.c: Likewise.
16647         * gimplify.c: Likewise.
16648         * godump.c: Likewise.
16649         * graph.c: Likewise.
16650         * graphite-blocking.c: Likewise.
16651         * graphite-dependences.c: Likewise.
16652         * graphite-interchange.c: Likewise.
16653         * graphite-isl-ast-to-gimple.c: Likewise.
16654         * graphite-optimize-isl.c: Likewise.
16655         * graphite-poly.c: Likewise.
16656         * graphite-scop-detection.c: Likewise.
16657         * graphite-sese-to-poly.c: Likewise.
16658         * graphite.c: Likewise.
16659         * haifa-sched.c: Likewise.
16660         * hw-doloop.c: Likewise.
16661         * ifcvt.c: Likewise.
16662         * init-regs.c: Likewise.
16663         * input.c: Likewise.
16664         * internal-fn.c: Likewise.
16665         * ipa-chkp.c: Likewise.
16666         * ipa-comdats.c: Likewise.
16667         * ipa-cp.c: Likewise.
16668         * ipa-devirt.c: Likewise.
16669         * ipa-icf-gimple.c: Likewise.
16670         * ipa-icf.c: Likewise.
16671         * ipa-inline-analysis.c: Likewise.
16672         * ipa-inline-transform.c: Likewise.
16673         * ipa-inline.c: Likewise.
16674         * ipa-polymorphic-call.c: Likewise.
16675         * ipa-profile.c: Likewise.
16676         * ipa-prop.c: Likewise.
16677         * ipa-pure-const.c: Likewise.
16678         * ipa-ref.c: Likewise.
16679         * ipa-reference.c: Likewise.
16680         * ipa-split.c: Likewise.
16681         * ipa-utils.c: Likewise.
16682         * ipa-visibility.c: Likewise.
16683         * ipa.c: Likewise.
16684         * ira-build.c: Likewise.
16685         * ira-color.c: Likewise.
16686         * ira-conflicts.c: Likewise.
16687         * ira-costs.c: Likewise.
16688         * ira-emit.c: Likewise.
16689         * ira-lives.c: Likewise.
16690         * ira.c: Likewise.
16691         * jump.c: Likewise.
16692         * langhooks.c: Likewise.
16693         * lcm.c: Likewise.
16694         * loop-doloop.c: Likewise.
16695         * loop-init.c: Likewise.
16696         * loop-invariant.c: Likewise.
16697         * loop-iv.c: Likewise.
16698         * loop-unroll.c: Likewise.
16699         * lower-subreg.c: Likewise.
16700         * lra-assigns.c: Likewise.
16701         * lra-coalesce.c: Likewise.
16702         * lra-constraints.c: Likewise.
16703         * lra-eliminations.c: Likewise.
16704         * lra-lives.c: Likewise.
16705         * lra-remat.c: Likewise.
16706         * lra-spills.c: Likewise.
16707         * lra.c: Likewise.
16708         * lto-cgraph.c: Likewise.
16709         * lto-compress.c: Likewise.
16710         * lto-opts.c: Likewise.
16711         * lto-section-in.c: Likewise.
16712         * lto-section-out.c: Likewise.
16713         * lto-streamer-in.c: Likewise.
16714         * lto-streamer-out.c: Likewise.
16715         * lto-streamer.c: Likewise.
16716         * mcf.c: Likewise.
16717         * mode-switching.c: Likewise.
16718         * modulo-sched.c: Likewise.
16719         * omega.c: Likewise.
16720         * omp-low.c: Likewise.
16721         * optabs.c: Likewise.
16722         * opts-global.c: Likewise.
16723         * opts.h: Likewise.
16724         * passes.c: Likewise.
16725         * plugin.c: Likewise.
16726         * postreload-gcse.c: Likewise.
16727         * postreload.c: Likewise.
16728         * predict.c: Likewise.
16729         * pretty-print.h: Likewise.
16730         * print-rtl.c: Likewise.
16731         * print-tree.c: Likewise.
16732         * profile.c: Likewise.
16733         * real.c: Likewise.
16734         * realmpfr.c: Likewise.
16735         * recog.c: Likewise.
16736         * ree.c: Likewise.
16737         * reg-stack.c: Likewise.
16738         * regcprop.c: Likewise.
16739         * reginfo.c: Likewise.
16740         * regrename.c: Likewise.
16741         * regstat.c: Likewise.
16742         * reload.c: Likewise.
16743         * reload1.c: Likewise.
16744         * reorg.c: Likewise.
16745         * resource.c: Likewise.
16746         * rtl-chkp.c: Likewise.
16747         * rtl-error.c: Likewise.
16748         * rtlanal.c: Likewise.
16749         * rtlhooks.c: Likewise.
16750         * sanopt.c: Likewise.
16751         * sched-deps.c: Likewise.
16752         * sched-ebb.c: Likewise.
16753         * sched-rgn.c: Likewise.
16754         * sched-vis.c: Likewise.
16755         * sdbout.c: Likewise.
16756         * sel-sched-dump.c: Likewise.
16757         * sel-sched-ir.c: Likewise.
16758         * sel-sched.c: Likewise.
16759         * sese.c: Likewise.
16760         * shrink-wrap.c: Likewise.
16761         * simplify-rtx.c: Likewise.
16762         * stack-ptr-mod.c: Likewise.
16763         * statistics.c: Likewise.
16764         * stmt.c: Likewise.
16765         * stor-layout.c: Likewise.
16766         * store-motion.c: Likewise.
16767         * streamer-hooks.c: Likewise.
16768         * stringpool.c: Likewise.
16769         * symtab.c: Likewise.
16770         * target-globals.c: Likewise.
16771         * targhooks.c: Likewise.
16772         * toplev.c: Likewise.
16773         * tracer.c: Likewise.
16774         * trans-mem.c: Likewise.
16775         * tree-affine.c: Likewise.
16776         * tree-browser.c: Likewise.
16777         * tree-call-cdce.c: Likewise.
16778         * tree-cfg.c: Likewise.
16779         * tree-cfgcleanup.c: Likewise.
16780         * tree-chkp-opt.c: Likewise.
16781         * tree-chkp.c: Likewise.
16782         * tree-chrec.c: Likewise.
16783         * tree-complex.c: Likewise.
16784         * tree-data-ref.c: Likewise.
16785         * tree-dfa.c: Likewise.
16786         * tree-diagnostic.c: Likewise.
16787         * tree-dump.c: Likewise.
16788         * tree-eh.c: Likewise.
16789         * tree-emutls.c: Likewise.
16790         * tree-if-conv.c: Likewise.
16791         * tree-inline.c: Likewise.
16792         * tree-into-ssa.c: Likewise.
16793         * tree-iterator.c: Likewise.
16794         * tree-loop-distribution.c: Likewise.
16795         * tree-nested.c: Likewise.
16796         * tree-nrv.c: Likewise.
16797         * tree-object-size.c: Likewise.
16798         * tree-outof-ssa.c: Likewise.
16799         * tree-parloops.c: Likewise.
16800         * tree-phinodes.c: Likewise.
16801         * tree-predcom.c: Likewise.
16802         * tree-pretty-print.c: Likewise.
16803         * tree-profile.c: Likewise.
16804         * tree-scalar-evolution.c: Likewise.
16805         * tree-sra.c: Likewise.
16806         * tree-ssa-address.c: Likewise.
16807         * tree-ssa-alias.c: Likewise.
16808         * tree-ssa-ccp.c: Likewise.
16809         * tree-ssa-coalesce.c: Likewise.
16810         * tree-ssa-copy.c: Likewise.
16811         * tree-ssa-copyrename.c: Likewise.
16812         * tree-ssa-dce.c: Likewise.
16813         * tree-ssa-dom.c: Likewise.
16814         * tree-ssa-dse.c: Likewise.
16815         * tree-ssa-forwprop.c: Likewise.
16816         * tree-ssa-ifcombine.c: Likewise.
16817         * tree-ssa-live.c: Likewise.
16818         * tree-ssa-loop-ch.c: Likewise.
16819         * tree-ssa-loop-im.c: Likewise.
16820         * tree-ssa-loop-ivcanon.c: Likewise.
16821         * tree-ssa-loop-ivopts.c: Likewise.
16822         * tree-ssa-loop-manip.c: Likewise.
16823         * tree-ssa-loop-niter.c: Likewise.
16824         * tree-ssa-loop-prefetch.c: Likewise.
16825         * tree-ssa-loop-unswitch.c: Likewise.
16826         * tree-ssa-loop.c: Likewise.
16827         * tree-ssa-math-opts.c: Likewise.
16828         * tree-ssa-operands.c: Likewise.
16829         * tree-ssa-phiopt.c: Likewise.
16830         * tree-ssa-phiprop.c: Likewise.
16831         * tree-ssa-pre.c: Likewise.
16832         * tree-ssa-propagate.c: Likewise.
16833         * tree-ssa-reassoc.c: Likewise.
16834         * tree-ssa-sccvn.c: Likewise.
16835         * tree-ssa-scopedtables.c: Likewise.
16836         * tree-ssa-sink.c: Likewise.
16837         * tree-ssa-strlen.c: Likewise.
16838         * tree-ssa-structalias.c: Likewise.
16839         * tree-ssa-tail-merge.c: Likewise.
16840         * tree-ssa-ter.c: Likewise.
16841         * tree-ssa-threadedge.c: Likewise.
16842         * tree-ssa-threadupdate.c: Likewise.
16843         * tree-ssa-uncprop.c: Likewise.
16844         * tree-ssa-uninit.c: Likewise.
16845         * tree-ssa.c: Likewise.
16846         * tree-ssanames.c: Likewise.
16847         * tree-stdarg.c: Likewise.
16848         * tree-streamer-in.c: Likewise.
16849         * tree-streamer-out.c: Likewise.
16850         * tree-streamer.c: Likewise.
16851         * tree-switch-conversion.c: Likewise.
16852         * tree-tailcall.c: Likewise.
16853         * tree-vect-data-refs.c: Likewise.
16854         * tree-vect-generic.c: Likewise.
16855         * tree-vect-loop-manip.c: Likewise.
16856         * tree-vect-loop.c: Likewise.
16857         * tree-vect-patterns.c: Likewise.
16858         * tree-vect-slp.c: Likewise.
16859         * tree-vect-stmts.c: Likewise.
16860         * tree-vectorizer.c: Likewise.
16861         * tree-vrp.c: Likewise.
16862         * tree.c: Likewise.
16863         * tsan.c: Likewise.
16864         * ubsan.c: Likewise.
16865         * valtrack.c: Likewise.
16866         * value-prof.c: Likewise.
16867         * var-tracking.c: Likewise.
16868         * varasm.c: Likewise.
16869         * varpool.c: Likewise.
16870         * vmsdbgout.c: Likewise.
16871         * vtable-verify.c: Likewise.
16872         * web.c: Likewise.
16873         * wide-int.cc: Likewise.
16874         * xcoffout.c: Likewise.
16875         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
16876         * common/common-targhooks.c: Likewise.
16877         * config/aarch64/aarch64-builtins.c: Likewise.
16878         * config/aarch64/aarch64.c: Likewise.
16879         * config/alpha/alpha.c: Likewise.
16880         * config/arc/arc.c: Likewise.
16881         * config/arm/aarch-common.c: Likewise.
16882         * config/arm/arm-builtins.c: Likewise.
16883         * config/arm/arm-c.c: Likewise.
16884         * config/arm/arm.c: Likewise.
16885         * config/avr/avr-c.c: Likewise.
16886         * config/avr/avr-log.c: Likewise.
16887         * config/avr/avr.c: Likewise.
16888         * config/bfin/bfin.c: Likewise.
16889         * config/c6x/c6x.c: Likewise.
16890         * config/cr16/cr16.c: Likewise.
16891         * config/cris/cris.c: Likewise.
16892         * config/darwin-c.c: Likewise.
16893         * config/darwin.c: Likewise.
16894         * config/default-c.c: Likewise.
16895         * config/epiphany/epiphany.c: Likewise.
16896         * config/epiphany/mode-switch-use.c: Likewise.
16897         * config/epiphany/resolve-sw-modes.c: Likewise.
16898         * config/fr30/fr30.c: Likewise.
16899         * config/frv/frv.c: Likewise.
16900         * config/ft32/ft32.c: Likewise.
16901         * config/glibc-c.c: Likewise.
16902         * config/h8300/h8300.c: Likewise.
16903         * config/i386/i386-c.c: Likewise.
16904         * config/i386/i386.c: Likewise.
16905         * config/i386/msformat-c.c: Likewise.
16906         * config/i386/winnt-cxx.c: Likewise.
16907         * config/i386/winnt-stubs.c: Likewise.
16908         * config/i386/winnt.c: Likewise.
16909         * config/ia64/ia64-c.c: Likewise.
16910         * config/ia64/ia64.c: Likewise.
16911         * config/iq2000/iq2000.c: Likewise.
16912         * config/lm32/lm32.c: Likewise.
16913         * config/m32c/m32c-pragma.c: Likewise.
16914         * config/m32c/m32c.c: Likewise.
16915         * config/m32r/m32r.c: Likewise.
16916         * config/m68k/m68k.c: Likewise.
16917         * config/mcore/mcore.c: Likewise.
16918         * config/mep/mep-pragma.c: Likewise.
16919         * config/mep/mep.c: Likewise.
16920         * config/microblaze/microblaze-c.c: Likewise.
16921         * config/microblaze/microblaze.c: Likewise.
16922         * config/mips/mips.c: Likewise.
16923         * config/mmix/mmix.c: Likewise.
16924         * config/mn10300/mn10300.c: Likewise.
16925         * config/moxie/moxie.c: Likewise.
16926         * config/msp430/msp430-c.c: Likewise.
16927         * config/msp430/msp430.c: Likewise.
16928         * config/nds32/nds32-cost.c: Likewise.
16929         * config/nds32/nds32-fp-as-gp.c: Likewise.
16930         * config/nds32/nds32-intrinsic.c: Likewise.
16931         * config/nds32/nds32-isr.c: Likewise.
16932         * config/nds32/nds32-md-auxiliary.c: Likewise.
16933         * config/nds32/nds32-memory-manipulation.c: Likewise.
16934         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16935         * config/nds32/nds32-predicates.c: Likewise.
16936         * config/nds32/nds32.c: Likewise.
16937         * config/nios2/nios2.c: Likewise.
16938         * config/nvptx/nvptx.c: Likewise.
16939         * config/pa/pa.c: Likewise.
16940         * config/pdp11/pdp11.c: Likewise.
16941         * config/rl78/rl78-c.c: Likewise.
16942         * config/rl78/rl78.c: Likewise.
16943         * config/rs6000/rs6000-c.c: Likewise.
16944         * config/rs6000/rs6000.c: Likewise.
16945         * config/rx/rx.c: Likewise.
16946         * config/s390/s390-c.c: Likewise.
16947         * config/s390/s390.c: Likewise.
16948         * config/sh/sh-c.c: Likewise.
16949         * config/sh/sh-mem.cc: Likewise.
16950         * config/sh/sh.c: Likewise.
16951         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
16952         * config/sh/sh_treg_combine.cc: Likewise.
16953         * config/sol2-c.c: Likewise.
16954         * config/sol2-cxx.c: Likewise.
16955         * config/sol2-stubs.c: Likewise.
16956         * config/sol2.c: Likewise.
16957         * config/sparc/sparc-c.c: Likewise.
16958         * config/sparc/sparc.c: Likewise.
16959         * config/spu/spu-c.c: Likewise.
16960         * config/spu/spu.c: Likewise.
16961         * config/stormy16/stormy16.c: Likewise.
16962         * config/tilegx/mul-tables.c: Likewise.
16963         * config/tilegx/tilegx-c.c: Likewise.
16964         * config/tilegx/tilegx.c: Likewise.
16965         * config/tilepro/mul-tables.c: Likewise.
16966         * config/tilepro/tilepro-c.c: Likewise.
16967         * config/tilepro/tilepro.c: Likewise.
16968         * config/v850/v850-c.c: Likewise.
16969         * config/v850/v850.c: Likewise.
16970         * config/vax/vax.c: Likewise.
16971         * config/visium/visium.c: Likewise.
16972         * config/vms/vms-c.c: Likewise.
16973         * config/vms/vms.c: Likewise.
16974         * config/vxworks.c: Likewise.
16975         * config/winnt-c.c: Likewise.
16976         * config/xtensa/xtensa.c: Likewise.
16977
16978 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
16979
16980         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
16981         function.
16982         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
16983
16984 2015-06-17  Richard Biener  <rguenther@suse.de>
16985
16986         PR tree-optimization/66251
16987         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
16988         stmts for SLP strided stores.
16989
16990         Revert
16991         2015-05-22  Richard Biener  <rguenther@suse.de>
16992
16993         PR tree-optimization/66251
16994         * tree-vect-stmts.c (vectorizable_conversion): Properly
16995         set STMT_VINFO_VEC_STMT even for the SLP case.
16996
16997         2015-05-26  Michael Matz  <matz@suse.de>
16998
16999         PR middle-end/66251
17000         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
17001         STMT_VINFO_VEC_STMT, also with SLP.
17002
17003 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
17004
17005         PR target/56766
17006         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
17007         (*avx_addsubv4df3_1s): Ditto.
17008         (*sse3_addsubv2df3_1): Ditto.
17009         (*sse3_addsubv2df3_1s): Ditto.
17010         (*avx_addsubv8sf3_1): Ditto.
17011         (*avx_addsubv8sf3_1s): Ditto.
17012         (*sse3_addsubv4sf3_1): Ditto.
17013         (*sse3_addsubv4sf3_1s): Ditto.
17014
17015 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
17016
17017         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
17018         (SYSROOT_SUFFIX_SPEC): Update.
17019         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
17020         (STARTFILE_PREFIX_SPEC): Update.
17021         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
17022         (MULTILIB_REQUIRED): New.
17023         (MULTILIB_OSDIRNAMES): New.
17024         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
17025         (MULTILIB_REQUIRED): New.
17026         (MULTILIB_OSDIRNAMES): New.
17027
17028 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
17029
17030         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
17031         * config/aarch64/aarch64-options-extensions.def: Update "fP",
17032         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
17033         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
17034         (AARCH64_FL_PAN): New.
17035         (AARCH64_FL_LOR): New.
17036         (AARCH64_FL_RDMA): New.
17037         (AARCH64_FL_FOR_ARCH8_1): New.
17038         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
17039         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
17040
17041 2015-06-16  Martin Liska  <mliska@suse.cz>
17042
17043         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
17044         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
17045         guard.
17046
17047 2015-06-16  Richard Biener  <rguenther@suse.de>
17048
17049         * tree-vect-stmts.c (vectorizable_store): Adjust.
17050         (vectorizable_load): Likewise.
17051         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
17052         Simplify.
17053         (vect_create_data_ref_ptr): Likewise.
17054         (bump_vector_ptr): Adjust.
17055
17056 2015-06-16  Richard Biener  <rguenther@suse.de>
17057
17058         * tree-vect-stmts.c (vectorizable_load): Properly start loads
17059         with the first element if this is grouped loads.
17060
17061 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
17062
17063         * config/arm/arm-protos.h (struct tune_params): Rename
17064         log_op_non_sc to log_op_non_short_circuit, and rename enum
17065         values to expand SC to SHORT_CIRCUIT.
17066         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
17067         to LOG_OP_NON_SHORT_CIRCUIT.
17068         (arm_fastmul_tune):Likewise
17069         (arm_strongarm_tune): Likewise.
17070         (arm_xscale_tune): Likewise.
17071         (arm_9e_tune): Likewise.
17072         (arm_marvell_pj4_tune): Likewise.
17073         (arm_v6t2_tune): Likewise.
17074         (arm_cortex_tune): Likewise.
17075         (arm_cortex_a8_tune): Likewise.
17076         (arm_cortex_a7_tune): Likewise.
17077         (arm_cortex_a15_tune): Likewise.
17078         (arm_cortex_a53_tune): Likewise.
17079         (arm_cortex_a57_tune): Likewise.
17080         (arm_xgene1_tune): Likewise.
17081         (arm_cortex_a5_tune): Likewise.
17082         (arm_cortex_a9_tune): Likewise.
17083         (arm_cortex_a12_tune): Likewise.
17084         (arm_v7m_tune): Likewise.
17085         (arm_cortex_m7_tune): Likewise.
17086         (arm_v6m_tune): Likewise.
17087         (arm_fa726te_tune): Likewise.
17088
17089 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
17090
17091         * altivec.md: Delete UNSPEC_VMLADDUHM.
17092         (mulv4si3_p8): New pattern.
17093         (mulv4si3): Use it for POWER8.
17094         (mulv8hi3): Use vmladduhm with zero addend.
17095         (altivec_vmladduhm): Descriptive RTL.
17096
17097 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
17098
17099         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
17100         to use neon_move instead of mov_imm.
17101         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
17102         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
17103
17104         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
17105         aarch64_float_const_zero_rtx_p check before TFmode check.
17106         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
17107         an fp zero.
17108         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
17109         code and attributes to match.  Change condition from register_operand
17110         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
17111         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
17112         to store2.
17113
17114 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
17115
17116         PR debug/66535
17117         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
17118         there is no parent.
17119
17120 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
17121
17122         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
17123         HOST_WIDE_INT parameter.
17124
17125 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
17126
17127         PR ipa/66181
17128         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
17129         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
17130         TYPE_NO_FORCE_BLK.
17131         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
17132
17133 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
17134
17135         * rtl.h (classify_insn): Declare.
17136         * emit-rtl.c (classify_insn): Move to...
17137         * rtl.c: ...here and add generator support.
17138         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
17139         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
17140         * genemit.c (gen_emit_seq): New function.
17141         (gen_expand, gen_split): Use it.
17142
17143 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
17144
17145         * tree.c (make_vector_stat): Fix comment to state that the
17146         function returns a VECTOR_CST.
17147
17148 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
17149
17150         * gensupport.h (add_implicit_parallel): Declare.
17151         * genrecog.c (add_implicit_parallel): Move to...
17152         * gensupport.c (add_implicit_parallel): ...here.
17153         (process_one_cond_exec): Use it.
17154         * genemit.c (gen_insn): Likewise.
17155
17156 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
17157
17158         PR bootstrap/66448
17159         * passes.c (rest_of_decl_compilation): Do not register globals for
17160         early debug if they are declared in built-ins.
17161
17162 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
17163
17164         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
17165
17166 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17167
17168         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
17169         manually swapping.
17170         (noce_try_cmove_arith): Likewise.
17171         (noce_get_alt_condition): Likewise.
17172
17173 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
17174
17175         * common/config/i386/i386-common.c
17176         (OPTION_MASK_ISA_MWAITX_SET): New.
17177         (ix86_handle_option): Handle mwaitx.
17178         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
17179         (x86_64-*-*): Likewise.
17180         * config/i386/mwaitxintrin.h: New header.
17181         * config/i386/cpuid.h (bit_MWAITX):  Define.
17182         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
17183         MWAITX support.
17184         * config/i386/i386.opt (mwaitx): New.
17185         * config/i386/i386-builtin-types.def
17186         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
17187         * config/i386/i386-c.c: Define __MWAITX__ if needed.
17188         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
17189         (PTA_MWAITX): New.
17190         (ix86_option_override_internal): Handle new option.
17191         (processor_alias_table): Added PTA_MWAITX.
17192         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
17193         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
17194         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
17195         IX86_BUILTIN_MONITORX  built-ins.
17196         * config/i386/i386.h (TARGET_MWAITX): New.
17197         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
17198         UNSPEC_MONITORX.
17199         (mwaitx):  New pattern.
17200         (monitorx_<mode>): New pattern.
17201         * config/i386/x86intrin.h: Include mwaitxintrin.h.
17202         * doc/extend.texi: Document monitorx and mwaitx builtins.
17203         * doc/invoke.texi: Document -mmwaitx option.
17204
17205 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
17206
17207         * emit-rtl.c (need_atomic_barrier_p): Mask model with
17208         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
17209
17210 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17211
17212         * dbxout.c (xcoff_debug_hooks): Provide a function for
17213         register_main_translation_unit hook.
17214
17215 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
17216
17217         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
17218         variants cases from switch.
17219         (rs6000_post_atomic_barrier): Same.
17220         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
17221         (rs6000_expand_atomic_exchange): Same.
17222         (rs6000_expand_atomic_op): Same.
17223         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
17224         SYNC variants cases from switch.
17225         (atomic_load): Same.
17226         (atomic_store): Same.
17227
17228 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
17229
17230         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
17231         CONST_INT for goto.
17232
17233 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
17234
17235         PR bootstrap/66448
17236         * dwarf2out.c (check_die): Check for common duplicate attributes.
17237         (add_location_or_const_value_attribute): Do not add duplicate
17238         attributes.
17239         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
17240         time around.
17241         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
17242         (gen_type_die_with_usage): Call check_die.
17243         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
17244
17245 2015-06-11  Jason Merrill  <jason@redhat.com>
17246
17247         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
17248         dies.
17249
17250 2015-06-11  Marek Polacek  <polacek@redhat.com>
17251
17252         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
17253
17254 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
17255
17256         PR bootstrap/66252
17257         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
17258         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
17259         (*addx_extend_sp32): Fix pasto.
17260         (*subx_extend): Rename into...
17261         (*subx_extend_sp32): ...this.
17262         (*adddi3_extend_sp32): Add earlyclobber.
17263         (*subdi3_insn_sp32): Likewise.
17264         (*subdi3_extend_sp32): Likewise.
17265         (*and_not_di_sp32): Likewise.
17266         (*or_not_di_sp32): Likewise.
17267         (*xor_not_di_sp32): Likewise.
17268         (*negdi2_sp32): Likewise.
17269         (*one_cmpldi2_sp32): Likewise.
17270
17271 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
17272
17273         * debug.h (struct gcc_debug_hooks): Add a
17274         register_main_translation_unit hook.
17275         * debug.c (do_nothing_debug_hooks): Provide a function for this
17276         new hook.
17277         * dbxout.c (dbx_debug_hooks): Likewise.
17278         * sdbout.c (sdb_debug_hooks): Likewise.
17279         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17280         * dwarf2out.c (main_translation_unit): New global variable.
17281         (dwarf2out_register_main_translation_unit): New function
17282         implementing the new hook.
17283         (dwarf2_debug_hooks): Assign
17284         dwarf2out_register_main_translation_unit to this new hook.
17285         (dwarf2out_init): Associate any main translation unit to
17286         comp_unit_die ().
17287
17288 2015-06-11  Marek Polacek  <polacek@redhat.com>
17289
17290         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
17291
17292 2015-06-11  Marek Polacek  <polacek@redhat.com>
17293
17294         * match.pd: Use single_use throughout.
17295
17296 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17297
17298         * config/arm/arm.c (arm_option_params_internal): When optimising
17299         for speed set max_insns_skipped when arm_restrict_it.
17300
17301 2015-06-11  Christian Bruel  <christian.bruel@st.com>
17302
17303         PR target/52144
17304         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
17305          macros in ...
17306         (arm_cpu_builtins): New function.
17307         (arm_pragma_target_parse): Call arm_cpu_builtins.
17308         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
17309         (arm_register_target_pragmas): Likewise.
17310         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
17311          Call arm_register_target_pragmas.
17312         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
17313         (arm_pragma_target_parse): Likewise.
17314
17315 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
17316
17317         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
17318         of the second operand.
17319
17320 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
17321
17322         PR target/66473
17323         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
17324         to prepare mask operand for AVX512 modes.
17325
17326 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
17327
17328         PR target/66474
17329         * doc/md.texi (Machine Constraints): Document that on the PowerPC
17330         if you use a constraint that targets a VSX register, you must use
17331         %x<n> in the template.
17332
17333 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
17334
17335         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
17336         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
17337         (define_insn "trap"): New definition.
17338
17339 2015-06-10  Richard Biener  <rguenther@suse.de>
17340
17341         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
17342         out from ...
17343         (vect_supported_load_permutation_p): ... here.  Handle
17344         supportable permutations in reductions.
17345         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
17346         for vectorizing strided group loads.
17347
17348 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
17349
17350         PR target/66470
17351         * config/i386/i386.c (ix86_split_long_move): For collisions
17352         involving direct tls segment refs, move the UNSPEC_TP possibly
17353         wrapped in ZERO_EXTEND out of the address for lea, to each of
17354         the memory loads.
17355
17356 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17357
17358         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
17359         dmb sy. Adjust tabs.
17360
17361 2015-06-10  Tom de Vries  <tom@codesourcery.com>
17362
17363         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
17364
17365 2015-06-10  Martin Liska  <mliska@suse.cz>
17366
17367         PR bootstrap/66471
17368         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
17369         all enum values in mem_alloc_origin.
17370         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
17371         name.
17372         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
17373         * bitmap.c (bitmap_register): Likewise.
17374         (dump_bitmap_statistics): Likewise.
17375         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
17376         (ggc_record_overhead): Likewise.
17377         * hash-map.h: Likewise.
17378         * hash-set.h: Likewise.
17379         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
17380         * hash-table.h: Likewise.
17381         * vec.c (vec_prefix::register_overhead): Likewise.
17382         (vec_prefix::release_overhead): Likewise.
17383         (dump_vec_loc_statistics): Likewise.
17384
17385 2015-06-09  Christian Bruel  <christian.bruel@st.com>
17386
17387         PR target/52144
17388         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
17389         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
17390         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
17391         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
17392         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
17393         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
17394         (arm_valid_target_attribute_p): Likewise.
17395         (arm_set_current_function, arm_can_inline_p): Likewise.
17396         (arm_valid_target_attribute_rec): Likewise.
17397         (arm_previous_fndecl): New variable.
17398         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
17399         (TARGET_CAN_INLINE_P): Define.
17400         (arm_asm_trampoline_template): Emit mode.
17401         (arm_file_start): Don't set unified syntax.
17402         (arm_declare_function_name): Set unified syntax and mode.
17403         (arm_option_override): Init target_option_default_node.
17404         and target_option_current_node.
17405         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
17406         (*call_symbol): Likewise.
17407         * doc/extend.texi: Document ARM/Thumb target attribute.
17408         * doc/invoke.texi: Likewise.
17409
17410 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17411
17412         Revert:
17413         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17414         PR rtl-optimization/64164
17415         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17416         * tree-ssa-copyrename.c: Removed.
17417         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17418         -ftree-coalesce-vars.
17419         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17420         * common.opt (ftree-copyrename): Ignore.
17421         (ftree-coalesce-inlined-vars): Likewise.
17422         * doc/invoke.texi: Remove the ignored options above.
17423         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17424         * tree-ssa-coalesce.h: ... here.
17425         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17426         headers required by it.
17427         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17428         across variables when flag_tree_coalesce_vars.  Check register
17429         use and promoted modes to allow coalescing.  Moved to
17430         tree-ssa-coalesce.c.
17431         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17432         with its member functions to tree-ssa-coalesce.c.
17433         (var_map_base_init): Likewise.  Renamed to
17434         compute_samebase_partition_bases.
17435         (partition_view_normal): Drop want_bases parameter.
17436         (partition_view_bitmap): Likewise.
17437         * tree-ssa-live.h: Adjust declarations.
17438         * tree-ssa-coalesce.c: Include explow.h.
17439         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17440         default defs at the entry point.
17441         (dump_part_var_map): New.
17442         (compute_optimized_partition_bases): New, called by...
17443         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17444         of compute_samebase_partition_bases.  Adjust.
17445         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17446         * cfgexpand.c (leader_merge): New.
17447         (get_rtl_for_parm_ssa_default_def): New.
17448         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17449         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17450         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17451         redundant MEM attr setting.
17452         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17453         from...
17454         (expand_one_stack_var): ... this.  New wrapper to check and
17455         skip already expanded SSA partitions.
17456         (record_alignment_for_reg_var): New, factored out of...
17457         (expand_one_var): ... this.
17458         (expand_one_ssa_partition): New.
17459         (adjust_one_expanded_partition_var): New.
17460         (expand_one_register_var): Check and skip already expanded SSA
17461         partitions.
17462         (expand_used_vars): Don't create DECLs for anonymous SSA
17463         names.  Expand all SSA partitions, then adjust all SSA names.
17464         (pass::execute): Replace the loops that set
17465         SA.partition_to_pseudo from partition leaders and cleared
17466         DECL_RTL for multi-location variables, and that which used to
17467         rename vars and set attrs, with one that clears DECL_RTL and
17468         checks that PARMs and RESULTs default_defs match DECL_RTL.
17469         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17470         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17471         * explow.c (promote_ssa_mode): New.
17472         * explow.h (promote_ssa_mode): Declare.
17473         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17474         * function.c: Include cfgexpand.h.
17475         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17476         (use_register_for_parm_decl): Wrapper for the above to
17477         special-case the result_ptr.
17478         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17479         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17480         multiple locations.
17481         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17482         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17483         (assign_parm_setup_block): Prefer SSA-assigned location.
17484         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17485         if stack_parm is NULL.
17486         (assign_parm_setup_stack): Prefer SSA-assigned location.
17487         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17488         rtl before testing for pointer bounds.  Special-case result_ptr.
17489         (expand_function_start): Maybe reset DECL_RTL of result.
17490         Prefer SSA-assigned location for result and static chain.
17491         Factor out DECL_RESULT and SET_DECL_RTL.
17492         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17493         anonymous SSA names.  Use promote_ssa_mode.
17494         (get_temp_reg): Likewise.
17495         (remove_ssa_form): Adjust.
17496         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17497         and get its reg_usage for reg invalidation.
17498         (compute_bb_dataflow): Pass it insn.
17499         (emit_notes_in_bb): Likewise.
17500         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17501         fail assert on conversion between unsigned types.
17502
17503 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17504
17505         PR tree-optimization/65460
17506         * omp-low.c (expand_omp_target): Set parallelized_function on
17507         cgraph_node for child_fn.
17508
17509 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17510
17511         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
17512         parallelized_function before add_new_function.
17513
17514 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
17515
17516         * gcc-plugin.h: Move decls to plugin.h and include it.
17517         * plugin.h: Relocate decls from gcc-plugin.h
17518         * ggc-page.c: Include required header files.
17519         * passes.c: Likewise.
17520         * cgraphunit.c: Likewise.
17521
17522 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17523
17524         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
17525
17526 2015-06-09  Jason Merrill  <jason@redhat.com>
17527
17528         PR bootstrap/66448
17529         * toplev.c (check_global_declaration): Don't warn about a clone.
17530
17531 2015-06-09  Marek Polacek  <polacek@redhat.com>
17532
17533         PR tree-optimization/66299
17534         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
17535         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
17536         patterns.
17537
17538 2015-06-09  Richard Biener  <rguenther@suse.de>
17539
17540         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
17541         (vect_analyze_slp_instance): Instead do not falsely drop
17542         load permutations.
17543
17544 2015-06-09  Richard Biener  <rguenther@suse.de>
17545
17546         PR middle-end/66423
17547         * match.pd: Handle A % (unsigned)(1 << B).
17548
17549 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
17550
17551         * varasm.c (output_object_block_htab): Remove.
17552         (output_object_block_compare): New.
17553         (output_object_blocks): Sort named object_blocks before outputting
17554         them.
17555
17556 2015-06-09  Richard Biener  <rguenther@suse.de>
17557
17558         PR tree-optimization/66419
17559         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
17560         consider GROUP_GAP when detecting a perfect subchain.
17561
17562 2015-06-09  Nick Clifton  <nickc@redhat.com>
17563
17564         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
17565         place read only data in the .frodata section.
17566
17567 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
17568
17569         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
17570         (atomic_store<mode>): Likewise.
17571
17572 2015-06-09  Richard Biener  <rguenther@suse.de>
17573
17574         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
17575
17576 2015-06-09  Richard Biener  <rguenther@suse.de>
17577
17578         PR middle-end/66413
17579         * tree-inline.c (insert_init_debug_bind): Unshare value.
17580
17581 2015-06-09  Richard Biener  <rguenther@suse.de>
17582
17583         PR tree-optimization/66396
17584         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
17585         Rename virtual operands.
17586
17587 2015-06-09  Tom de Vries  <tom@codesourcery.com>
17588
17589         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
17590         always return false.
17591
17592 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17593
17594         PR rtl-optimization/64164
17595         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
17596         * tree-ssa-copyrename.c: Removed.
17597         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
17598         -ftree-coalesce-vars.
17599         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
17600         * common.opt (ftree-copyrename): Ignore.
17601         (ftree-coalesce-inlined-vars): Likewise.
17602         * doc/invoke.texi: Remove the ignored options above.
17603         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
17604         * tree-ssa-coalesce.h: ... here.
17605         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
17606         headers required by it.
17607         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
17608         across variables when flag_tree_coalesce_vars.  Check register
17609         use and promoted modes to allow coalescing.  Moved to
17610         tree-ssa-coalesce.c.
17611         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
17612         with its member functions to tree-ssa-coalesce.c.
17613         (var_map_base_init): Likewise.  Renamed to
17614         compute_samebase_partition_bases.
17615         (partition_view_normal): Drop want_bases parameter.
17616         (partition_view_bitmap): Likewise.
17617         * tree-ssa-live.h: Adjust declarations.
17618         * tree-ssa-coalesce.c: Include explow.h.
17619         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
17620         default defs at the entry point.
17621         (dump_part_var_map): New.
17622         (compute_optimized_partition_bases): New, called by...
17623         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
17624         of compute_samebase_partition_bases.  Adjust.
17625         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
17626         * cfgexpand.c (leader_merge): New.
17627         (get_rtl_for_parm_ssa_default_def): New.
17628         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
17629         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
17630         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
17631         redundant MEM attr setting.
17632         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
17633         from...
17634         (expand_one_stack_var): ... this.  New wrapper to check and
17635         skip already expanded SSA partitions.
17636         (record_alignment_for_reg_var): New, factored out of...
17637         (expand_one_var): ... this.
17638         (expand_one_ssa_partition): New.
17639         (adjust_one_expanded_partition_var): New.
17640         (expand_one_register_var): Check and skip already expanded SSA
17641         partitions.
17642         (expand_used_vars): Don't create DECLs for anonymous SSA
17643         names.  Expand all SSA partitions, then adjust all SSA names.
17644         (pass::execute): Replace the loops that set
17645         SA.partition_to_pseudo from partition leaders and cleared
17646         DECL_RTL for multi-location variables, and that which used to
17647         rename vars and set attrs, with one that clears DECL_RTL and
17648         checks that PARMs and RESULTs default_defs match DECL_RTL.
17649         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
17650         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
17651         * explow.c (promote_ssa_mode): New.
17652         * explow.h (promote_ssa_mode): Declare.
17653         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
17654         * function.c: Include cfgexpand.h.
17655         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
17656         (use_register_for_parm_decl): Wrapper for the above to
17657         special-case the result_ptr.
17658         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
17659         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
17660         multiple locations.
17661         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
17662         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
17663         (assign_parm_setup_block): Prefer SSA-assigned location.
17664         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
17665         if stack_parm is NULL.
17666         (assign_parm_setup_stack): Prefer SSA-assigned location.
17667         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
17668         rtl before testing for pointer bounds.  Special-case result_ptr.
17669         (expand_function_start): Maybe reset DECL_RTL of result.
17670         Prefer SSA-assigned location for result and static chain.
17671         Factor out DECL_RESULT and SET_DECL_RTL.
17672         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
17673         anonymous SSA names.  Use promote_ssa_mode.
17674         (get_temp_reg): Likewise.
17675         (remove_ssa_form): Adjust.
17676         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
17677         and get its reg_usage for reg invalidation.
17678         (compute_bb_dataflow): Pass it insn.
17679         (emit_notes_in_bb): Likewise.
17680         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
17681         fail assert on conversion between unsigned types.
17682
17683 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
17684
17685         PR debug/58315
17686         * tree-inline.c (reset_debug_binding): New.
17687         (reset_debug_bindings): Likewise.
17688         (expand_call_inline): Call it.
17689
17690 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17691
17692         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
17693         TYPE_STRING_FLAG.
17694
17695 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
17696
17697         * lto-streamer-out.c (lto_output_location): Stream
17698         reserved locations correctly.
17699         * lto-streamer-in.c (lto_output_location): Likewise.
17700
17701 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
17702
17703         * coretypes.h: Include hash-table.h and hash-set.h for host files.
17704         * ggc.h: Don't include statistics.h>
17705         * hash-map.h: Remove all includes.
17706         * hash-set.h: Likewise.
17707         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
17708         the include list. Remove <new>.
17709         * inchash.h: Remove all includes.
17710         * mem-stats.h: Likewise.
17711         * vec.h: No special processing for generators or ggc.
17712         * alias.c : Adjust include files.
17713         * alloc-pool.c : Likewise.
17714         * alloc-pool.h : Likewise.
17715         * asan.c : Likewise.
17716         * attribs.c : Likewise.
17717         * auto-inc-dec.c : Likewise.
17718         * auto-profile.c : Likewise.
17719         * bb-reorder.c : Likewise.
17720         * bitmap.c : Likewise.
17721         * bitmap.h : Likewise.
17722         * bt-load.c : Likewise.
17723         * builtins.c : Likewise.
17724         * caller-save.c : Likewise.
17725         * calls.c : Likewise.
17726         * ccmp.c : Likewise.
17727         * cfg.c : Likewise.
17728         * cfganal.c : Likewise.
17729         * cfgbuild.c : Likewise.
17730         * cfgcleanup.c : Likewise.
17731         * cfgexpand.c : Likewise.
17732         * cfghooks.c : Likewise.
17733         * cfgloop.c : Likewise.
17734         * cfgloop.h : Likewise.
17735         * cfgloopanal.c : Likewise.
17736         * cfgloopmanip.c : Likewise.
17737         * cfgrtl.c : Likewise.
17738         * cgraph.c : Likewise.
17739         * cgraphbuild.c : Likewise.
17740         * cgraphclones.c : Likewise.
17741         * cgraphunit.c : Likewise.
17742         * cilk-common.c : Likewise.
17743         * combine-stack-adj.c : Likewise.
17744         * combine.c : Likewise.
17745         * compare-elim.c : Likewise.
17746         * context.c : Likewise.
17747         * convert.c : Likewise.
17748         * coverage.c : Likewise.
17749         * cppbuiltin.c : Likewise.
17750         * cprop.c : Likewise.
17751         * cse.c : Likewise.
17752         * cselib.c : Likewise.
17753         * data-streamer-in.c : Likewise.
17754         * data-streamer-out.c : Likewise.
17755         * data-streamer.c : Likewise.
17756         * data-streamer.h : Likewise.
17757         * dbxout.c : Likewise.
17758         * dce.c : Likewise.
17759         * ddg.c : Likewise.
17760         * debug.c : Likewise.
17761         * df-core.c : Likewise.
17762         * df-problems.c : Likewise.
17763         * df-scan.c : Likewise.
17764         * df.h : Likewise.
17765         * dfp.c : Likewise.
17766         * dojump.c : Likewise.
17767         * dominance.c : Likewise.
17768         * domwalk.c : Likewise.
17769         * double-int.c : Likewise.
17770         * dse.c : Likewise.
17771         * dumpfile.c : Likewise.
17772         * dwarf2asm.c : Likewise.
17773         * dwarf2cfi.c : Likewise.
17774         * dwarf2out.c : Likewise.
17775         * emit-rtl.c : Likewise.
17776         * et-forest.c : Likewise.
17777         * except.c : Likewise.
17778         * except.h : Likewise.
17779         * explow.c : Likewise.
17780         * expmed.c : Likewise.
17781         * expr.c : Likewise.
17782         * final.c : Likewise.
17783         * fixed-value.c : Likewise.
17784         * fold-const.c : Likewise.
17785         * function.c : Likewise.
17786         * fwprop.c : Likewise.
17787         * gcc-plugin.h : Likewise.
17788         * gcc.c : Likewise.
17789         * gcse-common.c : Likewise.
17790         * gcse.c : Likewise.
17791         * genattrtab.c : Likewise.
17792         * genautomata.c : Likewise.
17793         * genconditions.c : Likewise.
17794         * genemit.c : Likewise.
17795         * generic-match-head.c : Likewise.
17796         * genextract.c : Likewise.
17797         * gengtype-state.c : Likewise.
17798         * gengtype.c : Likewise.
17799         * genhooks.c : Likewise.
17800         * genmatch.c : Likewise.
17801         * genmodes.c : Likewise.
17802         * genrecog.c : Likewise.
17803         * gensupport.c : Likewise.
17804         * ggc-common.c : Likewise.
17805         * ggc-internal.h : Likewise.
17806         * ggc-none.c : Likewise.
17807         * ggc-page.c : Likewise.
17808         * gimple-builder.c : Likewise.
17809         * gimple-expr.c : Likewise.
17810         * gimple-fold.c : Likewise.
17811         * gimple-iterator.c : Likewise.
17812         * gimple-low.c : Likewise.
17813         * gimple-match-head.c : Likewise.
17814         * gimple-pretty-print.c : Likewise.
17815         * gimple-ssa-isolate-paths.c : Likewise.
17816         * gimple-ssa-strength-reduction.c : Likewise.
17817         * gimple-ssa.h : Likewise.
17818         * gimple-streamer-in.c : Likewise.
17819         * gimple-streamer-out.c : Likewise.
17820         * gimple-streamer.h : Likewise.
17821         * gimple-walk.c : Likewise.
17822         * gimple.c : Likewise.
17823         * gimplify-me.c : Likewise.
17824         * gimplify.c : Likewise.
17825         * godump.c : Likewise.
17826         * graph.c : Likewise.
17827         * graphds.c : Likewise.
17828         * graphite-blocking.c : Likewise.
17829         * graphite-dependences.c : Likewise.
17830         * graphite-interchange.c : Likewise.
17831         * graphite-isl-ast-to-gimple.c : Likewise.
17832         * graphite-optimize-isl.c : Likewise.
17833         * graphite-poly.c : Likewise.
17834         * graphite-scop-detection.c : Likewise.
17835         * graphite-sese-to-poly.c : Likewise.
17836         * graphite.c : Likewise.
17837         * haifa-sched.c : Likewise.
17838         * hard-reg-set.h : Likewise.
17839         * hw-doloop.c : Likewise.
17840         * ifcvt.c : Likewise.
17841         * inchash.c : Likewise.
17842         * incpath.c : Likewise.
17843         * init-regs.c : Likewise.
17844         * input.c : Likewise.
17845         * internal-fn.c : Likewise.
17846         * ipa-chkp.c : Likewise.
17847         * ipa-comdats.c : Likewise.
17848         * ipa-cp.c : Likewise.
17849         * ipa-devirt.c : Likewise.
17850         * ipa-icf-gimple.c : Likewise.
17851         * ipa-icf.c : Likewise.
17852         * ipa-inline-analysis.c : Likewise.
17853         * ipa-inline-transform.c : Likewise.
17854         * ipa-inline.c : Likewise.
17855         * ipa-polymorphic-call.c : Likewise.
17856         * ipa-profile.c : Likewise.
17857         * ipa-prop.c : Likewise.
17858         * ipa-pure-const.c : Likewise.
17859         * ipa-ref.c : Likewise.
17860         * ipa-reference.c : Likewise.
17861         * ipa-split.c : Likewise.
17862         * ipa-utils.c : Likewise.
17863         * ipa-visibility.c : Likewise.
17864         * ipa.c : Likewise.
17865         * ira-build.c : Likewise.
17866         * ira-color.c : Likewise.
17867         * ira-conflicts.c : Likewise.
17868         * ira-costs.c : Likewise.
17869         * ira-emit.c : Likewise.
17870         * ira-lives.c : Likewise.
17871         * ira.c : Likewise.
17872         * jump.c : Likewise.
17873         * langhooks.c : Likewise.
17874         * lcm.c : Likewise.
17875         * libfuncs.h : Likewise.
17876         * lists.c : Likewise.
17877         * loop-doloop.c : Likewise.
17878         * loop-init.c : Likewise.
17879         * loop-invariant.c : Likewise.
17880         * loop-iv.c : Likewise.
17881         * loop-unroll.c : Likewise.
17882         * lower-subreg.c : Likewise.
17883         * lra-assigns.c : Likewise.
17884         * lra-coalesce.c : Likewise.
17885         * lra-constraints.c : Likewise.
17886         * lra-eliminations.c : Likewise.
17887         * lra-lives.c : Likewise.
17888         * lra-remat.c : Likewise.
17889         * lra-spills.c : Likewise.
17890         * lra.c : Likewise.
17891         * lto-cgraph.c : Likewise.
17892         * lto-compress.c : Likewise.
17893         * lto-opts.c : Likewise.
17894         * lto-section-in.c : Likewise.
17895         * lto-section-out.c : Likewise.
17896         * lto-streamer-in.c : Likewise.
17897         * lto-streamer-out.c : Likewise.
17898         * lto-streamer.c : Likewise.
17899         * lto-streamer.h : Likewise.
17900         * mcf.c : Likewise.
17901         * mode-switching.c : Likewise.
17902         * modulo-sched.c : Likewise.
17903         * omega.c : Likewise.
17904         * omp-low.c : Likewise.
17905         * optabs.c : Likewise.
17906         * opts-global.c : Likewise.
17907         * opts.h : Likewise.
17908         * passes.c : Likewise.
17909         * plugin.c : Likewise.
17910         * postreload-gcse.c : Likewise.
17911         * postreload.c : Likewise.
17912         * predict.c : Likewise.
17913         * print-rtl.c : Likewise.
17914         * print-tree.c : Likewise.
17915         * profile.c : Likewise.
17916         * read-md.c : Likewise.
17917         * read-md.h : Likewise.
17918         * read-rtl.c : Likewise.
17919         * real.c : Likewise.
17920         * realmpfr.c : Likewise.
17921         * recog.c : Likewise.
17922         * ree.c : Likewise.
17923         * reg-stack.c : Likewise.
17924         * regcprop.c : Likewise.
17925         * reginfo.c : Likewise.
17926         * regrename.c : Likewise.
17927         * regstat.c : Likewise.
17928         * reload.c : Likewise.
17929         * reload1.c : Likewise.
17930         * reorg.c : Likewise.
17931         * resource.c : Likewise.
17932         * rtl-chkp.c : Likewise.
17933         * rtl.c : Likewise.
17934         * rtl.h : Likewise.
17935         * rtlanal.c : Likewise.
17936         * rtlhash.c : Likewise.
17937         * rtlhash.h : Likewise.
17938         * rtlhooks.c : Likewise.
17939         * sanopt.c : Likewise.
17940         * sched-deps.c : Likewise.
17941         * sched-ebb.c : Likewise.
17942         * sched-rgn.c : Likewise.
17943         * sched-vis.c : Likewise.
17944         * sdbout.c : Likewise.
17945         * sel-sched-dump.c : Likewise.
17946         * sel-sched-ir.c : Likewise.
17947         * sel-sched-ir.h : Likewise.
17948         * sel-sched.c : Likewise.
17949         * sese.c : Likewise.
17950         * shrink-wrap.c : Likewise.
17951         * shrink-wrap.h : Likewise.
17952         * simplify-rtx.c : Likewise.
17953         * stack-ptr-mod.c : Likewise.
17954         * statistics.c : Likewise.
17955         * stmt.c : Likewise.
17956         * stor-layout.c : Likewise.
17957         * store-motion.c : Likewise.
17958         * stringpool.c : Likewise.
17959         * symtab.c : Likewise.
17960         * target-globals.c : Likewise.
17961         * targhooks.c : Likewise.
17962         * tlink.c : Likewise.
17963         * toplev.c : Likewise.
17964         * tracer.c : Likewise.
17965         * trans-mem.c : Likewise.
17966         * tree-affine.c : Likewise.
17967         * tree-affine.h : Likewise.
17968         * tree-browser.c : Likewise.
17969         * tree-call-cdce.c : Likewise.
17970         * tree-cfg.c : Likewise.
17971         * tree-cfgcleanup.c : Likewise.
17972         * tree-chkp-opt.c : Likewise.
17973         * tree-chkp.c : Likewise.
17974         * tree-chrec.c : Likewise.
17975         * tree-complex.c : Likewise.
17976         * tree-data-ref.c : Likewise.
17977         * tree-dfa.c : Likewise.
17978         * tree-diagnostic.c : Likewise.
17979         * tree-dump.c : Likewise.
17980         * tree-eh.c : Likewise.
17981         * tree-eh.h : Likewise.
17982         * tree-emutls.c : Likewise.
17983         * tree-hasher.h : Likewise.
17984         * tree-if-conv.c : Likewise.
17985         * tree-inline.c : Likewise.
17986         * tree-inline.h : Likewise.
17987         * tree-into-ssa.c : Likewise.
17988         * tree-iterator.c : Likewise.
17989         * tree-loop-distribution.c : Likewise.
17990         * tree-nested.c : Likewise.
17991         * tree-nrv.c : Likewise.
17992         * tree-object-size.c : Likewise.
17993         * tree-outof-ssa.c : Likewise.
17994         * tree-parloops.c : Likewise.
17995         * tree-phinodes.c : Likewise.
17996         * tree-predcom.c : Likewise.
17997         * tree-pretty-print.c : Likewise.
17998         * tree-profile.c : Likewise.
17999         * tree-scalar-evolution.c : Likewise.
18000         * tree-sra.c : Likewise.
18001         * tree-ssa-address.c : Likewise.
18002         * tree-ssa-alias.c : Likewise.
18003         * tree-ssa-ccp.c : Likewise.
18004         * tree-ssa-coalesce.c : Likewise.
18005         * tree-ssa-copy.c : Likewise.
18006         * tree-ssa-copyrename.c : Likewise.
18007         * tree-ssa-dce.c : Likewise.
18008         * tree-ssa-dom.c : Likewise.
18009         * tree-ssa-dse.c : Likewise.
18010         * tree-ssa-forwprop.c : Likewise.
18011         * tree-ssa-ifcombine.c : Likewise.
18012         * tree-ssa-live.c : Likewise.
18013         * tree-ssa-loop-ch.c : Likewise.
18014         * tree-ssa-loop-im.c : Likewise.
18015         * tree-ssa-loop-ivcanon.c : Likewise.
18016         * tree-ssa-loop-ivopts.c : Likewise.
18017         * tree-ssa-loop-manip.c : Likewise.
18018         * tree-ssa-loop-niter.c : Likewise.
18019         * tree-ssa-loop-prefetch.c : Likewise.
18020         * tree-ssa-loop-unswitch.c : Likewise.
18021         * tree-ssa-loop.c : Likewise.
18022         * tree-ssa-math-opts.c : Likewise.
18023         * tree-ssa-operands.c : Likewise.
18024         * tree-ssa-phiopt.c : Likewise.
18025         * tree-ssa-phiprop.c : Likewise.
18026         * tree-ssa-pre.c : Likewise.
18027         * tree-ssa-propagate.c : Likewise.
18028         * tree-ssa-reassoc.c : Likewise.
18029         * tree-ssa-sccvn.c : Likewise.
18030         * tree-ssa-scopedtables.c : Likewise.
18031         * tree-ssa-sink.c : Likewise.
18032         * tree-ssa-strlen.c : Likewise.
18033         * tree-ssa-structalias.c : Likewise.
18034         * tree-ssa-tail-merge.c : Likewise.
18035         * tree-ssa-ter.c : Likewise.
18036         * tree-ssa-threadedge.c : Likewise.
18037         * tree-ssa-threadupdate.c : Likewise.
18038         * tree-ssa-uncprop.c : Likewise.
18039         * tree-ssa-uninit.c : Likewise.
18040         * tree-ssa.c : Likewise.
18041         * tree-ssanames.c : Likewise.
18042         * tree-stdarg.c : Likewise.
18043         * tree-streamer-in.c : Likewise.
18044         * tree-streamer-out.c : Likewise.
18045         * tree-streamer.c : Likewise.
18046         * tree-streamer.h : Likewise.
18047         * tree-switch-conversion.c : Likewise.
18048         * tree-tailcall.c : Likewise.
18049         * tree-vect-data-refs.c : Likewise.
18050         * tree-vect-generic.c : Likewise.
18051         * tree-vect-loop-manip.c : Likewise.
18052         * tree-vect-loop.c : Likewise.
18053         * tree-vect-patterns.c : Likewise.
18054         * tree-vect-slp.c : Likewise.
18055         * tree-vect-stmts.c : Likewise.
18056         * tree-vectorizer.c : Likewise.
18057         * tree-vectorizer.h : Likewise.
18058         * tree-vrp.c : Likewise.
18059         * tree.c : Likewise.
18060         * tsan.c : Likewise.
18061         * ubsan.c : Likewise.
18062         * valtrack.c : Likewise.
18063         * valtrack.h : Likewise.
18064         * value-prof.c : Likewise.
18065         * var-tracking.c : Likewise.
18066         * varasm.c : Likewise.
18067         * varpool.c : Likewise.
18068         * vec.c: Likewise.
18069         * vmsdbgout.c : Likewise.
18070         * vtable-verify.c : Likewise.
18071         * vtable-verify.h : Likewise.
18072         * web.c : Likewise.
18073         * wide-int.cc : Likewise.
18074         * xcoffout.c : Likewise.
18075         * config/aarch64/aarch64-builtins.c : Likewise.
18076         * config/aarch64/aarch64.c : Likewise.
18077         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
18078         * config/alpha/alpha.c : Likewise.
18079         * config/arc/arc.c : Likewise.
18080         * config/arm/aarch-common.c : Likewise.
18081         * config/arm/arm-builtins.c : Likewise.
18082         * config/arm/arm-c.c : Likewise.
18083         * config/arm/arm.c : Likewise.
18084         * config/avr/avr-c.c : Likewise.
18085         * config/avr/avr-log.c : Likewise.
18086         * config/avr/avr.c : Likewise.
18087         * config/bfin/bfin.c : Likewise.
18088         * config/c6x/c6x.c : Likewise.
18089         * config/cr16/cr16.c : Likewise.
18090         * config/cris/cris.c : Likewise.
18091         * config/darwin-c.c : Likewise.
18092         * config/darwin.c : Likewise.
18093         * config/default-c.c : Likewise.
18094         * config/epiphany/epiphany.c : Likewise.
18095         * config/epiphany/mode-switch-use.c : Likewise.
18096         * config/epiphany/resolve-sw-modes.c : Likewise.
18097         * config/fr30/fr30.c : Likewise.
18098         * config/frv/frv.c : Likewise.
18099         * config/ft32/ft32.c : Likewise.
18100         * config/glibc-c.c : Likewise.
18101         * config/h8300/h8300.c : Likewise.
18102         * config/i386/i386-c.c : Likewise.
18103         * config/i386/i386.c : Likewise.
18104         * config/i386/msformat-c.c : Likewise.
18105         * config/i386/winnt-cxx.c : Likewise.
18106         * config/i386/winnt-stubs.c : Likewise.
18107         * config/i386/winnt.c : Likewise.
18108         * config/ia64/ia64-c.c : Likewise.
18109         * config/ia64/ia64.c : Likewise.
18110         * config/iq2000/iq2000.c : Likewise.
18111         * config/lm32/lm32.c : Likewise.
18112         * config/m32c/m32c-pragma.c : Likewise.
18113         * config/m32c/m32c.c : Likewise.
18114         * config/m32r/m32r.c : Likewise.
18115         * config/m68k/m68k.c : Likewise.
18116         * config/mcore/mcore.c : Likewise.
18117         * config/mep/mep-pragma.c : Likewise.
18118         * config/mep/mep.c : Likewise.
18119         * config/microblaze/microblaze-c.c : Likewise.
18120         * config/microblaze/microblaze.c : Likewise.
18121         * config/mips/mips.c : Likewise.
18122         * config/mmix/mmix.c : Likewise.
18123         * config/mn10300/mn10300.c : Likewise.
18124         * config/moxie/moxie.c : Likewise.
18125         * config/msp430/msp430-c.c : Likewise.
18126         * config/msp430/msp430.c : Likewise.
18127         * config/nds32/nds32-cost.c : Likewise.
18128         * config/nds32/nds32-fp-as-gp.c : Likewise.
18129         * config/nds32/nds32-intrinsic.c : Likewise.
18130         * config/nds32/nds32-isr.c : Likewise.
18131         * config/nds32/nds32-md-auxiliary.c : Likewise.
18132         * config/nds32/nds32-memory-manipulation.c : Likewise.
18133         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
18134         * config/nds32/nds32-predicates.c : Likewise.
18135         * config/nds32/nds32.c : Likewise.
18136         * config/nios2/nios2.c : Likewise.
18137         * config/nvptx/nvptx.c : Likewise.
18138         * config/pa/pa.c : Likewise.
18139         * config/pdp11/pdp11.c : Likewise.
18140         * config/rl78/rl78-c.c : Likewise.
18141         * config/rl78/rl78.c : Likewise.
18142         * config/rs6000/rs6000-c.c : Likewise.
18143         * config/rs6000/rs6000.c : Likewise.
18144         * config/rx/rx.c : Likewise.
18145         * config/s390/s390-c.c : Likewise.
18146         * config/s390/s390.c : Likewise.
18147         * config/sh/sh-c.c : Likewise.
18148         * config/sh/sh-mem.cc : Likewise.
18149         * config/sh/sh.c : Likewise.
18150         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
18151         * config/sh/sh_treg_combine.cc : Likewise.
18152         * config/sol2-c.c : Likewise.
18153         * config/sol2-cxx.c : Likewise.
18154         * config/sol2-stubs.c : Likewise.
18155         * config/sol2.c : Likewise.
18156         * config/sparc/sparc-c.c : Likewise.
18157         * config/sparc/sparc.c : Likewise.
18158         * config/spu/spu-c.c : Likewise.
18159         * config/spu/spu.c : Likewise.
18160         * config/stormy16/stormy16.c : Likewise.
18161         * config/tilegx/mul-tables.c : Likewise.
18162         * config/tilegx/tilegx-c.c : Likewise.
18163         * config/tilegx/tilegx.c : Likewise.
18164         * config/tilepro/mul-tables.c : Likewise.
18165         * config/tilepro/tilepro-c.c : Likewise.
18166         * config/tilepro/tilepro.c : Likewise.
18167         * config/v850/v850-c.c : Likewise.
18168         * config/v850/v850.c : Likewise.
18169         * config/vax/vax.c : Likewise.
18170         * config/visium/visium.c : Likewise.
18171         * config/vms/vms-c.c : Likewise.
18172         * config/vms/vms.c : Likewise.
18173         * config/vxworks.c : Likewise.
18174         * config/winnt-c.c : Likewise.
18175         * config/xtensa/xtensa.c : Likewise.
18176
18177 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
18178
18179         PR lto/65378
18180         * ipa-utils.h (warn_types_mismatch): Update prototype.
18181         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
18182         parameters.
18183         (type_mismatch_p): New function.
18184         (warn_types_mismatch): Reorg to work better on non-C++ types.
18185         (odr_types_equivalent_p): Add loc1/loc2 parameters.
18186         (add_type_duplicate): Update.
18187
18188 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18189
18190         PR rtl-optimization/66444
18191         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
18192         call_used_regs.
18193
18194 2015-06-08  Richard Biener  <rguenther@suse.de>
18195
18196         PR tree-optimization/66422
18197         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
18198         block after inserted gcc_unreachable.
18199
18200 2015-06-08  Nick Clifton  <nickc@redhat.com>
18201
18202         * config/rx/rx.c (rx_function_value): Do not promote vector types.
18203         (rx_promote_function_mode): Likewise.
18204         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
18205
18206 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
18207
18208         * genattrtab.c (insn_alternatives): Change type from int *
18209         to uint64_t *.
18210         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
18211         (get_attr_value): Change type of num_alt to uint64_t.
18212         (compute_alternative_mask): Change return type from
18213         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
18214         (make_alternative_compare, mk_attr_alt): Change argument type
18215         from int to uint64_t.
18216         (simplify_test_exp): Change type of i from int to uint64_t.
18217         Shift ((uint64_t) 1) instead of 1 up.
18218         (main): Adjust oballocvec first argument from int to uint64_t.
18219         Shift ((uint64_t) 1) instead of 1 up.
18220
18221 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
18222
18223         PR other/65366
18224         * gdbhooks.py: Import sys.
18225         (intptr): New function.  Replace int(...) by intptr(...).
18226
18227 2015-06-08  Richard Biener  <rguenther@suse.de>
18228
18229         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
18230         adjustment for gaps at the end of a SLP load group properly.
18231         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
18232         all permutations we can generate.
18233         (vect_transform_slp_perm_load): Use the correct group-size.
18234
18235 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
18236
18237         * genmatch.c (expr::gen_transform): For conditions, guess the type
18238         from the second operand.
18239
18240 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18241
18242         PR tree-optimization/66442
18243         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
18244         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
18245         if the loop latch is not a singleton.  Use
18246         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
18247
18248 2015-06-08  Marek Polacek  <polacek@redhat.com>
18249
18250         PR sanitizer/66452
18251         * toplev.c (check_global_declaration): Don't warn about artificial
18252         decls.
18253
18254 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18255
18256         PR tree-optimization/66436
18257         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
18258         dump file.
18259         * gimplify.c: Add tree-dump.h include.
18260         (gimplify_function_tree): Dump function to gimple dump file.
18261         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
18262         dump file.
18263
18264 2015-06-08  Tom de Vries  <tom@codesourcery.com>
18265
18266         PR tree-optimization/66435
18267         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
18268         function.
18269
18270 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
18271
18272         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
18273         of ptr_type_node to not be ptr_to_node.
18274         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
18275         TREE_TYPE of pointers.
18276         * gimple-expr.c (useless_type_conversion): Reorder the check for
18277         function pointers and TYPE_CANONICAL.
18278
18279 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
18280
18281         PR bootstrap/66319
18282         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
18283         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
18284         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
18285         later.
18286         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
18287         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
18288         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
18289         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
18290         and non iso if unix2003.
18291
18292 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
18293
18294         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
18295
18296 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
18297
18298         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
18299         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
18300         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
18301         except.c, final.c, function.c, gcse-common.c, genemit.c,
18302         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
18303         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
18304         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
18305         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
18306         more derived ones.
18307
18308 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
18309
18310         * combine.c (combine_split_insns): Remove cast.
18311         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
18312         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
18313         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
18314         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
18315         * genemit.c (gen_split): Change return type of generated functions to
18316         rtx_insn.
18317         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
18318         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
18319         gen_peephole2_* functions.
18320         (print_subroutine, main): Likewise.
18321         * recog.c (peephole2_optimize): Remove cast.
18322         (peep2_next_insn): Promote return type to rtx_insn.
18323         * recog.h (peep2_next_insn): Fix prototype.
18324         * rtl.h (try_split, split_insns): Likewise.
18325
18326 2015-06-06  DJ Delorie  <dj@redhat.com>
18327
18328         * config/msp430/msp430.c (msp430_asm_integer): Support addition
18329         and subtraction too.
18330
18331 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
18332
18333         PR target/66410
18334         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
18335         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
18336         instead of Snd.  Disparage Sid/z alternative with '^'.
18337
18338 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
18339
18340         * dwarf2out.c: Remove deferred_locations*.
18341         (dwarf2_debug_hooks): Add early_finish hook.
18342         Remove global_decl hook.
18343         Add early_global_decl and late_global_decl hook.
18344         New global early_dwarf.
18345         New structure set_early_dwarf.
18346         (output_die): Indicate whether a DIE was generated early
18347         when generating assembly with -dA.
18348         (struct limbo_die_struct): Document created_for field.
18349         Remove file_table_last_lookup.
18350         (remove_AT): Return TRUE if successful.
18351         (remove_child_TAG): Clear die_parent.
18352         (reparent_child): New function abstracted from...
18353         (splice_child_die): ...here.
18354         (new_die): ICE if a DIE ends up in limbo too late.
18355         (check_die): New.
18356         (defer_location): Remove.
18357         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
18358         (fill_variable_array_bounds): New.
18359         (decl_start_label): Call fill_variable_array_bounds.
18360         (gen_formal_parameter_die): Rewrite to reuse previously generated
18361         DIEs.
18362         (gen_subprogram_die): Same.
18363         (gen_variable_die): Same.
18364         (gen_const_die): Same.
18365         (gen_label_die): Same.
18366         (gen_lexical_block_die): Same.
18367         (decl_will_get_specification_p): New.
18368         (local_function_static): New.
18369         (gen_struct_or_union_type_die): Fill in variable-length fields.
18370         (gen_typedef_die): Fill in variable-length typedefs.
18371         (gen_tagged_type_die): Gracefully return on error_mark_node.
18372         Handle re-entrancy.
18373         (gen_type_die_with_usage): Handle variable-length types.
18374         Remove duplicate code for ARRAY_TYPE case.
18375         (process_scope_var): Only process imported modules during early
18376         dwarf.
18377         (dwarf2out_early_global_decl): New.
18378         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
18379         (dwarf2out_type_decl): Set early_dwarf while calling
18380         dwarf2out_decl.
18381         (dwarf2out_decl): Verify that we did not recreate a previously
18382         generated DIE.
18383         Do not return on DECL_EXTERNALs in VAR_DECLs.
18384         Abstract some code to local_function_static.
18385         (lookup_filename): Remove use of file_table_last_lookup.
18386         Gracefully exit on missing file_name.
18387         (dwarf2out_finish): Verify limbo list.
18388         Remove deferred_locations_list use.
18389         Move deferred_asm_name and limbo flushing to...
18390         (dwarf2out_early_finish): ...here.  New.
18391         (dwarf2out_c_finalize): Remove set of deferred_location_list,
18392         deferred_asm_name, and file_table_last_lookup.
18393         * cgraph.h (referred_to_p): Add default argument.
18394         * cgraphunit.c (referred_to_p): Add and handle include_self
18395         argument.
18396         (analyze_functions): Add first_time argument.
18397         Call check_global_declaration for all symbols.
18398         Call late_global_decl for nodes for moribund nodes.
18399         (finalize_compilation_unit): Add new argument to
18400         analyze_functions.
18401         Call early_global_decl for functions.
18402         Call early_finish debug hook.
18403         * dbxout.c (dbxout_early_global_decl): New.
18404         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
18405         (dbx_debug_hooks): Add new hooks.
18406         (xcoff_debug_hooks): Same.
18407         * debug.c (do_nothing_debug_hooks): Add early_finish field.
18408         Add early and late debug hooks.
18409         Remove global_decl hook.
18410         * debug.h (struct gcc_debug_hooks): Add early_finish,
18411         early_global_decl, and late_global_decl fields.
18412         Remove global_decl field.
18413         Document gcc_debug_hooks.
18414         * gengtype.c (output_typename): Remove.
18415         * godump.c (go_early_global_decl): New.
18416         (go_late_global_decl): New.
18417         (go_global_decl): Remove.
18418         (dump_go_spec_init): Remove global_decl.  Add
18419         {early,late}_global_decl.
18420         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
18421         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
18422         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
18423         (write_global_declarations): Remove.
18424         (global_decl_processing): New.
18425         * langhooks.h (struct lang_hooks_for_decls): Remove
18426         final_write_globals field.
18427         Add post_compilation_parsing_cleanups field.
18428         * passes.c (rest_of_decl_compilation): Call early_global_decl.
18429         * sdbout.c: Add early and late_global_decl hooks.  Remove
18430         sdbout_global_decl hook.
18431         Add early_finish field for sdb_debug_hooks.
18432         (sdbout_global_decl): Remove.
18433         (sdbout_early_global_decl): New.
18434         (sdbout_late_global_decl): New.
18435         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
18436         * toplev.c (check_global_declaration): Rename from
18437         check_global_declaration_1.
18438         Adapt to use symtab infrastructure.
18439         (check_global_declarations): Remove.
18440         (emit_debug_global_declarations): Remove.
18441         (compile_file): Remove call to final_write_globals langhook.
18442         Run the actual compilation process.
18443         Perform any post compilation parser cleanups.
18444         Generate late debug info.
18445         * toplev.h (check_global_declaration): New.
18446         (check_global_declaration_1): Remove.
18447         (check_global_declarations): Remove.
18448         (write_global_declarations): Remove.
18449         (emit_debug_global_declarations): Remove.
18450         (global_decl_processing): New.
18451         * tree-core.h (struct tree_block): Add DIE field.
18452         * tree.h (BLOCK_DIE): New.
18453         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
18454         throughout.
18455         (vmsdbgout_early_global_decl): New.
18456         (vmsdbgout_late_global_decl): New.
18457         Add early_finish debug hook field to vmsdbg_debug_hooks.
18458         Remove vmsdbgout_decl to vmsdbgout_function_decl.
18459         Add early and late_global_decl debug hooks.
18460
18461 2015-06-05  Julian Brown  <julian@codesourcery.com>
18462             Sandra Loosemore  <sandra@codesourcery.com>
18463
18464         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
18465         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
18466         to print-sysroot-suffix.sh script.
18467
18468 2015-06-05  Tom de Vries  <tom@codesourcery.com>
18469
18470         merge from gomp4 branch:
18471         2015-05-28  Tom de Vries  <tom@codesourcery.com>
18472
18473         PR tree-optimization/65443
18474         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
18475         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
18476         (try_transform_to_exit_first_loop_alt): New function.
18477         (transform_to_exit_first_loop): Use
18478         try_transform_to_exit_first_loop_alt.
18479
18480 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
18481
18482         * builtins.c (expand_builtin_atomic_compare_exchange): Call
18483         emit_cmp_and_jump_insns with the mode of target.
18484
18485 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18486
18487         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
18488
18489 2015-06-04  DJ Delorie  <dj@redhat.com>
18490
18491         * config/msp430/msp430.md (movsi_s): New.  Special case for
18492         storing a 20-bit symbol into a 32-bit register.
18493         * config/msp430/msp430.c (msp430_subreg): Add support for it.
18494         * config/msp430/predicates.md (msp430_symbol_operand): New.
18495
18496 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
18497
18498         * c-family/c-common.c (noplt): New attribute.
18499         (handle_noplt_attribute): New handler.
18500         * calls.c (prepare_call_address): Check for noplt
18501         attribute.
18502         * config/i386/i386.c (ix86_expand_call): Check
18503         for noplt attribute.
18504         (ix86_nopic_noplt_attribute_p): New function.
18505         (ix86_output_call_insn): Output indirect call for non-pic
18506         no plt calls.
18507         * doc/extend.texi (noplt): Document new attribute.
18508         * doc/invoke.texi: Document new attribute.
18509
18510 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
18511
18512         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
18513         real.h, and fixed-value.h when included in host source files.
18514         * double-int.h: Remove redundant #includes listed above.
18515         * fixed-value.h: Likewise.
18516         * real.h: Likewise.
18517         * wide-int.h: Likewise.
18518         * inchash.h: Likewise.
18519         * rtl.h: Add some include files When included from a generator file.
18520         * target.h: Remove wide-int.h and insn-modes.h from the include list.
18521         * internal-fn.h: Don't include coretypes.h.
18522         * alias.c: Adjust includes for restructured coretypes.h.
18523         * asan.c: Likewise.
18524         * attribs.c: Likewise.
18525         * auto-inc-dec.c: Likewise.
18526         * auto-profile.c: Likewise.
18527         * bb-reorder.c: Likewise.
18528         * bt-load.c: Likewise.
18529         * builtins.c: Likewise.
18530         * caller-save.c: Likewise.
18531         * calls.c: Likewise.
18532         * ccmp.c: Likewise.
18533         * cfg.c: Likewise.
18534         * cfganal.c: Likewise.
18535         * cfgbuild.c: Likewise.
18536         * cfgcleanup.c: Likewise.
18537         * cfgexpand.c: Likewise.
18538         * cfghooks.c: Likewise.
18539         * cfgloop.c: Likewise.
18540         * cfgloop.h: Likewise.
18541         * cfgloopanal.c: Likewise.
18542         * cfgloopmanip.c: Likewise.
18543         * cfgrtl.c: Likewise.
18544         * cgraph.c: Likewise.
18545         * cgraphbuild.c: Likewise.
18546         * cgraphclones.c: Likewise.
18547         * cgraphunit.c: Likewise.
18548         * cilk-common.c: Likewise.
18549         * combine-stack-adj.c: Likewise.
18550         * combine.c: Likewise.
18551         * compare-elim.c: Likewise.
18552         * convert.c: Likewise.
18553         * coverage.c: Likewise.
18554         * cppbuiltin.c: Likewise.
18555         * cprop.c: Likewise.
18556         * cse.c: Likewise.
18557         * cselib.c: Likewise.
18558         * data-streamer-in.c: Likewise.
18559         * data-streamer-out.c: Likewise.
18560         * data-streamer.c: Likewise.
18561         * dbxout.c: Likewise.
18562         * dce.c: Likewise.
18563         * ddg.c: Likewise.
18564         * debug.c: Likewise.
18565         * df-core.c: Likewise.
18566         * df-problems.c: Likewise.
18567         * df-scan.c: Likewise.
18568         * df.h: Likewise.
18569         * dfp.c: Likewise.
18570         * dojump.c: Likewise.
18571         * dominance.c: Likewise.
18572         * domwalk.c: Likewise.
18573         * double-int.c: Likewise.
18574         * dse.c: Likewise.
18575         * dumpfile.c: Likewise.
18576         * dwarf2asm.c: Likewise.
18577         * dwarf2cfi.c: Likewise.
18578         * dwarf2out.c: Likewise.
18579         * dwarf2out.h: Likewise.
18580         * emit-rtl.c: Likewise.
18581         * et-forest.c: Likewise.
18582         * except.c: Likewise.
18583         * explow.c: Likewise.
18584         * expmed.c: Likewise.
18585         * expr.c: Likewise.
18586         * final.c: Likewise.
18587         * fixed-value.c: Likewise.
18588         * fold-const.c: Likewise.
18589         * function.c: Likewise.
18590         * fwprop.c: Likewise.
18591         * gcc-plugin.h: Likewise.
18592         * gcse.c: Likewise.
18593         * generic-match-head.c: Likewise.
18594         * ggc-page.c: Likewise.
18595         * gimple-builder.c: Likewise.
18596         * gimple-expr.c: Likewise.
18597         * gimple-fold.c: Likewise.
18598         * gimple-iterator.c: Likewise.
18599         * gimple-low.c: Likewise.
18600         * gimple-match-head.c: Likewise.
18601         * gimple-pretty-print.c: Likewise.
18602         * gimple-ssa-isolate-paths.c: Likewise.
18603         * gimple-ssa-strength-reduction.c: Likewise.
18604         * gimple-streamer-in.c: Likewise.
18605         * gimple-streamer-out.c: Likewise.
18606         * gimple-streamer.h: Likewise.
18607         * gimple-walk.c: Likewise.
18608         * gimple.c: Likewise.
18609         * gimplify-me.c: Likewise.
18610         * gimplify.c: Likewise.
18611         * godump.c: Likewise.
18612         * graph.c: Likewise.
18613         * graphite-blocking.c: Likewise.
18614         * graphite-dependences.c: Likewise.
18615         * graphite-interchange.c: Likewise.
18616         * graphite-isl-ast-to-gimple.c: Likewise.
18617         * graphite-optimize-isl.c: Likewise.
18618         * graphite-poly.c: Likewise.
18619         * graphite-scop-detection.c: Likewise.
18620         * graphite-sese-to-poly.c: Likewise.
18621         * graphite.c: Likewise.
18622         * haifa-sched.c: Likewise.
18623         * hooks.h: Likewise.
18624         * hw-doloop.c: Likewise.
18625         * ifcvt.c: Likewise.
18626         * incpath.c: Likewise.
18627         * init-regs.c: Likewise.
18628         * internal-fn.c: Likewise.
18629         * ipa-chkp.c: Likewise.
18630         * ipa-comdats.c: Likewise.
18631         * ipa-cp.c: Likewise.
18632         * ipa-devirt.c: Likewise.
18633         * ipa-icf-gimple.c: Likewise.
18634         * ipa-icf.c: Likewise.
18635         * ipa-inline-analysis.c: Likewise.
18636         * ipa-inline-transform.c: Likewise.
18637         * ipa-inline.c: Likewise.
18638         * ipa-polymorphic-call.c: Likewise.
18639         * ipa-profile.c: Likewise.
18640         * ipa-prop.c: Likewise.
18641         * ipa-pure-const.c: Likewise.
18642         * ipa-ref.c: Likewise.
18643         * ipa-reference.c: Likewise.
18644         * ipa-split.c: Likewise.
18645         * ipa-utils.c: Likewise.
18646         * ipa-visibility.c: Likewise.
18647         * ipa.c: Likewise.
18648         * ira-build.c: Likewise.
18649         * ira-color.c: Likewise.
18650         * ira-conflicts.c: Likewise.
18651         * ira-costs.c: Likewise.
18652         * ira-emit.c: Likewise.
18653         * ira-lives.c: Likewise.
18654         * ira.c: Likewise.
18655         * jump.c: Likewise.
18656         * langhooks.c: Likewise.
18657         * lcm.c: Likewise.
18658         * loop-doloop.c: Likewise.
18659         * loop-init.c: Likewise.
18660         * loop-invariant.c: Likewise.
18661         * loop-iv.c: Likewise.
18662         * loop-unroll.c: Likewise.
18663         * lower-subreg.c: Likewise.
18664         * lra-assigns.c: Likewise.
18665         * lra-coalesce.c: Likewise.
18666         * lra-constraints.c: Likewise.
18667         * lra-eliminations.c: Likewise.
18668         * lra-lives.c: Likewise.
18669         * lra-remat.c: Likewise.
18670         * lra-spills.c: Likewise.
18671         * lra.c: Likewise.
18672         * lto-cgraph.c: Likewise.
18673         * lto-compress.c: Likewise.
18674         * lto-opts.c: Likewise.
18675         * lto-section-in.c: Likewise.
18676         * lto-section-out.c: Likewise.
18677         * lto-streamer-in.c: Likewise.
18678         * lto-streamer-out.c: Likewise.
18679         * lto-streamer.c: Likewise.
18680         * mcf.c: Likewise.
18681         * mode-switching.c: Likewise.
18682         * modulo-sched.c: Likewise.
18683         * omega.c: Likewise.
18684         * omp-low.c: Likewise.
18685         * optabs.c: Likewise.
18686         * opts-global.c: Likewise.
18687         * passes.c: Likewise.
18688         * plugin.c: Likewise.
18689         * postreload-gcse.c: Likewise.
18690         * postreload.c: Likewise.
18691         * predict.c: Likewise.
18692         * print-rtl.c: Likewise.
18693         * print-tree.c: Likewise.
18694         * profile.c: Likewise.
18695         * real.c: Likewise.
18696         * realmpfr.c: Likewise.
18697         * realmpfr.h: Likewise.
18698         * recog.c: Likewise.
18699         * ree.c: Likewise.
18700         * reg-stack.c: Likewise.
18701         * regcprop.c: Likewise.
18702         * reginfo.c: Likewise.
18703         * regrename.c: Likewise.
18704         * regs.h: Likewise.
18705         * regstat.c: Likewise.
18706         * reload.c: Likewise.
18707         * reload1.c: Likewise.
18708         * reorg.c: Likewise.
18709         * resource.c: Likewise.
18710         * rtl-chkp.c: Likewise.
18711         * rtlanal.c: Likewise.
18712         * rtlhooks.c: Likewise.
18713         * sanopt.c: Likewise.
18714         * sched-deps.c: Likewise.
18715         * sched-ebb.c: Likewise.
18716         * sched-rgn.c: Likewise.
18717         * sched-vis.c: Likewise.
18718         * sdbout.c: Likewise.
18719         * sel-sched-dump.c: Likewise.
18720         * sel-sched-ir.c: Likewise.
18721         * sel-sched.c: Likewise.
18722         * sese.c: Likewise.
18723         * shrink-wrap.c: Likewise.
18724         * shrink-wrap.h: Likewise.
18725         * simplify-rtx.c: Likewise.
18726         * stack-ptr-mod.c: Likewise.
18727         * statistics.c: Likewise.
18728         * stmt.c: Likewise.
18729         * stor-layout.c: Likewise.
18730         * store-motion.c: Likewise.
18731         * stringpool.c: Likewise.
18732         * symtab.c: Likewise.
18733         * target-globals.c: Likewise.
18734         * targhooks.c: Likewise.
18735         * toplev.c: Likewise.
18736         * tracer.c: Likewise.
18737         * trans-mem.c: Likewise.
18738         * tree-affine.c: Likewise.
18739         * tree-affine.h: Likewise.
18740         * tree-browser.c: Likewise.
18741         * tree-call-cdce.c: Likewise.
18742         * tree-cfg.c: Likewise.
18743         * tree-cfgcleanup.c: Likewise.
18744         * tree-chkp-opt.c: Likewise.
18745         * tree-chkp.c: Likewise.
18746         * tree-chrec.c: Likewise.
18747         * tree-complex.c: Likewise.
18748         * tree-data-ref.c: Likewise.
18749         * tree-dfa.c: Likewise.
18750         * tree-diagnostic.c: Likewise.
18751         * tree-dump.c: Likewise.
18752         * tree-eh.c: Likewise.
18753         * tree-emutls.c: Likewise.
18754         * tree-if-conv.c: Likewise.
18755         * tree-inline.c: Likewise.
18756         * tree-into-ssa.c: Likewise.
18757         * tree-iterator.c: Likewise.
18758         * tree-loop-distribution.c: Likewise.
18759         * tree-nested.c: Likewise.
18760         * tree-nrv.c: Likewise.
18761         * tree-object-size.c: Likewise.
18762         * tree-outof-ssa.c: Likewise.
18763         * tree-parloops.c: Likewise.
18764         * tree-phinodes.c: Likewise.
18765         * tree-predcom.c: Likewise.
18766         * tree-pretty-print.c: Likewise.
18767         * tree-pretty-print.h: Likewise.
18768         * tree-profile.c: Likewise.
18769         * tree-scalar-evolution.c: Likewise.
18770         * tree-sra.c: Likewise.
18771         * tree-ssa-address.c: Likewise.
18772         * tree-ssa-alias.c: Likewise.
18773         * tree-ssa-ccp.c: Likewise.
18774         * tree-ssa-coalesce.c: Likewise.
18775         * tree-ssa-copy.c: Likewise.
18776         * tree-ssa-copyrename.c: Likewise.
18777         * tree-ssa-dce.c: Likewise.
18778         * tree-ssa-dom.c: Likewise.
18779         * tree-ssa-dse.c: Likewise.
18780         * tree-ssa-forwprop.c: Likewise.
18781         * tree-ssa-ifcombine.c: Likewise.
18782         * tree-ssa-live.c: Likewise.
18783         * tree-ssa-loop-ch.c: Likewise.
18784         * tree-ssa-loop-im.c: Likewise.
18785         * tree-ssa-loop-ivcanon.c: Likewise.
18786         * tree-ssa-loop-ivopts.c: Likewise.
18787         * tree-ssa-loop-manip.c: Likewise.
18788         * tree-ssa-loop-niter.c: Likewise.
18789         * tree-ssa-loop-prefetch.c: Likewise.
18790         * tree-ssa-loop-unswitch.c: Likewise.
18791         * tree-ssa-loop.c: Likewise.
18792         * tree-ssa-loop.h: Likewise.
18793         * tree-ssa-math-opts.c: Likewise.
18794         * tree-ssa-operands.c: Likewise.
18795         * tree-ssa-phiopt.c: Likewise.
18796         * tree-ssa-phiprop.c: Likewise.
18797         * tree-ssa-pre.c: Likewise.
18798         * tree-ssa-propagate.c: Likewise.
18799         * tree-ssa-reassoc.c: Likewise.
18800         * tree-ssa-sccvn.c: Likewise.
18801         * tree-ssa-scopedtables.c: Likewise.
18802         * tree-ssa-sink.c: Likewise.
18803         * tree-ssa-strlen.c: Likewise.
18804         * tree-ssa-structalias.c: Likewise.
18805         * tree-ssa-tail-merge.c: Likewise.
18806         * tree-ssa-ter.c: Likewise.
18807         * tree-ssa-threadedge.c: Likewise.
18808         * tree-ssa-threadupdate.c: Likewise.
18809         * tree-ssa-uncprop.c: Likewise.
18810         * tree-ssa-uninit.c: Likewise.
18811         * tree-ssa.c: Likewise.
18812         * tree-ssanames.c: Likewise.
18813         * tree-stdarg.c: Likewise.
18814         * tree-streamer-in.c: Likewise.
18815         * tree-streamer-out.c: Likewise.
18816         * tree-streamer.c: Likewise.
18817         * tree-switch-conversion.c: Likewise.
18818         * tree-tailcall.c: Likewise.
18819         * tree-vect-data-refs.c: Likewise.
18820         * tree-vect-generic.c: Likewise.
18821         * tree-vect-loop-manip.c: Likewise.
18822         * tree-vect-loop.c: Likewise.
18823         * tree-vect-patterns.c: Likewise.
18824         * tree-vect-slp.c: Likewise.
18825         * tree-vect-stmts.c: Likewise.
18826         * tree-vectorizer.c: Likewise.
18827         * tree-vrp.c: Likewise.
18828         * tree.c: Likewise.
18829         * tsan.c: Likewise.
18830         * ubsan.c: Likewise.
18831         * valtrack.c: Likewise.
18832         * value-prof.c: Likewise.
18833         * var-tracking.c: Likewise.
18834         * varasm.c: Likewise.
18835         * varpool.c: Likewise.
18836         * vmsdbgout.c: Likewise.
18837         * vtable-verify.c: Likewise.
18838         * web.c: Likewise.
18839         * wide-int-print.cc: Likewise.
18840         * wide-int-print.h: Likewise.
18841         * wide-int.cc: Likewise.
18842         * xcoffout.c: Likewise.
18843         * config/aarch64/aarch64-builtins.c: Likewise.
18844         * config/aarch64/aarch64.c: Likewise.
18845         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
18846         * config/alpha/alpha.c: Likewise.
18847         * config/arc/arc.c: Likewise.
18848         * config/arm/aarch-common.c: Likewise.
18849         * config/arm/arm-builtins.c: Likewise.
18850         * config/arm/arm-c.c: Likewise.
18851         * config/arm/arm.c: Likewise.
18852         * config/avr/avr-c.c: Likewise.
18853         * config/avr/avr-log.c: Likewise.
18854         * config/avr/avr.c: Likewise.
18855         * config/bfin/bfin.c: Likewise.
18856         * config/c6x/c6x.c: Likewise.
18857         * config/cr16/cr16.c: Likewise.
18858         * config/cris/cris.c: Likewise.
18859         * config/darwin-c.c: Likewise.
18860         * config/darwin.c: Likewise.
18861         * config/default-c.c: Likewise.
18862         * config/epiphany/epiphany.c: Likewise.
18863         * config/epiphany/mode-switch-use.c: Likewise.
18864         * config/epiphany/resolve-sw-modes.c: Likewise.
18865         * config/fr30/fr30.c: Likewise.
18866         * config/frv/frv.c: Likewise.
18867         * config/ft32/ft32.c: Likewise.
18868         * config/glibc-c.c: Likewise.
18869         * config/h8300/h8300.c: Likewise.
18870         * config/i386/i386-c.c: Likewise.
18871         * config/i386/i386.c: Likewise.
18872         * config/i386/msformat-c.c: Likewise.
18873         * config/i386/winnt-cxx.c: Likewise.
18874         * config/i386/winnt-stubs.c: Likewise.
18875         * config/i386/winnt.c: Likewise.
18876         * config/ia64/ia64-c.c: Likewise.
18877         * config/ia64/ia64.c: Likewise.
18878         * config/iq2000/iq2000.c: Likewise.
18879         * config/lm32/lm32.c: Likewise.
18880         * config/m32c/m32c-pragma.c: Likewise.
18881         * config/m32c/m32c.c: Likewise.
18882         * config/m32r/m32r.c: Likewise.
18883         * config/m68k/m68k.c: Likewise.
18884         * config/mcore/mcore.c: Likewise.
18885         * config/mep/mep-pragma.c: Likewise.
18886         * config/mep/mep.c: Likewise.
18887         * config/microblaze/microblaze-c.c: Likewise.
18888         * config/microblaze/microblaze.c: Likewise.
18889         * config/mips/mips.c: Likewise.
18890         * config/mmix/mmix.c: Likewise.
18891         * config/mn10300/mn10300.c: Likewise.
18892         * config/moxie/moxie.c: Likewise.
18893         * config/msp430/msp430-c.c: Likewise.
18894         * config/msp430/msp430.c: Likewise.
18895         * config/nds32/nds32-cost.c: Likewise.
18896         * config/nds32/nds32-fp-as-gp.c: Likewise.
18897         * config/nds32/nds32-intrinsic.c: Likewise.
18898         * config/nds32/nds32-isr.c: Likewise.
18899         * config/nds32/nds32-md-auxiliary.c: Likewise.
18900         * config/nds32/nds32-memory-manipulation.c: Likewise.
18901         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18902         * config/nds32/nds32-predicates.c: Likewise.
18903         * config/nds32/nds32.c: Likewise.
18904         * config/nios2/nios2.c: Likewise.
18905         * config/nvptx/nvptx.c: Likewise.
18906         * config/pa/pa.c: Likewise.
18907         * config/pdp11/pdp11.c: Likewise.
18908         * config/rl78/rl78-c.c: Likewise.
18909         * config/rl78/rl78.c: Likewise.
18910         * config/rs6000/rs6000-c.c: Likewise.
18911         * config/rs6000/rs6000.c: Likewise.
18912         * config/rx/rx.c: Likewise.
18913         * config/s390/s390-c.c: Likewise.
18914         * config/s390/s390.c: Likewise.
18915         * config/sh/sh-c.c: Likewise.
18916         * config/sh/sh-mem.cc: Likewise.
18917         * config/sh/sh.c: Likewise.
18918         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
18919         * config/sh/sh_treg_combine.cc: Likewise.
18920         * config/sol2-c.c: Likewise.
18921         * config/sol2-cxx.c: Likewise.
18922         * config/sol2-stubs.c: Likewise.
18923         * config/sol2.c: Likewise.
18924         * config/sparc/sparc-c.c: Likewise.
18925         * config/sparc/sparc.c: Likewise.
18926         * config/spu/spu-c.c: Likewise.
18927         * config/spu/spu.c: Likewise.
18928         * config/stormy16/stormy16.c: Likewise.
18929         * config/tilegx/mul-tables.c: Likewise.
18930         * config/tilegx/tilegx-c.c: Likewise.
18931         * config/tilegx/tilegx.c: Likewise.
18932         * config/tilepro/mul-tables.c: Likewise.
18933         * config/tilepro/tilepro-c.c: Likewise.
18934         * config/tilepro/tilepro.c: Likewise.
18935         * config/v850/v850-c.c: Likewise.
18936         * config/v850/v850.c: Likewise.
18937         * config/vax/vax.c: Likewise.
18938         * config/visium/visium.c: Likewise.
18939         * config/vms/vms-c.c: Likewise.
18940         * config/vms/vms.c: Likewise.
18941         * config/vxworks.c: Likewise.
18942         * config/winnt-c.c: Likewise.
18943         * config/xtensa/xtensa.c: Likewise.
18944         * common/config/bfin/bfin-common.c: Likewise.
18945
18946 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
18947
18948         * tree.h (tree_code_for_canonical_type_merging): New function.
18949         * tree.c (gimple_canonical_types_compatible_p): Use
18950         tree_code_for_canonical_type_merging..
18951
18952 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18953
18954         PR c++/66192
18955         PR target/66200
18956         * doc/tm.texi: Regenerate.
18957         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
18958         * target.def (TARGET_RELAXED_ORDERING): Likewise.
18959         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
18960         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
18961         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
18962         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
18963         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
18964         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
18965         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
18966
18967 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18968
18969         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
18970         register fma steering pass.
18971         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
18972         AARCH64_TUNE_FMA_STEERING.
18973
18974 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
18975
18976         * tree.c (verify_type_variant): Verify that type and variant is
18977         compatible.
18978         (gimple_canonical_types_compatible_p): Look for main variants.
18979
18980 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
18981
18982         * config.gcc (powerpc*-*-*): Add support for a new configure
18983         option --with-advance-toolchain=<xxx> which overrides using the
18984         default header files, libraries and dynamic linker.
18985
18986         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
18987         specs to support the configure --with-advance-toolchain=<xxx>
18988         option.
18989         (INCLUDE_EXTRA_SPEC): Likewise.
18990         (LINK_OS_EXTRA_SPEC32): Likewise.
18991         (LINK_OK_EXTRA_SPEC64): Likewise.
18992         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
18993         (DYNAMIC_LINKER_PREFIX): Likewise.
18994         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
18995         toolchain support.
18996         (GLIBC_DYNAMIC_LINKER32): Likewise.
18997         (GLIBC_DYNAMIC_LINKER64): Likewise.
18998         (LINK_OS_LINUX_SPEC32): Likewise.
18999         (LINK_OS_LINUX_SPEC64): Likewise.
19000
19001         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
19002         configuration option.
19003
19004 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
19005
19006         PR target/66275
19007         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
19008         to determine current function ABI.
19009         (ix86_function_value_regno_p): Ditto.
19010
19011 2015-06-03  Martin Liska  <mliska@suse.cz>
19012
19013         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
19014         * bitmap.h (struct bitmap_usage): Likewise.
19015         * ggc-common.c (struct ggc_usage): Likewise.
19016         * mem-stats.h (struct mem_location): Likewise.
19017         (struct mem_usage): Likewise.
19018         * vec.c (struct vec_usage): Likewise.
19019
19020 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
19021
19022         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
19023         -Bsymbolic.
19024
19025 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
19026
19027         * doc/plugins.texi (enum plugin_event): New event.
19028         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
19029         and PLUGIN_FINISH_FUNCTION.
19030         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
19031         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
19032
19033 2015-06-03  Richard Biener  <rguenther@suse.de>
19034
19035         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
19036         compute GROUP_GAP for the first element.
19037         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
19038         on in-group gaps.
19039
19040 2015-06-03  Nick Clifton  <nickc@redhat.com>
19041
19042         * config/rl78/rl78-real.md: Add peepholes to avoid a register
19043         copy when calling a function.
19044         * config/rl78/rl78.c (need_to_save): Do not push the frame
19045         pointer in an interrupt handler prologue if it is never used.
19046
19047 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19048
19049         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
19050
19051 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19052
19053         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
19054         reference when cloning alias node.
19055
19056 2015-06-03  Martin Liska  <mliska@suse.cz>
19057
19058         * alloc-pool.h (struct pool_usage): Correct space padding.
19059         * ggc-page.c (ggc_print_statistics): Align columns in a report.
19060         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
19061         * tree.c (dump_tree_statistics): Align columns in a report.
19062
19063 2015-06-03  Martin Liska  <mliska@suse.cz>
19064
19065         * alloc-pool.c (allocate_pool_descriptor): Remove.
19066         (struct pool_output_info): Likewise.
19067         (print_alloc_pool_statistics): Likewise.
19068         (dump_alloc_pool_statistics): Likewise.
19069         * alloc-pool.h (struct pool_usage): New struct.
19070         (pool_allocator::initialize): Change usage of memory statistics
19071         to a new interface.
19072         (pool_allocator::release): Likewise.
19073         (pool_allocator::allocate): Likewise.
19074         (pool_allocator::remove): Likewise.
19075         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
19076         for a pool allocator.
19077         * mem-stats.h (struct mem_location): Add new ctor.
19078         (struct mem_usage): Add counter for number of
19079         instances.
19080         (mem_alloc_description::register_descriptor): New overload of
19081         * mem-stats.h (mem_location::to_string): New function.
19082         * bitmap.h (struct bitmap_usage): Use this new function.
19083         * ggc-common.c (struct ggc_usage): Likewise.
19084         the function.
19085
19086 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19087
19088         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
19089         of GCC_INSN_FLAGS_H block.
19090
19091 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
19092
19093         * explow.c (plus_constant): Update check after force_const_mem call
19094         to see if the value returned is not a NULL_RTX.
19095
19096 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
19097
19098         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
19099         remove instumentation thunks calling reachable functions.
19100         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
19101         * lto/lto-partition.c (privatize_symbol_name_1): New.
19102         (privatize_symbol_name): Privatize both decl and orig_decl
19103         names for instrumented functions.
19104         * cgraph.c (cgraph_node::verify_node): Add transparent
19105         alias chain check for instrumented node.
19106
19107 2015-06-03  Marek Polacek  <polacek@redhat.com>
19108
19109         PR c/64223
19110         PR c/29358
19111         * tree.c (attribute_value_equal): Handle attribute format.
19112         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
19113
19114 2015-06-03  Richard Biener  <rguenther@suse.de>
19115
19116         PR tree-optimization/63916
19117         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
19118         Forward-propagate non-invariant addresses by splicing their
19119         reference ops if the result isn't going to be used by PRE.
19120         (vn_reference_lookup_3): Remove pointless assert.
19121
19122 2015-06-03  Richard Biener  <rguenther@suse.de>
19123
19124         PR tree-optimization/66375
19125         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
19126         add to the evolution before following SSA edges.
19127
19128 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
19129
19130         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
19131         (dump_use, dump_cand, find_induction_variables): Pass new argument
19132         to dump_iv.
19133         (record_use): Preserve the ssa name information in IV.
19134
19135 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
19136
19137         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
19138         NO_MODE_TEST.
19139         (add_mode_tests): Don't add mode tests if the predicate only
19140         accepts scalar constant integers.  Otherwise, allow the mode
19141         of "op" to be VOIDmode if the predicate does accept such integers.
19142
19143 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
19144
19145         PR target/66258
19146         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
19147         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
19148         (aarch64_secondary_reload): Likewise
19149         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
19150         to !TARGET_FLOAT.
19151         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
19152         Likewise.
19153
19154 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
19155             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
19156
19157         PR target/65768
19158         * cprop.c (try_replace_reg): Check cost of constants before propagating.
19159
19160 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
19161
19162         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
19163         provide access to the IBM extended double floating point mode if
19164         long double is IEEE 128-bit floating point.
19165         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
19166         point if long double is the IBM extended double type.
19167
19168         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
19169         enable adding IEEE 128-bit floating point support.
19170         (-mfloat128-software): Likewise.
19171         (-mfloat128-sw): Likewise.
19172
19173         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
19174         128-bit floating point types to occupy any register if
19175         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
19176         -mfloat128-software is enabled.
19177         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
19178         support.
19179         (rs6000_option_override_internal): Add -mfloat128-* support.
19180         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
19181
19182         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
19183         and float128 type nodes.
19184         (ieee128_float_type_node): Likewise.
19185         (ibm128_float_type_node): Likewise.
19186
19187 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
19188
19189         PR target/66136
19190         * config/aarch64/geniterators.sh: Rewrite in awk.
19191
19192 2015-06-02  Martin Liska  <mliska@suse.cz>
19193
19194         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
19195         values to avoid -Wmaybe-uninitialized errors.
19196
19197 2015-06-02  Richard Biener  <rguenther@suse.de>
19198
19199         PR debug/65549
19200         * dwarf2out.c (lookup_context_die): New function.
19201         (resolve_addr): Avoid forcing a full DIE for the
19202         target of a DW_TAG_GNU_call_site during late compilation.
19203         Instead create a stub DIE without a type if we have a
19204         context DIE present.
19205
19206 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
19207
19208         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
19209
19210 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19211
19212         PR tree-optimization/48052
19213         * cfgloop.h (struct control_iv): New.
19214         (struct loop): New field control_ivs.
19215         * tree-ssa-loop-niter.c : Include "stor-layout.h".
19216         (number_of_iterations_lt): Set no_overflow information.
19217         (number_of_iterations_exit): Init control iv in niter struct.
19218         (record_control_iv): New.
19219         (estimate_numbers_of_iterations_loop): Call record_control_iv.
19220         (loop_exits_before_overflow): New.  Interface factored out of
19221         scev_probably_wraps_p.
19222         (scev_probably_wraps_p): Factor loop niter related code into
19223         loop_exits_before_overflow.
19224         (free_numbers_of_iterations_estimates_loop): Free control ivs.
19225         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
19226
19227 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
19228
19229         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
19230         the target doesn't belong to the current function.
19231
19232 2015-06-02  Marek Polacek  <polacek@redhat.com>
19233
19234         PR middle-end/66345
19235         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
19236         get_maxval_strlen does not produce an INTEGER_CST.
19237
19238 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
19239
19240         * config/arc/constraints.md: Use lower-case names in match_code.
19241         * config/mmix/constraints.md: Likewise.
19242
19243 2015-06-02  Richard Biener  <rguenther@suse.de>
19244
19245         PR tree-optimization/65961
19246         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
19247         check and clarify dump message.
19248         (vect_build_slp_tree): If all children are built up from scalars
19249         build up the parent from scalars instead.
19250         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
19251
19252 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
19253
19254         PR other/65366
19255         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
19256         instead of print ... .
19257
19258 2015-06-02  Alan Modra  <amodra@gmail.com>
19259
19260         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
19261         2014-08-11 change.
19262
19263 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
19264
19265         PR tree-optimization/52563
19266         PR tree-optimization/62173
19267         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
19268         (alloc_iv, set_iv): New parameter.
19269         (determine_biv_step): Delete.
19270         (find_bivs): Inline original determine_biv_step.  Pass new
19271         argument to set_iv.
19272         (idx_find_step): Use no_overflow information for conversion.
19273         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
19274         resolve_mixers handle folded_casts.
19275         (instantiate_scev_name): Change bool parameter to bool pointer.
19276         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
19277         (instantiate_array_ref, instantiate_scev_not): Ditto.
19278         (instantiate_scev_3, instantiate_scev_2): Ditto.
19279         (instantiate_scev_1, instantiate_scev_r): Ditto.
19280         (instantiate_scev_convert, ): Change parameter.  Pass argument
19281         to chrec_convert_aggressive.
19282         (instantiate_scev): Change argument.
19283         (resolve_mixers): New parameter and set it.
19284         (scev_const_prop): New argument.
19285         * tree-scalar-evolution.h (resolve_mixers): New parameter.
19286         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
19287         of chrec_conert_1.
19288         (chrec_convert): New parameter.  Move definition below.
19289         (chrec_convert_aggressive): New parameter and set it.  Call
19290         convert_affine_scev.
19291         * tree-chrec.h (chrec_convert): New parameter.
19292         (chrec_convert_aggressive): Ditto.
19293
19294 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19295
19296         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
19297         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
19298         the LHS of a no-return call if its type has variable size.
19299         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
19300         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
19301
19302 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
19303
19304         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
19305         * config.in: Regenerate.
19306
19307 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
19308
19309         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
19310         consecutive accesses within outer-loop with force_vectorize
19311         for references with zero step in inner-loop.
19312
19313 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19314
19315         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
19316         rather than from gcc/build directory.
19317
19318 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19319
19320         PR target/65697
19321         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
19322         for __sync memory models, emit initial loads and final barriers as
19323         appropriate.
19324
19325 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
19326
19327         PR target/65697
19328         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
19329         (aarch64_split_atomic_op): Check for __sync memory models, emit
19330         appropriate initial loads and final barriers.
19331
19332 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
19333
19334         * Makefile.in: Fix gcov dependencies that should
19335         not point to a build folder.
19336
19337 2015-06-01  Richard Biener  <rguenther@suse.de>
19338
19339         Revert
19340         2015-05-29  Richard Biener  <rguenther@suse.de>
19341
19342         PR tree-optimization/66314
19343         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19344         parameter that says which loop the new block belongs to.
19345         (ssa_create_duplicates): Blocks duplicated for the threaded
19346         path belong to the loop of the thread destination.
19347
19348 2015-06-01  Martin Liska  <mliska@suse.cz>
19349
19350         * sched-deps.c: Include pool-alloc.h before
19351         cselib.h header file is included.
19352
19353 2015-06-01  Richard Biener  <rguenther@suse.de>
19354
19355         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
19356         functions.
19357
19358 2015-06-01  Martin Liska  <mliska@suse.cz>
19359
19360         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
19361         a function local variable.
19362
19363 2015-06-01  Martin Liska  <mliska@suse.cz>
19364
19365         * alloc-pool.c (create_alloc_pool): Remove.
19366         (empty_alloc_pool): Likewise.
19367         (free_alloc_pool): Likewise.
19368         (free_alloc_pool_if_empty): Likewise.
19369         (pool_alloc): Likewise.
19370         (pool_free): Likewise.
19371         * alloc-pool.h: Remove old declarations.
19372
19373 2015-06-01  Martin Liska  <mliska@suse.cz>
19374
19375         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
19376         (ira_create_object): Likewise.
19377         (ira_create_allocno): Likewise.
19378         (ira_create_live_range): Likewise.
19379         (copy_live_range): Likewise.
19380         (ira_finish_live_range): Likewise.
19381         (ira_free_allocno_costs): Likewise.
19382         (finish_allocno): Likewise.
19383         (finish_allocnos): Likewise.
19384         (initiate_prefs): Likewise.
19385         (ira_create_pref): Likewise.
19386         (finish_pref): Likewise.
19387         (finish_prefs): Likewise.
19388         (initiate_copies): Likewise.
19389         (ira_create_copy): Likewise.
19390         (finish_copy): Likewise.
19391         (finish_copies): Likewise.
19392         (finish_prefs): Likewise.
19393
19394 2015-06-01  Martin Liska  <mliska@suse.cz>
19395
19396         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
19397         (allocate_and_init_ipcp_value): Likewise.
19398         (ipcp_lattice::add_value): Likewise.
19399         (merge_agg_lats_step): Likewise.
19400         (ipcp_driver): Likewise.
19401         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
19402         (ipa_free_all_structures_after_iinln): Likewise.
19403         * ipa-prop.h: Likewise.
19404
19405 2015-06-01  Martin Liska  <mliska@suse.cz>
19406
19407         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
19408         pool allocator.
19409         (set_hint_predicate): Likewise.
19410         (inline_summary_alloc): Likewise.
19411         (reset_inline_edge_summary): Likewise.
19412         (reset_inline_summary): Likewise.
19413         (set_cond_stmt_execution_predicate): Likewise.
19414         (set_switch_stmt_execution_predicate): Likewise.
19415         (compute_bb_predicates): Likewise.
19416         (estimate_function_body_sizes): Likewise.
19417         (inline_free_summary): Likewise.
19418
19419 2015-06-01  Martin Liska  <mliska@suse.cz>
19420
19421         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
19422         (ipa_edge_duplication_hook): Likewise.
19423         (ipa_free_all_structures_after_ipa_cp): Likewise.
19424         (ipa_free_all_structures_after_iinln): Likewise.
19425
19426 2015-06-01  Martin Liska  <mliska@suse.cz>
19427
19428         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
19429         (ipa_profile_generate_summary): Likewise.
19430         (ipa_profile_read_summary): Likewise.
19431         (ipa_profile): Likewise.
19432
19433 2015-06-01  Martin Liska  <mliska@suse.cz>
19434
19435         * tree-ssa-structalias.c (new_var_info): Use new type-based
19436         pool allocator.
19437         (new_constraint): Likewise.
19438         (init_alias_vars): Likewise.
19439         (delete_points_to_sets): Likewise.
19440
19441 2015-06-01  Martin Liska  <mliska@suse.cz>
19442
19443         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
19444         (free_strinfo): Likewise.
19445         (pass_strlen::execute): Likewise.
19446
19447 2015-06-01  Martin Liska  <mliska@suse.cz>
19448
19449         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
19450         pool allocator.
19451         (vn_reference_insert_pieces): Likewise.
19452         (vn_phi_insert): Likewise.
19453         (visit_reference_op_call): Likewise.
19454         (copy_phi): Likewise.
19455         (copy_reference): Likewise.
19456         (process_scc): Likewise.
19457         (allocate_vn_table): Likewise.
19458         (free_vn_table): Likewise.
19459
19460 2015-06-01  Martin Liska  <mliska@suse.cz>
19461
19462         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
19463         pool allocator.
19464         (add_repeat_to_ops_vec): Likewise.
19465         (get_ops): Likewise.
19466         (maybe_optimize_range_tests): Likewise.
19467         (init_reassoc): Likewise.
19468         (fini_reassoc): Likewise.
19469
19470 2015-06-01  Martin Liska  <mliska@suse.cz>
19471
19472         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
19473         pool allocator.
19474         (bitmap_set_new): Likewise.
19475         (get_or_alloc_expr_for_constant): Likewise.
19476         (get_or_alloc_expr_for): Likewise.
19477         (phi_translate_1): Likewise.
19478         (compute_avail): Likewise.
19479         (init_pre): Likewise.
19480         (fini_pre): Likewise.
19481
19482 2015-06-01  Martin Liska  <mliska@suse.cz>
19483
19484         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
19485         (delete_dep_node): Likewise.
19486         (create_deps_list): Likewise.
19487         (free_deps_list): Likewise.
19488         (sched_deps_init): Likewise.
19489         (sched_deps_finish): Likewise.
19490
19491 2015-06-01  Martin Liska  <mliska@suse.cz>
19492
19493         * regcprop.c (free_debug_insn_changes): Use new type-based
19494         pool allocator.
19495         (replace_oldest_value_reg): Likewise.
19496         (pass_cprop_hardreg::execute): Likewise.
19497
19498 2015-06-01  Martin Liska  <mliska@suse.cz>
19499
19500         * ira-build.c (initiate_cost_vectors): Use new type-based
19501         pool allocator.
19502         (ira_allocate_cost_vector): Likewise.
19503         (ira_free_cost_vector): Likewise.
19504         (finish_cost_vectors): Likewise.
19505
19506 2015-06-01  Martin Liska  <mliska@suse.cz>
19507
19508         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
19509         pool allocator.
19510         (free_sched_pools): Likewise.
19511         * sel-sched-ir.h (_list_alloc): Likewise.
19512         (_list_remove): Likewise.
19513
19514 2015-06-01  Martin Liska  <mliska@suse.cz>
19515
19516         * stmt.c (add_case_node): Use new type-based pool allocator.
19517         (expand_case): Likewise.
19518         (expand_sjlj_dispatch_table): Likewise.
19519
19520 2015-06-01  Martin Liska  <mliska@suse.cz>
19521
19522         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
19523         (free_bb): Likewise.
19524         (pass_cse_reciprocals::execute): Likewise.
19525
19526 2015-06-01  Martin Liska  <mliska@suse.cz>
19527
19528         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
19529         (sra_deinitialize) Likewise.
19530         (create_access_1) Likewise.
19531         (build_accesses_from_assign) Likewise.
19532         (create_artificial_child_access) Likewise.
19533
19534 2015-06-01  Martin Liska  <mliska@suse.cz>
19535
19536         * dse.c (get_group_info):Use new type-based pool allocator.
19537         (dse_step0) Likewise.
19538         (free_store_info) Likewise.
19539         (delete_dead_store_insn) Likewise.
19540         (free_read_records) Likewise.
19541         (record_store) Likewise.
19542         (replace_read) Likewise.
19543         (check_mem_read_rtx) Likewise.
19544         (scan_insn) Likewise.
19545         (dse_step1) Likewise.
19546         (dse_step7) Likewise.
19547
19548 2015-06-01  Martin Liska  <mliska@suse.cz>
19549
19550         * df-scan.c (struct df_scan_problem_data):Use new type-based
19551         pool allocator.
19552         (df_scan_free_internal) Likewise.
19553         (df_scan_alloc) Likewise.
19554         (df_grow_reg_info) Likewise.
19555         (df_free_ref) Likewise.
19556         (df_insn_create_insn_record) Likewise.
19557         (df_mw_hardreg_chain_delete) Likewise.
19558         (df_insn_info_delete) Likewise.
19559         (df_free_collection_rec) Likewise.
19560         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
19561         (df_sort_and_compress_mws) Likewise.
19562         (df_ref_create_structure) Likewise.
19563         (df_ref_record) Likewise.
19564
19565 2015-06-01  Martin Liska  <mliska@suse.cz>
19566
19567         * df-problems.c (df_chain_create):Use new type-based pool allocator.
19568         (df_chain_unlink_1) Likewise.
19569         (df_chain_unlink) Likewise.
19570         (df_chain_remove_problem) Likewise.
19571         (df_chain_alloc) Likewise.
19572         (df_chain_free) Likewise.
19573         * df.h (struct dataflow) Likewise.
19574
19575 2015-06-01  Martin Liska  <mliska@suse.cz>
19576
19577         * cselib.c (new_elt_list):Use new type-based pool allocator.
19578         (new_elt_loc_list) Likewise.
19579         (unchain_one_elt_list) Likewise.
19580         (unchain_one_elt_loc_list) Likewise.
19581         (unchain_one_value) Likewise.
19582         (new_cselib_val) Likewise.
19583         (cselib_init) Likewise.
19584         (cselib_finish) Likewise.
19585
19586 2015-06-01  Martin Liska  <mliska@suse.cz>
19587
19588         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
19589         (sh_reorg) Likewise.
19590
19591 2015-06-01  Martin Liska  <mliska@suse.cz>
19592
19593         * cfg.c (initialize_original_copy_tables):Use new type-based
19594         pool allocator.
19595         (free_original_copy_tables) Likewise.
19596         (copy_original_table_clear) Likewise.
19597         (copy_original_table_set) Likewise.
19598
19599 2015-06-01  Martin Liska  <mliska@suse.cz>
19600
19601         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
19602         pool allocator.
19603         (asan_mem_ref_new) Likewise.
19604         (free_mem_ref_resources) Likewise.
19605
19606 2015-06-01  Martin Liska  <mliska@suse.cz>
19607
19608         * var-tracking.c (variable_htab_free):Use new type-based
19609         pool allocator.
19610         (attrs_list_clear) Likewise.
19611         (attrs_list_insert) Likewise.
19612         (attrs_list_copy) Likewise.
19613         (shared_hash_unshare) Likewise.
19614         (shared_hash_destroy) Likewise.
19615         (unshare_variable) Likewise.
19616         (var_reg_delete_and_set) Likewise.
19617         (var_reg_delete) Likewise.
19618         (var_regno_delete) Likewise.
19619         (drop_overlapping_mem_locs) Likewise.
19620         (variable_union) Likewise.
19621         (insert_into_intersection) Likewise.
19622         (canonicalize_values_star) Likewise.
19623         (variable_merge_over_cur) Likewise.
19624         (dataflow_set_merge) Likewise.
19625         (remove_duplicate_values) Likewise.
19626         (variable_post_merge_new_vals) Likewise.
19627         (dataflow_set_preserve_mem_locs) Likewise.
19628         (dataflow_set_remove_mem_locs) Likewise.
19629         (variable_from_dropped) Likewise.
19630         (variable_was_changed) Likewise.
19631         (set_slot_part) Likewise.
19632         (clobber_slot_part) Likewise.
19633         (delete_slot_part) Likewise.
19634         (loc_exp_insert_dep) Likewise.
19635         (notify_dependents_of_changed_value) Likewise.
19636         (emit_notes_for_differences_1) Likewise.
19637         (vt_emit_notes) Likewise.
19638         (vt_initialize) Likewise.
19639         (vt_finalize) Likewise.
19640
19641 2015-06-01  Martin Liska  <mliska@suse.cz>
19642
19643         * ira-color.c (init_update_cost_records):Use new type-based
19644         pool allocator.
19645         (get_update_cost_record) Likewise.
19646         (free_update_cost_record_list) Likewise.
19647         (finish_update_cost_records) Likewise.
19648         (initiate_cost_update) Likewise.
19649
19650 2015-06-01  Martin Liska  <mliska@suse.cz>
19651
19652         * lra.c (init_insn_regs): Use new type-based pool allocator.
19653         (new_insn_reg) Likewise.
19654         (free_insn_reg) Likewise.
19655         (free_insn_regs) Likewise.
19656         (finish_insn_regs) Likewise.
19657         (init_insn_recog_data) Likewise.
19658         (init_reg_info) Likewise.
19659         (finish_reg_info) Likewise.
19660         (lra_free_copies) Likewise.
19661         (lra_create_copy) Likewise.
19662         (invalidate_insn_data_regno_info) Likewise.
19663
19664 2015-06-01  Martin Liska  <mliska@suse.cz>
19665
19666         * lra-lives.c (free_live_range): Use new type-based pool allocator.
19667         (free_live_range_list) Likewise.
19668         (create_live_range) Likewise.
19669         (copy_live_range) Likewise.
19670         (lra_merge_live_ranges) Likewise.
19671         (remove_some_program_points_and_update_live_ranges) Likewise.
19672         (lra_live_ranges_init) Likewise.
19673         (lra_live_ranges_finish) Likewise.
19674
19675 2015-06-01  Martin Liska  <mliska@suse.cz>
19676
19677         * et-forest.c (et_new_occ): Use new type-based pool allocator.
19678         (et_new_tree): Likewise.
19679         (et_free_tree): Likewise.
19680         (et_free_tree_force): Likewise.
19681         (et_free_pools): Likewise.
19682         (et_split): Likewise.
19683
19684 2015-06-01  Martin Liska  <mliska@suse.cz>
19685
19686         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
19687         to header file.
19688         * alloc-pool.h (pool_allocator::pool_allocator): New function.
19689         (pool_allocator::release): Likewise.
19690         (inline pool_allocator::release_if_empty): Likewise.
19691         (inline pool_allocator::~pool_allocator): Likewise.
19692         (pool_allocator::allocate): Likewise.
19693         (pool_allocator::remove): Likewise.
19694
19695 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19696
19697         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
19698         in comment.
19699
19700 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19701
19702         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
19703         to fusible_ops.
19704         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
19705         (arm_macro_fusion_p): Likewise.
19706         (arm_macro_fusion_pair_p): Likewise.
19707
19708 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
19709
19710         * config/aarch64/aarch64-protos.h (tune_params): Rename
19711         fuseable_ops to fusible_ops.
19712         * config/aarch64/aarch64.c (generic_tunings): Rename
19713         fuseable_ops to fusible_ops.
19714         (cortexa53_tunings): Likewise.
19715         (cortexa57_tunings): Likewise.
19716         (thunderx_tunings): Likewise.
19717         (xgene1_tunings): Likewise.
19718         (aarch64_macro_fusion_p): Likewise.
19719         (aarch64_macro_fusion_pair_p): Likewise.
19720
19721 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19722
19723         * config/s390/driver-native.c: New file.
19724         * config/s390/x-native: New file.
19725         * config.host: Add new files for s390.
19726         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
19727         and -march=native
19728         * config.gcc: Likewise.
19729         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
19730         * config/s390/s390-opts.h (enum processor_type): Ditto.
19731         * config/s390/s390.c (s390_option_override): Catch unhandled
19732         PROCESSOR_NATIVE
19733
19734 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
19735
19736         PR target/65527
19737         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
19738         redirection for instrumented calls.
19739         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
19740         (append_compiler_options): Append -fcheck-pointer-bounds.
19741         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
19742         (chkp_redirect_edge): New.
19743         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
19744         (chkp_redirect_edge): New.
19745
19746 2015-06-01  Richard Biener  <rguenther@suse.de>
19747
19748         PR tree-optimization/66280
19749         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
19750         def-use walking.
19751
19752 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19753
19754         * config/aarch64/aarch64.md
19755         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
19756         logic_shift_imm.
19757
19758 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
19759
19760         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
19761         Remove obsolete kludge.
19762
19763 2015-06-01  Richard Biener  <rguenther@suse.de>
19764
19765         * tree-ssa-reassoc.c (get_rank): Simplify.
19766
19767 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
19768
19769         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
19770         * configure: Regenerated.
19771
19772 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
19773
19774         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
19775         issue (add space between string literal and macro).
19776         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
19777
19778 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
19779
19780         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
19781         implict or explicit -fPIE or -fpie.
19782
19783 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
19784
19785         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
19786
19787 2015-05-28  DJ Delorie  <dj@redhat.com>
19788
19789         * expmed.c (extract_bit_field_1): Avoid clobbering a
19790         yet-to-be-used base/index register.
19791
19792 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
19793
19794         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
19795         (alias_stats): Add num_universal.
19796         (alias_set_subset_of): Special case pointers; be ready for NULL
19797         children.
19798         (alias_sets_conflict_p): Special case pointers; be ready for NULL
19799         children.
19800         (init_alias_set_entry): Break out from ...
19801         (record_alias_subset): ... here; propagate new fields;
19802         allocate children only when really needed.
19803         (get_alias_set): Do less generous pointer globbing.
19804         (dump_alias_stats_in_alias_c): Update statistics.
19805
19806 2015-05-30  Alan Modra  <amodra@gmail.com>
19807
19808         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
19809         correct block for use of r12.
19810         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
19811
19812 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
19813
19814         PR target/66215
19815         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
19816         with -mhotpatch=.
19817
19818 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
19819
19820         PR tree-optimization/66142
19821         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
19822         virtual phis that feed themselves.
19823
19824 2015-05-29  Richard Biener  <rguenther@suse.de>
19825
19826         PR tree-optimization/66314
19827         * tree-ssa-threadupdate.c (create_block_for_threading): Add
19828         parameter that says which loop the new block belongs to.
19829         (ssa_create_duplicates): Blocks duplicated for the threaded
19830         path belong to the loop of the thread destination.
19831
19832 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
19833
19834         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
19835         to cleanup-saved-temps.
19836         * doc/sourcebuild.texi (Clean up generated test files): Expand
19837         introduction.
19838         (dg-keep-saved-temps): Document new proc.
19839         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
19840         cleanup-saved-temps): Remove.
19841
19842 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
19843
19844         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
19845         gcc_AC_CHECK_DECLS.
19846         * configure: Regenerate.
19847
19848 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19849
19850         * config/nios2/linux.h (CPP_SPEC): Define.
19851
19852 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19853
19854         * config/microblaze/linux.h (CPP_SPEC): Define.
19855
19856 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
19857
19858         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
19859         -pthread is specified.
19860
19861 2015-05-28  Richard Biener  <rguenther@suse.de>
19862
19863         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
19864         (vect_fixup_scalar_cycles_with_patterns): Likewise.
19865         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
19866         after pattern recog.
19867         (vect_create_epilog_for_reduction): Properly handle reductions
19868         with patterns.
19869         (vectorizable_reduction): Likewise.
19870         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
19871         reduction chains.
19872         (vect_get_constant_vectors): Create the correct number of
19873         initial values for reductions.
19874         (vect_schedule_slp_instance): Handle reduction chains that are
19875         type changing properly.
19876         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
19877
19878 2015-05-28  Richard Biener  <rguenther@suse.de>
19879
19880         PR tree-optimization/66142
19881         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
19882         values better in memcpy destination handling.  Handle non-aliasing
19883         we discover here.
19884
19885 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
19886
19887         PR target/63810
19888         * config/darwin-c.c (version_components): New global enum.
19889         (parse_version, version_as_legacy_macro)
19890         (version_as_modern_macro, macosx_version_as_macro): New functions.
19891         (version_as_macro): Remove.
19892         (darwin_cpp_builtins): Use new function.
19893
19894 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
19895
19896         * builtins.c (expand_builtin_acc_on_device): Mark parameters
19897         with ATTRIBUTE_UNUSED.
19898
19899 2015-05-28  Julian Brown  <julian@codesourcery.com>
19900
19901         PR libgomp/65742
19902
19903         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
19904         sequence for !ACCEL_COMPILER.
19905
19906 2015-05-28  Nick Clifton  <nickc@redhat.com>
19907
19908         * config/rx/rx.c (push_regs): New function.  Extracts code from...
19909         (rx_expand_prologue): ... here.  Use push_regs to push even small
19910         spans of registers.
19911         (pop_regs): New function.
19912         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
19913         registers.
19914
19915 2015-05-28  Richard Biener  <rguenther@suse.de>
19916
19917         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
19918         member.
19919         (SLP_INSTANCE_BODY_COST_VEC): Remove.
19920         (vect_update_slp_costs_according_to_vf): Likewise.
19921         (vect_slp_analyze_operations): Update prototype.
19922         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
19923         vect_update_slp_costs_according_to_vf, adjust.
19924         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
19925         (vect_analyze_slp_cost_1): Likewise.
19926         (vect_analyze_slp_cost): Likewise.  Properly deal with
19927         widening reduction ops.  Commit body costs.
19928         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
19929         cost for loops from here.
19930         (vect_slp_analyze_operations): But do it from here when
19931         the vectorization factor is known and stmts are analyzed.
19932         (vect_bb_vectorization_profitable_p): Simplify.
19933         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
19934         (vect_update_slp_costs_according_to_vf): Remove.
19935
19936 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
19937             H.J. Lu  <hongjiu.lu@intel.com>
19938
19939         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
19940         (BUILD_CFLAGS): Likewise.
19941         (BUILD_CXXFLAGS): Likewise.
19942         (LINKER): Add @NO_PIE_FLAG@.
19943         (BUILD_LDFLAGS): Likewise.
19944         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
19945         --enable-default-pie.
19946         * common.opt (fPIE): Initialize to -1.
19947         (fpie): Likewise.
19948         (no-pie): New option.
19949         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
19950         * configure.ac: Add --enable-default-pie.
19951         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
19952         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
19953         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
19954         * gcc.c (NO_PIE_SPEC): New.
19955         (PIE_SPEC): Likewise.
19956         (NO_FPIE1_SPEC): Likewise.
19957         (FPIE1_SPEC): Likewise.
19958         (NO_FPIE2_SPEC): Likewise.
19959         (FPIE2_SPEC): Likewise.
19960         (NO_FPIE2_SPEC): Likewise.
19961         (FPIE_SPEC): Likewise.
19962         (NO_FPIE_SPEC): Likewise.
19963         (NO_FPIC1_SPEC): Likewise.
19964         (FPIC1_SPEC): Likewise.
19965         (NO_FPIC2_SPEC): Likewise.
19966         (FPIC2_SPEC): Likewise.
19967         (NO_FPIC2_SPEC): Likewise.
19968         (FPIC_SPEC): Likewise.
19969         (NO_FPIC_SPEC): Likewise.
19970         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
19971         (FPIE1_OR_FPIC1_SPEC): Likewise.
19972         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
19973         (FPIE2_OR_FPIC2_SPEC): Likewise.
19974         (NO_FPIE_AND_FPIC_SPEC): Likewise.
19975         (FPIE_OR_FPIC_SPEC): Likewise.
19976         (LD_PIE_SPEC): Likewise.
19977         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
19978         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
19979         * config/darwin.h (PIE_SPEC): Renamed to ...
19980         (DARWIN_PIE_SPEC): This.
19981         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
19982         * config/darwin9.h (PIE_SPEC): Renamed to ...
19983         (DARWIN_PIE_SPEC): This.
19984         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
19985         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
19986         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
19987         FPIE2_OR_FPIC2_SPEC.
19988         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
19989         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
19990         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
19991         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19992         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19993         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
19994         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
19995         * config/m32r/m32r.h (ASM_SPEC): Likewise.
19996         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
19997         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
19998         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
19999         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
20000         * config/sparc/linux.h (ASM_SPEC): Likewise.
20001         * config/sparc/linux64.h (ASM_SPEC): Likewise.
20002         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
20003         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
20004         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
20005         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
20006         * config/sparc/sparc.h (ASM_SPEC): Likewise.
20007         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
20008         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
20009         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
20010         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
20011         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
20012         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
20013         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
20014         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
20015         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
20016         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
20017         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
20018         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
20019         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
20020         * config/vax/linux.h (ASM_SPEC): Likewise.
20021         * doc/install.texi: Document --enable-default-pie.
20022         * doc/invoke.texi: Document -no-pie.
20023         * config.in: Regenerated.
20024         * configure: Likewise.
20025
20026 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20027
20028         PR rtl-optimization/66168
20029         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
20030         can_move_invariant_reg.
20031
20032 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
20033
20034         PR target/66148
20035         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
20036         REG_EQUAL note when doing insert.
20037
20038         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
20039         instead of "%d" for 'o' operand.
20040
20041 2015-05-27  Nathan Sidwell  <nathan@acm.org>
20042
20043         PR c++/66270
20044         * tree.c (build_pointer_type_for_mode): Canonical type does not
20045         inherit can_alias_all.
20046         (build_reference_type_for_mode): Likewise.
20047
20048 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
20049
20050         * expr.h (array_at_struct_end_p): Move to...
20051         (array_ref_element_size): Likewise.
20052         (component_ref_field_offset): Likewise.
20053         * tree.h (array_ref_element_size): ...here.
20054         (array_at_struct_end_p): Likewise.
20055         (component_ref_field_offset): Likewise.
20056         * expr.c (array_ref_element_size): Move to...
20057         (array_ref_low_bound): Likewise.
20058         (array_at_struct_end_p): Likewise.
20059         (array_ref_up_bound): Likewise.
20060         (component_ref_field_offset): Likewise.
20061         * tree.c (array_ref_element_size): ...here.
20062         (array_ref_low_bound): Likewise.
20063         (array_ref_up_bound): Likewise.
20064         (array_at_struct_end_p): Likewise.
20065         (component_ref_field_offset): Likewise.
20066
20067 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20068             Szabolcs Nagy  <szabolcs.nagy@arm.com>
20069
20070         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
20071
20072 2015-05-27  Jason Merrill  <jason@redhat.com>
20073
20074         PR bootstrap/66304
20075         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
20076         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
20077         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
20078
20079 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
20080
20081         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
20082         is true.
20083
20084         * statistics.c (statistics_fini_pass): Print pass name.
20085
20086 2015-05-27  Richard Biener  <rguenther@suse.de>
20087
20088         PR tree-optimization/66272
20089         Revert parts of
20090         2014-08-15  Richard Biener  <rguenther@suse.de>
20091
20092         PR tree-optimization/62031
20093         * tree-data-ref.c (dr_analyze_indices): Do not set
20094         DR_UNCONSTRAINED_BASE.
20095         (dr_may_alias_p): All indirect accesses have to go the
20096         formerly DR_UNCONSTRAINED_BASE path.
20097         * tree-data-ref.h (struct indices): Remove
20098         unconstrained_base member.
20099         (DR_UNCONSTRAINED_BASE): Remove.
20100
20101 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
20102
20103         * dwarf2out.c: Remove block_map.
20104         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
20105         (gen_lexical_block_die): Same.
20106         (dwarf2out_function_decl): Remove block_map use.
20107         (dwarf2out_c_finalize): Same.
20108         * tree-core.h (struct tree_block): Add die field.
20109         * tree.h (BLOCK_DIE): New.
20110
20111 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20112
20113         PR target/65358
20114         * expr.c (memory_load_overlap): New function.
20115         (emit_push_insn): When pushing partial args to the stack would
20116         clobber the register part load the overlapping part into a pseudo
20117         and put it into the hard reg after pushing.  Change return type
20118         to bool.  Add bool argument.
20119         * expr.h (emit_push_insn): Change return type to bool.
20120         Add bool argument.
20121         * calls.c (expand_call): Cancel sibcall optimization when encountering
20122         partial argument on targets with ARGS_GROW_DOWNWARD and
20123         !STACK_GROWS_DOWNWARD.
20124         (emit_library_call_value_1): Update callsite of emit_push_insn.
20125         (store_one_arg): Likewise.
20126
20127 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
20128
20129         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
20130
20131 2015-05-27  Martin Liska  <mliska@suse.cz>
20132
20133         * Makefile.in: Add additional dependencies related to memory report
20134         enhancement.
20135         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
20136         * bitmap.c (struct bitmap_descriptor_d): Remove.
20137         (struct loc): Likewise.
20138         (struct bitmap_desc_hasher): Likewise.
20139         (bitmap_desc_hasher::hash): Likewise.
20140         (bitmap_desc_hasher::equal): Likewise.
20141         (get_bitmap_descriptor): Likewise.
20142         (bitmap_register): User new memory descriptor API.
20143         (register_overhead): Likewise.
20144         (bitmap_find_bit): Register nsearches and search_iter statistics.
20145         (struct bitmap_output_info): Remove.
20146         (print_statistics): Likewise.
20147         (dump_bitmap_statistics): Use new memory descriptor.
20148         * bitmap.h (struct bitmap_usage): New class.
20149         * genmatch.c: Extend header file inclusion.
20150         * genpreds.c: Likewise.
20151         * ggc-common.c (struct ggc_usage): New class.
20152         (struct ggc_loc_desc_hasher): Remove.
20153         (ggc_loc_desc_hasher::hash): Likewise.
20154         (ggc_loc_desc_hasher::equal): Likewise.
20155         (struct ggc_ptr_hash_entry): Likewise.
20156         (struct ptr_hash_hasher): Likewise.
20157         (ptr_hash_hasher::hash): Likewise.
20158         (ptr_hash_hasher::equal): Likewise.
20159         (make_loc_descriptor): Likewise.
20160         (ggc_prune_ptr): Likewise.
20161         (dump_ggc_loc_statistics): Use new memory descriptor.
20162         (ggc_record_overhead): Likewise.
20163         (ggc_free_overhead): Likewise.
20164         (final_cmp_statistic): Remove.
20165         (cmp_statistic): Likewise.
20166         (ggc_add_statistics): Liekwise.
20167         (ggc_prune_overhead_list): Likewise.
20168         * hash-map-traits.h: New file.
20169         * hash-map.h (struct default_hashmap_traits): Move the traits to a
20170         separate header file.
20171         * hash-set.h: Pass memory statistics info to ctor.
20172         * hash-table.c (void dump_hash_table_loc_statistics): New function.
20173         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
20174         (hash_table::~hash_table): Register memory release operation.
20175         (hash_table::alloc_entries): Handle memory allocation operation.
20176         (hash_table::expand): Likewise.
20177         * inchash.c (iterative_hash_hashval_t): Move implementation to header
20178         file.
20179         (iterative_hash_host_wide_int): Likewise.
20180         * inchash.h (class hash): Likewise.
20181         * mem-stats-traits.h: New file.
20182         * mem-stats.h: New file.
20183         (mem_location): Add new class.
20184         (mem_usage): Likewise.
20185         (mem_alloc_description): Likewise.
20186         * sese.c: Add new header file inclusision.
20187         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
20188         and hash_set.
20189         * tree-sra.c: Add new header file inclusision.
20190         * vec.c (struct vec_descriptor): Remove.
20191         (hash_descriptor): Likewise.
20192         (struct vec_usage): Likewise.
20193         (struct ptr_hash_entry): Likewise.
20194         (hash_ptr): Likewise.
20195         (eq_ptr): Likewise.
20196         (vec_prefix::register_overhead): Use new memory descriptor API.
20197         (vec_prefix::release_overhead): Likewise.
20198         (add_statistics): Remove.
20199         (dump_vec_loc_statistics): Use new memory descriptor API.
20200         * vec.h (struct vec_prefix): Likewise.
20201         (va_heap::reserve): Likewise.
20202         (va_heap::release): Likewise.
20203         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
20204
20205 2015-05-27  Richard Biener  <rguenther@suse.de>
20206
20207         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
20208         earlier and remove ??? comment.
20209         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
20210         and got called from loop analysis bail out.  Always pass the SLP
20211         node to the vectorizable_* functions.
20212         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
20213         the premature SLP check here.
20214         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
20215         detected SLP stmts.
20216         (vect_detect_hybrid_slp_1): Likewise.
20217
20218 2015-05-26  Jeff Law  <law@redhat.com>
20219
20220         * combine.c (find_split_point): Verify that the shift count is a
20221         constant when choosing (plus (ashift ...)) as a split point.
20222
20223         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
20224         No functional changes.
20225
20226 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
20227
20228         * ipa-polymorphic-call.c
20229         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
20230         case when call target is already known.
20231
20232 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
20233
20234         PR target/65979
20235         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
20236         take into account the case that operands[1] and operands[2]
20237         are the same register.
20238
20239 2015-05-26  Michael Matz  <matz@suse.de>
20240
20241         PR middle-end/66251
20242
20243         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
20244         stores.
20245         (vect_create_vectorized_demotion_stmts): Always set
20246         STMT_VINFO_VEC_STMT, also with SLP.
20247         (vectorizable_store): Handle strided group stores.
20248
20249 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20250
20251         PR target/66049
20252         * config/aarch64/aarch64.md
20253         (*adds_shift_imm_<mode>):  New pattern.
20254         (*subs_shift_imm_<mode>):  Likewise.
20255         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
20256         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
20257         (*add_uxt<mode>_shift2): Likewise.
20258         (*add_uxtsi_shift2_uxtw): Likewise.
20259         (*sub_uxt<mode>_shift2): Likewise.
20260         (*sub_uxtsi_shift2_uxtw): Likewise.
20261
20262 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
20263
20264         * config/rs6000/constraints.md (Y, U): Use match_test.
20265
20266 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20267
20268         PR target/52144
20269         * config/arm/arm.c (arm_option_check_internal)
20270         (arm_option_params_internal): Check opts->target_flags to set macros.
20271         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20272         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
20273         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20274         (builtin_define): Replaced with def_or_undef_macro.
20275         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
20276         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
20277         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
20278         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
20279         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
20280         (TARGET_ARM_FEATURE_LDREX_P)
20281         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
20282         * config/arm/arm-c.c (def_or_undef_macro): New function.
20283         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
20284
20285 2015-05-26  Christian Bruel  <christian.bruel@st.com>
20286
20287         * c-common.h (builtin_define_with_int_value)
20288         (builtin_define_type_sizeof): Declare.
20289         * c-cppbuiltin.c (builtin_define_with_int_value)
20290         (builtin_define_type_sizeof): Externalize.
20291         (builtin_define_std): Cleanup declaration.
20292         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
20293         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
20294         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
20295         (builtin_define, builtin_assert): New macros.
20296
20297 2015-05-26  Richard Biener  <rguenther@suse.de>
20298
20299         PR tree-optimization/66142
20300         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
20301         MEM_REFs for the same base address.
20302
20303 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20304
20305         PR ipa/66181
20306         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
20307
20308 2015-05-26  Jason Merrill  <jason@redhat.com>
20309
20310         * configure.ac: Set CXXFLAGS for ISL test.
20311         * configure: Regenerate.
20312
20313         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
20314         strstr and basename.
20315         * configure: Regenerate.
20316
20317 2015-05-26  Richard Biener  <rguenther@suse.de>
20318
20319         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
20320         X % C -> X & (C - 1) for C being a power-of two to ...
20321         * match.pd: ... patterns.
20322
20323 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
20324
20325         * match.pd (swapped_tcc_comparison): New operator list.
20326         (-A CMP -B): New simplification.
20327         * fold-const.c (fold_comparison): Remove corresponding code.
20328
20329 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20330
20331         * caller-save.c (init_caller_save): Base temporary register numbers
20332         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
20333         * cfgloopanal.c (init_set_costs): Likewise.
20334         * dojump.c (prefer_and_bit_test): Likewise.
20335         * expr.c (init_expr_target): Likewise.
20336         * ira.c (setup_prohibited_mode_move_regs): Likewise.
20337         * lower-subreg.c (init_lower_subreg): Likewise.
20338         * postreload.c (reload_cse_regs_1): Likewise.
20339
20340 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
20341
20342         * gensupport.h (compute_test_codes): Declare.
20343         * gensupport.c (compute_predicate_codes): Rename to...
20344         (compute_test_codes): ...this.  Generalize error message.
20345         (process_define_predicate): Update accordingly.
20346         * genpreds.c (compute_maybe_allows): Delete.
20347         (add_constraint): Use compute_test_codes to determine whether
20348         something can accept a SUBREG, REG or MEM.
20349
20350 2015-05-26  Torvald Riegel  <triegel@redhat.com>
20351
20352         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
20353         'memory model' to align with C++11; fix description of memory orders;
20354         fix a few typos.
20355
20356 2015-05-26  Richard Biener  <rguenther@suse.de>
20357
20358         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
20359         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
20360         detect whether we apply SLP.  Remove call to
20361         vect_update_slp_costs_according_to_vf.
20362         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
20363         vect_update_slp_costs_according_to_vf from here.  Dispatch
20364         to vect_slp_analyze_operations to analyze SLP stmts.
20365         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
20366         unused bb_vec_info parameter, adjust assert.
20367         (vect_slp_analyze_operations): Pass in the slp instance tree
20368         instead of bb_vec_info.
20369         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
20370         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
20371
20372 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20373
20374         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
20375         Q_REGS.  Expand comment.
20376         (REG_CLASS_NAMES): Ditto.
20377         (REG_CLASS_CONTENTS): Ditto.
20378
20379 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
20380
20381         PR target/66274
20382         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
20383         when LEGACY_INT_REGNO_P is processed.
20384
20385 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
20386
20387         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
20388
20389 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
20390
20391         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
20392         register if not marked dead/unused, before return.
20393
20394 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20395
20396         PR lto/66180
20397         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
20398         is set; check for assembler name at LTO time.
20399         (type_in_anonymous_namespace): Remove hacks, check that all
20400         anonymous types are called "<anon>"
20401         (odr_type_p): Simplify; add check for "<anon>"
20402         (odr_subtypes_equivalent): Add odr_type_p check.
20403         * tree.c (need_assembler_name_p): Even anonymous namespace needs
20404         assembler name.
20405
20406 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20407
20408         * ipa-utils.h (method_class_type): Remove.
20409         * cgraphunit.c (walk_polymorphic_call_targets): Use
20410         TYPE_METHOD_BASETYPE.
20411         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
20412         on main variants only.
20413         (method_class_type): Remove.
20414         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
20415         (build_type_inheritance_graph): Likewise.
20416         * ipa-icf.c (sem_function::equals_wpa): Likewise.
20417         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
20418         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
20419
20420 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
20421
20422         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
20423         is_typedef_decl, typedef_variant_p): Constify.
20424         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
20425         is_typedef_decl, typedef_variant_p): Constify.
20426
20427 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20428
20429         * defaults.h (gen_tablejump): New function.
20430         (HAVE_tablejump): Add default value.
20431         * expr.c: Adjust.
20432         * stmt.c: Likewise.
20433
20434 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20435
20436         * defaults.h (gen_store_multiple): New function.
20437         (HAVE_store_multiple): Add default value.
20438         * expr.c (move_block_from_reg): Adjust.
20439
20440 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20441
20442         * defaults.h (gen_load_multiple): New function.
20443         (HAVE_load_multiple): Add default value.
20444         * expr.c (move_block_to_reg): Adjust.
20445
20446 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20447
20448         * defaults.h (gen_mem_signal_fence): New function.
20449         (HAVE_mem_signal_fence): Add default value.
20450         * optabs.c: Adjust.
20451
20452 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20453
20454         * defaults.h (gen_memory_barrier): New function.
20455         (HAVE_memory_barrier): Add default value.
20456         * optabs.c: Adjust.
20457
20458 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20459
20460         * defaults.h (gen_mem_thread_fence): New function.
20461         (HAVE_mem_thread_fence): Add default definition.
20462         * optabs.c: Adjust.
20463
20464 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20465
20466         * combine.c (find_split_point): Check the value of HAVE_lo_sum
20467         instead of if it is defined.
20468         (combine_simplify_rtx): Likewise.
20469         * lra-constraints.c (process_address_1): Likewise.
20470         * config/darwin.c: Adjust.
20471         * genconfig.c (main): Always define HAVE_lo_sum.
20472
20473 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20474
20475         * genmatch.c (parser::parse_operation): Reject expanding
20476         operator-list inside 'for'.
20477
20478 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20479
20480         * genmatch.c (parser::parse_for): Reject iterator if used as
20481         operator-list.
20482
20483 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
20484
20485         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
20486         after end of id-list.
20487
20488 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20489
20490         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
20491         we do not try to compute canonical type for type that does not need
20492         alias set.
20493         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
20494         FUNCITON_TYPE.
20495         * tree.h (type_with_alias_set_p): New.
20496
20497 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
20498
20499         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
20500         function attributes.
20501         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
20502
20503 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
20504
20505         * Makefile.in (check_gcc_parallelize): Delete.
20506         (lang_checks_parallelized): Update comment.
20507
20508 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
20509
20510         PR rtl-optimization/66237
20511         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
20512         location of an "as_a" cast.
20513
20514 2015-05-22  Jeff Law  <law@redhat.com>
20515
20516         * config/pa/pa.md (non-canonical shift-add insns): Remove.
20517         (peepholes with non-canonical RTL sources): Remove.
20518         (peepholes for indexed stores of FP regs in integer modes): Match and
20519         generate canonical RTL.
20520
20521 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20522
20523         PR tree-optimization/63387
20524         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
20525         ((x ord x) & (y ord y) -> (x ord y),
20526         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
20527         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
20528         vectors like scalars.
20529
20530 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20531
20532         * convert.c (convert_to_integer, convert_to_vector): Include the
20533         types in the error message.
20534
20535 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
20536
20537         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
20538         simplifications.
20539
20540 2015-05-22  Jeff Law  <law@redhat.com>
20541
20542         * config/pa/pa.md (integer_indexed_store splitters): Use
20543         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
20544         insns -- adjusting the constant 2nd operand accordingly.
20545
20546         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
20547         (plus (ashift X log2) Y) if it is a split point.
20548
20549         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
20550         out of hppa_legitimize_address to handle both forms of a multiply
20551         by 2, 4 or 8.
20552         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
20553         Always generate the ASHIFT variant as the result is not directly
20554         used in a MEM.  Update comments and refactor slightly to improve
20555         readability.
20556
20557 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20558
20559         PR target/65491
20560         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
20561         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
20562         (aarch64_composite_type_p): Return false if given type and mode are
20563         for a short vector.
20564
20565 2015-05-22  Richard Biener  <rguenther@suse.de>
20566
20567         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
20568         member.
20569         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
20570         patterns when determining whether SLP is pure.
20571         (vect_is_slp_reduction): Remove check for pattern stmts.
20572         (vect_is_simple_reduction_1): Remove dead code.
20573         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
20574         (vect_get_and_check_slp_defs): Pass in the stmt number.
20575         Allow the first def in a reduction to be not a pattern stmt when
20576         the rest of the stmts def are patterns.
20577         (vect_build_slp_tree_1): Allow tcc_expression codes like
20578         SAD_EXPR and DOT_PROD_EXPR.
20579         (vect_build_slp_tree): Adjust.
20580         (vect_analyze_slp): Refactor and move BB vect error message ...
20581         (vect_slp_analyze_bb_1): ... here.
20582
20583 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
20584
20585         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
20586         for CSWTCH temporary.
20587
20588 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20589
20590         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
20591         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
20592         unknown unspecs.
20593
20594 2015-05-22  Richard Biener  <rguenther@suse.de>
20595
20596         PR tree-optimization/66251
20597         * tree-vect-stmts.c (vectorizable_conversion): Properly
20598         set STMT_VINFO_VEC_STMT even for the SLP case.
20599
20600 2015-05-22  Marek Polacek  <polacek@redhat.com>
20601
20602         * doc/extend.texi: Use @pxref instead of @xref.
20603
20604 2015-05-22  hiraditya  <hiraditya@msn.com>
20605
20606         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
20607         redundant if.
20608
20609 2015-05-22  Richard Biener  <rguenther@suse.de>
20610
20611         PR tree-optimization/65701
20612         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
20613         Move peeling cost models into one place.  Peel for alignment
20614         for single loads only if an aligned load is cheaper than
20615         an unaligned load.
20616
20617 2015-05-22  Marek Polacek  <polacek@redhat.com>
20618
20619         PR c/47043
20620         * doc/extend.texi (Enumerator Attributes): New section.
20621         Document syntax of enumerator attributes.
20622
20623 2015-05-22  Richard Biener  <rguenther@suse.de>
20624
20625         * tree-vect-loop.c (get_reduction_op): New function.
20626         (vect_model_reduction_cost): Use it, add reduc_index parameter.
20627         Make ready for BB reductions.
20628         (vect_create_epilog_for_reduction): Use get_reduction_op.
20629         (vectorizable_reduction): Init reduc_index to a valid value.
20630         Adjust vect_model_reduction_cost call.
20631         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
20632         operand for reduction defaults.  Add SAD_EXPR support.
20633         Assert we have a neutral op for SLP reductions.
20634         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
20635         walking pattern stmt ops only recurse to SSA names.
20636
20637 2015-05-22  Richard Biener  <rguenther@suse.de>
20638
20639         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
20640         assert with guard, remove check on detected reduction.
20641         (vect_recog_sad_pattern): Likewise.
20642         (vect_recog_widen_sum_pattern): Likewise.
20643
20644 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20645
20646         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
20647         __always_inline__ attribute.
20648         (vaesdq_u8): Likewise.
20649         (vaesmcq_u8): Likewise.
20650         (vaesimcq_u8): Likewise.
20651         (vsha1cq_u32): Likewise.
20652         (vsha1mq_u32): Likewise.
20653         (vsha1pq_u32): Likewise.
20654         (vsha1h_u32): Likewise.
20655         (vsha1su0q_u32): Likewise.
20656         (vsha1su1q_u32): Likewise.
20657         (vsha256hq_u32): Likewise.
20658         (vsha256h2q_u32): Likewise.
20659         (vsha256su0q_u32): Likewise.
20660         (vsha256su1q_u32): Likewise.
20661         (vmull_p64): Likewise.
20662         (vmull_high_p64): Likewise.
20663
20664 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20665
20666         * final.c (final_scan_insn): Don't check HAVE_peephole with the
20667         preprocessor.
20668         * output.h: Likewise.
20669         * genconfig.c (main): Alwways define HAVE_peephole.
20670         * genpeep.c: Don't emit checks of HAVE_peephole.
20671
20672 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20673
20674         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
20675         check HAVE_conditional_move with the preprocessor.
20676
20677 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20678
20679         * genconfig.c (main): Always define HAVE_conditional_move.
20680         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
20681         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
20682         is defined.
20683
20684 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20685
20686         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
20687         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
20688         and FRAME_POINTER_REGNUM with the preprocessor.
20689
20690 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20691
20692         * defaults.h: Add default for STACK_PUSH_CODE.
20693         * expr.c: Don't redefine STACK_PUSH_CODE.
20694         * recog.c: Likewise.
20695
20696 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20697
20698         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
20699         sched-deps.c: Use if instead of preprocessor checks with
20700         STACK_GROWS_DOWNWARD.
20701
20702 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
20703
20704         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
20705         is defined.
20706         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
20707         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
20708         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
20709         * doc/tm.texi: Regenerate.
20710
20711 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
20712
20713         PR target/66232
20714         * config/i386/constraints.md (Bg): New constraint for GOT memory
20715         operand.
20716         * config/i386/i386.md (*call_got_x32): New pattern.
20717         (*call_value_got_x32): Likewise.
20718         * config/i386/predicates.md (GOT_memory_operand): New predicate.
20719
20720 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
20721
20722         PR tree-optimization/66233
20723         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
20724         Simplify.
20725
20726 2015-05-21  Jeff Law  <law@redhat.com>
20727
20728         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
20729         than MULT for shadd sequences.
20730
20731 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
20732
20733         * alias.c (alias_stats): New static var.
20734         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
20735         (dump_alias_stats_in_alias_c): New function.
20736         * alias.h (dump_alias_stats_in_alias_c): Declare.
20737         * tree-ssa-alias.c (dump_alias_stats): Call it.
20738
20739 2015-05-08  Michael Matz  <matz@suse.de>
20740
20741         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
20742         to strided_p.
20743         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
20744         (STMT_VINFO_STRIDED_P): ... this.
20745         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
20746         (vect_verify_datarefs_alignment): Likewise.
20747         (vect_enhance_data_refs_alignment): Likewise.
20748         (vect_analyze_data_ref_access): Likewise.
20749         (vect_analyze_data_refs): Accept strided stores.
20750         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
20751         (vect_model_load_cost): Adjust for macro rename.
20752         (vectorizable_mask_load_store): Likewise.
20753         (vectorizable_load): Likewise.
20754         (vectorizable_store): Open code strided stores.
20755
20756 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20757
20758         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
20759         Document sqrt_insn.
20760
20761 2015-05-21  Richard Biener  <rguenther@suse.de>
20762
20763         PR c++/66211
20764         * match.pd: Guard pattern optimzing (int)(float)int
20765         conversions to apply only on GIMPLE.
20766
20767 2015-05-21  Jeff Law  <law@redhat.com>
20768
20769         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
20770         multiply-accumulate/shift-add insn generation.
20771
20772 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
20773
20774         PR target/54236
20775         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
20776         operands[1] are the same.
20777
20778 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
20779
20780         PR middle-end/66221
20781         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
20782         build_distinct_type_copy to copy bounds.
20783
20784 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
20785
20786         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
20787         Change to unsigned int.
20788
20789 2015-05-20  Jeff Law  <law@redhat.com>
20790
20791         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
20792         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
20793         (pa_shadd_constant_p): Allow constants for shadd insns rather
20794         than valid scaling constants for memory addresses.
20795         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
20796         * config/pa/predicates.md (mem_shadd_operand): New predicate.
20797         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
20798         (shift-add insns using ASHIFT): New patterns.
20799
20800 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
20801
20802         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
20803         feasible.
20804         (fix_up_fall_thru_edges): Likewise.
20805         (fix_crossing_conditional_branches): Likewise. Promote jump targets
20806         from to rtx_insn to rtx_code_label where feasible.
20807         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
20808         gen_move_insn (returned type changed to rtx_insn).
20809         * builtins.c (expand_errno_check): Fix arguments of
20810         do_compare_rtx_and_jump (now expects rtx_code_label).
20811         (expand_builtin_acc_on_device): Likewise.
20812         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
20813         invert_jump (now exprects rtx_jump_insn).
20814         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
20815         (construct_init_block): Use rtx_code_label.
20816         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
20817         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
20818         calling redirect_jump.
20819         (patch_jump_insn): Likewise.
20820         (redirect_branch_edge): Likewise.
20821         (force_nonfallthru_and_redirect): Likewise.
20822         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
20823         when suitable.
20824         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
20825         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
20826         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
20827         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
20828         to store the value retured by gen_label_rtx.
20829         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
20830         rtx_jump_insn.
20831         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
20832         (split_branches): Fix calls of redirect_jump.
20833         * dojump.c (jumpifnot): Promote argument type from rtx to
20834         rtx_code_label.
20835         (jumpifnot_1): Likewise.
20836         (jumpif): Likewise.
20837         (jumpif_1): Likewise.
20838         (do_jump_1): Likewise.
20839         (do_jump): Likewise. Use rtx_code_label when feasible.
20840         (do_jump_by_parts_greater_rtx): Likewise.
20841         (do_jump_by_parts_zero_rtx): Likewise.
20842         (do_jump_by_parts_equality_rtx): Likewise.
20843         (do_compare_rtx_and_jump): Likewise.
20844         * dojump.h: Update function prototypes.
20845         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
20846         returns rtx_insn).
20847         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
20848         rtx_jump_insn.
20849         (emit_label_before): Likewise.
20850         (emit_jump_insn_after_noloc): Likewise.
20851         (emit_jump_insn_after_setloc): Likewise.
20852         (emit_jump_insn_after): Likewise
20853         (emit_jump_insn_before_setloc): Likewise.
20854         (emit_jump_insn_before): Likewise.
20855         (emit_label_before): Promote return type to rtx_code_label.
20856         (emit_label): Likewise.
20857         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
20858         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
20859         gen_move_insn.
20860         (emit_stack_restore): Likewise.
20861         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
20862         (do_cmp_and_jump): Likewise.
20863         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
20864         from rtx to rtx_code_label.
20865         (gen_move_insn_uncast): New function.
20866         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
20867         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
20868         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
20869         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
20870         invert_jump_1 and redirect_jump_1.
20871         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
20872         do_compare_rtx_and_jump.
20873         (expand_addsub_overflow): Likewise.
20874         (expand_neg_overflow): Likewise.
20875         (expand_mul_overflow): Likewise.
20876         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
20877         return value of gen_move_insn.
20878         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
20879         * loop-doloop.c (add_test): Use rtx_code_label.
20880         (doloop_modify): Likewise.
20881         (doloop_optimize): Likewise.
20882         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
20883         * lra-constraints.c (emit_spill_move): Remove cast of value returned
20884         by gen_move_insn.
20885         (inherit_reload_reg): Add cast when calling dump_insn_slim.
20886         (split_reg): Likewise.
20887         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
20888         gen_move_insn.
20889         * optabs.c (expand_binop_directly): Remove casts of values returned by
20890         maybe_gen_insn.
20891         (expand_unop_direct): Likewise.
20892         (expand_abs): Likewise.
20893         (maybe_emit_unop_insn): Likewise.
20894         (maybe_gen_insn): Promote return type to rtx_insn.
20895         * optabs.h: Update prototype of maybe_gen_insn.
20896         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
20897         redundant cast.
20898         * recog.c (struct peep2_insn_data): Promote type of insn field to
20899         rtx_insn.
20900         (peep2_reinit_state): Use NULL instead of NULL_RTX.
20901         (peep2_attempt): Remove casts of insn in peep2_insn_data.
20902         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
20903         * recog.h (struct insn_gen_fn): Promote return types of function
20904         pointers and operator ().from rtx to rtx_insn.
20905         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
20906         (fill_eager_delay_slots): Likewise.
20907         (relax_delay_slots): Likewise.
20908         (make_return_insns): Likewise.
20909         (dbr_schedule): Likewise.
20910         (optimize_skips): Likewise.
20911         (reorg_redirect_jump): Likewise.
20912         (fill_slots_from_thread): Likewise.
20913         * reorg.h: Update prototypes.
20914         * resource.c (find_dead_or_set_registers): Use dyn_cast to
20915         rtx_jump_insn instead of check.  Use it's jump_target method.
20916         * rtl.h (rtx_jump_insn::jump_label): Define new method.
20917         (rtx_jump_insn::jump_target): Define new method.
20918         (rtx_jump_insn::set_jump_target): Define new method.
20919         * rtlanal.c (tablejump_p): Promote type of one local variable.
20920         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
20921         (sched_analyze_insn): Likewise.
20922         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
20923         (print_insn): Likewise.
20924         * stmt.c (label_rtx): Promote return type to rtx_insn.
20925         (force_label_rtx): Likewise.
20926         (jump_target_rtx): Define new function.
20927         (expand_label): Use it, get rid of one cast.
20928         (expand_naked_return): Promote rtx to rtx_code_label.
20929         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
20930         (expand_case): Use rtx_code_label instread of rtx where feasible.
20931         (expand_sjlj_dispatch_table): Likewise.
20932         (emit_case_nodes): Likewise.
20933         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
20934         * store-motion.c (insert_store): Make use of new return type of
20935         gen_move_insn and remove a cast.
20936         (replace_store_insn): Likewise.
20937
20938 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
20939
20940         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
20941         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
20942
20943 2015-05-20  Jeff Law  <law@redhat.com>
20944
20945         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
20946         dispose of the jump thread path when the jump threading
20947         opportunity is cancelled.
20948
20949 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
20950
20951         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
20952         when printing the caret character.
20953
20954 2015-05-20  Marek Polacek  <polacek@redhat.com>
20955
20956         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
20957
20958 2015-05-20  Marek Polacek  <polacek@redhat.com>
20959
20960         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
20961         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
20962         * gimple-fold.c (canonicalize_bool): Likewise.
20963         (same_bool_result_p): Likewise.
20964         * tree-if-conv.c (parse_predicate): Likewise.
20965
20966 2015-05-20  Marek Polacek  <polacek@redhat.com>
20967
20968         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
20969         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
20970
20971 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20972
20973         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
20974         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
20975         values.
20976
20977 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
20978
20979         * config/mips/mips.h (micromips_globals): Declare.
20980
20981 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
20982
20983         * timevar.def (TV_INITIALIZE_RTL): New.
20984         * toplev.c (initialize_rtl): Use an auto_timevar to account this
20985         function's time to TV_INITIALIZE_RTL.
20986
20987 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
20988
20989         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
20990         gimple_build_nop calls.
20991         (chkp_find_bounds_for_elem): Likewise.
20992         (chkp_get_zero_bounds): Likewise.
20993         (chkp_get_none_bounds): Likewise.
20994         (chkp_get_bounds_by_definition): Likewise.
20995         (chkp_generate_extern_var_bounds): Likewise.
20996         (chkp_get_bounds_for_decl_addr): Likewise.
20997         (chkp_get_bounds_for_string_cst): Likewise.
20998
20999 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
21000
21001         PR tree-optimization/65447
21002         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
21003         (dump_use, dump_uses): Support to dump sub use.
21004         (record_use): New parameters to support sub use.  Remove call to
21005         dump_use.
21006         (record_sub_use, record_group_use): New functions.
21007         (compute_max_addr_offset, split_all_small_groups): New functions.
21008         (group_address_uses, rewrite_use_address): New functions.
21009         (strip_offset): New declaration.
21010         (find_interesting_uses_address): Call record_group_use.
21011         (add_candidate): New assertion.
21012         (infinite_cost_p): Move definition forward.
21013         (add_costs): Check INFTY cost and return immediately.
21014         (get_computation_cost_at): Clear setup cost and dependent bitmap
21015         for sub uses.
21016         (determine_use_iv_cost_address): Compute cost for sub uses.
21017         (rewrite_use_address_1): Rename from old rewrite_use_address.
21018         (free_loop_data): Free sub uses.
21019         (tree_ssa_iv_optimize_loop): Call group_address_uses.
21020
21021 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21022             Jim Wilson  <jim.wilson@linaro.org>
21023
21024         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
21025         new  fields loadv and storev.
21026         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
21027         Initialize loadv and storev.
21028         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
21029         (cortexa53_extra_costs): Likewise.
21030         (cortexa57_extra_costs): Likewise.
21031         (xgene1_extra_costs): Likewise.
21032         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
21033         rtx_costs.
21034
21035 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
21036
21037         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
21038          storev.
21039         (cortexa8_extra_costs): Likewise.
21040         (cortexa5_extra_costs): Likewise.
21041         (cortexa7_extra_costs): Likewise.
21042         (cortexa12_extra_costs): Likewise.
21043         (cortexa15_extra_costs): Likewise.
21044         (v7m_extra_costs): Likewise.
21045
21046 2015-05-20  Jeff Law  <law@redhat.com>
21047
21048         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
21049         instead of open-coded version.  Also delete the jump thread created
21050         within this function.
21051
21052 2015-05-20  Alan Modra  <amodra@gmail.com>
21053
21054         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
21055         stack adjusting insn.  Formatting.
21056         (rs6000_emit_prologue): Track stack adjusting insn, and use of
21057         r12.  If possible, emit first -fsplit-stack arg pointer insn
21058         before stack adjust.  Don't use r12 to save cr if split-stack.
21059
21060 2015-05-20  Alan Modra  <amodra@gmail.com>
21061
21062         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
21063         Define.
21064         (rs6000_supports_split_stack): New function.
21065         * gcc/config/rs6000/rs6000.c (machine_function): Add
21066         split_stack_arg_pointer.
21067         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
21068         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
21069         rather than virtual_incoming_args_rtx.
21070         (rs6000_va_start): Likewise.
21071         (split_stack_arg_pointer_used_p): New function.
21072         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
21073         (morestack_ref): New var.
21074         (gen_add3_const, rs6000_expand_split_stack_prologue,
21075         rs6000_internal_arg_pointer, rs6000_live_on_entry,
21076         rs6000_split_stack_space_check): New functions.
21077         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
21078         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
21079         (UNSPECV_SPLIT_STACK_RETURN): Define.
21080         (split_stack_prologue, load_split_stack_limit,
21081         load_split_stack_limit_di, load_split_stack_limit_si,
21082         split_stack_return, split_stack_space_check): New expands and insns.
21083         * gcc/config/rs6000/rs6000-protos.h
21084         (rs6000_expand_split_stack_prologue): Declare.
21085         (rs6000_split_stack_space_check): Declare.
21086
21087 2015-05-20  Alan Modra  <amodra@gmail.com>
21088
21089         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
21090         (direct_return): Test vrsave_size rather than vrsave_mask.
21091         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
21092         (rs6000_emit_epilogue): Likewise.
21093
21094 2015-05-20  Alan Modra  <amodra@gmail.com>
21095
21096         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
21097         when not saving registers.
21098         (debug_stack_info): Adjust to omit printing unused offsets,
21099         as before.
21100         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
21101         expression.
21102
21103 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21104
21105         PR c++/65835
21106         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
21107         value_type to const char *.
21108
21109 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
21110
21111         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
21112         to build a biarch toolchain again.
21113
21114 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21115
21116         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
21117         or implicit declarations.
21118         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
21119         into it.
21120         (get_odr_type): Check type has linkage before adding bases.
21121         (register_odr_type): Check that type has linkage before adding it.
21122         (type_known_to_have_no_deriavations_p): Rename to ..
21123         (type_known_to_have_no_derivations_p): This one.
21124         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
21125         (type_known_to_have_no_derivations_p): This one.
21126         * ipa-polymorphic-call.c
21127         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
21128         type has linkage.
21129
21130 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21131
21132         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
21133         (layout_type): Use RECORD_OR_UNION_TYPE_P.
21134
21135 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21136
21137         * config/s390/s390.c (s390_vector_bool_type_p): New function.
21138         (s390_invalid_binary_op): New function.
21139         (TARGET_INVALID_BINARY_OP): Define macro.
21140
21141 2015-05-19  David Sherwood  <david.sherwood@arm.com>
21142
21143         * loop-invariant.c (create_new_invariant): Don't calculate address cost
21144         if mode is not a scalar integer.
21145         (get_inv_cost): Increase computational cost for unused invariants.
21146
21147 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21148
21149         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
21150         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
21151         * config/s390/s390-builtin-types.def: New file.
21152         * config/s390/s390-builtins.def: New file.
21153         * config/s390/s390-builtins.h: New file.
21154         * config/s390/s390-c.c: New file.
21155         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
21156         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
21157         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
21158         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
21159         prototypes.
21160         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
21161         Include.
21162         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
21163         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
21164         variable definitions.
21165         (s390_const_operand_ok): New function.
21166         (s390_expand_builtin): Rewrite.
21167         (s390_init_builtins): New function.
21168         (s390_handle_vectorbool_attribute): New function.
21169         (s390_attribute_table): Add s390_vector_bool attribute.
21170         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
21171         (s390_branch_condition_mask): Generate masks for new modes.
21172         (s390_expand_vec_compare_cc): New function.
21173         (s390_mangle_type): Add mangling for vector bool types.
21174         (enum s390_builtin): Remove.
21175         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
21176         efpc builtins.
21177         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
21178         s390_cpu_cpp_builtins.
21179         (REGISTER_TARGET_PRAGMAS): New macro.
21180         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
21181         (insn_cmp mode attribute): Add new CC modes.
21182         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
21183         (lcbb): New pattern definition.
21184         * config/s390/s390intrin.h: Include vecintrin.h.
21185         * config/s390/t-s390: New file.
21186         * config/s390/vecintrin.h: New file.
21187         * config/s390/vector.md: Include vx-builtins.md.
21188         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
21189         support.
21190
21191 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21192
21193         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
21194         CCVFHE.
21195         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
21196         (s390_select_ccmode): Likewise.
21197         (s390_canonicalize_comparison): Swap operands if necessary.
21198         (s390_expand_vec_compare_scalar): Expand DFmode compare using
21199         single element vector instructions.
21200         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
21201         (s390_branch_condition_mask): Generate CC masks for the new modes.
21202         * config/s390/s390.md (v0, vf, vd): New mode attributes.
21203         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
21204         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
21205         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
21206         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
21207         (*extend<DSF:mode><BFP:mode>2): New insn definition.
21208         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
21209         (extend<DSF:mode><BFP:mode>2): Turn into expander.
21210         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
21211         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
21212         (sqrt<mode>2): Add vector instruction.
21213
21214 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21215
21216         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
21217         constraints.
21218         * config/s390/predicates.md (const0_operand, constm1_operand)
21219         (constable_operand): Accept vector operands.
21220         * config/s390/s390-modes.def: Add supported vector modes.
21221         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
21222         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
21223         (s390_bytemask_vector_p, s390_expand_vec_strlen)
21224         (s390_expand_vec_compare, s390_expand_vcond)
21225         (s390_expand_vec_init): Add prototypes.
21226         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
21227         (s390_vector_mode_supported_p): New function.
21228         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
21229         (s390_contiguous_bitmask_vector_p): New function.
21230         (s390_bytemask_vector_p): New function.
21231         (s390_split_ok_p): Vector regs don't work either.
21232         (regclass_map): Add VEC_REGS.
21233         (s390_legitimate_constant_p): Handle vector constants.
21234         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
21235         (legitimate_reload_vector_constant_p): New function.
21236         (s390_preferred_reload_class): Handle CONST_VECTOR.
21237         (s390_reload_symref_address):  Likewise.
21238         (s390_secondary_reload): Vector memory instructions only support
21239         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
21240         (s390_emit_ccraw_jump): New function.
21241         (s390_expand_vec_strlen): New function.
21242         (s390_expand_vec_compare): New function.
21243         (s390_expand_vcond): New function.
21244         (s390_expand_vec_init): New function.
21245         (s390_dwarf_frame_reg_mode): New function.
21246         (print_operand): Handle addresses with 'O' and 'R' constraints.
21247         (NR_C_MODES, constant_modes): Add vector modes.
21248         (s390_output_pool_entry): Handle vector constants.
21249         (s390_hard_regno_mode_ok): Handle vector registers.
21250         (s390_class_max_nregs): Likewise.
21251         (s390_cannot_change_mode_class): New function.
21252         (s390_invalid_arg_for_unprototyped_fn): New function.
21253         (s390_function_arg_vector): New function.
21254         (s390_function_arg_float): Remove size variable.
21255         (s390_pass_by_reference): Handle vector arguments.
21256         (s390_function_arg_advance): Likewise.
21257         (s390_function_arg): Likewise.
21258         (s390_return_in_memory): Vector values are returned in a VR if
21259         possible.
21260         (s390_function_and_libcall_value): Handle vector arguments.
21261         (s390_gimplify_va_arg): Likewise.
21262         (s390_call_saved_register_used): Consider the arguments named.
21263         (s390_conditional_register_usage): Disable v16-v31 for non-vec
21264         targets.
21265         (s390_preferred_simd_mode): New function.
21266         (s390_support_vector_misalignment): New function.
21267         (s390_vector_alignment): New function.
21268         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
21269         (TARGET_VECTOR_MODE_SUPPORTED_P)
21270         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
21271         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
21272         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
21273         (TARGET_VECTOR_ALIGNMENT): Define target macro.
21274         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
21275         (FIRST_PSEUDO_REGISTER): Increase value.
21276         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
21277         (VECTOR_REG_P): Define macros.
21278         (FIXED_REGISTERS, CALL_USED_REGISTERS)
21279         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
21280         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
21281         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
21282         Add vector registers.
21283         (CANNOT_CHANGE_MODE_CLASS): Call C function.
21284         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
21285         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
21286         memory.
21287         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
21288         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
21289         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
21290         (VR*_REGNUM): New constants.
21291         (ALL): New mode iterator.
21292         (INTALL): Remove mode iterator.
21293         Include vector.md.
21294         (movti): Implement TImode moves for VRs.
21295         Disable TImode splitter for VR targets.
21296         Implement splitting TImode GPR<->VR moves.
21297         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
21298         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
21299         reload<mode>_la_in, reload<mode>_la_out.
21300         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
21301         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
21302         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
21303         (mov<mode> SF SD): Prefer lder, lde for loading.
21304         Add lrl and strl instructions.
21305         Add vector instructions.
21306         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
21307         Call s390_expand_vec_strlen on z13.
21308         (*cc_to_int): Change predicate to nonimmediate_operand.
21309         (addti3): Rename to *addti3.  New expander.
21310         (subti3): Rename to *subti3.  New expander.
21311         * config/s390/vector.md: New file.
21312
21313 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21314
21315         * common/config/s390/s390-common.c (processor_flags_table): Add
21316         z13.
21317         * config.gcc: Add z13.
21318         * config/s390/s390-opts.h (enum processor_type): Add
21319         PROCESSOR_2964_Z13.
21320         * config/s390/s390.c (s390_adjust_priority): Check for
21321         PROCESSOR_2964_Z13.
21322         (s390_reorg): Likewise.
21323         (s390_sched_reorder): Likewise.
21324         (s390_sched_variable_issue): Likewise.
21325         (s390_loop_unroll_adjust): Likewise.
21326         (s390_option_override): Likewise. Default to -mvx when available.
21327         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
21328         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
21329         (TARGET_VX_ABI): Define macros.
21330         macros.
21331         (TARGET_DEFAULT): Add MASK_OPT_VX.
21332         * config/s390/s390.md ("cpu" attribute): Add z13.
21333         ("cpu_facility" attribute): Add vec.
21334         * config/s390/s390.opt (processor_type): Add z13.
21335         (mvx): New options.
21336         * doc/invoke.texi: Add z13 option for -march.
21337
21338 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21339
21340         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
21341         mode check to make sure that only scalar integer values are
21342         accepted.
21343
21344 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
21345
21346         * tree.c (verify_type_variant): Fix #undef.
21347         (gimple_canonical_types_compatible_p): Move here from lto.c
21348         (verify_type): Verify TYPE_CANONICAL compatibility.
21349         * tree.h (gimple_canonical_types_compatible_p): Declare.
21350
21351 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21352
21353         PR middle-end/66199
21354         * tree.h (OMP_TEAMS_COMBINED): Define.
21355         * gimplify.c (enum gimplify_omp_var_data): Add
21356         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
21357         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
21358         (omp_notice_variable): Accept both ORT_TEAMS
21359         and ORT_COMBINED_TEAMS.  Don't recurse if
21360         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
21361         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
21362         GOVD_FIRSTPRIVATE.
21363         (omp_no_lastprivate): New function.
21364         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
21365         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
21366         notice_outer and set appropriate bits, otherwise make
21367         sure default(none) combined constructs won't complain.
21368         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
21369         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
21370         omp_no_lastprivate either remove the clause or turn it
21371         into OMP_CLAUSE_PRIVATE.
21372         (gimplify_omp_for): Fix up handling of implicit
21373         lastprivate or linear iterators.
21374         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
21375         ORT_COMBINED_TEAMS.
21376         * omp-low.c (lower_omp_for_lastprivate): For combined
21377         for simd use fd.loop.n2 from the for rather than simd.
21378
21379 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21380
21381         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
21382         instead of gen_rtx_raw_REG.
21383         (cris_expand_epilogue): Likewise.
21384         * config/microblaze/microblaze.c (microblaze_classify_address):
21385         Likewise.
21386         * config/sparc/sparc.md: Likewise.
21387
21388 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
21389
21390         * config/alpha/alpha.c (alpha_legitimize_reload_address)
21391         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
21392         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
21393         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
21394         Use CASE_CONST_SCALAR_INT.
21395         (print_operand) <case 'M'>: Use mode_width_operand to check the
21396         value of the constant.
21397         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
21398         * config/alpha/predicates.md (input_operand): Use general_operand
21399         instead of match_code as operand check.
21400         (symbolic_operand): Use match_code with subexpression digits.
21401         * config/alpha/constraints.md (Q): Ditto.
21402
21403 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21404
21405         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
21406
21407 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21408
21409         * config/s390/s390.c (s390_secondary_reload): Fix check for
21410         load/store relative.
21411
21412 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21413
21414         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
21415         alternative_mask to uint64_t.
21416
21417 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
21418
21419         PR tree-optimization/66187
21420         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
21421         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
21422         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
21423
21424 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
21425
21426         * diagnostic.c (diagnostic_report_current_module): Strengthen
21427         local "new_map" from const line_map * to
21428         const line_map_ordinary *.
21429         * genmatch.c (error_cb): Likewise for local "map".
21430         (output_line_directive): Likewise for local "map".
21431         * input.c (expand_location_1): Likewise for local "map".
21432         Pass NULL rather than &map to
21433         linemap_unwind_to_first_non_reserved_loc, since the value is never
21434         read from there, and the value written back not read from here.
21435         (is_location_from_builtin_token): Strengthen local "map" from
21436         const line_map * to const line_map_ordinary *.
21437         (dump_location_info): Strengthen locals "map" from
21438         line_map *, one to const line_map_ordinary *, the other
21439         to const line_map_macro *.
21440         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
21441         const line_map * to const line_map_macro *.
21442         (maybe_unwind_expanded_macro_loc): Add a call to
21443         linemap_check_macro when writing to the "map" field of the
21444         loc_map_pair.
21445         Introduce local const line_map_ordinary * "ord_map", using it in
21446         place of "map" in the part of the function where we know we have
21447         an ordinary map.  Strengthen local "m" from const line_map * to
21448         const line_map_ordinary *.
21449
21450 2015-05-19  Nick Clifton  <nickc@redhat.com>
21451
21452         PR target/66156
21453         * config/msp430/msp430.md (zero_extendhisi2): Add support for
21454         separate source and destination registers.
21455
21456 2015-05-19  Richard Biener  <rguenther@suse.de>
21457
21458         PR tree-optimization/66165
21459         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
21460         for no load permutation.
21461
21462         PR tree-optimization/66185
21463         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
21464         when building the SLP node from scalars.
21465
21466 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
21467             Tristan Gingold  <gingold@adacore.com>
21468
21469         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
21470         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
21471         (expand_stack_restore): Call record_new_stack_level.
21472         (expand_stack_save): Do not call do_pending_stack_adjust.
21473         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
21474         * calls.c (expand_call): Call record_new_stack_level for alloca.
21475         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
21476         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
21477         (update_sjlj_context): New global function.
21478         * except.h (update_sjlj_context): Declare.
21479         * explow.c (record_new_stack_level): New global function.
21480         (allocate_dynamic_stack_space): Call record_new_stack_level.
21481         * explow.h (record_new_stack_level): Declare.
21482         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
21483         * cfgrtl.c (duplicate_insn_chain): Likewise.
21484
21485 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21486
21487         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
21488         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
21489         STACK_GROWS_DOWNWARD as normal if.
21490         (expand_call): Likewise.
21491
21492 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
21493
21494         PR target/54236
21495         * config/sh/sh.md (*round_int_even): New insn_and_split and
21496         accompanying new unnamed split.
21497
21498 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21499
21500         * bitmap.c (bitmap_set_range): Handle count==1 specially.
21501         (bitmap_clear_range): Likewise.
21502         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
21503         bitmap_set_range unconditionally.
21504         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21505         * df-scan.c (df_mark_reg): Likewise.
21506         * haifa-sched.c (setup_ref_regs): Likewise.
21507         * sched-rgn.c (update_live_1): Likewise.
21508
21509 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21510
21511         * regs.h (END_HARD_REGNO): Delete.
21512         (END_REGNO): Move to...
21513         * rtl.h: ...here.
21514         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
21515         * caller-save.c (mark_set_regs): Likewise.
21516         * combine.c (move_deaths, distribute_notes): Likewise.
21517         * cse.c (invalidate, invalidate_for_call): Likewise.
21518         * df-scan.c (df_ref_record): Likewise.
21519         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
21520         (record_last_reg_set_info): Likewise.
21521         * reg-stack.c (convert_regs_exit): Likewise.
21522         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
21523         * resource.c (update_live_status): Likewise.
21524         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
21525
21526 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21527
21528         * rtl.h (reg_info): Add an nregs field.
21529         (REG_NREGS): Use it.
21530         (SET_REGNO_RAW): Delete.
21531         (set_regno_raw): New function.
21532         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
21533         (END_REGNO): Redefine in terms of REG_NREGS.
21534         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
21535         SET_REGNO_RAW.
21536         * emit-rtl.c (set_mode_and_regno): Likewise.
21537         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
21538         instead of SET_REGNO_RAW.
21539
21540 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21541
21542         * rtl.h (PUT_MODE_RAW): New macro.
21543         (PUT_REG_NOTE_KIND): Use it.
21544         (set_mode_and_regno): Declare.
21545         (gen_raw_REG): Change regno to "unsigned int".
21546         (gen_rtx_REG): Change "unsigned" to "unsigned int".
21547         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
21548         use set_mode_and_regno to change the mode of registers.
21549         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
21550         * emit-rtl.c (set_mode_and_regno): New function.
21551         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
21552         * caller-save.c (reg_save_code): Use set_mode_and_regno.
21553         * expr.c (init_expr_target): Likewise.
21554         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21555         * postreload.c (reload_cse_simplify_operands): Likewise.
21556
21557 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21558
21559         * caller-save.c (init_caller_save): Use word_mode and
21560         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
21561         * expr.c (init_expr_target): Likewise.
21562         * ira.c (setup_prohibited_mode_move_regs): Likewise.
21563         * postreload.c (reload_cse_regs_1): Likewise.
21564
21565 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21566
21567         * rtl.def (REG): Change format to "r".
21568         * rtl.h (rtunion): Remove rt_reg.
21569         (reg_info): New structure.
21570         (rtx_def): Add reg field to main union.
21571         (X0REGATTR): Delete.
21572         (REG_CHECK): New macro.
21573         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
21574         * rtl.c (rtx_format): Document "r".
21575         (rtx_code_size): Handle REG specially.
21576         * gengenrtl.c (special_format): Return true for formats
21577         that include 'r'.
21578         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
21579         Deal with REG_ATTRS after the field loop.
21580         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
21581         * expmed.c (init_expmed): Call gen_raw_REG instead of
21582         gen_rtx_raw_REG.
21583         * expr.c (init_expr_target): Likewise.
21584         * regcprop.c (maybe_mode_change): Likewise.
21585         * varasm.c (make_decl_rtl): Likewise.
21586         * final.c (leaf_renumber_regs_insn): Return early after
21587         handling REGs.
21588         * genemit.c (gen_exp): Handle 'r' fields.
21589         * genpeep.c (match_rtx): Likewise.
21590         * gensupport.c (subst_pattern_match): Likewise.
21591         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
21592         (alter_constraints, subst_dup): Likewise.
21593         * read-rtl.c (read_rtx_code): Likewise.
21594         * print-rtl.c (print_rtx): Likewise.
21595         * genrecog.c (find_operand, find_matching_operand): Likewise.
21596         (validate_pattern, match_pattern_2): Likewise.
21597         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
21598         (rtx_test::regno_field): New function.
21599         (operator ==, safe_to_hoist_p, transition_parameter_type)
21600         (parameter_type_string, print_parameter_value)
21601         (print_nonbool_test, print_test): Handle new enum values.
21602         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
21603         * lra-constraints.c (operands_match_p): Likewise.
21604
21605 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21606
21607         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
21608         Change type of new_regno to unsigned int.
21609         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
21610         new_regno to unsigned int.
21611         (df_ref_change_reg_with_loc): Remove old_regno parameter.
21612         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
21613         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
21614         (SET_REGNO_RAW): Add space after ",".
21615
21616 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21617
21618         * rtl.h (REG_NREGS): New macro
21619         * alias.c (record_set): Use it.
21620         * cfgcleanup.c (mark_effect): Likewise.
21621         * combine.c (likely_spilled_retval_1): Likewise.
21622         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
21623         (move_deaths, distribute_notes): Likewise.
21624         * cselib.c (cselib_record_set): Likewise.
21625         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
21626         * df-scan.c (df_mark_reg): Likewise.
21627         * dse.c (look_for_hardregs): Likewise.
21628         * dwarf2out.c (reg_loc_descriptor): Likewise.
21629         (multiple_reg_loc_descriptor): Likewise.
21630         * expr.c (write_complex_part, read_complex_part): Likewise.
21631         (emit_move_complex): Likewise.
21632         * haifa-sched.c (setup_ref_regs): Likewise.
21633         * ira-lives.c (mark_hard_reg_live): Likewise.
21634         * lra.c (lra_set_insn_recog_data): Likewise.
21635         * mode-switching.c (create_pre_exit): Likewise.
21636         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
21637         (reload_combine_recognize_pattern): Likewise.
21638         (reload_combine_note_use, move2add_record_mode): Likewise.
21639         (reload_cse_move2add): Likewise.
21640         * reg-stack.c (subst_stack_regs_pat): Likewise.
21641         * regcprop.c (kill_value, copy_value): Likewise.
21642         (copyprop_hardreg_forward_1): Likewise.
21643         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
21644         (build_def_use): Likewise.
21645         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
21646         (deps_analyze_insn): Likewise.
21647         * sched-rgn.c (check_live_1, update_live_1): Likewise.
21648         * sel-sched.c (count_occurrences_equiv): Likewise.
21649         * valtrack.c (dead_debug_insert_temp): Likewise.
21650
21651 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
21652
21653         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
21654         * dse.c (note_add_store): Likewise.
21655         * ira-lives.c (mark_hard_reg_dead): Likewise.
21656         * loop-invariant.c (mark_reg_store): Likewise.
21657         (mark_reg_death): Likewise.
21658         * postreload.c (reload_combine): Likewise.
21659         (reload_combine_note_store): Likewise.
21660         (reload_combine_note_use): Likewise.
21661         * recog.c (peep2_reg_dead_p): Likewise.
21662
21663 2015-05-19  Alan Modra  <amodra@gmail.com>
21664
21665         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
21666         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
21667         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
21668         unused predicates.
21669         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
21670         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
21671         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
21672         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
21673
21674 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
21675
21676         * config/mips/mips.md (JOIN_MODE): New mode iterator.
21677         (join2_load_Store<JOIN_MODE:mode>): New pattern.
21678         (join2_loadhi): Likewise.
21679         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
21680         load-load and store-stores.
21681         * config/mips/mips.opt (mload-store-pairs): New option.
21682         (TARGET_LOAD_STORE_PAIRS): New macro.
21683         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
21684         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
21685         * config/mips/mips.c (mips_load_store_bonding_p): New function.
21686
21687 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
21688
21689         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
21690         explicit swaps.
21691         * dojump.c (do_compare_rtx_and_jump): Likewise.
21692         * expmed.c (emit_store_flag_1): Likewise.
21693         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
21694         * final.c (sprint_ul): Use std::reverse for reversing a string.
21695         * fold-const.c (extract_muldiv_1): Use std::swap.
21696         * genmodes.c (emit_mode_int_n): Likewise.
21697         * ifcvt.c (dead_or_predicable): Likewise.
21698         * ira-build.c (ira_merge_live_ranges): Likewise.
21699         (swap_allocno_copy_ends_if_necessary): Likewise.
21700         * ira.c (ira_setup_alts): Likewise.
21701         * loop-iv.c (iv_analyze_expr): Likewise.
21702         (implies_p): Likewise.
21703         (canon_condition): Likewise.
21704         * lra-constraints.c (swap_operands): Likewise.
21705         * lra-lives.c (lra_merge_live_ranges): Likewise.
21706         * omega.c (swap): Remove.
21707         (bswap): Remove.
21708         (omega_unprotect_1): Use std::swap.
21709         (omega_solve_geq): Likewise.
21710         * optabs.c (expand_binop_directly): Likewise.
21711         (expand_binop): Likewise.
21712         (emit_conditional_move): Likewise.
21713         (emit_conditional_add): Likewise.
21714         * postreload.c (reload_cse_simplify_operands): Likewise.
21715         * reg-stack.c (emit_swap_insn): Likewise.
21716         (swap_to_top): Likewise.
21717         (compare_for_stack_reg): Likewise.
21718         (subst_asm_stack_regs): Likewise.
21719         * reload.c (find_reloads): Likewise.
21720         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
21721         * sel-sched.c (invoke_reorder_hooks): Likewise.
21722         (create_block_for_bookkeeping): Likewise.
21723         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
21724         (lambda_matrix_right_hermite): Use std::swap.
21725         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
21726         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
21727         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
21728         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
21729         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
21730         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
21731         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
21732         * tree-vrp.c (compare_ranges): Likewise.
21733         * var-tracking.c (add_with_sets): Likewise.
21734         (vt_find_locations): Likewise.
21735
21736 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
21737
21738         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
21739         pie executables.
21740         (FBSD_ENDFILE_SPEC): Likewise.
21741         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
21742         config/freebsd-spec.h.
21743         (ENDFILE_SPEC): Likewise.
21744
21745 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
21746             Richard Henderson  <rth@redhat.com>
21747
21748         PR target/57032
21749         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
21750         Check for a memory location that is not a reference (using an AND)
21751         to an unaligned location here.
21752         * config/alpha/predicates.md (normal_memory_operand): Remove.
21753
21754 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
21755
21756         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
21757         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
21758
21759 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
21760
21761         * config/mips/mips.c (micromips_globals): New variable.
21762         (mips_set_compression_mode): Save and reinitialize target-dependent
21763         state for microMIPS.
21764
21765 2015-05-18  Martin Liska  <mliska@suse.cz>
21766
21767         * dbgcnt.def: Add new counter.
21768         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
21769
21770 2015-05-18  Martin Liska  <mliska@suse.cz>
21771
21772         * dbgcnt.def: Sort counters.
21773         * opts.c (common_handle_option): Do not compile if
21774         -fdbg-cnt-list is enabled.
21775
21776 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21777
21778         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
21779         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
21780         address operator to va_list operand.
21781         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
21782         unconditionally.
21783         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
21784         operand.
21785         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
21786         * config/s390/s390.c (s390_gimplify_va_arg): Same.
21787         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
21788
21789 2015-05-18  Tom de Vries  <tom@codesourcery.com>
21790
21791         * tree-ssa-tail-merge.c: Fix whitespace.
21792
21793 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
21794
21795         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
21796         cortex-a17, and cortex-a17.cortex-a7.
21797
21798 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
21799
21800         PR target/54236
21801         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
21802
21803 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
21804
21805         PR target/66174
21806         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
21807         QImode inner modes for TARGET_AVX512BW.  Force mask operand
21808         to a register for AVX512F modes.
21809
21810 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21811
21812         * toplev.c (emit_debug_global_declarations): Do not output debug info
21813         when doing slim LTO objects.
21814
21815 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21816
21817         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
21818         odr_types_equivalent_p): Declare.
21819         (odr_type_p): Use gcc_checking_assert.
21820         (type_in_anonymous_namespace_p) Declare.
21821         (type_with_linkage_p): Declare.
21822         * common.opt (Wlto-type-mismatch): New warning.
21823         * ipa-devirt.c (compound_type_base): New function.
21824         (odr_or_derived_type_p): New function.
21825         (odr_types_equivalent_p): New function.
21826         (add_type_duplicate): Simplify.
21827         (type_with_linkage_p): Add hack to prevent false positives on C types
21828         (type_in_anonymous_namespace_p): Likewise.
21829         * tree.c (need_assembler_name_p): Use type_with_linkage.
21830         * tree.h (type_in_anonymous_namespace_p): Remove.
21831         * doc/invoke.texi (-Wlto-type-mismatch): Document
21832
21833 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
21834
21835         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
21836         (verify_type): Verify STRING_FLAG.
21837
21838 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
21839
21840         PR fortran/44054
21841         * tree-pretty-print.c (percent_K_format): Replace locus pointer
21842         with accessor function.
21843         * tree-diagnostic.c (diagnostic_report_current_function): Use
21844         diagnostic_location function.
21845         (maybe_unwind_expanded_macro_loc): Likewise.
21846         (virt_loc_aware_diagnostic_finalizer): Likewise.
21847         (default_tree_printer): Replace locus pointer with accessor function.
21848         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
21849         (diagnostic_set_info_translated): Initialize second location.
21850         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
21851         (diagnostic_show_locus): Handle two locations. Call
21852         diagnostic_print_caret_line.
21853         (diagnostic_print_caret_line): New.
21854         (default_diagnostic_starter): Use diagnostic_location function.
21855         (diagnostic_report_diagnostic): Use diagnostic_location function.
21856         (verbatim): Do not set text.locus.
21857         * diagnostic.h (struct diagnostic_info): Remove location field.
21858         (struct diagnostic_context): Make caret_chars an array of two.
21859         (diagnostic_location): New inline.
21860         (diagnostic_expand_location): Handle two locations.
21861         (diagnostic_same_line): New inline.
21862         (diagnostic_print_caret_line): Declare.
21863         (CARET_LINE_MARGIN): New constant.
21864         * pretty-print.c (pp_printf): Do not set text.locus.
21865         (pp_verbatim): Do not set text.locus.
21866         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
21867         (struct text_info): Replace locus pointer with locations
21868         array. Add accessor functions.
21869
21870 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
21871             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21872
21873         PR target/65768
21874         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
21875         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
21876          large constants in register instead of splitting them.
21877
21878 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
21879
21880         PR target/66140
21881         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
21882         replacements in memory addresses.
21883         (get_unaligned_address): Ditto.
21884
21885 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
21886
21887         * config/ft32/*: New files for FT32 port.
21888         * doc/install.texi: Add FT32 information.
21889         * doc/invoke.texi: Add FT32 information.
21890         * doc/md.texi: Add FT32 information.
21891         * doc/contrib.texi: Self added.
21892
21893 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
21894
21895         PR tree-optimization/64454
21896         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
21897         (-1 - A -> ~A): Remove unnecessary condition.
21898
21899 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
21900
21901         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
21902         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
21903         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
21904
21905 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
21906
21907         * ipa-chkp.h (chkp_wrap_function): New.
21908         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
21909         (chkp_wrap_function_name): New.
21910         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
21911         to get wrapper name.
21912         * lto-cgraph.c: Include ipa-chkp.h.
21913         (input_cgraph_1): Avoid alias chain for wrappers.
21914
21915 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
21916
21917         PR middle-end/66134
21918         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
21919         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
21920
21921 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21922
21923         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
21924         (AARCH64_FL_SLOWMUL): Delete.
21925         (AARCH64_FL_CRC): Redefine to 1<<3.
21926         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
21927
21928 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21929
21930         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
21931         casting.
21932
21933 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
21934
21935         * config/alpha/alpha.md (extendqidi2): Use general_operand
21936         instead of some_operand for operand[1] predicate.
21937         (extendhidi2): Ditto.
21938         (cbranchdi4): Use general_operand instead of some_operand
21939         for operand[1] and operands[2] predicates.
21940         (cstoredi4): Ditto.
21941         * config/alpha/predicates.md (some_operand): Remove unused predicate.
21942         (some_ni_operand): Ditto.
21943
21944 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
21945
21946         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
21947         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
21948         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
21949         low part of the constant using alpha_emit_set_const_1.
21950         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
21951
21952 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
21953
21954         * varasm.c (output_constant_pool_1): Pass down alignment from
21955         constant pool entry's descriptor to output_constant_pool_2.
21956         (output_object_block): Add comment prior to call to
21957         output_constant_pool_1.
21958
21959 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
21960
21961         PR rtl-optimization/65862
21962         * target.def (ira_change_pseudo_allocno_class): New hook.
21963         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
21964         value of the hook.
21965         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
21966         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
21967         hook.
21968         * ira-costs.c (find_costs_and_classes): Call the hook and change
21969         classes when it is necessary.
21970         * doc/tm.texi: Update.
21971
21972 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
21973
21974         * config/i386/i386.md (sibcall_memory): Check that register with
21975         callee address is not also used as one of the arguments, instead
21976         of checking that it is not live after the sibcall.
21977         (sibcall_pop_memory): Ditto.
21978         (sibcall_value_memory): Ditto.
21979         (sibcall_value_pop_memory): Ditto.
21980
21981 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
21982
21983         * generic-match-head.c (types_match): Handle non-types.
21984         * gimple-match-head.c (types_match): Likewise.
21985         * match.pd: Remove unnecessary TREE_TYPE for types_match.
21986
21987 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
21988
21989         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
21990         (csneg3<mode>_insn): Enable expansion of pattern.
21991
21992 2015-05-14  Nick Clifton  <nickc@redhat.com>
21993
21994         * config/rl78/rl78.c (rl78_select_section): Select the correct
21995         default section based upon the category of the decl.
21996
21997 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
21998
21999         PR rtl-optimization/30967
22000         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
22001         destination mode for the cost of scc patterns.
22002
22003 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22004
22005         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
22006         using SWIM248 mode iterator.
22007         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
22008         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
22009         for operand[2] constraint.
22010         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
22011
22012 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22013
22014         PR middle-end/66133
22015         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
22016         make sure it is never noreturn, even when the task body does not
22017         return.
22018         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
22019         right before GIMPLE_OMP_RETURN.
22020         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
22021         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
22022         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
22023
22024 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22025
22026         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
22027         * tree-ssa-math-opts.c: Include params.h
22028         (pow_synth_sqrt_info): New struct.
22029         (representable_as_half_series_p): New function.
22030         (get_fn_chain): Likewise.
22031         (print_nested_fn): Likewise.
22032         (dump_fractional_sqrt_sequence): Likewise.
22033         (dump_integer_part): Likewise.
22034         (expand_pow_as_sqrts): Likewise.
22035         (gimple_expand_builtin_pow): Use above to attempt to expand
22036         pow as series of square roots.  Removed now unused variables.
22037
22038 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
22039
22040         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
22041         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
22042         Remove *p0 and *p1 arguments.  Rewrite function.
22043         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
22044         (alpha_split_const_mov): Update calls to alpha_extract_integer and
22045         alpha_emit_set_long_const.
22046         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
22047         (alpha_output_mi_thunk_osf): Ditto.
22048         * config/alpha/alpha.md (movti): Do not check operands[1]
22049         for CONST_DOUBLE.
22050
22051 2015-05-13  Richard Biener  <rguenther@suse.de>
22052
22053         PR tree-optimization/66129
22054         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
22055         commutative.
22056         (vect_schedule_slp_instance): Fix typo.
22057
22058 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
22059
22060         * common.opt (fdump-internal-locations): New option.
22061         * input.c: Include diagnostic-core.h.
22062         (get_end_location): New function.
22063         (write_digit): New function.
22064         (write_digit_row): New function.
22065         (dump_location_range): New function.
22066         (dump_labelled_location_range): New function.
22067         (dump_location_info): New function.
22068         * input.h (dump_location_info): New prototype.
22069         * toplev.c (compile_file): Handle flag_dump_locations.
22070
22071 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
22072
22073         * gimple-expr.h (is_gimple_constant): Reorder.
22074         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
22075
22076 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
22077
22078         * combine.c (simplify_set): When generating a CC set, if the
22079         source already is in the correct mode, do not wrap it in a
22080         compare.  Simplify the rest of that code.
22081
22082 2015-05-13  Richard Biener  <rguenther@suse.de>
22083
22084         PR tree-optimization/66123
22085         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
22086         a taken edge.
22087
22088 2015-05-13  Richard Biener  <rguenther@suse.de>
22089
22090         PR middle-end/66110
22091         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
22092         specially.
22093         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
22094
22095 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
22096
22097         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
22098         * aclocal.m4: Regenerated with automake-1.11.6.
22099
22100 2015-05-13  Tom de Vries  <tom@codesourcery.com>
22101
22102         PR tree-optimization/66010
22103         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
22104         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
22105         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
22106         and rval based on do_deref.
22107
22108 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22109
22110         PR target/65103
22111         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
22112         link time constants into adress expressions and therefore set
22113         their cost to 0.
22114
22115 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
22116
22117         PR target/66112
22118         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
22119         Use SWI248 iterator instead of SWI.
22120         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
22121         Use eq_attr "alternative" "0" instead of match_test in
22122         length_immediate attribute computation.
22123         (*mulvhi4, *mulvhi4_1): New define_insns.
22124
22125         PR target/66112
22126         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
22127         SIGNED to get precision of non-negative value.
22128
22129 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
22130
22131         PR target/66048
22132         * function.c (diddle_return_value_1): Process bounds first.
22133         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
22134         register.
22135
22136 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22137
22138         PR rtl-optimization/64616
22139         * loop-invariant.c (can_move_invariant_reg): New.
22140         (move_invariant_reg): Call above new function to decide whether
22141         instruction can just be moved, skipping creation of temporary
22142         register.
22143
22144 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22145
22146         PR target/pr66047.c
22147         * i386.c (ix86_function_sseregparm): Only return -1 if local function
22148         with implied regparm is called from -mno-sse function.
22149         (init_cumulative_args): Output error if ix86_function_sseregparm
22150         return -1 and SSE register would be needed.
22151         (function_arg_advance_32): Likewise.
22152         (function_arg_32): Likewise.
22153         * i386.h (ix86_args): Add decl field.
22154
22155 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22156
22157         PR ipa/65873
22158         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
22159         inlines across optimization boundary.
22160
22161 2015-05-12  Jason Merrill  <jason@redhat.com>
22162
22163         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
22164         string literal and macro name.
22165
22166 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
22167
22168         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
22169         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
22170         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
22171
22172 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22173
22174         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
22175         (-Wmisleading-indentation): New option.
22176         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
22177
22178 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
22179
22180         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
22181         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
22182         (alpha_extract_integer): Ditto.
22183         (alpha_legitimate_constant_p): Ditto.
22184         (alpha_split_tmode_pair): Ditto.
22185         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
22186         (alpha_expand_mov): Ditto.
22187         (print_operand): Remove handling of 'H' modifier.
22188         <case 'm'>: Remove CONST_DOUBLE handling.
22189         (summarize_insn): Handle CONST_WIDE_INT.
22190         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
22191         (anddi3): Ditto.
22192         (movti): Handle CONST_WIDE_INT.
22193         * config/alpha/constraints.md ('H'): Remove constraint definition.
22194         ('G'): Do not match MODE_FLOAT class.
22195         * config/alpha/predicates.md (const0_operand): Also match
22196         const_wide_int.
22197         (non_add_const_operand): Ditto.
22198         (non_zero_const_operand): Ditto.
22199         (some_operand): Ditto.
22200         (input_operand): Ditto.  Handle CONST_WIDE_INT.
22201         (and_operand): Do not match const_double.
22202         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
22203
22204 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
22205
22206         PR target/65697
22207         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
22208         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
22209         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
22210         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
22211         is_mm_seq_cst, is_mm_sync): New accessor functions.
22212         * builtins.c (expand_builtin_sync_operation,
22213         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
22214         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
22215         (get_memmodel,  expand_builtin_atomic_compare_exchange,
22216         expand_builtin_atomic_load, expand_builtin_atomic_store,
22217         expand_builtin_atomic_clear): Use new accessor routines.
22218         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
22219         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
22220         (maybe_emit_sync_lock_test_and_set): Use new accessors and
22221         MEMMODEL_SYNC_ACQUIRE.
22222         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
22223         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
22224         expand_atomic_store): Use new accessors.
22225         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
22226         * tsan.c (instrument_builtin_call): Update check for memory model beyond
22227         final enum to use MEMMODEL_LAST.
22228         * c-family/c-common.c: Use new accessor for memmodel_base.
22229         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
22230         accessors.
22231         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
22232         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
22233         mem_thread_fence, *dmb): Likewise.
22234         * config/alpha/alpha.c (alpha_split_compare_and_swap,
22235         alpha_split_compare_and_swap_12): Likewise.
22236         * config/arm/arm.c (arm_expand_compare_and_swap,
22237         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
22238         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
22239         atomic_loaddi): Likewise.
22240         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
22241         Likewise.
22242         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
22243         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
22244         use new accessors.
22245         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
22246         atomic_store<mode>, atomic_compare_and_swap<mode>,
22247         atomic_exchange<mode>): Use new accessors.
22248         * config/mips/mips.c (mips_process_sync_loop): Likewise.
22249         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
22250         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
22251         rs6000_post_atomic_barrier): Add new cases.
22252         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
22253         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
22254         (atomic_load<mode>): Add new cases and use new accessors.
22255         (store_quadpti): Add new cases.
22256         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
22257         accessors.
22258         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
22259         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
22260         model, not 8.
22261
22262 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
22263
22264         * ipa-devirt.c (type_with_linkage_p): New function.
22265         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
22266         type has linkage.
22267         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
22268         (can_be_name_hashed_p): Simplify.
22269         (hash_odr_name): Check that type has linkage before checking if it is
22270         anonymous.
22271         (types_same_for_odr): Likewise.
22272         (odr_name_hasher::equal): Likewise.
22273         (odr_subtypes_equivalent_p): Likewise.
22274         (warn_types_mismatch): Likewise.
22275         (get_odr_type): Likewise.
22276         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
22277         * ipa-utils.h (odr_type_p): Move offline.
22278         * tree.c (need_assembler_name_p): Fix handling of types
22279         without linkages.
22280         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
22281
22282 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
22283
22284         * timevar.c (timevar_enable): Delete in favor of...
22285         (g_timer): New global.
22286         (struct timevar_def): Move to timevar.h inside class timer.
22287         (struct timevar_stack_def): Likewise.
22288         (timevars): Delete global in favor of field "m_timevars" within
22289         class timer in timevar.h
22290         (stack): Likewise, in favor of field "m_stack".
22291         (unused_stack_instances): Likewise, in favor of field
22292         "m_unused_stack_instances".
22293         (start_time): Likewise, in favor of field "m_start_time".
22294         (get_time): Eliminate check for timevar_enable.
22295         (timer::timer): New function, built from part of timevar_init.
22296         (timevar_init): Rewrite idempotency test from using
22297         "timevar_enable" bool to using dynamic allocation of "g_timer".
22298         Move rest of implementation into timer's constructor.
22299         (timevar_push_1): Rename to...
22300         (timer::push): ...this, adding "m_" prefixes to variables that
22301         are now fields of timer.
22302         (timevar_pop_1): Likewise, rename to...
22303         (timer::pop): ...this, and add "m_" prefixes.
22304         (timevar_start): Replace test for "timevar_enable" with one for
22305         "g_timer", and move bulk of implementation to...
22306         (timer::start): ...here, adding "m_" prefixes.
22307         (timevar_stop): Likewise, from here...
22308         (timer::stop): ...to here.
22309         (timevar_cond_start): Likewise, from here...
22310         (timer::cond_start): ...to here.
22311         (timevar_cond_stop): Likewise, from here...
22312         (timer::cond_stop): ...to here.
22313         (validate_phases): Rename to...
22314         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
22315         locals "total" and "tv" const.
22316         (timevar_print): Rename to...
22317         (timer::print): ...this, and add "m_" prefixes.  Make locals
22318         "total" and "tv" const.  Eliminate test for timevar_enable.
22319         * timevar.h (timevar_enable): Eliminate.
22320         (g_timer): New declaration.
22321         (timevar_push_1): Eliminate.
22322         (timevar_pop_1): Eliminate.
22323         (timevar_print): Eliminate.
22324         (class timer): New class.
22325         (timevar_push): Rewrite to use g_timer.
22326         (timevar_pop): Likewise.
22327         * toplev.c (toplev::~toplev): Likewise.
22328
22329 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
22330
22331         * arm-protos.h (arm_sched_autopref): Delete.
22332         (tune_params): Re-organize, use enums for flag values.
22333         (FUSE_OPS): New macro.
22334         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
22335         (ARM_PREFETCH_BENEFICIAL): Likewise.
22336         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
22337         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
22338         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
22339         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
22340         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
22341         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
22342         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
22343         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
22344         format.
22345         (arm_option_override, thumb2_reorg, arm_print_tune_info)
22346         (aarch_macro_fusion_pair_p): Update uses of current_tune.
22347         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
22348
22349 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
22350
22351         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
22352         "break".
22353
22354 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
22355             Sandra Loosemore <sandra@codesourcery.com>
22356
22357         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
22358         value.
22359         (REG_CLASS_NAMES): Add "IJMP_REGS".
22360         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
22361         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
22362         use new "c" register constraint.
22363         * config/nios2/constraint.md (c): New register constraint
22364         corresponding to IJMP_REGS.
22365
22366 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22367
22368         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
22369         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
22370         define_splits): Delete, revamp, transmogrify into ...
22371         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
22372         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
22373         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
22374         New.
22375
22376 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22377
22378         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
22379         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
22380
22381 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22382
22383         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
22384         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
22385         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
22386         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
22387         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
22388         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
22389         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
22390         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
22391         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
22392         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
22393         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
22394         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
22395         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
22396         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
22397         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
22398         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
22399         and 30 corresponding splitters): Delete.
22400
22401 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22402
22403         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
22404         zero_extract.
22405
22406 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22407
22408         * combine.c (recog_for_combine_1): New function, factored out
22409         from recog_for_combine.
22410         (change_zero_ext): New function.
22411         (recog_for_combine): If recog fails, try again with the pattern
22412         modified by change_zero_ext; if that still fails, restore the
22413         pattern.
22414
22415 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
22416
22417         * combine.c (get_undo_marker): New function.
22418         (undo_to_marker): New function, largely factored out from ...
22419         (undo_all): ... this.  Adjust.
22420
22421 2015-05-12  Richard Biener  <rguenther@suse.de>
22422
22423         PR tree-optimization/66101
22424         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
22425         fixup if we turn a loop exit edge to a fallthru edge.
22426
22427 2015-05-12  Richard Biener  <rguenther@suse.de>
22428
22429         PR tree-optimization/37021
22430         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
22431         (SLP_TREE_TWO_OPERATORS): New define.
22432         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
22433         SLP_TREE_TWO_OPERATORS.
22434         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
22435         SLP node.
22436         (vect_build_slp_tree): Adjust.
22437         (vect_analyze_slp_cost_1): Likewise.
22438         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
22439         emitting two vector stmts and mixing the results.
22440
22441 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22442
22443         * call.c (print_z_candidates): Remove dead code.
22444
22445 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22446
22447         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
22448         and zEC12_simple_fp.
22449         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
22450         to 1.
22451
22452 2015-05-12  Tom de Vries  <tom@codesourcery.com>
22453
22454         PR tree-optimization/66010
22455         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
22456         ifn_va_arg.
22457         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
22458         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
22459         va_lists are passed, and remove corresponding handling.
22460         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
22461         do_deref argument to ifn_va_arg.
22462         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
22463         ifn_va_arg.
22464
22465 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22466
22467         PR target/65955
22468         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
22469         REG before taking its REGNO.
22470
22471 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22472
22473         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
22474         rsp->sign_bit_copies and rsp->nonzero_bits into ...
22475         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
22476         present to get more accurate information about the number of sign bit
22477         copies and non zero bits.
22478
22479 2015-05-12  Richard Biener  <rguenther@suse.de>
22480
22481         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
22482         do not allow unrolling.
22483
22484 2015-05-11  Richard Henderson  <rth@redhat.com>
22485
22486         * config/i386/i386-modes.def (CCP): New.
22487         * config/i386/i386.c (put_condition_code): Handle it.
22488         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
22489
22490 2015-05-11  Richard Henderson  <rth@redhat.com>
22491
22492         * target.def (md_asm_clobbers): Replace with...
22493         (md_asm_adjust): this.
22494         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
22495         (TARGET_MD_ASM_ADJUST): New.
22496         * tm.texi: Rebuild.
22497         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
22498         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
22499         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
22500
22501         * cfgexpand.c (check_operand_nalternatives): Accept vector of
22502         constraints instead of lists of outputs and inputs.
22503         (expand_asm_stmt): Save and restore input_location around the
22504         body of the function.  Move asm data into vectors instead of
22505         building tree lists.  Generate cleanup sequences as needed,
22506         rather than waiting til the end.  Use new md_asm_adjust hook.
22507
22508         * config/vxworks.c: Include vec.h before target.h.
22509         * gimple.c: Likewise.
22510         * incpath.c: Likewise.
22511         * mode-switching.c: Likewise.
22512
22513         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
22514         (cris_md_asm_adjust): this.
22515         (TARGET_MD_ASM_CLOBBERS): Remove.
22516         (TARGET_MD_ASM_ADJUST): New.
22517         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
22518         (ix86_md_asm_adjust): this.
22519         (TARGET_MD_ASM_CLOBBERS): Remove.
22520         (TARGET_MD_ASM_ADJUST): New.
22521         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
22522         (mn10300_md_asm_adjust): this.
22523         (TARGET_MD_ASM_CLOBBERS): Remove.
22524         (TARGET_MD_ASM_ADJUST): New.
22525         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
22526         (rs6000_md_asm_adjust): this.
22527         (TARGET_MD_ASM_CLOBBERS): Remove.
22528         (TARGET_MD_ASM_ADJUST): New.
22529         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
22530         (visium_md_asm_adjust): this.
22531         (TARGET_MD_ASM_CLOBBERS): Remove.
22532         (TARGET_MD_ASM_ADJUST): New.
22533
22534 2015-05-11  Richard Henderson  <rth@redhat.com>
22535
22536         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
22537         if noutputs is zero.
22538         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
22539
22540         * cfgexpand.c (expand_asm_operands): Merge into...
22541         (expand_asm_stmt): ... here.
22542
22543         * cfgexpand.c (expand_asm_operands): Don't call
22544         resolve_asm_operand_names.
22545         * stmt.c (resolve_asm_operand_names): Clarify block comment.
22546
22547 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
22548
22549         * dwarf2out.c (gen_member_die): Sanity check that we access
22550         TYPE_MAIN_VARIANT for TYPE_METHODS.
22551         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
22552         checking TYPE_METHODS.
22553         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
22554         if non-null.
22555         (build_distinct_type_copy): Clear TYPE_METHODS.
22556         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
22557         (verify_type): Allow TYPE_METHODS to be error_mark_node.
22558         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
22559
22560 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
22561
22562         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
22563         (emit_pattern_before_setloc): Likewise.
22564
22565 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22566
22567         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
22568         for define_peephole2s.
22569         (get_peephole2_pattern): New function.
22570         (main): Use it.  Call validate_pattern.
22571
22572 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22573
22574         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
22575         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
22576         (Last callee saved reg is different for AVR_TINY architecture)
22577
22578 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22579
22580         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
22581         when looking for memory references.
22582
22583 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22584
22585         PR target/65753
22586         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
22587         via function pointers.
22588
22589 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
22590
22591         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
22592         indirect call by forcing address into a pseudo with -fno-plt.
22593         * common.opt (flag_plt): New option.
22594         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
22595         ([-fno-plt]): Document.
22596
22597 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
22598
22599         PR bootstrap/66105
22600         * config/rs6000/option-defaults.h: Add space between string literal
22601         and macro name.
22602
22603 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22604
22605         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
22606         accross ARM targets.
22607
22608 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22609
22610         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
22611         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
22612
22613 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
22614
22615         PR rtl-optimization/66076
22616         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
22617         Don't grow the heap array if it is already big enough from a
22618         previous iteration.
22619
22620 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22621
22622         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
22623         (is_called_in_ARM_mode): Remove.
22624         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
22625         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
22626         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
22627          arm_declare_function_name.
22628
22629 2015-05-11  Christian Bruel  <christian.bruel@st.com>
22630
22631         * config/arm/arm.c (arm_option_override): Reoganized and split into :
22632         (arm_option_params_internal); New function.
22633         (arm_option_check_internal): New function.
22634         (arm_option_override_internal): New function.
22635         (thumb_code, thumb1_code): Remove.
22636         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
22637         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
22638         (thumb_code, thumb1_code): Remove.
22639         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
22640
22641 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
22642
22643         * config/alpha/alpha.c (alpha_emit_set_const_1)
22644         (alpha_emit_set_long_const, alpha_extract_integer)
22645         (alpha_legitimate_constant_p, alpha_split_const_mov)
22646         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
22647         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22648         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
22649         HOST_WIDE_INT_1U.
22650         * config/alpha/predicates.md (mode_mask_operand): Do not match
22651         const_double RTX.
22652         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22653         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
22654         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
22655         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
22656         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
22657
22658 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
22659
22660         PR target/65780
22661         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
22662         default_binds_local_p_2.
22663         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
22664         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
22665
22666 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22667
22668         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
22669
22670 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22671
22672         Patch by Richard Biener
22673         * coverage.c (coverage_obj_init): Delay building of type variant
22674         until the type is finished.
22675
22676 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22677
22678         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
22679         mismatch between C and C++ type; compoare correctly ARG_TYPES
22680         for non-prototypes and output correctly parameter index for METHOD_TYPE.
22681         (odr_types_equivalent_p): Fix wording of warning about attributes;
22682         it is OK to match prototype and non-prototype.
22683
22684 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22685
22686         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
22687         TYPE_ARG_TYPES list.
22688         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
22689         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
22690
22691 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
22692
22693         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
22694         * tree.h (is_lang_specific): Constify.
22695
22696 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
22697
22698         PR tree-optimization/64454
22699         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
22700         Rewrite.
22701
22702 2015-05-08  Jason Merrill  <jason@redhat.com>
22703
22704         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
22705         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
22706         config/darwin.h, config/darwin9.h, config/elfos.h,
22707         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
22708         config/microblaze/microblaze.h, config/mips/mips.h,
22709         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
22710         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
22711         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
22712         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
22713         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
22714         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
22715         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
22716         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
22717         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
22718         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
22719         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
22720         between string literal and macro name.
22721
22722 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22723
22724         * jump.c: Change argument types to rtx_insn *.
22725         * rtl.h: Adjust.
22726
22727 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22728
22729         * lra-constraints.c: Change argument type to rtx_insn *.
22730
22731 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22732
22733         * df-problems.c: Change argument type to rtx_insn *.
22734
22735 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22736
22737         * combine.c: Change argument type to rtx_insn *.
22738
22739 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22740
22741         * rtl.h: Adjust.
22742         * rtlanal.c: Change argument type to rtx_insn *.
22743
22744 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22745
22746         * sched-deps.c: Change argument types to rtx_insn *.
22747         * sched-int.h: Adjust.
22748
22749 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22750
22751         * dwarf2cfi.c: Change argument type to rtx_insn *.
22752
22753 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22754
22755         * ira.c (decrease_live_ranges_number): Changetype of local
22756         variable to rtx_insn *.
22757         * recog.c: Change argument types to rtx_insn *.
22758         * recog.h: Adjust.
22759
22760 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22761
22762         * reorg.c: Change argument types to rtx_insn *.
22763
22764 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22765
22766         * ira-color.c: Change argument types to rtx_insn *.
22767         * lra-eliminations.c: Likewise.
22768         * ira.h: Adjust.
22769
22770 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22771
22772         * gcse.c: Change argument types to rtx_insn *.
22773
22774 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22775
22776         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
22777
22778 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22779
22780         * emit-rtl.c (emit_debug_insn_before): Change argument type to
22781         rtx_insn *.
22782         * rtl.h: Adjust.
22783
22784 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22785
22786         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
22787         * rtl.h: Adjust.
22788
22789 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22790
22791         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
22792         * rtl.h: Adjust.
22793
22794 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22795
22796         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
22797         * rtl.h: Adjust.
22798
22799 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22800
22801         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
22802         * rtl.h: Adjust.
22803
22804 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22805
22806         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
22807         to rtx_insn *.
22808         * rtl.h: Adjust.
22809
22810 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22811
22812         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
22813         to rtx_insn *.
22814         * rtl.h: Likewise.
22815
22816 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22817
22818         * except.c (can_nonlocal_goto): Change type of argument to
22819         rtx_insn *.
22820         * rtl.h: Adjust.
22821
22822 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22823
22824         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
22825         * rtl.h: Adjust.
22826
22827 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22828
22829         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
22830         * cfgrtl.c (can_delete_label_p): Adjust.
22831         * rtl.h: likewise.
22832
22833 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22834
22835         * reorg.c (stop_search_p): Change argument to rtx_insn *.
22836
22837 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22838
22839         * except.c (make_reg_eh_region_note): Change argument to
22840         rtx_insn *.
22841         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
22842         * except.h: Adjust.
22843
22844 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22845
22846         * mode-switching.c (commit_mode_sets): Change type of local
22847         variable from rtx to rtx_insn *.
22848
22849 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
22850
22851         * doc/install.texi (--enable-languages): Add missing jit and lto info.
22852         Add ^ to grep command.
22853         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
22854         arg to last gimple_simplify declaration.  Add missing gimple_build
22855         declaration for built-in function case with four tree args.
22856
22857 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22858             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22859
22860         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
22861         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
22862         (GNU_USER_DYNAMIC_LINKERN32): Update.
22863
22864 2015-05-08  Richard Biener  <rguenther@suse.de>
22865
22866         PR tree-optimization/66036
22867         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
22868         Handle strided group loads.
22869         (vect_verify_datarefs_alignment): Likewise.
22870         (vect_enhance_data_refs_alignment): Likewise.
22871         (vect_analyze_group_access): Likewise.
22872         (vect_analyze_data_ref_access): Likewise.
22873         (vect_analyze_data_ref_accesses): Likewise.
22874         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
22875         (vectorizable_load): Likewise.
22876
22877 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
22878
22879         * config/rs6000/rs6000.md: Require operand inequality in one
22880         of the peepholes.
22881
22882 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
22883             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
22884
22885         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
22886         from (set ...).
22887         * config/rx/rx.md (movdi, movdf): Likewise.
22888         Likewise for define_peephole2s.
22889
22890 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22891
22892         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
22893         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
22894         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
22895         vtst_u64): Rewrite using gcc vector extensions.
22896
22897 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22898
22899         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
22900         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
22901
22902 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
22903
22904         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
22905
22906 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
22907
22908         * config/glibc-stdint.h (OPTION_MUSL): Define.
22909         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
22910         Change the definition based on OPTION_MUSL for 64 bit targets.
22911         * config/linux.h (OPTION_MUSL): Redefine.
22912         * config/alpha/linux.h (OPTION_MUSL): Redefine.
22913         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
22914         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
22915
22916 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
22917             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22918
22919         * config.gcc (LIBC_MUSL): New tm_defines macro.
22920         * config/linux.h (OPTION_MUSL): Define.
22921         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
22922         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
22923         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
22924         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
22925         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
22926         * config/linux.opt (mmusl): New option.
22927         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
22928         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
22929         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
22930         * configure: Regenerate.
22931
22932 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
22933             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
22934
22935         PR target/48904
22936         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
22937         * config/i386/knetbsd-gnu64.h: New file.
22938
22939 2015-05-08  Marek Polacek  <polacek@redhat.com>
22940
22941         PR c/64918
22942         * doc/invoke.texi: Document -Woverride-init-side-effects.
22943
22944 2015-05-07  Marek Polacek  <polacek@redhat.com>
22945
22946         PR c/65179
22947         * doc/invoke.texi: Document -Wshift-negative-value.
22948
22949 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
22950
22951         * gcov-tool.c (do_merge): Refactore to remove int ret.
22952         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
22953         !type == FUNC to type != FUNC.
22954         * reload.h (struct target_reload): Changee to type of
22955         x_spill_indirect_levels from bool to unsigned char.
22956
22957 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
22958
22959         * rtl.h (always_void_p): New function.
22960         * gengenrtl.c (always_void_p): Likewise.
22961         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
22962         with code foo are always VOIDmode.
22963         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
22964         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
22965         compare-elim.c, config/aarch64/aarch64.c,
22966         config/aarch64/aarch64.md, config/alpha/alpha.c,
22967         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
22968         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
22969         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
22970         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
22971         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
22972         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
22973         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
22974         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
22975         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
22976         config/ia64/vect.md, config/iq2000/iq2000.c,
22977         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
22978         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
22979         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
22980         config/mep/mep.c, config/microblaze/microblaze.c,
22981         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
22982         config/mn10300/mn10300.c, config/msp430/msp430.c,
22983         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
22984         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
22985         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
22986         config/rs6000/altivec.md, config/rs6000/rs6000.c,
22987         config/rs6000/rs6000.md, config/rs6000/vector.md,
22988         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
22989         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
22990         config/sh/sh.md, config/sh/sh_treg_combine.cc,
22991         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
22992         config/spu/spu.md, config/stormy16/stormy16.c,
22993         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
22994         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
22995         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
22996         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
22997         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
22998         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
22999         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
23000         var-tracking.c: Update calls accordingly.
23001
23002 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
23003
23004         PR middle-end/192
23005         PR middle-end/54303
23006         * varasm.c (function_mergeable_rodata_prefix): New function.
23007         (mergeable_string_section): Use it.
23008         (mergeable_constant_section): Use it.
23009
23010 2015-05-07  Jeff Law  <law@redhat.com>
23011
23012         PR target/39726
23013         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23014         simplifier to narrow arithmetic.
23015         * generic-match-head.c: (types_match, single_use): New functions.
23016         * gimple-match-head.c: (types_match, single_use): New functions.
23017
23018 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
23019
23020         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
23021         rtx type.
23022
23023 2015-05-07  Richard Biener  <rguenther@suse.de>
23024
23025         PR tree-optimization/66002
23026         * passes.def: Schedule another pass_merge_phi after ifcombine, right
23027         before phiopt.
23028
23029 2015-05-07  Marek Polacek  <polacek@redhat.com>
23030             Martin Uecker  <uecker@eecs.berkeley.edu>
23031
23032         * doc/invoke.texi: Document -fsanitize=bounds-strict.
23033         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
23034         into SANITIZE_NONDEFAULT.
23035         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
23036
23037 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
23038
23039         PR target/66015
23040         * config/alpha/alpha.c (alpha_override_options_after_change): New.
23041         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
23042         (alpha_override_options): Move align_loops, align_jumps and
23043         align_functions handling into alpha_override_options_after_change.
23044
23045 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
23046             Chris Jones  <chrisj@nvidia.com>
23047             Joshua Conner  <jconner@nvidia.com>
23048
23049         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
23050         linking of crtfastmath.o.
23051         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
23052
23053 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
23054
23055         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
23056         (cstore<mode>4_unsigned_imm): New expander.
23057         (cstore<mode>4): Remove empty constraint strings.  Use the new
23058         expanders.
23059
23060 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
23061
23062         PR target/64208
23063         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
23064         alternatives.
23065
23066 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
23067
23068         * config/aarch64/geniterators.sh: Use standard BRE in sed.
23069
23070 2015-05-06  Alan Modra  <amodra@gmail.com>
23071
23072         PR target/66033
23073         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
23074         (UNSPEC_NOP): Define.
23075         (reload_vsx_from_gpr<mode>): Add missing DONE.
23076         (reload_gpr_from_vsx<mode>): Likewise.
23077         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
23078         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
23079
23080 2015-05-06  Christian Bruel  <christian.bruel@st.com>
23081
23082         PR target/66015
23083         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
23084         align_jumps, align_functions into aarch64_override_options_after_change.
23085
23086 2015-05-06  Richard Biener  <rguenther@suse.de>
23087
23088         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
23089         vect_transform_slp_perm_load to check if we support a permutation
23090         for basic-block vectorization.
23091
23092 2015-05-06  Nick Clifton  <nickc@redhat.com>
23093
23094         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
23095         used, even if it is not being used as a frame pointer.
23096
23097 2015-05-05  Jason Merrill  <jason@redhat.com>
23098
23099         * dwarf2out.c (gen_member_die): Don't emit anything for an
23100         anonymous class constructor.
23101
23102 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
23103
23104         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
23105         that it reflects the block structure.
23106         (afdo_propagate_edge): Likewise.
23107         (afdo_calculate_branch_prob): Likewise.
23108         (afdo_annotate_cfg): Likewise.
23109         * cfgcleanup.c (equal_different_set_p): Likewise.
23110         (try_crossjump_to_edge): Likewise.
23111         * cgraph.c (cgraph_node::verify_node): Likewise.
23112         * cgraphunit.c (expand_all_functions): Likewise.
23113         * config/i386/i386.c (ix86_expand_copysign): Likewise.
23114         (exact_dependency_1): Likewise.
23115         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
23116         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
23117         * gensupport.c (process_define_subst): Likewise.
23118         * lto-wrapper.c (merge_and_complain): Likewise.
23119         * tree-if-conv.c (if_convertible_bb_p): Likewise.
23120         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
23121         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
23122         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
23123         * tree-vect-loop.c (vectorizable_reduction): Likewise.
23124         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
23125         * tree-vect-stmts.c (vectorizable_shift): Likewise.
23126         * tree-vrp.c (vrp_finalize): Likewise.
23127         * tree.c (variably_modified_type_p): Likewise.
23128
23129 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
23130
23131         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
23132         on darwin12 and later.
23133         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
23134         file to pass -rdynamic on darwin12 and later.
23135         * config/darwin.opt (rdynamic): Add.
23136
23137 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23138
23139         * doc/extend.texi (C Extensions): Update menu for moved Variable
23140         Attributes and Type Attributes sections.
23141
23142 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23143
23144         PR target/65990
23145         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
23146         if rep_8byte stringop strategy was specified for 32-bit target.
23147
23148 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
23149
23150         PR target/65915
23151         * config/i386/i386.md (vector convert to float spltiter): Check for
23152         xmm16+, when splitting scalar float conversion.
23153         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
23154
23155 2015-05-05  Nick Clifton  <nickc@redhat.com>
23156
23157         * config/msp430/msp430-opts.h (enum msp430_regions): New.
23158         * config/msp430/msp430.c (msp430_override_options): Complain if
23159         -mcode-region or -mdata-region is used on a non MSP430X.
23160         (msp430_section_attr): New function.  Checks lower, upper and
23161         either attributes.
23162         (msp430_attribute_table): Add lower, upper and either.
23163         (gen_prefix): New function.  Generates a prefix for a section
23164         name.
23165         (msp430_select_section): New function - handles the choice of
23166         section for an object.  Takes into account memory region
23167         attributes and options.
23168         (msp430_function_section): Use gen_prefix.
23169         (TARGET_SECTION_TYPE_FLAGS): Define.
23170         (msp430_section_type_flags): New function.
23171         (TARGET_ASM_UNIQUE_SECTION): Define.
23172         (msp430_unique_section): New function.
23173         (msp430_output_aligned_decl_common): New function.
23174         (msp430_do_not_relax_short_jumps): New function.
23175         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
23176         Define.
23177         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
23178         * config/msp430/msp430-protos.h
23179         (msp430_do_not_relax_short_jumps): New prototype.
23180         (msp430_output_aligned_decl_common): New prototype.
23181         * config/msp430/msp430.md (length): New attribute.
23182         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
23183         then use a long code sequence for short jumps.
23184         * config/msp430/msp430.opt (mcode-region): New.
23185         (mdata-region): New.
23186         * doc/invoke.texi: Document new options.
23187         * doc/extend.texi: Document new attributes.
23188
23189 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23190
23191         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
23192         (tune_params): Add field branch_costs.
23193         (aarch64_branch_cost): Declare.
23194         * gcc/config/aarch64.c (generic_branch_cost): New.
23195         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
23196         (cortexa53_tunings): Likewise.
23197         (cortexa57_tunings): Likewise.
23198         (thunderx_tunings): Likewise.
23199         (xgene1_tunings): Likewise.
23200         (aarch64_branch_cost): Define.
23201         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
23202
23203 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23204
23205         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
23206         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
23207         * config/i386/i386.md: Ditto.
23208         * config/i386/winnt.c: Ditto.
23209
23210 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
23211
23212         * doc/extend.texi (__atomic Builtins): Move implementation details
23213         to the end of the description, rewrite opening paragraphs, state
23214         difference with __sync builtins, state C11/C++11 assumptions,
23215         weaken itemized descriptions, add explanation of memory model
23216         behaviour, expand description of compare-exchange, simplify text.
23217
23218 2015-05-05  Renlin Li  <renlin.li@arm.com>
23219
23220         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
23221
23222 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
23223
23224         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
23225         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23226         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
23227         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
23228         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
23229         * configure: Regenerate.
23230         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
23231         * doc/install.texi (aarch64*-*-*): Document new
23232         --enable-fix-cortex-a53-843419 option.
23233         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
23234         and -mno-fix-cortex-a53-843419 options.
23235
23236 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
23237
23238         PR target/65871
23239         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
23240
23241 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
23242
23243         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
23244         fix overactive TYPE_MIN_VALUE check and add FIXME for type
23245         compatibility problems.
23246
23247 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23248
23249         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
23250         constraints.
23251         (cbranchsi4_reg): New.
23252         * config/microblaze/microblaze.c
23253         (microblaze_expand_conditional_branch_reg): New.
23254         * config/microblaze/microblaze-protos.h
23255         (microblaze_expand_conditional_branch_reg): New prototype.
23256
23257 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
23258
23259         * config/microblaze/microblaze.md (peephole2): New.
23260
23261 2015-05-04  Jeff Law  <law@redhat.com>
23262
23263         Revert:
23264         2015-05-04  Jeff Law  <law@redhat.com>
23265
23266         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23267         simplifier to narrow arithmetic.
23268         * generic-match-head.c: (types_match, single_use): New functions.
23269         * gimple-match-head.c: (types_match, single_use): New functions.
23270
23271 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
23272
23273         PR target/65987
23274         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
23275         (split_branches): Likewise.
23276
23277 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
23278
23279         * common.opt (fdelete-null-pointer-checks): Init to -1.
23280         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
23281         override flag_delete_null_pointer_checks default.
23282         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
23283         behavior re address zero.  Better document target-specific behavior.
23284         (-fisolate-errneous-paths-dereference): Mention relationship to
23285         -fdelete-null-pointer-checks.
23286
23287 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23288
23289         PR tree-optimization/65984
23290         * ubsan.c: Include tree-cfg.h.
23291         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
23292         stmt_could_throw_p test, rename can_throw variable to ends_bb.
23293
23294 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23295
23296         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
23297         to CONST_DOUBLE_P predicate.
23298         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
23299         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
23300         allow only operands that satisfy standard_sse_constant_p predicate.
23301         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
23302         to CONST_DOUBLE_P predicate.
23303
23304 2015-05-04  Jeff Law  <law@redhat.com>
23305
23306         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
23307         simplifier to narrow arithmetic.
23308         * generic-match-head.c: (types_match, single_use): New functions.
23309         * gimple-match-head.c: (types_match, single_use): New functions.
23310
23311 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
23312
23313         * config/arm/arm.c: Restore bootstrap.
23314
23315 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
23316
23317         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
23318         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
23319         as CONST_WIDE_INT, not CONST_DOUBLE.
23320         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
23321         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
23322         (ix86_find_base_term): Do not check for CONST_DOUBLE.
23323         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
23324         (ix86_build_signbit_mask): Rewrite using wide ints.
23325         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
23326         (ix86_rtx_costs): Handle CONST_WIDE_INT.
23327         (find_constant): Ditto.
23328         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
23329         using gen_int_mode.
23330         * config/i386/predicates.md (x86_64_immediate_operand)
23331         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23332         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
23333         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
23334         (const0_operand): Also match const_wide_int.
23335         (constm1_operand): Ditto.
23336         (const1_operand): Ditto.
23337
23338 2015-05-04  Richard Biener  <rguenther@suse.de>
23339
23340         PR tree-optimization/65965
23341         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
23342         store groups at gaps.
23343
23344 2015-05-04  Richard Biener  <rguenther@suse.de>
23345
23346         PR tree-optimization/65935
23347         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
23348         then make sure to apply that swapping to the IL.
23349
23350 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
23351
23352         * Makefile.in (PATCHLEVEL_c): New variable.
23353         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
23354         expand the same way as if DEVPHASE_c was non-empty.
23355
23356 2015-05-04  Kai Tietz  <ktietz@redhat.com>
23357
23358         PR target/65559
23359         * lto-wrapper.c (run_gcc): Open filename
23360         in binary-mode.
23361
23362 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
23363
23364         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
23365         sections up in file, to immediately after the Function Attributes
23366         section.
23367
23368 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
23369
23370         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
23371
23372 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23373
23374         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
23375         (insert_partition_copy_on_edge): Adjust.
23376         (insert_rtx_to_part_on_edge): Likewise.
23377         (insert_part_to_rtx_on_edge): Likewise.
23378
23379 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23380
23381         * function.c (set_return_jump_label): Change type of argument to
23382         rtx_insn *.
23383         * function.h (set_return_jump_label): Adjust.
23384
23385 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23386
23387         * reload.h (struct reg_equivs_t): Change type of init to
23388         rtx_insn *.
23389         * ira.c (fix_reg_equiv_init): Adjust.
23390         * reload1.c (eliminate_regs_1): Likewise.
23391         (init_eliminable_invariants): Likewise.
23392
23393 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23394
23395         * cselib.c (fp_setter_insn): Take a rtx_insn *.
23396         * cselib.h (fp_setter_insn): Adjust.
23397
23398 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23399
23400         * recog.c (struct validate_replace_src_data): Change type of
23401         insn field to rtx_insn *.
23402         (validate_replace_src_group): Change type of argument to rtx_insn *.
23403         * recog.h (validate_replace_src_group): Adjust.
23404
23405 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23406
23407         * haifa-sched.c: Change the type of some variables to rtx_insn *.
23408         * sched-deps.c: Likewise.
23409         * sched-int.h: Likewise.
23410         * sched-rgn.c: Likewise.
23411         * sel-sched.c: Likewise.
23412
23413 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23414
23415         to rtx_insn *.
23416         * config/i386/i386.c: Change the type of some arguments to
23417         rtx_insn *.
23418         * config/arm/arm.c: Likewise.
23419
23420 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23421
23422         * lra-constraints.c: Change type of some arguments to rtx_insn *.
23423
23424 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23425
23426         * regcprop.c (kill_autoinc_value): Change type of argument to
23427         rtx_insn *.
23428
23429 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23430
23431         * genrecog.c (print_subroutine): Adjust.
23432         * recog.c (get_bool_attr_mask_uncached): Likewise.
23433         * recog.h (struct recog_data_d): Change the type of insn to
23434         rtx_insn *.
23435
23436 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23437
23438         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
23439
23440 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23441
23442         * df-problems.c (df_set_note): Change type of argument to
23443         rtx_insn *.
23444
23445 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23446
23447         * builtins.c (expand_builtin_trap): Change type of local
23448         variable to rtx_insn *.
23449         (add_sched_insns_for_speculation): Likewise.
23450         (ix86_emit_save_regs): Likewise.
23451         (get_scratch_register_on_entry): Likewise.
23452         (ix86_emit_restore_reg_using_pop): Likewise.
23453         (ix86_emit_leave): Likewise.
23454         (ix86_emit_restore_regs_using_mov): Likewise.
23455         (ix86_expand_epilogue): Likewise.
23456         Likewise.
23457         (rl78_alloc_physical_registers_umul): Likewise.
23458         * cselib.c (discard_useless_locs): Likewise.
23459         (cselib_invalidate_regno): Likewise.
23460         (cselib_invalidate_mem): Likewise.
23461         * function.c (expand_function_start): Likewise.
23462         (emit_use_return_register_into_block): Likewise.
23463         * gcse.c: Likewise.
23464         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
23465         * ifcvt.c (noce_get_alt_condition): Likewise.
23466         * loop-doloop.c (doloop_condition_get): Likewise.
23467         * lra-constraints.c (inherit_in_ebb): Likewise.
23468         * modulo-sched.c (sms_schedule_by_order): Likewise.
23469         * recog.c (next_insn_tests_no_inequality): Likewise.
23470         * reorg.c (emit_delay_sequence): Likewise.
23471         (update_reg_dead_notes): Likewise.
23472         (fix_reg_dead_note): Likewise.
23473         (fill_slots_from_thread): Likewise.
23474         (delete_computation): Likewise.
23475
23476 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
23477
23478         * doc/extend.texi (Variable Attributes): Add menu and proper
23479         @nodes to subsections.  Move Microsoft Windows attributes to
23480         their own subsection.
23481         (Type Attributes): Reorganize introduction to remove duplicate
23482         list of attributes.  Add menu and proper @nodes to subsections.
23483         Alphabetize the main table of common attributes.
23484
23485 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
23486
23487         * match.pd: New simplification patterns.
23488         (x + (x & 1))  -> ((x + 1) & ~1)
23489         (x & ~(x & y)) -> ((x & ~y))
23490         (x | ~(x | y)) -> ((x | ~y))
23491
23492 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23493
23494         * target.def (attribute_table): Mention that struct attribute_spec
23495         is defined in tree-core.h rather than tree.h
23496         * doc/tm.texi: Regenerate.
23497
23498 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
23499
23500         * genrecog.c (test): Rename to rtx_test.  Update rest of file
23501         accordingly.
23502
23503 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
23504
23505         PR translation/65959
23506         * params.h (DEFPARAM): Rename msgid to nocmsgid.
23507
23508 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23509
23510         * gcc/config/aarch64/aarch64-protos.h (tune_params):
23511         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
23512         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
23513         Return value depending on target.
23514         (generic_tunings): Initialize new target settings.
23515         (cortexa53_tunings): Likewise.
23516         (cortexa57_tunings): Likewise.
23517         (thunderx_tunings): Likewise.
23518         (xgene1_tunings): Likewise.
23519
23520 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23521
23522         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
23523         Make Cortex-A53 shift costs more accurate.
23524
23525 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23526
23527         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
23528         UNSIGNED_FLOAT.
23529
23530 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
23531
23532         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
23533         Calculate cost of op0 and op1 in PLUS and MINUS cases.
23534
23535 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23536
23537         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23538         Add cost of op0 in the compare-with-fpzero case.
23539
23540 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
23541
23542         * builtins.c (fold_builtin_1): Remove spurious second
23543         semicolon.
23544         * cgraph.h (symtab_node::get_availability): Likewise.
23545         * opts.c (common_handle_option): Remove spurious second semicolon.
23546         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
23547         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
23548
23549 2015-04-30  Caroline Tice  <cmtice@google.com>
23550
23551         PR gcov-profile/65929
23552         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
23553         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
23554         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
23555         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
23556         * doc/tm.texi: Regenerate.
23557         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
23558         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
23559         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
23560         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
23561
23562 2015-04-30  Marek Polacek  <polacek@redhat.com>
23563
23564         * varasm.c (handle_cache_entry): Fix logic.
23565
23566 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23567
23568         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
23569         (*extrsi5_insn_uxtw_alt): Likewise.
23570         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
23571         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
23572         operations.
23573
23574 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23575
23576         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
23577         fabd in ABS case.
23578
23579 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23580
23581         * config/aarch64/aarch64.md
23582         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
23583         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
23584         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
23585         appropriately.  Handle alternative EON form.
23586
23587 2015-04-30  Renlin Li  <renlin.li@arm.com>
23588
23589         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
23590         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
23591
23592 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23593
23594         PR ipa/65873
23595         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
23596         -fstrict-aliasing boundaries.
23597
23598 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23599
23600         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
23601         and [SU]MNEGL patterns.
23602
23603 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23604
23605         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
23606         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
23607         combined arithmetic-shift ops.  Properly handle all shift and extend
23608         operations that can occur in combination with PLUS/MINUS.
23609         Rename maybe_fma to compound_p.
23610         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
23611         arithmetic and shift operations.
23612
23613 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23614
23615         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
23616         rather than arith_shift cost when costing ADD/MINUS of an
23617         extended value.
23618
23619 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
23620
23621         PR lto/65948
23622         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
23623         to itself.
23624
23625 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
23626
23627         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
23628         are for the same position.
23629
23630 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
23631
23632         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
23633         vectorize_loops.
23634         (vectorize_loops): Use it.
23635
23636 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23637
23638         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
23639         for aggregate types.
23640         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
23641         type to be non_ODR.
23642         * tree.c (need_assembler_name_p): Compute mangled name for
23643         non-fundamental types and integer types.
23644
23645 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
23646
23647         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
23648         manual swaps.
23649         * expr.c (expand_expr_real_2): Likewise.
23650
23651 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23652
23653         * tree.c (build_common_builtin_nodes): Do not build
23654         __builtin_alloca_with_align as equivalent of library alloca.
23655
23656 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
23657
23658         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
23659         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
23660         bugus variants.
23661         * tree.c: Include print-tree.h and ipa-utils.h
23662         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
23663         (free_lang_data_in_cgraph): Call verify_type.
23664         (verify_type_variant): New function.
23665         (verify_type): New function.
23666         * tree.h (verify_type): Declare.
23667
23668 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
23669
23670         * config/mips/mips-cpus.def: (mips4): Change default processor
23671         from PROCESSOR_R8000 to PROCESSOR_R10000.
23672
23673 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
23674
23675         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
23676         la/jalr instead of jal.
23677
23678 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
23679
23680         PR target/65871
23681         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
23682         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
23683         (setcc+movzbl peephole2): Check also clobbered reg.
23684         (setcc+andl peephole2): Ditto.
23685
23686 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23687
23688         PR libgomp/65099
23689         * config/nvptx/mkoffload.c (target_ilp32): New variable.
23690         (main): Set it depending on "-foffload-abi=[...]".
23691         (compile_native, main): Use it to pass "-m32" or "-m64" to the
23692         compiler.
23693
23694 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23695
23696         PR target/65770
23697         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
23698         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
23699         Flip lane index back at assembly time for bigendian.
23700
23701 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
23702
23703         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
23704         * gimplify.c (gimplify_omp_workshare): Use it.
23705
23706 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23707
23708         * Makefile.in (build/genrecog.o): Depend on inchash.h.
23709         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
23710         build/inchash.o
23711         * genrecog.c: Rewrite most of the code except for the third page.
23712
23713 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23714
23715         * inchash.h, inchash.c: Include bconfig.h for build objects.
23716         * Makefile.in (build/inchash.o): New rule.
23717
23718 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
23719
23720         PR target/65924
23721         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
23722         number in type attribute expression.
23723
23724 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
23725
23726         * loop-iv.c (canon_condition): Generalize to all types of integer
23727         constant.
23728
23729 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
23730
23731         * gimple-walk.c: Prune duplicate or unneeded includes.
23732         (walk_gimple_asm): Only call parse_input_constraint or
23733         parse_output_constraint if their findings are used.
23734         Honour parse_input_constraint and parse_output_constraint
23735         result.
23736
23737 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
23738
23739         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
23740
23741 2015-04-29  Tom de Vries  <tom@codesourcery.com>
23742
23743         PR tree-optimization/65893
23744         * passes.def (pass_all_optimizations): Move pass_stdarg to after
23745         pass_dce.
23746
23747 2015-04-29  Richard Biener  <rguenther@suse.de>
23748
23749         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
23750         compute GROUP_SIZE for basic-block SLP.
23751         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
23752         take into account gaps.
23753         (vect_get_mask_element): Properly reject references to previous
23754         vectors.
23755         (vect_transform_slp_perm_load): Likewise.
23756
23757 2015-04-29  Christian Bruel  <christian.bruel@st.com>
23758
23759         PR target/64835
23760         * config/i386/i386.c (ix86_default_align): New function.
23761         (ix86_override_options_after_change): Call ix86_default_align.
23762         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
23763         (ix86_override_options_after_change): New function.
23764
23765 2015-04-28  Jeff Law  <law@redhat.com>
23766
23767         * tree-ssa-dom.c (record_equality); Fix comment typos.
23768
23769 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23770
23771         PR tree-optimization/65887
23772         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
23773
23774 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
23775
23776         * doc/extend.texi (Declaring Attributes of Functions): Split into
23777         subsections by target.  Alphabetize the table of common attributes.
23778         Rewrite some of the introductory text to reflect the new structure.
23779         Update some cross-references to point to the new subsections.
23780         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
23781         duplicate copies in the discussion of function, label, and type
23782         attributes.
23783
23784 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
23785
23786         PR bootstrap/65910
23787         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
23788
23789 2015-04-28  Jason Merrill  <jason@redhat.com>
23790
23791         PR c++/65734
23792         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
23793         (finalize_type_size): Respect TYPE_USER_ALIGN.
23794         (layout_type) [ARRAY_TYPE]: Likewise.
23795
23796 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
23797
23798         * config/arm/arm.md (*arm_movt): Fix type attribute.
23799         (*cmpsi_shiftsi): Likewise.
23800         (*cmpsi_shiftsi_swp): Likewise.
23801         (*movsicc_insn): Likewise.
23802         (*cond_move): Likewise.
23803         (*if_plus_move): Likewise.
23804         (*if_move_plus): Likewise.
23805         (*if_arith_move): Likewise.
23806         (*if_move_arith): Likewise.
23807         (*if_shift_move): Likewise.
23808         (*if_move_shift): Likewise.
23809         (*arm_movtas_ze): Likewise.
23810         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
23811         redundancy and type attribute.
23812         (*thumb2_movsi_insn): Fix type attribute.
23813         (*thumb2_addsi_short): Likewise.
23814         (thumb2_addsi3_compare0): Likewise.
23815         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
23816         attributes accordingly.
23817
23818 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
23819
23820         PR other/65911
23821         * function.c (pad_to_arg_alignment): Add parentheses.
23822
23823 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
23824
23825         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
23826         libgcc/config/frv/elf-lib.h.
23827
23828 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23829
23830         * tree-call-cdce.c: Fix example in header comment.
23831
23832 2015-04-28  Richard Biener  <rguenther@suse.de>
23833
23834         PR tree-optimization/62283
23835         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
23836         fails fatally and we are vectorizing a basic-block simply
23837         cause the child to be constructed piecewise.
23838         (vect_analyze_slp_cost_1): Adjust.
23839         (vect_detect_hybrid_slp_stmts): Likewise.
23840         (vect_bb_slp_scalar_cost): Likewise.
23841         (vect_get_constant_vectors): For piecewise constructed
23842         constants place them after the last def.
23843         (vect_get_slp_defs): Adjust.
23844         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
23845         externals for basic-block vectorization.
23846
23847 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23848
23849         PR target/63503
23850         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
23851         aarch64-*-*.
23852         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
23853         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
23854         (AARCH64_TUNE_FMA_STEERING): Likewise.
23855         * config/aarch64/aarch64-cores.def: Set
23856         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
23857         FMUL/FMADD instructions.
23858         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
23859         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
23860         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
23861         * config/aarch64/cortex-a57-fma-steering.h: New file.
23862         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
23863
23864 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
23865
23866         * gensupport.c (std_preds): Add missing codes to address_operand entry.
23867
23868 2015-04-28  Richard Biener  <rguenther@suse.de>
23869
23870         PR tree-optimization/65851
23871         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
23872         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
23873         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
23874         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
23875         (ccp_visit_phi_node): Adjust.
23876         (evaluate_stmt): For simplifications to SSA names return its
23877         lattice value if that isn't VARYING.  Return immediately when
23878         simplified to a constant.
23879         (visit_assignment): Adjust.
23880         (ccp_visit_stmt): Likewise.
23881
23882 2015-04-28  Tom de Vries  <tom@codesourcery.com>
23883
23884         PR tree-optimization/65818
23885         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
23886         evaluated.
23887
23888 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23889
23890         * calls.c (save_fixed_argument_area): Don't check
23891         ARGS_GROW_DOWNWARD with the preprocessor.
23892         (restore_fixed_argument_area): Likewise.
23893         (mem_overlaps_already_clobbered_arg_p): Likewise.
23894         (check_sibcall_argument_overlap): Likewise.
23895         (expand_call): Likewise.
23896         (emit_library_call_value_1): Likewise.
23897         (store_one_arg): Likewise.
23898         * function.c (assign_parms): Likewise.
23899         (locate_and_pad_parm): Likewise.
23900         (pad_to_arg_alignment): Likewise.
23901         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
23902
23903 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23904
23905         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
23906         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
23907         * calls.c (save_fixed_argument_area): Don't chekc if
23908         ARGS_GROW_DOWNWARD is defined.
23909         (restore_fixed_argument_area): Likewise.
23910         (mem_overlaps_already_clobbered_arg_p): Likewise.
23911         (check_sibcall_argument_overlap): Likewise.
23912         (expand_call): Likewise.
23913         (emit_library_call_value_1): Likewise.
23914         (store_one_arg): Likewise.
23915         * function.c (assign_parms): Likewise.
23916         (locate_and_pad_parm): Likewise.
23917         (pad_to_arg_alignment): Likewise.
23918         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
23919
23920 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23921
23922         * defaults.h (gen_epilogue): New function.
23923         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
23924         defined.
23925         * cfgrtl.c (cfg_layout_finalize): Likewise.
23926         * df-scan.c: Likewise.
23927         * function.c (thread_prologue_and_epilogue_insns): Likewise.
23928         (reposition_prologue_and_epilogue_notes): Likewise.
23929         * reorg.c (find_end_label): Likewise.
23930         * toplev.c: Likewise.
23931
23932 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23933
23934         * bb-reorder.c (HAVE_return): Don't check if its undefined.
23935         * defaults.h (gen_simple_return): New function.
23936         (gen_simple_return): Likewise.
23937         (HAVE_return): Add default definition to false.
23938         (HAVE_simple_return): Likewise.
23939         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
23940         HAVE_return and HAVE_simple_return are defined.
23941         * function.c (gen_return_pattern): Likewise.
23942         (convert_jumps_to_returns): Likewise.
23943         (thread_prologue_and_epilogue_insns): Likewise.
23944         * reorg.c (find_end_label): Likewise.
23945         (dbr_schedule): Likewise.
23946         * shrink-wrap.c: Likewise.
23947         * shrink-wrap.h: Likewise.
23948
23949 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23950
23951         * defaults.h (EPILOGUE_USES): Add default definition of false.
23952         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
23953         * resource.c (init_resource_info): Likewise.
23954
23955 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23956
23957         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
23958         to false.
23959         * dwarf2out.c (field_byte_offset): REmove check if
23960         PCC_BITFIELD_TYPE_MATTERS is defined.
23961         * stor-layout.c (layout_decl): Likewise.
23962         (update_alignment_for_field): Likewise.
23963         (place_field): Likewise.
23964
23965 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23966
23967         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
23968         true.
23969         * regrename.c (check_new_reg_p): Remove check if
23970         HARD_REGNO_RENAME_OK is defined.
23971         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
23972
23973 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23974
23975         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
23976         * cse.c (fold_rtx): Likewise.
23977         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
23978         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
23979         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
23980         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
23981         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
23982         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
23983         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
23984         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
23985         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
23986         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
23987         * Likewise.
23988         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
23989         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
23990         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
23991         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
23992         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
23993         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
23994         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
23995         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
23996         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
23997         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
23998         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
23999         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
24000         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
24001         * doc/tm.texi: Regenerate.
24002         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
24003         either true or false.
24004
24005 2015-04-27  Jeff Law  <law@redhat.com>
24006
24007         PR tree-optimization/65217
24008         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
24009         of them has a single use, make sure it is the LHS of the implied
24010         copy.
24011
24012 2015-04-28  Alan Modra  <amodra@gmail.com>
24013
24014         PR target/65810
24015         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
24016         (offsettable_ok_by_alignment): Use minimum of decl and toc
24017         pointer alignment.  Replace dead code with assertion.
24018         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
24019         case if size exceeds toc pointer alignment.
24020         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
24021         (rs6000_emit_move): Likewise.
24022         * configure.ac: Add linker toc pointer alignment check.
24023         * configure: Regenerate.
24024         * config.in: Regenerate.
24025
24026 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
24027
24028         * config.gcc: Add h8300-*-linux.
24029         * config/h8300/linux.h: New.
24030         * config/h8300/t-linux: New.
24031         * config/h8300/h8300.c (h8300_option_override): Normal mode
24032         is not supported for h8300-*-linux.
24033         (h8300_file_start): Target priority change.
24034         (get_shift_alg): Likewise.
24035         (h8300_shift_need_scratch_p): Likewise.
24036         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
24037         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
24038
24039 2015-04-27  Caroline Tice  <cmtice@google.com>
24040
24041         * final.c (final_scan_insn):  Output cold_function_name as function
24042         type.
24043         * varasm.c (cold_function_name):  Make global.
24044         (assemble_start_function):  Re-set cold_function_name.
24045         (assemble_end_function): Output cold partition size.
24046         * varasm.h (cold_function_name):  Declare global.
24047
24048 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
24049
24050         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
24051         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
24052         constraint.
24053         (*movxi_internal_avx512f): Ditto.
24054         (define_split): Check for xmm16+, when splitting scalar float_extend.
24055         (*extendsfdf2_mixed): Use "v" constraint.
24056         (define_split): Check for xmm16+, when splitting scalar float_truncate.
24057         (*truncdfsf_fast_sse): Use "v" constraint.
24058         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
24059         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
24060         (define_peephole2): Check for xmm16+, when converting scalar
24061         float_truncate.
24062         (define_peephole2): Check for xmm16+, when converting scalar
24063         float_extend.
24064         (*fop_<mode>_comm_mixed): Use "v" constraint.
24065         (*fop_<mode>_comm_sse): Ditto.
24066         (*fop_<mode>_1_mixed): Ditto.
24067         (*sqrt<mode>2_sse): Ditto.
24068         (*ieee_s<ieee_maxmin><mode>3): Ditto.
24069
24070 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24071
24072         * combine.c (simplify_if_then_else): Use std::swap instead
24073         of manually swapping.
24074         (known_cond): Likewise.
24075         (simplify_comparison): Likewise.
24076
24077 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
24078
24079         PR target/64579
24080         * config/rs6000/htm.md: Remove all define_expands.
24081         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
24082         UNSPECV_HTM_TABORTWCI): Remove.
24083         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
24084         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
24085         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
24086         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
24087         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
24088         tabortwci_internal): Remove define_insns.
24089         (tabort<wd>c, tabort<wd>ci): New define_insns.
24090         (tabort): Use gpc_reg_operand.
24091         (tcheck): Remove operand.
24092         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
24093         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
24094         expected value.
24095         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
24096         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
24097         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
24098         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
24099         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
24100         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
24101         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
24102         (tcheck): Remove builtin argument.
24103         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
24104         not TARGET_64BIT.
24105         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
24106         tabortdc and tabortdci builtins when not in 64-bit mode.
24107         Modify code to handle the loss of the HTM define_expands.
24108         Emit code to copy the CR register to TARGET.
24109         (htm_init_builtins): Modify code to handle the loss of the HTM
24110         define_expands.
24111         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
24112         (RS6000_BTC_64BIT): Likewise.
24113         (RS6000_BTC_CR): New macro.
24114         * doc/extend.texi: Update documentation for htm builtins.
24115
24116 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24117
24118         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
24119         of manually swapping.
24120         (simplify_associative_operation): Likewise.
24121         (simplify_binary_operation): Likewise.
24122         (simplify_plus_minus): Likewise.
24123         (simplify_relational_operation): Likewise.
24124         (simplify_ternary_operation): Likewise.
24125
24126 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24127
24128         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
24129         (xs_hi_nonmemory_operand): Remove error.
24130         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
24131         general_operand rather than xs_hi_general_operand.
24132
24133 2015-04-27  Richard Biener  <rguenther@suse.de>
24134
24135         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
24136         (record_equivalences_from_stmt): Valueize rhs.
24137         (record_equality): Canonicalize x and y order via
24138         tree_swap_operands_p.  Do not swap operands for same loop depth.
24139
24140 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
24141
24142         PR target/65296
24143         PR target/65895
24144         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
24145         Add hint how to use own spec file.
24146
24147 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
24148
24149         PR tree-optimization/65875
24150         * tree-vrp.c (update_value_range): If in is_new case setting
24151         old_vr to VR_VARYING, also set new_vr to it.  Remove
24152         old_vr->type == VR_VARYING test.
24153         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
24154         SSA_PROP_INTERESTING if update_value_range returned true,
24155         but new range is VR_VARYING.
24156
24157 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24158
24159         * combine.c (sign_extend_short_imm): New.
24160         (set_nonzero_bits_and_sign_copies): Use above new function for sign
24161         extension of src short immediate.
24162         (reg_nonzero_bits_for_combine): Likewise for tem.
24163
24164 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24165
24166         * stor-layout.c (self_referential_component_ref_p): New predicate.
24167         (copy_self_referential_tree_r): Use it.
24168         (self_referential_size): Punt for simple operations directly involving
24169         self-referential component references.
24170         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
24171
24172 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
24173
24174         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
24175
24176 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
24177
24178         * vec.h (vec): Make splice arguments const.  Update definitions
24179         accordingly.
24180
24181 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
24182
24183         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
24184         alternatives.
24185
24186 2015-04-26  Tom de Vries  <tom@codesourcery.com>
24187
24188         PR tree-optimization/65826
24189         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
24190
24191 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
24192
24193         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
24194         (*madd3<mode>): Ditto.
24195         (*msub4<mode>): Ditto.
24196         (*msub3<mode>): Ditto.
24197         (*nmadd4<mode>): Ditto.
24198         (*nmadd3<mode>): Ditto.
24199         (*nmadd4<mode>_fastmath): Ditto.
24200         (*nmadd3<mode>_fastmath): Ditto.
24201         (*nmsub4<mode>): Ditto.
24202         (*nmsub3<mode>): Ditto.
24203         (*nmsub4<mode>_fastmath): Ditto.
24204         (*nmsub3<mode>_fastmath): Ditto.
24205
24206 2015-04-24  Jason Merrill  <jason@redhat.com>
24207
24208         PR c++/50800
24209         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
24210         down when building TYPE_CANONICAL.
24211         (build_pointer_type_for_mode): Likewise.
24212
24213 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
24214
24215         * genrecog.c (validate_pattern): Check matching constraint refers
24216         to a lower numbered operand.
24217
24218 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
24219
24220         PR target/65849
24221         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
24222         save to independent variables use the Save attribute.  This will
24223         allow these options to be modified with the #pragma/attribute
24224         target support.
24225         (-mallow-movmisalign): Likewise.
24226         (-mallow-df-permute): Likewise.
24227         (-msched-groups): Likewise.
24228         (-malways-hint): Likewise.
24229         (-malign-branch-targets): Likewise.
24230         (-mvectorize-builtins): Likewise.
24231         (-msave-toc-indirect): Likewise.
24232
24233         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
24234         can be set via the #pragma/attribute target support.
24235         (rs6000_opt_vars): Likewise.
24236         (rs6000_inner_target_options): If VSX was set, also set
24237         -mno-avoid-indexed-addresses.
24238
24239 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24240
24241         * config/arm/iterators.md (shiftable_ops): Rename to...
24242         (SHIFTABLE_OPS): ... This.  Update use in comments.
24243         (ior_xor): Rename to...
24244         (IOR_XOR): ... This.
24245         (vqh_ops): Rename to...
24246         (VQH_OPS): ... This.
24247         (vqhs_ops): Rename to...
24248         (VQHS_OPS): ... This.
24249         (rshifts): Rename to...
24250         (RSHIFTS): ... This.
24251         (returns): Rename to...
24252         (RETURNS): ... This.
24253         * config/arm/arm.md: Update uses of the above.
24254         * config/arm/neon.md: Likewise.
24255
24256 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24257
24258         * config.host (case ${host}): Add aarch64*-*-linux case.
24259         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
24260         fields to all the cores.
24261         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
24262         Add MCPU_MTUNE_NATIVE_SPECS.
24263         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
24264         field to all extensions.
24265         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
24266         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
24267         Adjust definition of AARCH64_OPT_EXTENSION.
24268         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
24269         (MCPU_MTUNE_NATIVE_SPECS): Define.
24270         * config/aarch64/driver-aarch64.c: New file.
24271         * config/aarch64/x-arch64: New file.
24272         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
24273         -mtune and -march.
24274
24275 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24276             Wei Mi  <wmi@google.com>
24277
24278         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
24279         * config/i386/i386.c (extract_base_offset_in_addr): New function.
24280         (ix86_operands_ok_for_move_multiple): Ditto.
24281         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
24282         (movlpd/movhpd to movupd peephole2): Ditto.
24283
24284 2015-04-24  Marek Polacek  <polacek@redhat.com>
24285
24286         PR c/61534
24287         * input.h (from_macro_expansion_at): Define.
24288
24289         PR c/63357
24290         * doc/invoke.texi: Update description of -Wlogical-op.
24291
24292 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24293
24294         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
24295         ternary operator in fprintf and harmonize spacing.
24296
24297 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24298
24299         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
24300         Mark operand1 commutative.
24301
24302 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
24303
24304         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
24305         input operands in memory.
24306         (*vec_concatv2si_sse4_1): Ditto.
24307         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
24308         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
24309         register_operand.
24310         (vec_extract_hi_v32hi): Ditto.
24311         (vec_extract_hi_v64hi): Ditto.
24312         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
24313
24314 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24315             Steven Bosscher <steven@gcc.gnu.org>
24316
24317         PR rtl-optimization/34503
24318         * cprop.c (cprop_reg_p): New.
24319         (hash_scan_set): Use above function to check if register can be
24320         propagated.
24321         (find_avail_set): Return up to two sets, one whose source is a
24322         register and one whose source is a constant.  Sets are returned in an
24323         array passed as parameter rather than as a return value.
24324         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
24325         sets returned by find_avail_set, starting with the one whose source is
24326         a constant. Use cprop_reg_p to check if register can be propagated.
24327         (do_local_cprop): Use cprop_reg_p to check if register can be
24328         propagated.
24329         (implicit_set_cond_p): Likewise.
24330
24331 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24332
24333         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
24334         (sem_function::equals): IGNORED_NODES parameter is now unused;
24335         update call of equals_private.
24336         (sem_function::equals_private): Do not call equals_wpa; skip
24337         gimple body matching if there is no body.
24338         (sem_function::init): Add logic to hash tthunk info.
24339         (sem_function::parse): Also parse thunks.
24340         * ipa-icf.h (equals_private): Update declaration.
24341
24342 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24343
24344         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
24345         asterisk from name so this can be generated directly.
24346         (*altivec_stvx_<mode>_internal): Likewise.
24347         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
24348         that this is never called during or after reload/lra.
24349         (rs6000_frame_related): Remove split_reg
24350         argument and logic that references it.
24351         (emit_frame_save): Remove last parameter from call to
24352         rs6000_frame_related.
24353         (rs6000_emit_prologue): Remove last parameter from eight calls to
24354         rs6000_frame_related.  Force generation of stvx instruction for
24355         Altivec register saves.  Remove split_reg handling, which is no
24356         longer needed.
24357         (rs6000_emit_epilogue):  Force generation of lvx instruction for
24358         Altivec register restores.
24359
24360 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24361
24362         * config/rs6000/rs6000.opt (mcrypto): Change option description to
24363         match category changes in ISA 2.07B.
24364
24365 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24366
24367         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
24368         iterators.
24369         (cmp_op, cmp_type): New code attributes.
24370         (NEON_VCMP, NEON_VACMP): New int iterators.
24371         (cmp_op_unsp): New int attribute.
24372         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
24373         (neon_vceq<mode>): Delete.
24374         (neon_vc<cmp_op><mode>_insn): New pattern.
24375         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
24376         (neon_vcgeu<mode>): Delete.
24377         (neon_vcle<mode>): Likewise.
24378         (neon_vclt<mode>: Likewise.
24379         (neon_vcage<mode>): Likewise.
24380         (neon_vcagt<mode>): Likewise.
24381         (neon_vca<cmp_op><mode>): New define_expand.
24382         (neon_vca<cmp_op><mode>_insn): New pattern.
24383         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
24384
24385 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24386
24387         * tree.h (attribute_value_equal): Declare.
24388         * tree.c (attribute_value_equal): Export.
24389
24390 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24391
24392         * ipa-icf.c (sem_item::compare_attributes): New function.
24393         (sem_item::compare_referenced_symbol_properties): Compare variable
24394         attributes.
24395         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
24396         (sem_function::param_used_p): New function.
24397         (sem_function::equals_wpa): Fix attribute comparsion; match
24398         parameter type codes; do not compare paremter flags when
24399         they are not used; compare edge flags; compare indirect calls.
24400         (sem_item::update_hash_by_addr_refs): Hash reference type.
24401         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
24402         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
24403         reference use type.
24404         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
24405         * ipa-icf.h (compare_attributes, param_used_p): Declare.
24406
24407 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
24408
24409         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
24410         cleanup.
24411         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
24412         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
24413         (sem_item::compare_referenced_symbol_properties): New.
24414         (sem_item::hash_referenced_symbol_properties): New.
24415         (sem_item::compare_cgraph_references): Rename to ...
24416         (sem_item::compare_symbol_references): ... this one; use
24417         compare_referenced_symbol_properties.
24418         (sem_function::equals_wpa): Do not compare
24419         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
24420         DECL_IS_OPERATOR_NEW; compare pointer sizes.
24421         (sem_item::update_hash_by_addr_refs): Call
24422         hash_referenced_symbol_properties.
24423         (sem_item::update_hash_by_local_refs): Cleanup.
24424         (sem_function::merge): Do not mix up symbol properties.
24425         (sem_variable::equals_wpa): Use compare_symbol_references.
24426         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
24427         (sem_item::hash_referenced_symbol_properties): New.
24428         (sem_item::compare_symbol_references): New.
24429         (sem_item::compare_cgraph_references): Remove.
24430
24431 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
24432
24433         PR target/26702
24434         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
24435         Emit size of local.
24436
24437 2015-04-23  Nick Clifton  <nickc@redhat.com>
24438
24439         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
24440         ATTRIBUTE_UNUSED to x parameter.
24441         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
24442
24443 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24444
24445         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
24446         TARGET_CRYPTO to TARGET_P8_VECTOR>
24447         (crypto_vpermxor_<mode>): Likewise.
24448         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
24449         (BU_CRYPTO_3A): Likewise.
24450         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
24451         (BU_CRYPTO_OVERLOAD_3A): New #define.
24452         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
24453         (VPMSUMH): Likewise.
24454         (VPMSUMW): Likewise.
24455         (VPMSUMD): Likewise.
24456         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
24457         (VPERMXOR_V4SI): Likewise.
24458         (VPERMXOR_V8HI): Likewise.
24459         (VPERMXOR_V16QI): Likewise.
24460         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
24461         BU_CRYPTO_OVERLOAD_2A.
24462         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
24463         BU_CRYPTO_OVERLOAD_3A.
24464         * config/rs6000/rs6000.opt (mcrypto): Change description of
24465         option.
24466
24467 2015-04-23  Richard Biener  <rguenther@suse.de>
24468
24469         * passes.def: Remove copy propagation passes run directly after CCP.
24470         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
24471         SSA names.
24472         (ccp_visit_phi_node): Rework to handle first executable edge
24473         specially.
24474
24475 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
24476
24477         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
24478         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24479         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
24480         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
24481         (thumb_legimitimize_reload_address): Remove.
24482         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
24483         Remove.
24484         (thumb_legimitimize_reload_address): Remove.
24485
24486 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24487
24488         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
24489
24490 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24491
24492         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
24493         MAX_LDM_STM_OPS.
24494         (store_multiple): Likewise.
24495
24496 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24497
24498         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
24499         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
24500         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
24501         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
24502         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
24503         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
24504         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
24505         Specify issue_rate value.
24506         (arm_issue_rate): Look up issue rate from tuning structs. Remove
24507         large switch statement.
24508         (arm_marvell_pj4_tune): New struct.
24509         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
24510         struct.
24511
24512 2015-04-23  Richard Biener  <rguenther@suse.de>
24513
24514         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
24515         (vect_find_last_store_in_slp_instance): Rename to ...
24516         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
24517         (vect_analyze_slp_cost_1): Use vector_load for constant defs
24518         and vec_construct for external defs when estimating prologue cost.
24519         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
24520         Compute costs here only when vectorizing loops.
24521         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
24522         have been determined.
24523         (vect_schedule_slp_instance): Simplify vectorized code placement
24524         and prepare for in-BB external defs.
24525         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
24526         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
24527         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
24528         guard.
24529         (vect_model_load_cost): Likewise.
24530         (vectorizable_store): Instead add it here.
24531         (vectorizable_load): Likewise.
24532         (vect_is_simple_use): Dump def type textually.
24533
24534 2015-04-23  Richard Biener  <rguenther@suse.de>
24535
24536         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
24537         * cfgloop.c (verify_loop_structure): Verify the root loop node.
24538         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
24539         instead of get_eh_region_from_lp_number.
24540         * loop-init.c (fix_loop_structure): If we removed a loop, reset
24541         the SCEV cache.
24542
24543 2015-04-23  Anton Blanchard  <anton@samba.org>
24544
24545         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
24546         need for -mprofile-kernel to save LR to stack.
24547
24548 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24549
24550         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
24551         adjustments.
24552         (insn_is_swappable_p): Return 1 for a convert from double to
24553         single precision when all of its uses are splats of BE element
24554         zero.
24555
24556 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
24557
24558         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
24559
24560 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24561
24562         PR target/65456
24563         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
24564         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
24565         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
24566         option.
24567         (rs6000_builtin_mask_for_load): Return 0 for targets with
24568         efficient unaligned VSX accesses so that the vectorizer will use
24569         direct unaligned loads.
24570         (rs6000_builtin_support_vector_misalignment): Always return true
24571         for targets with efficient unaligned VSX accesses.
24572         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
24573         stores on targets with efficient unaligned VSX accesses is almost
24574         always the same as the cost of an aligned load or store, so model
24575         it that way.
24576         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
24577         unaligned vectors if we have efficient unaligned VSX accesses.
24578         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
24579         undocumented option.
24580
24581 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24582
24583         Revert:
24584         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24585
24586         * config.gcc (LIBC_MUSL): New tm_defines macro.
24587         * config/linux.h (OPTION_MUSL): Define.
24588         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24589         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24590         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24591
24592         * config/linux.opt (mmusl): New option.
24593         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24594         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24595
24596         * configure: Regenerate.
24597
24598 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
24599
24600         * config.gcc (LIBC_MUSL): New tm_defines macro.
24601         * config/linux.h (OPTION_MUSL): Define.
24602         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
24603         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
24604         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
24605
24606         * config/linux.opt (mmusl): New option.
24607         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
24608         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
24609
24610         * configure: Regenerate.
24611
24612 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
24613
24614         * doc/invoke.texi (-fsanitize-sections): Update description.
24615         * asan.c (set_sanitized_sections): Parse incoming arg.
24616         (section_sanitized_p): Support wildcards.
24617
24618 2015-04-22  Tom de Vries  <tom@codesourcery.com>
24619
24620         PR tree-optimization/65823
24621         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
24622         equality between ap_copy and ap.
24623
24624 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24625
24626         PR target/47098
24627         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
24628
24629 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24630
24631         PR target/47122
24632         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
24633
24634 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24635
24636         PR target/55144
24637         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
24638         remove already contained t-files.
24639
24640 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24641
24642         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
24643         Remove unneeded forward declarations.
24644         (suitable_for_tail_call_opt_p): Commentary typo fix.
24645
24646 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24647
24648         * varasm.c (emit_bss): Remove redundant guard.
24649
24650 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24651
24652         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
24653
24654 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
24655
24656         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
24657
24658 2015-04-22  Hale Wang  <hale.wang@arm.com>
24659             Terry Guo  <terry.guo@arm.com>
24660
24661         PR rtl-optimization/64818
24662         * combine.c (can_combine_p): Don't combine user-specified
24663         register if it is in an asm input.
24664
24665 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
24666
24667         PR ipa/65076
24668         * passes.def (early_optimizations): Add pass_dse.
24669
24670 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24671
24672         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
24673         * reorg.c (redundant_insn): Remove ifdef
24674         INSN_REFERENCES_ARE_DELAYED.
24675         * resource.c (mark_referenced_resources): Likewise.
24676
24677 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24678
24679         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
24680         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
24681         * resource.c (mark_set_resources): Likewise.
24682
24683 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24684
24685         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
24686         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24687         (flow_find_head_matching_sequence): Likewise.
24688         (try_head_merge_bb): Likewise.
24689         * combine.c (can_combine_p): Likewise.
24690         (try_combine): Likewise.
24691         (distribute_notes): Likewise.
24692         * df-problems.c (can_move_insns_across): Likewise.
24693         * final.c (final): Likewise.
24694         * gcse.c (insert_insn_end_basic_block): Likewise.
24695         * ira.c (find_moveable_pseudos): Likewise.
24696         * reorg.c (try_merge_delay_insns): Likewise.
24697         (fill_simple_delay_slots): Likewise.
24698         (fill_slots_from_thread): Likewise.
24699         * sched-deps.c (sched_analyze_2): Likewise.
24700
24701 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24702
24703         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
24704         PIC_OFFSET_TABLE_REGNUM.
24705
24706 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24707
24708         * alias.c (init_alias_target): Remove ifdef
24709         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
24710         * df-scan.c (df_insn_refs_collect): Likewise.
24711         (df_get_regular_block_artificial_uses): Likewise.
24712         (df_get_eh_block_artificial_uses): Likewise.
24713         (df_get_entry_block_def_set): Likewise.
24714         (df_get_exit_block_use_set): Likewise.
24715         * emit-rtl.c (gen_rtx_REG): Likewise.
24716         * ira.c (ira_setup_eliminable_regset): Likewise.
24717         * reginfo.c (init_reg_sets_1): Likewise.
24718         * regrename.c (rename_chains): Likewise.
24719         * reload1.c (reload): Likewise.
24720         (eliminate_regs_in_insn): Likewise.
24721         * resource.c (mark_referenced_resources): Likewise.
24722         (init_resource_info): Likewise.
24723
24724 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24725
24726         * defaults.h (MASK_RETURN_ADDR): New definition.
24727         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24728         MASK_RETURN_ADDR.
24729
24730 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24731
24732         * defaults.h (RETURN_ADDR_OFFSET): New definition.
24733         * except.c (expand_builtin_extract_return_addr): Remove ifdef
24734         RETURN_ADDR_OFFSET.
24735         (expand_builtin_frob_return_addr): Likewise.
24736
24737 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24738
24739         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
24740         (try_redirect_by_replacing_jump): Likewise.
24741         (rtl_tidy_fallthru_edge): Likewise.
24742         * combine.c (insn_a_feeds_b): Likewise.
24743         (find_split_point): Likewise.
24744         (simplify_set): Likewise.
24745         * cprop.c (cprop_jump): Likewise.
24746         * cse.c (cse_extended_basic_block): Likewise.
24747         * df-problems.c (can_move_insns_across): Likewise.
24748         * function.c (emit_use_return_register_into_block): Likewise.
24749         * haifa-sched.c (sched_init): Likewise.
24750         * ira.c (find_moveable_pseudos): Likewise.
24751         * loop-invariant.c (find_invariant_insn): Likewise.
24752         * lra-constraints.c (curr_insn_transform): Likewise.
24753         * postreload.c (reload_combine_recognize_const_pattern):
24754         * Likewise.
24755         * reload.c (find_reloads): Likewise.
24756         * reorg.c (delete_scheduled_jump): Likewise.
24757         (steal_delay_list_from_target): Likewise.
24758         (steal_delay_list_from_fallthrough): Likewise.
24759         (redundant_insn): Likewise.
24760         (fill_simple_delay_slots): Likewise.
24761         (fill_slots_from_thread): Likewise.
24762         (delete_computation): Likewise.
24763         * sched-rgn.c (add_branch_dependences): Likewise.
24764
24765 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24766
24767         * genconfig.c (main): Always define HAVE_cc0.
24768         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
24769         HAVE_cc0.
24770         * cfgcleanup.c (flow_find_cross_jump): Likewise.
24771         (flow_find_head_matching_sequence): Likewise.
24772         (try_head_merge_bb): Likewise.
24773         * cfgrtl.c (rtl_merge_blocks): Likewise.
24774         (try_redirect_by_replacing_jump): Likewise.
24775         (rtl_tidy_fallthru_edge): Likewise.
24776         * combine.c (do_SUBST_MODE): Likewise.
24777         (insn_a_feeds_b): Likewise.
24778         (combine_instructions): Likewise.
24779         (can_combine_p): Likewise.
24780         (try_combine): Likewise.
24781         (find_split_point): Likewise.
24782         (subst): Likewise.
24783         (simplify_set): Likewise.
24784         (distribute_notes): Likewise.
24785         * cprop.c (cprop_jump): Likewise.
24786         * cse.c (cse_extended_basic_block): Likewise.
24787         * df-problems.c (can_move_insns_across): Likewise.
24788         * final.c (final): Likewise.
24789         (final_scan_insn): Likewise.
24790         * function.c (emit_use_return_register_into_block): Likewise.
24791         * gcse.c (insert_insn_end_basic_block): Likewise.
24792         * haifa-sched.c (sched_init): Likewise.
24793         * ira.c (find_moveable_pseudos): Likewise.
24794         * loop-invariant.c (find_invariant_insn): Likewise.
24795         * lra-constraints.c (curr_insn_transform): Likewise.
24796         * optabs.c (prepare_cmp_insn): Likewise.
24797         * postreload.c (reload_combine_recognize_const_pattern):
24798         * Likewise.
24799         * reload.c (find_reloads): Likewise.
24800         (find_reloads_address_1): Likewise.
24801         * reorg.c (delete_scheduled_jump): Likewise.
24802         (steal_delay_list_from_target): Likewise.
24803         (steal_delay_list_from_fallthrough): Likewise.
24804         (try_merge_delay_insns): Likewise.
24805         (redundant_insn): Likewise.
24806         (fill_simple_delay_slots): Likewise.
24807         (fill_slots_from_thread): Likewise.
24808         (delete_computation): Likewise.
24809         (relax_delay_slots): Likewise.
24810         * sched-deps.c (sched_analyze_2): Likewise.
24811         * sched-rgn.c (add_branch_dependences): Likewise.
24812
24813 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24814
24815         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
24816         that is trivially ded on non cc0 targets.
24817         (simplify_set): Likewise.
24818         (mark_used_regs_combine): Likewise.
24819         * cse.c (new_basic_block): Likewise.
24820         (fold_rtx): Likewise.
24821         (cse_insn): Likewise.
24822         (cse_extended_basic_block): Likewise.
24823         (set_live_p): Likewise.
24824         * rtlanal.c (canonicalize_condition): Likewise.
24825         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
24826
24827 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24828
24829         * conditions.h: Define macros even if HAVE_cc0 is undefined.
24830         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
24831         * final.c: Likewise.
24832         * jump.c: Likewise.
24833         * recog.c: Likewise.
24834         * recog.h: Declare functions even when HAVE_cc0 is undefined.
24835         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
24836
24837 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24838
24839         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
24840         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
24841         * builtins.c (expand_builtin): Remove check if
24842         EH_RETURN_DATA_REGNO is defined.
24843         * df-scan.c (df_bb_refs_collect): Likewise.
24844         (df_get_exit_block_use_set): Likewise.
24845         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
24846         * ira-lives.c (process_bb_node_lives): Likewise.
24847         * lra-lives.c (process_bb_lives): Likewise.
24848
24849 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24850
24851         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
24852         FIRST_PSEUDO_REG): New.
24853         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
24854         (ARG_POINTER_REGNUM): Define to ARGP_REG.
24855         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
24856         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
24857         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
24858         (FIRST_INT_REG): New.
24859         (LAST_INT_REG): New.
24860         (FIRST_*_REG): Define using *_REG.
24861         (LAST_*_REG): Ditto.
24862         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
24863         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
24864         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
24865
24866 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24867
24868         * expmed.c: (synth_mult): Only assume overlapping
24869         shift with previous steps in alg_sub_t_m2 case.
24870
24871 2015-04-21  Richard Biener  <rguenther@suse.de>
24872
24873         PR tree-optimization/65650
24874         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
24875         transitions involving copies.
24876         (set_lattice_value): Adjust for copy lattice state.
24877         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
24878         if that doesn't dominate the merge point.
24879         (bit_value_unop): Adjust what we treat as varying mask.
24880         (bit_value_binop): Likewise.
24881         (bit_value_assume_aligned): Likewise.
24882         (evaluate_stmt): When we simplified to a SSA name record a copy
24883         instead of dropping to varying.
24884         (visit_assignment): Simplify.
24885
24886         * gimple-match.h (gimple_simplify): Add another callback.
24887         * gimple-fold.c (fold_stmt_1): Adjust caller.
24888         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
24889         for the 2nd callback.
24890         * gimple-match-head.c (gimple_simplify): Add a callback that is
24891         used to valueize the stmt operands and use it that way.
24892
24893 2015-04-21  Richard Biener  <rguenther@suse.de>
24894
24895         PR tree-optimization/65788
24896         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
24897
24898 2015-04-21  Richard Biener  <rguenther@suse.de>
24899
24900         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
24901         vec_construct cost by vec_stmt_cost.
24902
24903 2015-04-21  Richard Biener  <rguenther@suse.de>
24904
24905         * cfghooks.h (create_basic_block): Replace with two overloads
24906         for RTL and GIMPLE.
24907         (split_block): Likewise.
24908         * cfghooks.c (split_block): Rename to ...
24909         (split_block_1): ... this.
24910         (split_block): Add two type-safe overloads for RTL and GIMPLE.
24911         (split_block_after_labels): Call split_block_1.
24912         (create_basic_block): Rename to ...
24913         (create_basic_block_1): ... this.
24914         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
24915         (create_empty_bb): Call create_basic_block_1.
24916         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
24917         split_block_after_labels.
24918         * omp-low.c (expand_parallel_call): Likewise.
24919         (expand_omp_target): Likewise.
24920         (simd_clone_adjust): Likewise.
24921         * tree-chkp.c (chkp_get_entry_block): Likewise.
24922         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
24923         create_basic_block overload.
24924         (cgraph_node::expand_thunk): Likewise.
24925         * tree-cfg.c (make_blocks): Likewise.
24926         (handle_abnormal_edges): Likewise.
24927         * tree-inline.c (copy_bb): Likewise.
24928
24929 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24930
24931         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
24932         New pattern.
24933         (*xor_one_cmplsidi3_ze): Likewise.
24934
24935 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24936
24937         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
24938         use df_remove_problem rather than manually removing problems, leaving
24939         holes in df->problems_in_order[].
24940
24941 2015-04-21  Tom de Vries  <tom@codesourcery.com>
24942
24943         PR tree-optimization/65802
24944         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
24945
24946 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24947
24948         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
24949         Increase to 128.
24950         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
24951         at '.'.  Assert that there's enough space for everything.
24952
24953 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
24954
24955         PR tree-optimization/64950
24956         Revert:
24957         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
24958
24959         PR target/41089
24960         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
24961         as volatile.
24962
24963 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
24964
24965         PR rtl-optimization/64916
24966         * cfgcleanup.c (values_equal_p): New function.
24967         (can_replace_by): Use it.
24968
24969 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
24970
24971         PR c++/65801
24972         * doc/invoke.texi ([-Wnarrowing]): Update.
24973
24974 2015-04-20  Jeff Law  <law@redhat.com>
24975
24976         PR tree-optimization/65658
24977         * tree-ssa-threadupdate.c (redirection_block_p): Remove
24978         redundant test for GIMPLE_ASSIGN in last change.
24979
24980 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
24981
24982         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
24983         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
24984         (legitimize_tls_address): Ditto.
24985         (ix86_expand_move): Ditto.
24986         (ix86_expand_binary_operator): Remove reload_in_progress checks.
24987         (ix86_expand_unary_operator): Ditto.
24988         * config/i386/predicates.md (index_register_operand): Ditto.
24989
24990 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
24991
24992         * reorg.c (try_merge_delay_insns): Improve correctness checking
24993         for targets with multiple delay slots.
24994
24995 2015-04-20  Jeff Law  <law@redhat.com>
24996
24997         PR tree-optimization/65658
24998         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
24999         statements too.
25000
25001 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25002
25003         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
25004         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
25005         Delete.
25006
25007 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
25008
25009         PR debug/65807
25010         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
25011
25012 2015-04-20  Richard Biener  <rguenther@suse.de>
25013
25014         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
25015         * gimple-fold.c (gimple_build_valueize): New function.
25016         (gimple_build): Always use gimple_build_valueize as valueize hook.
25017
25018 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
25019
25020         PR target/64134
25021         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
25022         and overwrite variable parts if <= 1/2 the elements are variable.
25023
25024 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
25025
25026         PR rtl-optimization/65805
25027         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
25028         Don't use difference of offset and previous offset if
25029         update_sp_offset is non-zero.
25030         (eliminate_regs_in_insn): Ditto.
25031         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
25032         lra_eliminate_regs_1 call.
25033         * lra-constraints.c (get_equiv_with_elimination): Ditto.
25034
25035 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
25036
25037         * hash-table.h: Remove version of hash_table that stored value_type *.
25038         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
25039         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
25040         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
25041         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
25042         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
25043         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
25044         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
25045         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
25046         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
25047         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
25048         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
25049         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
25050         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
25051         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
25052         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
25053         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
25054
25055 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
25056             Jakub Jelinek  <jakub@redhat.com>
25057
25058         PR target/65787
25059         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
25060         subsequent SH_NONE operand does not overwrite an existing *special
25061         value.
25062         (adjust_extract): Handle case where a vec_extract operation is
25063         wrapped in a PARALLEL.
25064
25065 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25066
25067         PR target/65780
25068         * config/i386/i386.c (ix86_binds_local_p): Define only if
25069         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
25070
25071 2015-04-17  Jeff Law  <law@redhat.com>
25072
25073         PR tree-optimization/47679
25074         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
25075         * tree-ssa-scopedtables.c: New file.
25076         * tree-ssa-scopedtables.h: New file.
25077         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
25078         (const_and_copies): Change name/type.
25079         (record_const_or_copy): Move into tree-ssa-scopedtables.c
25080         (record_const_or_copy_1): Similarly.
25081         (restore_vars_to_original_value): Similarly.
25082         (pass_dominator::execute): Create and destroy const_and_copies table.
25083         (thread_across_edge): Update passing of const_and_copies.
25084         (record_temporary_equivalence): Use method calls rather than
25085         manipulating const_and_copies directly.
25086         (record_equality, cprop_into_successor_phis): Similarly.
25087         (dom_opt_dom_walker::before_dom_children): Similarly.
25088         (dom_opt_dom_walker::after_dom_children): Similarly.
25089         (eliminate_redundant_computations): Similarly.
25090         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
25091         (record_temporary_equivalence): Likewise.
25092         (invalidate_equivalences): Likewise.
25093         (record_temporary_equivalences_from_phis): Update due to type
25094         change of const_and_copies.  Use method calls rather than
25095         manipulating the stack directly.
25096         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
25097         (thread_through_normal_block, thread_across_edge): Likewise.
25098         (thread_across_edge): Likewise.
25099         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
25100         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
25101         of equiv_stack.
25102         (identify_jump_threads): Update due to type change of equiv_stack.
25103         (finalize_jump_threads): Delete the equiv_stack when complete.
25104
25105 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
25106
25107         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
25108         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
25109         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
25110
25111 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
25112
25113         PR target/65535
25114         * config.gcc: Exit with a comment when we do not have a major version
25115         number for the FreeBSD target.
25116
25117 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25118
25119         PR target/65689
25120         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
25121         maybe_allows_mem bitfields.
25122         (maybe_allows_none_start, maybe_allows_none_end,
25123         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
25124         maybe_allows_mem_end): New variables.
25125         (compute_maybe_allows): New function.
25126         (add_constraint): Use it to initialize maybe_allows_reg and
25127         maybe_allows_mem fields.
25128         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
25129         is_address constraints such that those that allow neither mem nor
25130         reg come first, then those that only allow reg but not mem, then
25131         those that only allow mem but not reg, then the rest.
25132         (write_allows_reg_mem_function): New function.
25133         (write_tm_preds_h): Call it.
25134         * stmt.c (parse_output_constraint, parse_input_constraint): Use
25135         the generated insn_extra_constraint_allows_reg_mem function
25136         instead of always setting *allows_reg = true; *allows_mem = true;
25137         for unknown extra constraints.
25138
25139 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
25140
25141         PR target/65780
25142         * output.h (default_binds_local_p_3): New.
25143         * varasm.c (default_binds_local_p_3): Make it public.  Take an
25144         argument to indicate if common symbol may be local.  If common
25145         symbol may be local, treat non-external variable as defined
25146         locally.
25147         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
25148         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
25149         * config/i386/i386.c (ix86_binds_local_p): New.
25150         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
25151         ix86_binds_local_p.
25152
25153 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25154
25155         PR debug/65771
25156         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
25157         trying mem_loc_descriptor on XEXP (rtl, 0).
25158
25159 2015-04-17  Martin Liska  <mliska@suse.cz>
25160
25161         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
25162         Release symbol_compare_collection.
25163         * ipa-reference.c: Add TODO that a vector should be released.
25164
25165 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
25166
25167         PR target/65296
25168         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
25169         to new AVR-LibC file layout (bug #44574).
25170         (*avrlibc_devicelib): Same.
25171         * config/avr/avr-mcus.def: Adjust comments.
25172         * config/avr/avr.opt (nodevicelib): Adjust help.
25173
25174 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
25175
25176         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
25177
25178 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
25179
25180         PR c++/64527
25181         * gimplify.c (gimplify_init_constructor): Always emit a
25182         side-effecting constructor.
25183
25184 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25185
25186         PR tree-optimization/64950
25187         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
25188         in cfun->curr_properties.
25189         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
25190         if we generate an IFN_VA_ARG.
25191         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
25192         function if PROP_gimple_lva is not set in src function.
25193
25194 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25195             Michael Matz  <matz@suse.de>
25196
25197         PR tree-optimization/64950
25198         * gimple-iterator.c (update_modified_stmts): Remove static.
25199         * gimple-iterator.h (update_modified_stmts): Declare.
25200         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
25201         (gimplify_va_arg_internal): New function.
25202         (gimplify_va_arg_expr): Use IFN_VA_ARG.
25203         * gimplify.h (gimplify_va_arg_internal): Declare.
25204         * internal-fn.c (expand_VA_ARG): New unreachable function.
25205         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
25206         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
25207         (expand_ifn_va_arg): New function.
25208         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
25209         (pass_stdarg::execute): Call expand_ifn_va_arg.
25210         (pass_data_lower_vaarg): New pass_data.
25211         (pass_lower_vaarg): New gimple_opt_pass.
25212         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
25213         (make_pass_lower_vaarg): New function.
25214         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
25215         properties_required field.
25216         * passes.def (all_passes): Add pass_lower_vaarg.
25217         * tree-pass.h (PROP_gimple_lva): Add define.
25218         (make_pass_lower_vaarg): Declare.
25219
25220 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25221
25222         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
25223         * calls.c (call_expr_flags): Same.
25224
25225 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25226
25227         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
25228         (pass_stdarg::execute): ... here.
25229
25230 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25231             Michael Matz  <matz@suse.de>
25232
25233         * tree-cfg.c (make_blocks_1): Factor out of ...
25234         (make_blocks): ... here.
25235         (make_edges_bb): Factor out of ...
25236         (make_edges): ... here.
25237         (gimple_find_sub_bbs): New function.
25238         * tree-cfg.h (gimple_find_sub_bbs): Declare.
25239
25240 2015-04-17  Tom de Vries  <tom@codesourcery.com>
25241
25242         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
25243
25244 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
25245
25246         * asan.c (set_sanitized_sections): New function.
25247         (section_sanitized_p): Ditto.
25248         (asan_protect_global): Optionally sanitize user-defined
25249         sections.
25250         * asan.h (set_sanitized_sections): Declare new function.
25251         * common.opt (fsanitize-sections): New option.
25252         * doc/invoke.texi (-fsanitize-sections): Document new option.
25253         * opts-global.c (handle_common_deferred_options): Handle new
25254         option.
25255
25256 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
25257
25258         PR debug/65771
25259         * dwarf2out.c (loc_list_from_tree): Return NULL
25260         for DEBUG_EXPR_DECL.
25261
25262 2015-04-17  Christian Bruel  <christian.bruel@st.com>
25263
25264         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
25265         same attributes.
25266
25267 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
25268
25269         * ira-color.c (setup_left_conflict_sizes_p): Do not process
25270         node itself when computing left conflict subnode size.
25271
25272 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25273
25274         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
25275         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
25276         *fop_<mode>_1_sse using enabled attribute.  Use
25277         register_mixssei387nonimm_operand operand 1 predicate. Change
25278         alternative 3 constraints from "x" to "v".
25279
25280 2015-04-16  Richard Biener  <rguenther@suse.de>
25281
25282         PR tree-optimization/65774
25283         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
25284         bit-value tracking on.
25285
25286 2015-04-16  Richard Biener  <rguenther@suse.de>
25287
25288         PR tree-optimization/64277
25289         * tree-vrp.c (check_array_ref): Fix anti-range handling,
25290         simplify upper bound handling.
25291         (search_for_addr_array): Simplify.
25292         (check_array_bounds): Handle ADDR_EXPRs here.
25293         (check_all_array_refs): Simplify.
25294
25295 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
25296
25297         * config/i386/i386.c (print_reg): Rewrite function.
25298
25299 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
25300
25301         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
25302         Invert the condition.
25303
25304 2015-04-16  Renlin Li  <renlin.li@arm.com>
25305
25306         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
25307         simplifications for UNSIGNED_FLOAT.
25308
25309 2015-04-16  Nick Clifton  <nickc@redhat.com>
25310
25311         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
25312         MUL_UNINIT.
25313         (enum rl78_cpu_type): New.
25314         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
25315         (umulhi3_shift_virt): Remove m constraint from operand 1.
25316         (umulqihi3_virt): Likewise.
25317         * config/rl78/rl78.c (rl78_option_override): Add code to process
25318         -mcpu and -mmul options.
25319         (rl78_alloc_physical_registers): Add code to handle divhi and
25320         divsi valloc attributes.
25321         (set_origin): Likewise.
25322         * config/rl78/rl78.h (RL78_MUL_G14): Define.
25323         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
25324         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
25325         __RL78_Gxx__.
25326         (ASM_SPEC): Pass -mcpu on to assembler.
25327         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
25328         (mulqi3_rl78): Likewise.
25329         (mulhi3_g13): Likewise.
25330         (mulhi3): Generate the G13 or G14 versions of the insn directly.
25331         (mulsi3): Likewise.
25332         (mulhi3_g14): Add clobbers of AX and BC.
25333         (mulsi3_g14): Likewise.
25334         (mulsi3_g13): Likewise.
25335         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
25336         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
25337         * config/rl78/rl78.opt (mmul): Initialise value to
25338         RL78_MUL_UNINIT.
25339         (mcpu): New option.
25340         (m13, m14, mrl78): New option aliases.
25341         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
25342         (MULTILIB_DIRNAMES): Add g13 and g14.
25343         * doc/invoke.texi: Document -mcpu and -mmul options.
25344
25345 2015-04-16  Richard Biener  <rguenther@suse.de>
25346
25347         * tree-ssa-ccp.c (likely_value): See if we have operands that
25348         are marked as never simulate again and return CONSTANT in this
25349         case.
25350         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
25351         not have any operands that will be simulated again as
25352         not being simulated again.
25353
25354 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
25355
25356         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
25357         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
25358         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
25359         attribute.
25360         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
25361         enabled attribute.
25362         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
25363         *float<SWI48:mode><MODEF:mode>2_sse.
25364         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
25365         enabled attribute.
25366         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
25367         enabled attribute.
25368
25369 2015-04-15  Tom de Vries  <tom@codesourcery.com>
25370
25371         PR other/65487
25372         * function.c (push_dummy_function): New function.
25373         (init_dummy_function_start): Use push_dummy_function.
25374         (pop_dummy_function): New function.  Factored out of ...
25375         (expand_dummy_function_end): ... here.
25376         * function.h (push_dummy_function, pop_dummy_function): Declare.
25377         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
25378         pop_dummy_function.
25379         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
25380
25381 2015-04-15  Jeff Law  <law@redhat.com>
25382
25383         PR tree-optimization/47679
25384         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
25385         need for forward declaration in upcoming changes.
25386         (record_conditions, record_edge_info): Likewise.
25387
25388         PR rtl-optimization/42522
25389         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
25390         SIGN_EXTRACT as a whole object rather than simplifying
25391         its operand.
25392
25393 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
25394
25395         PR ipa/65765
25396         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
25397         and GIMPLE_PREDICT use break instead of return true. For
25398         GIMPLE_EH_DISPATCH, compare dispatch region.
25399
25400 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
25401
25402         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
25403         details about the implementation.  Make clear preference for
25404         __atomic builtins.  Reduce possibility of future change.
25405
25406 2015-04-15  Nick Clifton  <nickc@redhat.com>
25407
25408         * config/rx/rx.opt (mallow-string-insns): New option.
25409         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
25410         builtin if string instructions are denied.
25411         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
25412         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
25413         appropriate.
25414         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
25415         * config/rx/rx.md (movstr): Enable pattern only if string
25416         instructions are allowed.
25417         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
25418         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
25419         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
25420         (MULTILIB_DIRNAMES): Add no-strings.
25421         * doc/invoke.texi: Document -mno-allow-string-insns.
25422
25423 2015-04-15  Alan Modra  <amodra@gmail.com>
25424
25425         PR target/65408
25426         PR target/58744
25427         PR middle-end/36043
25428         * calls.c (load_register_parameters): Don't load past end of
25429         mem unless suitably aligned.
25430
25431 2015-04-15  Nick Clifton  <nickc@redhat.com>
25432
25433         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
25434         decrement instruction as being frame related.
25435         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
25436         based addresses.
25437         If zero extending a function address enclose the operation in
25438         %code(...).
25439         (rl78_preferred_reload_class): New function.
25440         (TARGET_PREFERRED_RELOAD_CLASS): Define.
25441         * config/rl78/rl78.md: Remove useless constraints in expanders.
25442         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
25443         (mulhi3_rl78): Likewise.
25444         (mulhi3_g13): Likewise.
25445         (mulsi3_rl78): Likewise.
25446         (es_addr): Move to before the multiply patterns.
25447
25448 2015-04-15  Alan Modra  <amodra@gmail.com>
25449
25450         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
25451         and sequence_stack.  Add seq.
25452         (seq_stack): Delete.
25453         * function.c (prepare_function_start): Don't access x_last_insn.
25454         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
25455         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
25456         * emit_rtl.c (start_sequence, push_topmost_sequence,
25457         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
25458         sequence accessors.
25459         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
25460         remove_insn): Likewise.  Simplify.
25461         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
25462         and pop_topmost_sequence.
25463         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
25464         debug insns.
25465         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
25466
25467 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
25468
25469         PR target/65729
25470         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
25471         the assertiion.
25472
25473 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25474
25475         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
25476         (LEGACY_INT_REGNO_P): Ditto.
25477         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
25478         (ANY_MASK_REG_P): Remove.
25479         (BND_REG_P): Rename from ANY_BND_REG_P.
25480         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
25481         legacy integer registers.  Do not handle MMX_REG_P in a special way.
25482         Merge 64byte and 32byte SSE handling.
25483
25484 2015-04-14  Nick Clifton  <nickc@redhat.com>
25485
25486         * expr.c (expand_assignment): Force an address offset computation
25487         into a register before changing its mode.
25488         (expand_expr_real_1): Likewise.
25489
25490 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
25491
25492         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
25493         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
25494         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
25495         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
25496         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
25497         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
25498         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
25499         and __aarch64_vget_lane_any.
25500
25501 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
25502
25503         PR rtl-optimization/65761
25504         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
25505         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
25506
25507 2015-04-14  Richard Biener  <rguenther@suse.de>
25508
25509         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
25510         (graphite_can_represent_scev): Use POINTER_TYPE_P.
25511
25512 2015-04-14  Richard Biener  <rguenther@suse.de>
25513
25514         PR tree-optimization/65758
25515         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
25516         against -1.
25517         (ccp_lattice_meet): Likewise.
25518         (bit_value_unop): Likewise.
25519         (bit_value_binop): Likewise.
25520         (bit_value_assume_aligned): Likewise.
25521
25522 2015-04-14  Christian Bruel  <christian.bruel@st.com>
25523
25524         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
25525         function.
25526
25527 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
25528
25529         PR tree-optimization/63387
25530         * match.pd ((x unord x) | (y unord y) -> (x unord y),
25531         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
25532
25533 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
25534
25535         * config/i386/predicates.md (any_QIreg_operand): Rename from
25536         q_regs_operand.  Do not process subregs.
25537         (QIreg_operand): Use QI_REGNO_P predicate.
25538         (ext_QIreg_operand): Ditto.
25539         (ext_register_operand): Ditto.
25540         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
25541         (AND splitters): Ditto.
25542         (AND with -65536 splitter): Add SWI48 mode for operand 0.
25543         (AND with -256 splitter): Use any_QIreg_operand predicate and
25544         SWI248 mode for operand 0.
25545         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
25546         mode for operand 0.
25547         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
25548
25549 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
25550
25551         * doc/plugins.texi: Rewrite first introductory paragraph.
25552
25553 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25554
25555         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
25556         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
25557
25558 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25559
25560         * ipa-profie.c (ipa_profile): Check number of parameters
25561         and possible polymorphic call targets before
25562         devirtualizing.
25563
25564 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
25565
25566         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
25567         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
25568
25569 2015-04-13  Richard Biener  <rguenther@suse.de>
25570
25571         PR tree-optimization/65204
25572         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
25573         takens for bit-CCP.
25574
25575 2015-04-13  Richard Biener  <rguenther@suse.de>
25576
25577         PR target/65660
25578         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
25579         and cond_not_taken_branch_cost to 4 and 2.
25580         (bdver2_cost): Likewise.
25581         (bdver3_cost): Likewise.
25582         (bdver4_cost): Likewise.
25583
25584 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25585
25586         * hash-table.h (hash_table constructor): Add mem stats.
25587         (alloc_entries): Likewise.
25588
25589 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25590
25591         * ipa-cp.c (ipcp_driver): Relase prev_edge.
25592         * passes.c (execute_one_pass): Only add transform if pass has one.
25593
25594 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
25595
25596         * config/i386/i386.c (ix86_option_override_internal): Don't set
25597         -fprefetch-loop-arrays if optimizing for size.
25598
25599 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
25600             Gerald Pfeifer  <gerald@pfeifer.com>
25601
25602         * doc/contrib.texi (Contributors): Add Martin Jambor and
25603         Michael Matz.
25604
25605 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
25606
25607         * BASE-VER: Set to 6.0.0.
25608
25609         PR tree-optimization/65747
25610         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
25611         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
25612
25613 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25614
25615         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
25616         sentence.  Improve grammar.
25617
25618 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
25619
25620         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
25621
25622 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25623
25624         PR ipa/65743
25625         * ipa-inline-transform.c (speculation_removed): Remove static var.
25626         (check_speculations): New function.
25627         (clone_inlined_nodes): Do not check spculations.
25628         (inline_call): Call check_speculations.
25629         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
25630         consider non-invariants.
25631
25632 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
25633             Martin Liska  <mliska@suse.cz>
25634
25635         PR ipa/65722
25636         * ipa-icf.c (sem_item::compare_cgraph_references): function and
25637         variable can not match.
25638         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
25639         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
25640
25641 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
25642
25643         PR tree-optimization/65735
25644         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
25645         Remove visited_phis argument, add visited_bbs, avoid recursing into the
25646         same bb rather than just into the same phi node.
25647         (thread_through_normal_block): Adjust caller.
25648
25649 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25650
25651         * doc/contrib.texi (Contributors): Add Ira Rosen.
25652
25653 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
25654
25655         * gcov.c (find_source): Fix miswording in error message.
25656         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
25657         (ix86_expand_sse_comi_round): Fix typo in error message.
25658
25659 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
25660
25661         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
25662
25663 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
25664
25665         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
25666
25667 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25668
25669         PR target/65710
25670         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
25671         Print bad_spills_num and insn_pseudos_num.
25672
25673 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25674
25675         PR target/65694
25676         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
25677         when creating +1 values for SImode.
25678
25679 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
25680
25681         PR target/65729
25682         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
25683         assert.
25684
25685 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
25686             Iain Sandoe  <iain@codesourcery.com>
25687
25688         PR target/65351
25689         * configure: Regenerate.
25690
25691 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25692
25693         PR target/65671
25694         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
25695
25696 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
25697
25698         * doc/contrib.texi (Contributors): Add John Marino.
25699
25700 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25701
25702         PR tree-optimization/65709
25703         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
25704         TREE_TYPE (TREE_TYPE (t)).
25705
25706 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
25707
25708         PR target/65710
25709         * lra-int.h (lra_bad_spill_regno_start): New.
25710         * lra.c (lra_bad_spill_regno_start): New.
25711         (lra): Set up lra_bad_spill_regno_start.  Set up
25712         lra_constraint_new_regno_start unconditionally.
25713         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
25714         spill preferences.
25715
25716 2015-04-09  Marek Polacek  <polacek@redhat.com>
25717             Jakub Jelinek  <jakub@redhat.com>
25718
25719         PR middle-end/65554
25720         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
25721         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
25722         of STRIP_NOPS.
25723
25724 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
25725
25726         PR rtl-optimization/65693
25727         * combine.c (is_parallel_of_n_reg_sets): Move outside of
25728         #ifndef HAVE_cc0.
25729
25730 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
25731
25732         PR target/65296
25733         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
25734         device specs file if "device-specs%s" didn't resolve to a path.
25735
25736 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
25737
25738         PR target/65676
25739         * config/i386/i386.c (fixup_modeless_constant): New.
25740         (ix86_expand_args_builtin): Fixup modeless constant operand.
25741         (ix86_expand_round_builtin): Ditto.
25742         (ix86_expand_special_args_builtin): Ditto.
25743         (ix86_expand_builtin): Ditto.
25744
25745 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
25746
25747         PR target/65693
25748         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
25749         any pow2 integer in between 2 and 0x80000000U inclusive.
25750
25751 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
25752
25753         PR rtl-optimization/65693
25754         * combine.c (is_parallel_of_n_reg_sets): Change first argument
25755         from an rtx_insn * to an rtx.
25756         (try_combine): Adjust both callers.  Use it once more.
25757
25758 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25759
25760         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
25761         (chkp_make_static_const_bounds): Search existing
25762         symbol by assembler name.  Use make_decl_one_only.
25763         (chkp_get_zero_bounds_var): Remove node search which
25764         is now performed in chkp_make_static_const_bounds.
25765         (chkp_get_none_bounds_var): Likewise.
25766
25767 2015-04-08  Michael Witten  <mfwitten@gmail.com>
25768
25769         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
25770         to an example.
25771
25772 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25773
25774         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
25775
25776 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25777
25778         * doc/extend.texi (__sync Builtins): Fix grammar.
25779
25780 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25781
25782         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
25783
25784 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25785
25786         * varasm.c (emit_local): Move definition of align.
25787
25788 2015-04-08  Julian Brown  <julian@codesourcery.com>
25789
25790         * config/nvptx/mkoffload.c (process): Support variable mapping.
25791
25792 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
25793
25794         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
25795         alpha_links **.
25796         (alpha_write_one_linkage): Correct typo.
25797
25798 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25799
25800         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
25801
25802 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
25803
25804         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
25805
25806 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
25807
25808         * tree-chkp.h (chkp_insert_retbnd_call): New.
25809         * tree-chkp.c (chkp_insert_retbnd_call): New.
25810         * ipa-split.c (insert_bndret_call_after): Remove.
25811         (split_function): Use chkp_insert_retbnd_call.
25812         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
25813         bounds for instrumented functions.
25814
25815 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
25816
25817         PR ipa/65540
25818         * calls.c (initialize_argument_information): When producing tail
25819         call also turn SSA_NAMES passed by references to original PARM_DECLs
25820
25821 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
25822
25823         PR target/65648
25824         * lra-remat.c (do_remat): Process input and non-input insn
25825         registers separately.
25826
25827 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25828
25829         PR debug/65678
25830         * valtrack.c (debug_lowpart_subreg): New function.
25831         (dead_debug_insert_temp): Use it.
25832
25833         PR middle-end/65680
25834         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
25835         into signed HOST_WIDE_INT the same as negative bit_offset.
25836
25837 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
25838
25839         * ipa-comdats.c (ipa_comdats): Visit all thunks
25840         to set proper comdat group.
25841
25842 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25843
25844         PR target/65489
25845         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
25846         on constants for NEON VSTRUCT modes.
25847
25848 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
25849             Iain Sandoe  <iain@codesourcery.com>
25850
25851         PR target/65351
25852         * configure: Regenerate.
25853
25854 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
25855
25856         PR target/65614
25857         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
25858         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
25859         that LFD is used to load double constants instead of LFS.  Add
25860         defaults for all costs structures.  Add comments for missing
25861         initialization fields.
25862         (size32_cost): Likewise.
25863         (size64_cost): Likewise.
25864         (rs64a_cost): Likewise.
25865         (mpccore_cost): Likewise.
25866         (ppc403_cost): Likewise.
25867         (ppc405_cost): Likewise.
25868         (ppc440_cost): Likewise.
25869         (ppc476_cost): Likewise.
25870         (ppc601_cost): Likewise.
25871         (ppc603_cost): Likewise.
25872         (ppc604_cost): Likewise.
25873         (ppc604e_cost): Likewise.
25874         (ppc620_cost): Likewise.
25875         (ppc630_cost): Likewise.
25876         (ppccell_cost): Likewise.
25877         (ppc750_cost): Likewise.
25878         (ppc7450_cost): Likewise.
25879         (ppc8540_cost): Likewise.
25880         (ppce300c2c3_cost): Likewise.
25881         (ppce500mc_cost): Likewise.
25882         (ppce500mc64_cost): Likewise.
25883         (ppce5500_cost): Likewise.
25884         (ppce6500_cost): Likewise.
25885         (titan_cost): Likewise.
25886         (power4_cost): Likewise.
25887         (power6_cost): Likewise.
25888         (power7_cost): Likewise.
25889         (power8_cost): Likewise.
25890         (ppca2_cost): Likewise.
25891         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
25892
25893         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
25894         instead of XXLOR to copy SFmode to clear out dirty bits created
25895         when SFmode denormals are generated.
25896         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
25897         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
25898
25899 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
25900
25901         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
25902         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
25903         * config/aarch64/aarch64-tune.md: Regenerate.
25904
25905 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
25906
25907         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
25908         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
25909         * config/arm/arm-cores.def (exynos-m1): New core.
25910         * config/arm/arm-tune.md: Regenerate.
25911         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
25912         * config/arm/bpabi.h: Likewise.
25913
25914 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
25915
25916         * ipa-cp (set_single_call_flag): Remove too
25917         restrictive assert.
25918
25919 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
25920
25921         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
25922         GOMP_offload_unregister from the destructor.
25923
25924 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
25925
25926         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
25927         flags for instrumentation thunk.
25928         (chkp_produce_thunks): Likewise.
25929
25930 2015-04-05  Martin Liska  <mliska@suse.cz>
25931
25932         PR ipa/65665
25933         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
25934         has computed data structure.
25935         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
25936
25937 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
25938
25939         * invoke.texi (inline-unit-growth): Increase growth to 20%
25940         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
25941
25942 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
25943
25944         PR target/65647
25945         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
25946         value checking.
25947         (lra_rematerialization_iter): New.
25948         * lra.c (lra): Initialize lra_rematerialization_iter.
25949         Stop updating lra_constraint_new_regno_start after switching of
25950         inheritance and rematerialization.
25951         * lra-remat.c (lra_rematerialization_iter): New.
25952         (lra_remat): Add printing pass iteration.  Do rematerialization
25953         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
25954
25955 2015-04-04  Richard Biener  <rguenther@suse.de>
25956
25957         PR tree-optimization/64909
25958         PR tree-optimization/65660
25959         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
25960         to take a cost vector for scalar iteration cost.
25961         (vect_get_single_scalar_iteration_cost): Likewise.
25962         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
25963         Compute the scalar iteration cost into a cost vector.
25964         (vect_get_known_peeling_cost): Use the scalar cost vector to
25965         account for the cost of the peeled iterations.
25966         (vect_estimate_min_profitable_iters): Likewise.
25967         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
25968         Likewise.
25969
25970 2015-04-04  Alan Modra  <amodra@gmail.com>
25971
25972         PR target/65576
25973         PR target/65240
25974         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
25975         0.0 constant unless TARGET_VSX.
25976         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
25977         alternative.
25978
25979 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25980
25981         PR ipa/65654
25982         * ipa-inline-transform.c (inline_call): Skip sanity check to work
25983         around the ICE
25984
25985 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25986
25987         PR ipa/65655
25988         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
25989         speculative indirect edges to avoid ordering issue.
25990
25991 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
25992
25993         PR ipa/65076
25994         * ipa-inline.c (edge_badness): Add combined size to the denominator.
25995
25996 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
25997
25998         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
25999         TYPE_ARTIFICIAL on the .omp_data* types.
26000
26001 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26002
26003         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
26004         instrumentation thunks.
26005
26006 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26007
26008         * config/i386/i386.c (ix86_expand_call): Avoid nested
26009         PARALLEL in returned call value.
26010
26011 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26012
26013         * lto-cgraph.c (input_cgraph_1): Always link instrumented
26014         assembler name with original one.
26015
26016 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26017
26018         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
26019
26020 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26021
26022         Revert parts of r216820.
26023         * config/i386/i386.md (movqi_internal): Correct type calculation
26024         for alternatives 3 and 5.
26025
26026 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
26027
26028         PR preprocessor/61977
26029         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
26030         predefine __vector/__bool/__pixel macros nor context sensitive
26031         macros for CLK_ASM.
26032         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
26033
26034 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
26035
26036         * config/pa/pa.c (pa_output_move_double): Directly handle register
26037         indexed memory operand.  Simplify handling of scaled register indexed
26038         memory operands.
26039
26040 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
26041
26042         PR driver/65444
26043         * config/i386/linux-common.h (MPX_SPEC): New.
26044         (CHKP_SPEC): Add MPX_SPEC.
26045         * doc/invoke.texi (-fcheck-pointer-boudns): Document
26046         possible issues with '-z bndplt' support in linker.
26047
26048 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
26049
26050         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
26051         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
26052         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
26053         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
26054         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
26055
26056 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
26057
26058         * config/i386/sync.md (UNSPEC_MOVA): Remove.
26059         (atomic_load<mode>): Change operand 0 predicate to
26060         nonimmediate_operand and fix up the destination when needed.
26061         Use UNSPEC_LDA.
26062         (atomic_loaddi_fpu): Use UNSPEC_LDA.
26063         (atomic_store<mode>): Change operand 1 predicate to
26064         nonimmendate_operand and move the source to register when needed.
26065         Use UNSPEC_STA.
26066         (atomic_store<mode>_1): Use UNSPEC_STA.
26067         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
26068         Fix moves from memory operand.  Use UNSPEC_STA.
26069
26070 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26071
26072         * expmed.c (strict_volatile_bitfield_p): Check that the access will
26073         not cross a MODESIZE boundary.
26074         (store_bit_field, extract_bit_field): Added assertions in the
26075         strict volatile bitfields code path.
26076
26077 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
26078
26079         PR target/65624
26080         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
26081         Increase args array size by one to avoid buffer overflow.
26082
26083 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26084
26085         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
26086         split_part.
26087         * ipa-inline.c (edge_badness): Add wrapper penalty.
26088         (sum_callers): Move up.
26089         (inline_small_functions): Set single_caller.
26090         * ipa-inline.h (inline_summary): Add single_caller.
26091         * ipa-split.c (split_function): Set split_part.
26092         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
26093         * cgraph.h (cgraph_node): Add split_part.
26094
26095 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
26096
26097         PR target/58945
26098         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
26099         Do not split operands 0 and operands 2 to halfmode.
26100         (atomic_compare_and_swap<mode>): Update for
26101         atomic_compare_and_swap<dwi>_doubleword changes.
26102
26103 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
26104
26105         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
26106         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
26107         no caching is done.
26108
26109 2015-03-31  Martin Liska  <mliska@suse.cz>
26110
26111         PR ipa/65557
26112         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
26113         has already filled up function summary.
26114         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
26115
26116 2015-03-31  Richard Biener  <rguenther@suse.de>
26117
26118         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
26119         of types.
26120
26121 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
26122
26123         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
26124         nested functions.
26125         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
26126         (s390_asm_output_function_label): Adapt to new signature of
26127         s390_function_num_hotpatch_hw
26128         Optimise the code generating assembler output.
26129         Add comments to assembler file.
26130
26131 2015-03-31  Richard Biener  <rguenther@suse.de>
26132
26133         PR middle-end/65626
26134         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
26135         of the noreturn call so it is last and cleanup_control_flow_bb
26136         can do the CFG part.
26137
26138 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
26139
26140         PR target/65531
26141         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
26142         same_comdat_group for external symbols.
26143         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
26144         infinite same_comdat_group traversal loop.
26145
26146 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
26147
26148         PR plugins/61176
26149         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
26150         automatically to $headers.
26151
26152 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
26153
26154         PR ipa/65610
26155         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
26156         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
26157         function.
26158         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
26159         Use it.
26160         * ipa-prop.c (param_type_may_change_p): Likewise.
26161         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
26162         (remove_unused_scope_block_p): Add in_ctor_dtor_block
26163         argument.  Before inlining, preserve
26164         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
26165         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
26166         recursive calls.
26167         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
26168
26169 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26170
26171         PR ipa/65076
26172         * ipa-inline.c (edge_badness): Base denominator on callee's
26173         grwoth squared.
26174
26175 2015-03-27  Martin Jambor  <mjambor@suse.cz>
26176
26177         PR ipa/65478
26178         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
26179         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
26180         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
26181         node_calling_single_call.
26182         * ipa-cp.c (count_callers): New function.
26183         (set_single_call_flag): Likewise.
26184         (initialize_node_lattices): Count callers and set single_flag_call if
26185         necessary.
26186         (incorporate_penalties): New function.
26187         (good_cloning_opportunity_p): Use it, dump new flags.
26188         (propagate_constants_topo): Set node_within_scc flag if appropriate.
26189         * doc/invoke.texi (ipa-cp-recursion-penalty,
26190         ipa-cp-single-call-pentalty): Document.
26191
26192 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26193
26194         PR ipa/65588
26195         * symtab.c (symtab_node::get_partitioning_class): Register vars
26196         are duplicated.
26197         * varpool.c (symbol_table::output_variables) Do not assemble unefined
26198         decls for non-symbols.
26199
26200 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
26201
26202         PR target/65248
26203         * output.h (default_binds_local_p_2): New.
26204         * varasm.c (default_binds_local_p_2): Renamed to ...
26205         (default_binds_local_p_3): This.  Don't return true on protected
26206         data symbol if protected data may be external.
26207         (default_binds_local_p): Use default_binds_local_p_3.
26208         (default_binds_local_p_1): Likewise.
26209         (default_binds_local_p_2): New.
26210         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
26211         default_binds_local_p_2 if TARGET_MACHO is undefined.
26212
26213 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
26214
26215         PR target/65593
26216         * config/i386/i386.c (legitimize_pic_address): If base
26217         is SYMBOL_REF or LABEL_REF using %rip addressing, force
26218         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
26219
26220 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26221
26222         PR target/65531
26223         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
26224         comdat groups.
26225
26226 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
26227
26228         PR ipa/65600
26229         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
26230         of optimized out indirect call.
26231         (redirect_to_unreachable): Always build symbol table node for
26232         BUILT_IN_UNREACHABLE
26233
26234 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
26235
26236         PR target/65407
26237         * ira-costs.c (record_reg_classes): Process all constraint string
26238         containing 0-9.
26239
26240 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
26241
26242         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
26243         memory_operand.
26244
26245         PR target/65052
26246         * config/c6x/constraints.md (S3): New constraint.
26247         * config/c6x/c6x.md (real_jump): Use it.
26248
26249 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26250
26251         PR middle-end/65595
26252         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
26253         do redirection if the call is not optimized out.
26254
26255 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
26256
26257         PR target/65495
26258         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
26259         (fchkp-check-incomplete-type): Add LTO.
26260         (fchkp-zero-input-bounds-for-main): Likewise.
26261         (fchkp-first-field-has-own-bounds): Likewise.
26262         (fchkp-narrow-bounds): Likewise.
26263         (fchkp-narrow-to-innermost-array): Likewise.
26264         (fchkp-use-static-bounds): Likewise.
26265         (fchkp-use-static-const-bounds): Likewise.
26266         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26267
26268 2015-03-27  Marek Polacek  <polacek@redhat.com>
26269
26270         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
26271
26272 2015-03-27  Marek Polacek  <polacek@redhat.com>
26273
26274         PR sanitizer/65583
26275         * ubsan.c (ubsan_create_edge): New function.
26276         (instrument_bool_enum_load): Call it.
26277         (instrument_nonnull_arg): Likewise.
26278         (instrument_nonnull_return): Likewise.
26279         (instrument_object_size): Likewise.
26280
26281 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26282
26283         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
26284         auto_vec.
26285
26286 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26287
26288         PR lto/65536
26289         * lto-streamer.h (class lto_location_cache): New.
26290         (struct data_in): Add location_cache.
26291         (lto_input_location): Update prototype.
26292         (stream_input_location_now): New.
26293         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
26294         pointer to location.
26295         (stream_input_location): Update.
26296         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
26297         (warn_odr): Apply location cache before warning.
26298         (lto_input_location): Update prototype.
26299         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
26300         Use stream_input_location_now.
26301         * lto-streamer-in.c (lto_location_cache::current_cache): New static
26302         variable.
26303         (lto_location_cache::cmp_loc): New function.
26304         (lto_location_cache::apply_location_cache): New function.
26305         (lto_location_cache::accept_location_cache): New function.
26306         (lto_location_cache::revert_location_cache): New function.
26307         (lto_location_cache::input_location): New function.
26308         (lto_input_location): Do location caching.
26309         (stream_input_location_now): New function.
26310         (input_eh_region, input_struct_function_base): Use
26311         stream_input_location_now.
26312         (lto_data_in_create): use new.
26313         (lto_data_in_delete): Use delete.
26314         * tree-streamer-in.c (unpack_ts_block_value_fields,
26315         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
26316         lto_input_ts_exp_tree_pointers): Update for cached location api.
26317
26318 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26319
26320         PR ipa/65076
26321         * passes.def: Add pass_nothrow.
26322         * ipa-pure-const.c: (pass_data_nothrow): New.
26323         (pass_nothrow): New.
26324         (pass_nothrow::execute): New.
26325         (make_pass_nothrow): New.
26326         * tree-pass.h (make_pass_nothrow): Declare.
26327
26328 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26329
26330         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
26331         edge to change by speculation resolution or redirection.
26332         (edge_set_predicate): Likewise.
26333         (inline_summary_t::duplicate): Likewise.
26334         (remap_edge_summaries): Likewise.
26335
26336 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26337
26338         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
26339         New macros.
26340         (can_inline_edge_p): Relax option matching for always inline functions.
26341
26342 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
26343
26344         PR target/65561
26345         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
26346         Check operand 4 and operand 0 for equality.
26347         (avx512f_vextract<shuffletype>32x4_1_maskm):
26348         Check operand 6 and operand 0 for equality.
26349         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
26350         for equality.
26351         (vec_extract_hi_<mode>_maskm): Ditto.
26352
26353 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26354
26355         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
26356         dead calls back to live.
26357         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
26358         cross check to ...
26359         (cgraph_node::verify_node): ... here; verify only callee edges,
26360         not caller.
26361         * cif-code.def (CILK_SPAWN): New code.
26362
26363 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
26364
26365         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
26366         (edge_set_predicate): Use it to mark unreachable edges.
26367         (inline_summary_t::duplicate): Remove unnecesary code.
26368         (remap_edge_summaries): Likewise.
26369         (dump_inline_summary): Report contains_cilk_spawn.
26370         (compute_inline_parameters): Compute contains_cilk_spawn.
26371         (inline_read_section, inline_write_summary): Stream
26372         contains_cilk_spawn.
26373         * ipa-inline.c (can_inline_edge_p): Do not touch
26374         DECL_STRUCT_FUNCTION that may not be available;
26375         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
26376         remove check for callee_fun->can_throw_non_call_exceptions and
26377         replace it by optimization attribute check; check for flag_exceptions.
26378         * ipa-inline-transform.c (inline_call): Maintain
26379         DECL_FUNCTION_PERSONALITY
26380         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
26381
26382 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26383
26384         PR tree-optimization/65551
26385         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
26386         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
26387
26388 2015-03-26  Richard Biener  <rguenther@suse.de>
26389
26390         PR middle-end/65555
26391         * tree-cfg.c (verify_gimple_call): Do not require a call to
26392         have no LHS if it wasn't recognized as control altering yet.
26393
26394 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
26395
26396         PR tree-optimization/64715
26397         * passes.def: Add another instance of pass_object_sizes before ccp1.
26398         * tree-object-size.c (pass_object_sizes::execute): In
26399         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
26400         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
26401         __bos result and the computed constant.  Remove redundant
26402         checks, obsoleted by gimple_call_builtin_p test.
26403
26404         * var-tracking.c (variable_tracking_main_1): Don't track
26405         variables for targetm.no_register_allocation targets.
26406
26407 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
26408
26409         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
26410         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
26411
26412 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
26413
26414         PR target/65569
26415         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
26416         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
26417         0.0 is correctly setup.
26418         (extenddftf2_internal): Likewise.
26419
26420 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
26421
26422         PR tree-optimization/65177
26423         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
26424         (bb_in_bbs): New.
26425         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
26426         edges not adjacent on the path to the original code.
26427
26428 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
26429
26430         PR bootstrap/65537
26431         * doc/install.texi (Building a native compiler): Document new
26432         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
26433         configuration assumes that the host supports the linker plugin.
26434
26435 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
26436
26437         PR target/65508
26438         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
26439         chain for generated call.
26440
26441 2015-03-25  Richard Biener  <rguenther@suse.de>
26442
26443         * passes.c (pass_manager::execute_early_local_passes): Guard
26444         execution of pass_chkp_instrumentation_passes with
26445         flag_check_pointer_bounds.
26446         (pass_chkp_instrumentation_passes::gate): Likewise.
26447
26448 2015-03-25  Martin Liska  <mliska@suse.cz>
26449
26450         PR tree-optimization/65538
26451         * symbol-summary.h (function_summary::~function_summary):
26452         Relese memory for allocated summaries.
26453         (function_summary::release): New function.
26454
26455 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
26456
26457         PR lto/65515
26458         * lto-streamer-out.c (DFS::worklist): New struct.
26459         (DFS::worklist_vec): New data member.
26460         (DFS::next_dfs_num): Remove.
26461         (DFS::DFS): Rewritten using worklist instead of recursion,
26462         using most of code from DFS::DFS_write_tree.
26463         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
26464         pass it to DFS_write_tree calls.
26465         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
26466         quick initial checks push it into worklist_vec and return.
26467
26468 2015-03-25  Richard Biener  <rguenther@suse.de>
26469
26470         PR middle-end/65519
26471         * genmatch.c (expr::gen_transform): Re-write to avoid
26472         using gimple_build.
26473
26474 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26475
26476         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
26477
26478 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
26479
26480         * config/arm/arm.opt (print_tune_info): New option.
26481         * config/arm/arm.c (arm_print_tune_info): New function.
26482         (arm_file_start): Call arm_print_tune_info.
26483         * config/arm/arm-protos.h (struct tune_params): Add comment.
26484         * doc/invoke.texi (@item -mprint-tune-info): New item.
26485         (-mtune): mention it in ARM Option Summary.
26486
26487 2015-03-25  DJ Delorie  <dj@redhat.com>
26488
26489         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
26490         correct clause.
26491
26492 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
26493             Martin Liska  <mliska@suse.cz>
26494
26495         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
26496         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
26497         (sem_item::add_type): New function.
26498         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
26499         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
26500         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
26501         (sem_function::equals_wpa): Fix typo.
26502         * ipa-icf.h (sem_item::add_type): New function.
26503         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
26504         order.
26505
26506 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
26507
26508         PR tree-optimization/65533
26509         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
26510         with swapped operands, call vect_free_slp_tree on
26511         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
26512         vector.
26513
26514 2015-03-24  Richard Biener  <rguenther@suse.de>
26515
26516         PR middle-end/65517
26517         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
26518         for fixup if necessary.
26519
26520 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
26521
26522         * doc/extend.texi (Function Attributes): Add @cindex entries
26523         for all attributes and regularize their format.  Delete text
26524         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
26525         information about "eightbit_data", "tiny_data", and "model"
26526         variable attributes to the Variable Attributes section.  Fix
26527         some obvious typos and copy-editing issues.
26528         (Variable Attributes, Type Attributes): Likewise add/fix
26529         @cindex entries for all attributes.
26530
26531 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26532
26533         PR target/65523
26534         * tree-chkp.c (chkp_build_returned_bound): Ignore
26535         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
26536
26537 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
26538
26539         PR target/65505
26540         * config/sh/predicates.md (simple_mem_operand,
26541         displacement_mem_operand): Add test for reg.
26542         (short_displacement_mem_operand): Test for displacement_mem_operand
26543         before invoking sh_disp_addr_displacement.
26544         * config/sh/constraints.md (Sdd, Sra): Simplify.
26545         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
26546         Remove redundant displacement_mem_operand tests.
26547
26548 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
26549
26550         PR target/65296
26551         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
26552         the same -mmcu=MCU more than once.
26553
26554 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
26555
26556         PR bootstrap/65522
26557         * ipa-devirt.c: Remove duplicate demangle.h include.
26558
26559         PR target/65504
26560         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
26561         on the pseudo.
26562         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
26563         REG_POINTER on *destptr after adjusting it for prologue size.
26564
26565         PR ipa/65521
26566         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
26567         ultimate_alias_target ()->order ints instead of
26568         ultimate_alias_target () pointers.
26569
26570 2015-03-23  Richard Biener  <rguenther@suse.de>
26571
26572         PR tree-optimization/65518
26573         * tree-vect-stmts.c (vectorizable_load): Reject single-element
26574         interleaving cases we generate absymal code for.
26575
26576 2015-03-23  Richard Biener  <rguenther@suse.de>
26577
26578         PR tree-optimization/65494
26579         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
26580         matches here.
26581         (vect_analyze_slp_instance): But do that here, always and once.
26582
26583 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26584
26585         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
26586         adding T or multiplying by T+1 and subracting T.
26587
26588 2015-03-22  Jeff Law  <law@redhat.com>
26589
26590         PR rtl-optimization/64317
26591         * Makefile.in (OBJS): Add gcse-common.c
26592         * gcse.c: Include gcse-common.h
26593         (struct modify_pair_s): Move structure definition to gcse-common.h
26594         (compute_transp): Move function to gcse-common.c.
26595         (canon_list_insert): Similarly.
26596         (record_last_mem_set_info): Break out some code and put it into
26597         gcse-common.c.  Call into the new common code.
26598         (compute_local_properties): Pass additional arguments to compute_transp.
26599         * postreload-gcse.c: Include gcse-common.h and df.h
26600         (modify_mem_list_set, blocks_with_calls): New variables.
26601         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
26602         (get_bb_avail_insn): Pass in the expression index too.
26603         (alloc_mem): Allocate memory for the new bitmaps and lists.
26604         (free_mem): Free memory for the new bitmaps and lists.
26605         (insert_expr_in_table): Record a bitmap index for each entry we
26606         add to the table.
26607         (record_last_mem_set_info): Call into common code in gcse-common.c.
26608         (get_bb_avail_insn): If no available insn was found in the requested
26609         BB.  If BB has a single predecessor, see if the expression is
26610         transparent in BB and available in that single predecessor.
26611         (compute_expr_transp): New wrapper for compute_transp.
26612         (eliminate_partially_redundant_load): Pass expression's bitmap_index
26613         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
26614         (gcse_after_reload_main): If there are elements in the hash table,
26615         then compute transparency for all the elements in the hash table.
26616         * gcse-common.h: New file.
26617         * gcse-common.c: New file.
26618
26619 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
26620
26621         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
26622         as an adjective.
26623         (System Headers): Likewise.
26624         (Ifdef): Likewise.
26625         (Traditional macros): Likewise.
26626         (Invocation): Likewise.
26627         (Option Index): Likewise.
26628         * doc/cppopts.texi (-M): Likewise.
26629         (-finput-charset): Likewise.
26630         (--help): Likewise.
26631         * doc.invoke.texi (AVR Options): Likewise.
26632         (V850 Options): Likewise.
26633
26634 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
26635
26636         PR ipa/65475
26637         * ipa-devirt.c: Include demangle.h
26638         (odr_type_d): Add field rtti_broken.
26639         (odr_subtypes_equivalent_p): Do not require name to match.
26640         (compare_virtual_tables): Fix typo; if type already has ODR violation,
26641         bypass the tests; be ready for function referneces in vtables that are
26642         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
26643         (warn_odr): Give up for nameless types.
26644         (warn_types_mismatch): Report mismatch in mangled names;
26645         report mismatch in anonymous namespaces; look into component types to
26646         give useful error; report when mismatch is dragged in from other ODR
26647         type.
26648         (odr_types_equivalent_p): Match types for being polymorphic; avoid
26649         duplicated diagnostics.
26650         (add_type_duplicate): Reorder checks so more informative ones come
26651         first; fix typo; do not output "the extra base is defined here" when
26652         we did not warn.
26653         (BINFO_N_BASE_BINFOS): Relax sanity check.
26654
26655 2015-03-22  Martin Liska  <mliska@suse.cz>
26656             Jakub Jelinek  <jakub@redhat.com>
26657
26658         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
26659         masks that can potentially include a builtin.
26660         (ix86_add_new_builtins): Introduce fast filter for isa values
26661         that cannot trigger builtin inclusion.
26662
26663 2015-03-22  Martin Liska  <mliska@suse.cz>
26664
26665         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
26666         (sem_item::update_hash_by_local_refs): Likewise.
26667         (sem_variable::get_hash): Empty line is fixed.
26668         (sem_item_optimizer::execute): Include adding of hash references.
26669         (sem_item_optimizer::update_hash_by_addr_refs): New function.
26670         (sem_item_optimizer::build_hash_based_classes): Use local hash.
26671         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
26672         (sem_item::update_hash_by_local_refs): Likewise.
26673
26674 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26675
26676         PR ipa/65502
26677         * ipa-comdats.c (enqueue_references): Walk through thunks.
26678         (ipa_comdats): Likewise.
26679         (set_comdat_group_1): New function.
26680
26681 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26682
26683         PR ipa/65475
26684         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
26685         non-polymorphic
26686
26687 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
26688             Gerald Pfeifer  <gerald@pfeifer.com>
26689
26690         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
26691
26692 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
26693             Sandra Loosemore  <sandra@codesourcery.com>
26694
26695         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
26696         function parameter declaration.
26697         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
26698         Update arguments to nios2_adjust_call_address().
26699         (sibcall_internal): Rename from *sibcall.
26700         (sibcall_value_internal): Rename from *sibcall_value.
26701         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
26702         (nios2_large_got_address): Add target temp reg parameter.
26703         (nios2_got_address): Adjust call to nios2_large_got_address, add
26704         force_reg around it.
26705         (nios2_load_pic_address): Add target temp reg parameter, replace call
26706         to nios2_got_address with corresponding code.
26707         (nios2_legitimize_constant_address): Update call to
26708         nios2_load_pic_address.
26709         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
26710         to use temp reg for PIC loading purposes.
26711         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
26712         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
26713         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
26714
26715 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26716
26717         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
26718         usage of "the @option{...}".
26719         (-Wopenmp-simd): Likewise.
26720         (-fsanitize-recover): Likewise.
26721         (-fsanitize-undefined-trap-on-error): Likewise.
26722         (-flto): Likewise.
26723         (tracer-dynamic-coverage-feedback): Likewise.
26724         (reorder-block-duplicate-feedback): Likewise.
26725         (loop-unroll-jam-size): Likewise.
26726         (-B): Likewise.
26727         (-I-): Likewise.
26728         (-mabs=legacy): Likewise.
26729         (-mupper-regs-df): Likewise.
26730         (-mupper-regs-sf): Likewise.
26731         (-mpointers-to-nested-functions): Likewise.
26732
26733 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26734
26735         * doc/extend.texi (Cilk Plus Builtins): Add markup.
26736
26737 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
26738
26739         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
26740         additional index entries and cross-references.
26741         (-fchkp-check-incomplete-type): Likewise.
26742         (-fchkp-first-field-has-own-bounds): Likewise.
26743         (-fchkp-narrow-to-innermost-array): Likewise.
26744         (-fchkp-use-fast-string-functions): Likewise.
26745         (-fchkp-use-nochk-string-functions): Likewise.
26746         (-fchkp-use-static-const-bounds): Likewise.
26747         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
26748         (-fchkp-instrument-marked-only): Likewise.
26749         (-fchkp-use-wrappers): Likewise.
26750         (-static-libmpx): Likewise.
26751         (-static-libmpxwrappers): Likewise.
26752         * doc/extend.texi (bnd_legacy): Likewise.
26753         (bnd_instrument): Likewise.
26754         (bnd_variable_size): Likewise.
26755         (Pointer Bounds Checker builtins): Likewise.
26756
26757 2015-03-21  Tom de Vries  <tom@codesourcery.com>
26758
26759         PR tree-optimization/65458
26760         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
26761         * cgraph.h (cgraph_node): Add parallelized_function field.
26762         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
26763         (input_overwrite_node): Read parallelized_function field.
26764         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
26765         parallelized_function on cgraph_node for child_fn.
26766         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
26767         Remove include of gt-tree-parloops.h.
26768         (parallelized_functions): Remove static variable.
26769         (parallelized_function_p): Rewrite using parallelized_function field of
26770         cgraph_node.
26771         (create_loop_fn): Remove adding to parallelized_functions.
26772         * Makefile.in (GTFILES): Remove tree-parloops.c
26773
26774 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
26775
26776         PR rtl-optimization/64366
26777         * lra.c (lra_update_insn_regno_info): Consider regs in
26778         CALL_INSN_FUNCTION_USAGE memory.
26779
26780 2015-03-20  Richard Biener  <rguenther@suse.de>
26781
26782         PR middle-end/64715
26783         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
26784         for type comparison and gcc_checking_assert.
26785         (chrec_fold_plus_poly_poly): Likewise.
26786         (chrec_fold_multiply_poly_poly): Likewise.
26787         (chrec_convert_1): Likewise.
26788         * gimplify.c (gimplify_expr): Remove premature folding of
26789         &X + CST to &MEM[&X, CST].
26790
26791 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
26792
26793         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
26794         already is final.
26795         (ipa_inline): Recompute inline_failed codes.
26796         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
26797         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
26798         CIF_FINAL_ERROR.
26799
26800 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
26801
26802         PR rtl-optimization/60851
26803         * recog.c (constrain_operands): Accept a pseudo register before reload
26804         for LRA enabled targets.
26805
26806 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
26807
26808         PR target/65240
26809         * config/rs6000/predicates.md (easy_fp_constant): Remove special
26810         -ffast-math handling that kept non-0 constants live in the RTL
26811         until reload.  Remove logic testing the number of instructions it
26812         took to create a constant in a GPR that was never used, due to a
26813         test for soft-float earlier.
26814         (memory_fp_constant): Delete, no longer used.
26815
26816         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
26817         alternatives for loading non-0 constants into GPRs for hard
26818         floating point that is no longer needed due to changes in
26819         easy_fp_constant.  Add support for loading 0.0 into GPRs.
26820         (mov<mode>_hardfloat32): Likewise.
26821         (mov<mode>_hardfloat64): Likewise.
26822         (mov<mode>_64bit_dm): Likewise.
26823         (movtd_64bit_nodm): Likewise.
26824         (pre-reload move FP constant define_split): Delete define_split,
26825         since it is no longer used.
26826         (extenddftf2_internal): Remove GHF constraints that are not valid
26827         for extenddftf2.
26828
26829 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
26830
26831         PR rtl-optimization/63491
26832         * lra-constraints.c (check_and_process_move): Use src instead of
26833         sreg.  Remove some dead code.
26834
26835 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
26836
26837         PR ipa/65380
26838         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
26839         (sem_variable::merge): Likewise.
26840
26841 2015-03-19  Martin Liska  <mliska@suse.cz>
26842
26843         PR ipa/65465
26844         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
26845         all fields of cgraph_thunk_info.
26846
26847 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
26848
26849         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
26850         clone instrumented thunks.
26851
26852 2015-03-19  Richard Biener  <rguenther@suse.de>
26853
26854         Revert
26855         2015-03-10  Richard Biener  <rguenther@suse.de>
26856
26857         PR middle-end/63155
26858         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
26859         * tree-ssa-coalesce.c: Include timevar.h.
26860         (attempt_coalesce): Handle graph being NULL.
26861         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
26862         Split out abnormal coalescing to ...
26863         (perform_abnormal_coalescing): ... this function.
26864         (coalesce_ssa_name): Perform abnormal coalescing without computing
26865         live/conflict.
26866         (verify_ssa_coalescing_worker): New function.
26867         (verify_ssa_coalescing): Likewise.
26868
26869 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26870             Jakub Jelinek  <jakub@redhat.com>
26871
26872         PR sanitizer/65400
26873         * tsan.c (instrument_gimple): Clear tail call flag on
26874         calls.
26875
26876 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
26877
26878         PR sanitizer/65400
26879         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
26880         call in the return bb.
26881         (find_split_points): Add RETURN_BB argument, don't call
26882         find_return_bb.
26883         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
26884         if true append TSAN_FUNC_EXIT internal call after the call to
26885         the split off function.
26886         (execute_split_functions): Call find_return_bb here.
26887         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
26888         Adjust find_split_points and split_function calls.
26889
26890 2015-03-18  DJ Delorie  <dj@redhat.com>
26891
26892         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
26893         (iorqi3_virt): Likewise.
26894
26895 2015-03-18  Tom de Vries  <tom@codesourcery.com>
26896
26897         * tree-parloops.c (parallelize_loops): Make static.
26898         * tree-parloops.h (parallelize_loops): Remove extern declaration.
26899
26900 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
26901
26902         PR middle-end/64491
26903         Revert:
26904         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
26905
26906         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
26907         condition would be removed due to undefined behaviour.
26908
26909 2015-03-18  Martin Liska  <mliska@suse.cz>
26910
26911         PR ipa/65432
26912         * cgraph.c (cgraph_node::get_create): Remove unnecessary
26913         xstrdup_for_dump wrapper.
26914         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
26915         sem_item::name.
26916         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
26917         with xstrdup_for_dump.
26918         (sem_variable::equals): Likewise.
26919         (sem_item_optimizer::read_section): Use symtab_node::name instead of
26920         sem_item::name.
26921         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
26922         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
26923         symtab_node::asm_name with xstrdup_for_dump.
26924         (congruence_class::dump): Use symtab_node::name instead of
26925         sem_item::name.
26926         * ipa-icf.h (symtab_node::name): Remove.
26927         (symtab_node::asm_name): Likewise.
26928
26929 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
26930
26931         PR tree-optimization/65450
26932         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
26933         function.
26934         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
26935         it instead of duplicate_ssa_name_ptr_info.
26936
26937         PR target/65222
26938         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
26939
26940 2015-03-18  Richard Biener  <rguenther@suse.de>
26941
26942         * tree-data-ref.h (struct access_matrix): Remove.
26943         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
26944         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
26945         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
26946         (am_vector_index_for_loop): Likewise.
26947         (struct data_reference): Remove access_matrix member.
26948         (DR_ACCESS_MATRIX): Remove.
26949         (lambda_vector_new): Add comment.
26950         (lambda_matrix_new): Use XOBNEWVEC.
26951
26952 2015-03-18  Richard Biener  <rguenther@suse.de>
26953
26954         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
26955         (pass_ch::execute): Cleanup the CFG only if we did sth.
26956         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
26957
26958 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26959
26960         * expmed.c (synth_mult): Use std::swap instead of manually
26961         swapping algorithms.
26962
26963 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
26964
26965         PR target/65078
26966         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
26967
26968 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
26969
26970         PR target/65296
26971         * config/avr/avr.opt (-nodevicelib): New option.
26972         * doc/invoke.texi (AVR Options): Document it.
26973         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
26974         libgcc.a, libc.a, libm.a.
26975         * config/avr/specs.h: Same.
26976         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
26977         which don't (directly) depend on the device.  Print more help.
26978         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
26979         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
26980         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
26981         case of an error.
26982         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
26983         for specs file name.
26984         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
26985         * config/avr/avr-mcus.def: Adjust initializers and comments.
26986
26987 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
26988
26989         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
26990         DECL_ONE_ONLY to check if decl is one only.
26991         * ipa-split.c (consider_split): Limit splitt of one only functions.
26992
26993 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
26994
26995         PR tree-optimization/65427
26996         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
26997         functions.
26998         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
26999
27000 2015-03-16  Marek Polacek  <polacek@redhat.com>
27001
27002         * cgraph.h (add_new_static_var): Remove declaration.
27003         * varpool.c (add_new_static_var): Remove function.
27004
27005 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
27006
27007         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
27008         instead of vec<tree> * with vec_alloc and release for args.
27009         Adjust all users.
27010
27011         PR middle-end/65431
27012         * omp-low.c (delete_omp_context): Only splay_tree_delete
27013         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
27014         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
27015
27016 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
27017
27018         PR sanitizer/64820
27019         * cfgexpand.c (align_base): New function.
27020         (alloc_stack_frame_space): Call it.
27021         (expand_stack_vars): Align prev_frame to be sure
27022         data->asan_vec elements aligned properly.
27023
27024 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
27025
27026         PR middle-end/65409
27027         * expr.c (store_field): Do not do a direct block copy if the source is
27028         a PARALLEL with BLKmode.
27029
27030 2015-03-16  Tom de Vries  <tom@codesourcery.com>
27031
27032         PR middle-end/65414
27033         Revert:
27034         2015-03-12  Tom de Vries  <tom@codesourcery.com>
27035
27036         PR rtl-optimization/64895
27037         * lra-lives.c (check_pseudos_live_through_calls): Use
27038         actual_call_used_reg_set instead of call_used_reg_set, if available.
27039
27040 2015-03-16  Alan Modra  <amodra@gmail.com>
27041
27042         PR target/63150
27043         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
27044         Modify Z->r bswapdi splitter to use dest in place of scratch.
27045         In r->Z and Z->r bswapdi splitter rename word_high, word_low
27046         to word1, word2 and rearrange logic to suit.
27047         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
27048         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
27049         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
27050         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
27051         early clobber.
27052
27053 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
27054
27055         PR tree-optimization/65369
27056         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
27057         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
27058         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
27059
27060         PR tree-optimization/65418
27061         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
27062         are casts in the first PLUS_EXPR operand, ensure tbias and
27063         *totallowp are in the inner type.
27064
27065         PR rtl-optimization/65401
27066         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
27067         argument.  If true, adjust_address_nv of x with big-endian
27068         correction for the mode widening to GET_MODE (y).
27069         (make_field_assignment): Don't do MEM mode widening here.
27070         Use MEM_P instead of GET_CODE == MEM.
27071
27072 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
27073
27074         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
27075         the external decls.
27076
27077 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27078
27079         PR target/64600
27080         * config/arm/arm.c (arm_gen_constant, AND case): Use
27081         ARM_SIGN_EXTEND when constructing AND mask.
27082
27083 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27084
27085         * graph.c (print_graph_cfg): Make function names visible and append
27086         parenthesis to it.  Also make groups of basic blocks belonging to the
27087         same function visible.
27088
27089 2015-03-12  Richard Biener  <rguenther@suse.de>
27090
27091         PR middle-end/44563
27092         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
27093         to avoid quadratic behavior with inline expansion splitting blocks.
27094         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
27095         with the successor if the predecessor will be merged with it.
27096         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
27097         entry block with its successor.
27098
27099 2015-03-13  Richard Biener  <rguenther@suse.de>
27100
27101         PR middle-end/44563
27102         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
27103         (cleanup_tree_cfg_1): Do not call it.
27104         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
27105         (fixup_noreturn_call): Mark the stmt as control altering.
27106         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
27107         here.
27108         (pass_data_fixup_cfg): Produce a dump file.
27109         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
27110         (need_noreturn_fixup): New global.
27111         (pass_dominator::execute): Fixup queued noreturn calls.
27112         (optimize_stmt): Queue calls that became noreturn for fixup.
27113         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
27114         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
27115         (el_to_fixup): New global.
27116         (eliminate_dom_walker::before_dom_childre): Queue calls that
27117         became noreturn for fixup.
27118         (eliminate): Fixup queued noreturn calls.
27119         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
27120         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
27121         (substitute_and_fold_dom_walker::before_dom_children): Queue
27122         alls that became noreturn for fixup.
27123         (substitute_and_fold): Fixup queued noreturn calls.
27124
27125 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
27126
27127         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
27128         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
27129         are building; for methods check ODR type of class they belong to if
27130         they may lead to a polymorphic call.
27131         (sem_function::compare_polymorphic_p): Be bit smarter about testing
27132         when function may lead to a polymorphic call.
27133         (sem_function::compare_type_list): Remove.
27134         (sem_variable::equals): Update use of compatible_types_p.
27135         (sem_variable::parse_tree_refs): Remove.
27136         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
27137         cdtor.
27138         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
27139         matching here.
27140         (func_checker::compatible_polymorphic_types_p): Break out from ...
27141         (unc_checker::compatible_types_p): ... here.
27142         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
27143         Declare.
27144         (unc_checker::compatible_types_p): Update.
27145         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
27146         Remove.
27147
27148 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27149
27150         PR rtl-optimization/65235
27151         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
27152         When first element of vec_concat is const_int, calculate its size
27153         using second element.
27154
27155 2015-03-12  Richard Biener  <rguenther@suse.de>
27156
27157         PR middle-end/65270
27158         * fold-const.c (operand_equal_p): Fix ordering of resetting
27159         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
27160
27161 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
27162
27163         * config/s390/s390.c (s390_reorg): Move code to output nops after label
27164         to s390_reorg ().
27165         (s390_asm_output_function_label): Likewise.
27166         * config/s390/s390.c (s390_asm_output_function_label):
27167         Fix function label alignment with -mhtopatch.
27168         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
27169         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
27170         ("nop_2_byte"): New define_insn.
27171         ("nop_4_byte"): Likewise.
27172         ("nop_6_byte"): Likewise.
27173         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
27174         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
27175
27176 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27177
27178         PR target/65103
27179         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
27180         register.
27181
27182 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
27183
27184         PR target/65044
27185         * toplev.c (process_options): Restrict Pointer Bounds Checker
27186         usage with Address Sanitizer.
27187
27188 2015-03-12  Richard Biener  <rguenther@suse.de>
27189
27190         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
27191         to split on.
27192         * omp-low.c (expand_omp_taskreg): Split block before removing
27193         the stmt.
27194         (expand_omp_target): Likewise.
27195         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
27196         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
27197         stmt to split_block.
27198
27199 2015-03-12  Tom de Vries  <tom@codesourcery.com>
27200
27201         PR rtl-optimization/64895
27202         * lra-lives.c (check_pseudos_live_through_calls): Use
27203         actual_call_used_reg_set instead of call_used_reg_set, if available.
27204
27205 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27206
27207         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
27208         (cgraph_node::remove): Likewise.
27209         (cgraph_node::get_untransformed_body): Likewise.
27210         * varpool.c (varpool_node::remove): Likewise.
27211         (varpool_node::get_constructor): Add sanity check.
27212
27213 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
27214
27215         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
27216         old GCC versions.
27217         (-fabi-compat-version): Likewise.
27218         (-ffriend-injection): Likewise.
27219         (-Wdeclaration-after-statement): Likewise.
27220         (-fomit-frame-pointer): Likewise.
27221         (-ftree-coalesce-inlined-vars): Likewise.
27222         (-fvisibility=): Likewise.
27223         * doc/extend.texi (Typeof): Likewise.
27224         (Zero Length): Likewise.
27225         (Escaped Newlines): Likewise.
27226         (Compound Literals): Likewise.
27227         (Function Attributes): Likewise.
27228         (Label Attributes): Likewise.
27229         (Type Attributes): Likewise.
27230         (Function Names): Likewise.
27231         (Other Builtins): Likewise.
27232         (Function Specific Option Pragmas): Likewise.
27233         (C++ Interface): Likewise.
27234
27235 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
27236
27237         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
27238
27239 2015-03-11  Marek Polacek  <polacek@redhat.com>
27240
27241         PR tree-optimization/65388
27242         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
27243
27244 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27245
27246         PR target/65296
27247         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
27248         * configure: Regenerate.
27249         * config.in: Regenerate.
27250         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
27251         [-mn-flash]: Document it.
27252         [__AVR_ARCH__]: Document avrtiny.
27253
27254         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
27255         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
27256         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
27257
27258 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27259
27260         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
27261
27262 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
27263
27264         PR target/65242
27265         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
27266         allow reloads of PLUS in floating point/VSX registers.
27267
27268 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
27269
27270         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
27271         crypto_sha256_fast.
27272         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
27273
27274 2015-03-11  Richard Biener  <rguenther@suse.de>
27275
27276         PR tree-optimization/65310
27277         * tree-sra.c (build_ref_for_offset): Also preserve larger
27278         alignment.
27279
27280 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
27281
27282         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
27283
27284 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27285
27286         PR target/65368
27287         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
27288         new define_expand.
27289         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
27290
27291 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27292
27293         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
27294         (sem_function::equals_wpa): ... here.
27295
27296 2015-03-10  Marek Polacek  <polacek@redhat.com>
27297             Jakub Jelinek  <jakub@redhat.com>
27298
27299         PR sanitizer/65367
27300         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
27301         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
27302         separately.
27303
27304 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27305
27306         PR target/65286
27307         * config/rs6000/t-linux: For powerpc64* target set
27308         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
27309
27310 2015-03-10  Richard Biener  <rguenther@suse.de>
27311
27312         PR middle-end/44563
27313         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
27314         for redirect_all_calls.
27315
27316 2015-03-10  Marek Polacek  <polacek@redhat.com>
27317
27318         * gdbinit.in (pcfun): Define and document.
27319
27320 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
27321
27322         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
27323         of libgomp-plugin.h.
27324         (find_target_compiler): Support a case when the path to gcc is
27325         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
27326         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
27327         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
27328         libgomp-plugin.h.
27329         (main): Use GCC_INSTALL_NAME as target_driver_name.
27330         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
27331         define.
27332         (mkoffload.o): Remove obsolete include path and defines.
27333         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
27334
27335 2015-03-10  Richard Biener  <rguenther@suse.de>
27336
27337         PR middle-end/63155
27338         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
27339         * tree-ssa-coalesce.c: Include timevar.h.
27340         (attempt_coalesce): Handle graph being NULL.
27341         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
27342         Split out abnormal coalescing to ...
27343         (perform_abnormal_coalescing): ... this function.
27344         (coalesce_ssa_name): Perform abnormal coalescing without computing
27345         live/conflict.
27346         (verify_ssa_coalescing_worker): New function.
27347         (verify_ssa_coalescing): Likewise.
27348
27349 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
27350
27351         PR target/65296
27352         * config.gcc (extra_options) [avr]: Remove.
27353         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
27354         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
27355         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
27356
27357         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
27358         (-mmcu=): Add Var and MissingArgError properties.
27359         (-march=): Remove.
27360         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
27361         * config/avr/t-multilib: Regenerate.
27362         * config/avr/specs.h: New file.
27363         * config/avr/driver-avr.c: New file.
27364         * config/avr/genopt.sh: Remove file.
27365         * config/avr/avr-tables.opt: Remove file.
27366         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
27367         * config/avr/avr-c.c: Same.
27368         * avr-arch.h: Same.
27369         (avr_current_device): Remove proto.
27370         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
27371         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
27372         (EXTRA_SPEC_FUNCTIONS): Define.
27373         (avr_devicespecs_file): New specs function proto.
27374         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
27375         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
27376         (avr_current_device): Remove definition and usage.
27377         (avr_set_core_architecture): New static function.
27378         (avr_option_override): Use it.
27379         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
27380         (mcu_name): New static array.
27381         (comparator, avr_archs_str, avr_mcus_str): New static functions.
27382         (avr_inform_devices, avr_inform_core_architectures): New functions.
27383         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
27384         (avrlibc.h) [WITH_AVRLIBC]: Include.
27385         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
27386         (print_mcu): Rewrite from scratch.
27387         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
27388         Forward to avr-specific specs defined in device-specs file.
27389         * config/avr/t-avr (driver-avr.o): New rule.
27390         (avr-devices.o): Depend on avr-arch.h.
27391         (avr-mcus): No more depend on avr-tables.opt.
27392         (avr-tables.opt): Remove rule.
27393         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
27394
27395 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27396
27397         * c-family/c.opt (fchkp-use-wrappers): New.
27398         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
27399         (chkp_wrap_function): New.
27400         (chkp_build_instrumented_fndecl): Support wrapped
27401         functions.
27402         * doc/invoke.texi (-fcheck-pointer-bounds): New.
27403         (-fchkp-check-incomplete-type): New.
27404         (-fchkp-first-field-has-own-bounds): New.
27405         (-fchkp-narrow-bounds): New.
27406         (-fchkp-narrow-to-innermost-array): New.
27407         (-fchkp-optimize): New.
27408         (-fchkp-use-fast-string-functions): New.
27409         (-fchkp-use-nochk-string-functions): New.
27410         (-fchkp-use-static-bounds): New.
27411         (-fchkp-use-static-const-bounds): New.
27412         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
27413         (-fchkp-check-read): New.
27414         (-fchkp-check-write): New.
27415         (-fchkp-store-bounds): New.
27416         (-fchkp-instrument-calls): New.
27417         (-fchkp-instrument-marked-only): New.
27418         (-fchkp-use-wrappers): New.
27419         (-static-libmpx): New.
27420         (-static-libmpxwrappers): New.
27421
27422 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27423
27424         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
27425         (CHKP_SPEC): Add wrappers library.
27426         * c-family/c.opt (static-libmpxwrappers): New.
27427
27428 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
27429
27430         * config/i386/linux-common.h (LIBMPX_LIBS): New.
27431         (LIBMPX_SPEC): New.
27432         (CHKP_SPEC): New.
27433         * gcc.c (CHKP_SPEC): New.
27434         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
27435         * c-family/c.opt (static-libmpx): New.
27436
27437 2015-03-10  Richard Biener  <rguenther@suse.de>
27438
27439         PR middle-end/44563
27440         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
27441         for compare_type.
27442         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
27443         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
27444         (cgraph_add_edge_to_call_site_hash): Likewise.
27445         (cgraph_node::get_edge): Likewise.
27446         (cgraph_edge::set_call_stmt): Likewise.
27447         (cgraph_edge::remove_caller): Likewise.
27448
27449 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
27450
27451         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
27452         (callee_saved_gpr_regs_size): ... this.
27453         (callee_saved_regs_first_regno): Rename to ...
27454         (callee_saved_first_gpr_regno): ... this.
27455         (callee_saved_regs_last_regno) Rename to ...
27456         (callee_saved_last_gpr_regno): ... this.
27457         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
27458         variables.
27459         (nds32_initial_elimination_offset): Likewise.
27460         (nds32_expand_prologue): Likewise.
27461         (nds32_expand_epilogue): Likewise.
27462         (nds32_expand_prologue_v3push): Likewise.
27463         (nds32_expand_epilogue_v3pop): Likewise.
27464         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
27465         Adjust renamed variables.
27466         (nds32_output_stack_pop): Likewise.
27467
27468 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27469
27470         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
27471         code in comment.
27472
27473 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
27474
27475         PR rtl-optimization/65321
27476         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
27477         than shift mode.
27478         * var-tracking.c (use_narrower_mode): Likewise.
27479
27480 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
27481
27482         PR tree-optimization/65355
27483         * varasm.c (notice_global_symbol): Do not produce RTL.
27484         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
27485         anchor.
27486         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
27487         check for section anchors.
27488
27489 2015-03-10  Alan Modra  <amodra@gmail.com>
27490
27491         PR target/65286
27492         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
27493         to be single-arch by default.  Set cpu_is_64bit for powerpc64
27494         given --with-cpu=native.
27495         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
27496         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
27497         and powerpc64le.
27498         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
27499         rs6000_isa_flags rather than TARGET_64BIT.
27500
27501 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
27502             Kaz Kojima  <kkojima@gcc.gnu.org>
27503
27504         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
27505
27506 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
27507
27508         PR lto/65361
27509         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
27510         on a TREE_BINFO, instead use BINFO_TYPE.
27511
27512 2015-03-09  Richard Biener  <rguenther@suse.de>
27513
27514         PR middle-end/65270
27515         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
27516         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
27517         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
27518         of that.  When comparing dereferences compare alignment.
27519         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
27520
27521 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27522
27523         * ipa-inline-analysis.c (check_callers): Check
27524         node->can_remove_if_no_direct_calls_and_refs_p.
27525         (growth_likely_positive): Reorganize to call
27526         can_remove_if_no_direct_calls_p later.
27527         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
27528         will_be_removed_from_program_if_no_direct_calls_p): Add
27529         will_inline parameter.
27530         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
27531         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27532         Handle inliner case correctly.
27533
27534 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27535
27536         PR tree-optimization/63743
27537         * cfgexpand.c (reorder_operands): Also reorder if only second operand
27538         had its definition forwarded by TER.
27539
27540 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
27541
27542         PR lto/65316
27543         * ipa-utils.h (types_odr_comparable): Add strict argument.
27544         * ipa-devirt.c: Fix whitespace;
27545         (odr_hasher): Remove.
27546         (odr_name_hasher, odr_vtable_hasher): New hashers.
27547         (can_be_name_hashed_p): New predicate.
27548         (hash_type_name): remove.
27549         (hash_odr_name): New.
27550         (odr_name_hasher::hash): new.
27551         (can_be_vtable_hashed_p): New.
27552         (hash_odr_vtable): New.
27553         (odr_vtable_hasher::hash): New.
27554         (types_same_for_odr): Add strict parameter.
27555         (types_odr_comparable): Likewise.
27556         (odr_name_hasher::equal): New.
27557         (odr_vtable_hasher::equal): New.
27558         (odr_name_hasher::remove): New.
27559         (odr_hash_type): Change to hash_table<odr_name_hasher>.
27560         (odr_vtable_hash_type): New.
27561         (odr_vtable_hash): New.
27562         (odr_subtypes_equivalent_p): Do strict comparsion.
27563         (add_type_duplicate): Merge type names; cleanup; avoid type
27564         duplicates.
27565         (register_odr_type): Initialize vtable hash.
27566         (build_type_inheritance_graph): Likewise
27567         (get_odr_type): Reorg to use two hashes.
27568         (dump_possible_polymorphic_call_targets): Move sanity check after debug
27569         output.
27570         (ipa_devirt): Dump type_inheritance_graph.
27571         (types_same_for_odr): Add strict mode.
27572
27573 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27574
27575         PR ipa/65334
27576         * cgraph.h (symtab_node): Add definition_alignment,
27577         can_increase_alignment_p and increase_alignment.
27578         * symtab.c (symtab_node::can_increase_alignment_p,
27579         increase_alignment_1, symtab_node::increase_alignment,
27580         symtab_node::definition_alignment): New.
27581         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
27582         can_increase_alignment_p.
27583         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
27584         * tree-vect-stmts.c (ensure_base_align): Likewise.
27585         * varasm.c (function_section_1): Use definition_alignment.
27586         (assemble_start_function): Likewise.
27587         (emit_local): likewise.
27588         (build_constant_desc): Likewsie.
27589         (output_constant_def_contents): Likewise.
27590         (place_block_symbol): Likewise.
27591         (output_object_block): Likewise.
27592
27593 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27594
27595         PR ipa/65316
27596         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
27597         when outputting debug.
27598
27599 2015-03-07  Marek Polacek  <polacek@redhat.com>
27600             Martin Uecker  <uecker@eecs.berkeley.edu>
27601
27602         PR sanitizer/65280
27603         * doc/invoke.texi: Update description of -fsanitize=bounds.
27604
27605 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
27606
27607         * tree-ssa-phiopt.c (neg_replacement): Remove.
27608         (tree_ssa_phiopt_worker): Remove negate optimization.
27609
27610 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27611
27612         PR ipa/65302
27613         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
27614
27615 2015-03-06  Richard Biener  <rguenther@suse.de>
27616
27617         PR middle-end/64928
27618         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
27619         and liveout_obstack members.
27620         (calculate_live_on_exit): Remove.
27621         (calculate_live_ranges): Change declaration.
27622         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
27623         (new_tree_live_info): Adjust.
27624         (calculate_live_ranges): Delete livein when not wanted.
27625         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
27626         Deal with partly deleted live info.
27627         (loe_visit_block): Remove temporary bitmap by using
27628         bitmap_ior_and_compl_into.
27629         (live_worklist): Adjust accordingly.
27630         (calculate_live_on_exit): Make static.
27631         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
27632         we do not need livein.
27633
27634 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
27635
27636         * real.c (real_from_string): Fix typo in assertion.
27637
27638 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
27639
27640         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
27641         the patch.
27642
27643 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
27644
27645         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
27646
27647 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
27648
27649         PR target/64342
27650         * lra-assigns.c (find_hard_regno_for): Rename to
27651         find_hard_regno_for_1.  Add a new parameter.
27652         (find_hard_regno_for): New function using find_hard_regno_for_1.
27653
27654 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
27655
27656         PR rtl-optimization/65067
27657         * expmed.c (store_bit_field, extract_bit_field): Reworked the
27658         strict volatile bitfield handling.
27659
27660 2015-03-05  Martin Liska  <mliska@suse.cz>
27661
27662         PR ipa/65318
27663         * ipa-icf.c (sem_variable::equals): Compare variables types.
27664
27665 2015-03-05  Richard Henderson  <rth@redhat.com>
27666
27667         PR target/65121
27668         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
27669         correctly check weak symbol binding.
27670
27671 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
27672
27673         PR middle-end/65315
27674         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
27675         needed alignment.
27676
27677 2015-03-05  Martin Liska  <mliska@suse.cz>
27678
27679         * ipa-inline.c (inline_small_functions): Set default value to
27680         prevent warning during bootstrap.
27681         * tree.h: Add pragma guard that ignores false positives during
27682         bootstrap.
27683
27684 2015-03-05  Richard Biener  <rguenther@suse.de>
27685
27686         PR tree-optimization/65310
27687         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
27688         Properly preserve alignment of the base of the access.
27689
27690 2015-03-05  Richard Biener  <rguenther@suse.de>
27691
27692         PR ipa/65270
27693         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
27694         Compare dependence info.
27695
27696 2015-03-05  Richard Biener  <rguenther@suse.de>
27697
27698         PR middle-end/65233
27699         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
27700         tree-into-ssa.h.
27701         (walk_ssa_copies): Revert last chage.  Instead do not walk
27702         SSA names registered for SSA update.
27703
27704 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27705
27706         PR ipa/65270
27707         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
27708         vtable references for their containing type.
27709         (sem_function::equals_wpa): Compare TYPE_RESTRICT
27710         and type attributes.
27711
27712 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
27713
27714         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
27715         before negating it.
27716         * stor-layout.c (finalize_record_size): Revert latest change.
27717
27718 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
27719
27720         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
27721
27722 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27723
27724         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
27725         for correct comdat handling.
27726         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
27727         Likewise.
27728         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
27729         (used_from_object_file_p_worker): Remove.
27730         (cgraph_node::only_called_directly_or_alised): Add
27731         used_from_object_file_p.
27732         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
27733         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
27734         can_remove_if_no_direct_calls_and_refs_p.
27735
27736 2015-03-04  Nick Clifton  <nickc@redhat.com>
27737
27738         * config/rl78/rl78.h (enum reg_class): Remove real registers from
27739         General register class.
27740         * config/rl78/rl78-real.md: Replace general register constraints
27741         with real+virtual register constraints.
27742
27743 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
27744
27745         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
27746         from checking for -mhtm option.
27747
27748 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
27749
27750         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
27751         (struct ipa_sra_check_caller_data): Add has_thunk field.
27752         (ipa_sra_check_caller): Check for thunk.
27753         (ipa_sra_preliminary_function_checks): Give up on function with
27754         thunks.
27755         (ipa_early_sra): Use call_for_symbol_and_aliases.
27756
27757 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
27758
27759         PR target/65249
27760         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
27761         called for __stack_chk_guard symbol.
27762
27763 2015-03-03  DJ Delorie  <dj@redhat.com>
27764
27765         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
27766         inc/dec.
27767         (*addhi3_real): Likewise.
27768         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
27769         pattern to match incrementing memory.
27770         * config/rl78/predicates.md (rl78_1_2_operand): New.
27771         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
27772         it's the same and only mem.
27773         (rl78_alloc_physical_registers_op2): If there's effectively only
27774         one MEM, transcode it into HL.
27775         (rl78_far_p): Reject addresses that aren't legitimate.
27776
27777 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27778
27779         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
27780         negating it.
27781
27782         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
27783
27784 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27785
27786         Implement call0 ABI for xtensa
27787         * config/xtensa/constraints.md ("a" constraint): Include stack
27788         pointer in case of call0 ABI.
27789         ("q" constraint): Make empty in case of call0 ABI.
27790         ("D" constraint): Include stack pointer in case of call0 ABI.
27791         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
27792         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
27793         prototypes.
27794         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
27795         variable.
27796         (xtensa_regno_to_class): Make it a local variable in the
27797         function xtensa_regno_to_class.
27798         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
27799         macro, function prototype and implementation.
27800         (reg_nonleaf_alloc_order): Make it a local variable in the
27801         function order_regs_for_local_alloc.
27802         (xtensa_conditional_register_usage): New function.
27803         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
27804         (xtensa_valid_move): Allow direct moves to stack pointer
27805         register in call0 ABI.
27806         (xtensa_setup_frame_addresses): Only spill register windows in
27807         windowed ABI.
27808         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
27809         call0 ABI respectively.
27810         (xtensa_function_arg_1): Only mark a7 register for copying in
27811         windowed ABI.
27812         (xtensa_call_save_reg): New function.
27813         (compute_frame_size): Add space for callee saved register
27814         storage to the frame size in call0 ABI.
27815         (xtensa_expand_prologue): Generate code to set up stack frame
27816         and save callee-saved registers in call0 ABI.
27817         (xtensa_expand_epilogue): New function.
27818         (xtensa_set_return_address): New function.
27819         (xtensa_return_addr): Calculate return address in call0 ABI.
27820         (xtensa_builtin_saveregs): Only mark a7 register for copying and
27821         emit copying code in windowed ABI.
27822         (order_regs_for_local_alloc): Add preferred register allocation
27823         order for non-leaf function in call0 ABI.
27824         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
27825         (xtensa_asm_trampoline_template): Add trampoline generation for
27826         call0 ABI.
27827         (xtensa_trampoline_init): Add trampoline initialization for
27828         call0 ABI.
27829         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
27830         functions.
27831         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
27832         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
27833         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
27834         ABI call-used registers.
27835         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
27836         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
27837         call0 ABI.
27838         (REG_CLASS_CONTENTS): Include all registers into the preferred
27839         reload registers set, adjust the set in the
27840         xtensa_conditional_register_usage.
27841         (xtensa_regno_to_class): Drop variable declaration.
27842         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
27843         function.
27844         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
27845         respectively.
27846         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
27847         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
27848         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
27849         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
27850         location in call0 ABI.
27851         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
27852         stack adjustment size when handling exception.
27853         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
27854         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
27855         definitions.
27856         ("return" pattern): Generate ret.n/ret in call0 ABI.
27857         ("epilogue" pattern): Expand epilogue.
27858         ("nonlocal_goto" pattern): Use default in call0 ABI.
27859         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
27860         emit eh_set_a0_* depending on ABI.
27861         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
27862         ("eh_set_a0_call0", "blockage"): New patterns.
27863
27864 2015-03-03  Martin Liska  <mliska@suse.cz>
27865
27866         PR ipa/65287
27867         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
27868
27869 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
27870
27871         PR 65138/target
27872         * config/rs6000/rs6000-tables.opt: Regenerate table.
27873
27874 2015-03-03  Renlin Li  <renlin.li@arm.com>
27875
27876         * doc/md.texi (@item ^): Change ? into ^.
27877
27878 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
27879
27880         * doc/tm.texi: Regenerated.
27881
27882 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
27883
27884         * builtins.c (expand_builtin_return_addr): Add
27885         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
27886         surrounding #ifdef.
27887         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
27888         definition to 1.
27889         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
27890         Likewise.
27891         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
27892         undefined.
27893         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
27894         paragraph.
27895
27896 2015-03-03  Martin Jambor  <mjambor@suse.cz>
27897             Eric Botcazou  <ebotcazou@adacore.com>
27898
27899         * tree-sra.c (ipa_sra_check_caller_data): New type.
27900         (has_caller_p): Removed.
27901         (ipa_sra_check_caller): New function.
27902         (ipa_sra_preliminary_function_checks): Use it.
27903
27904 2015-03-03  Martin Liska  <mliska@suse.cz>
27905
27906         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
27907         instead of if branch.
27908
27909 2015-03-03  Martin Liska  <mliska@suse.cz>
27910
27911         PR ipa/65282
27912         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
27913
27914 2015-03-23  Jeff Law  <law@redhat.com>
27915
27916         PR tree-optimization/65241
27917         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
27918         hash table if INSERT is true.
27919
27920 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27921
27922         PR target/65296
27923         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
27924
27925 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27926
27927         PR target/64331
27928         * config/avr/avr.c (context.h, tree-pass.h): Include them.
27929         (avr_pass_data_recompute_notes): New static variable.
27930         (avr_pass_recompute_notes): New class.
27931         (avr_register_passes): New static function.
27932         (avr_option_override): Call it.
27933
27934 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
27935
27936         Fix various problems with specs file generation.
27937
27938         PR target/65296
27939         * config.gcc (extra_gcc_objs) [avr]: Remove.
27940         * config/avr/driver-avr.c: Remove file.
27941         * config/avr/t-avr (driver-avr.o): Remove rule.
27942         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
27943         INCLUDES to build.  Depend on TM_H.
27944         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
27945         build warnings.  Fix non-matching types and non-existing %-codes.
27946         (tm.h): Include.
27947         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
27948         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
27949         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
27950         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
27951         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
27952         (LIBGCC_SPEC): Remove definitions.
27953
27954 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
27955
27956         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
27957         to create a register in testing mode.
27958
27959 2015-03-03  Martin Liska  <mliska@suse.cz>
27960             Jan Hubicka  <hubicka@ucw.cz>
27961
27962         PR ipa/65263
27963         * cgraph.c (cgraph_node::has_thunk_p): New function.
27964         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
27965         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
27966         (sem_function::merge): Assert is changed.
27967
27968 2015-03-03  Martin Liska  <mliska@suse.cz>
27969             Martin Jambor  <mjambor@suse.cz>
27970
27971         PR ipa/65087
27972         * ipa-icf.c (sem_item_optimizer::execute): Change function
27973         return value to boolean.
27974         (sem_item_optimizer::merge_classes): Likewise.
27975         (ipa_icf_driver): Return TODO_remove_functions in case there's
27976         a merge operation processed.
27977         * ipa-icf.h: Change function return value to boolean.
27978
27979 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
27980
27981         PR 65138/target
27982         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
27983         processor type for 64-bit little endian PowerPC.
27984
27985         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
27986         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
27987         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
27988         printing built-in mask so it does not pass NULL pointers.
27989
27990         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
27991         -mcpu=powerpc64le.
27992
27993 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
27994
27995         PR target/58158
27996         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
27997         !ISA_HAS_FP_CONDMOVE.
27998
27999 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
28000
28001         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
28002         reload_completed.
28003
28004 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
28005
28006         * doc/invoke.texi (Options for Code Generation Conventions):
28007         Fix URL of DSO paper.
28008
28009 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28010
28011         PR ipa/65130
28012         * ipa-inline.c (check_callers): Looks for recursion.
28013         (inline_to_all_callers): Give up on uninlinable or recursive edges.
28014         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
28015         summary of inline clones.
28016         (do_estimate_growth_1): Fix recursion check.
28017
28018 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28019
28020         PR ipa/64988
28021         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
28022         comdat groups.
28023
28024 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
28025             Aldy Hernandez  <aldyh@redhat.com>
28026
28027         PR lto/65276
28028         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
28029         when checking TYPE_BINFO.
28030
28031 2015-03-02  Richard Biener  <rguenther@suse.de>
28032
28033         PR ipa/65270
28034         * ipa-icf-gimple.c: Include builtins.h.
28035         (func_checker::compare_memory_operand): Compare base alignment.
28036
28037 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28038
28039         PR target/65184
28040         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
28041         are never passed by reference.
28042
28043 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28044
28045         PR target/65183
28046         * tree-chkp.c (chkp_check_lower): Don't check against
28047         zero bounds for already instrumented functions.
28048         (chkp_check_upper): Likewise.
28049         (chkp_fini): Clean pass local data to avoid wrong reusage.
28050
28051 2015-02-28  Martin Liska  <mliska@suse.cz>
28052             Jan Hubicka  <hubicka@ucw.cz>
28053
28054         * ipa-icf.c (sem_variable::equals): Improve debug output;
28055         get variable constructor.
28056         (sem_variable::parse): Do not filter out too early; give up on
28057         volatile and register vars.
28058         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
28059         variables.
28060         * ipa-icf.h (sem_variable::init): Do not set ctor.
28061         (sem_variable::ctor): Remove.
28062
28063 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
28064
28065         PR middle-end/65233
28066         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
28067
28068 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28069
28070         * ipa-icf.c: Include stor-layout.h
28071         (sem_function::compare_cgraph_references): Rename to ...
28072         (sem_item::compare_cgraph_references): ... this one.
28073         (sem_variable::equals_wpa): New function
28074         (sem_variable::equals): Do not check stuff already verified by
28075         equals_wpa.
28076         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
28077         * ipa-icf.h (sem_item): Add compare_cgraph_references.
28078         (sem_function): Remove compare_cgraph_references.
28079         (sem_variable): Turns equals_wpa into non-inline.
28080
28081 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28082
28083         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
28084         (sem_item::add_expr): New function.
28085         (sem_function::hash_stmt): Handle operands of most statements.
28086         (sem_variable::get_hash): Hash the actual constructor.
28087         * ipa-icf.h (sem_item): Add add_expr.
28088         (sem_function): Update prototype of hash_stmt
28089
28090 2015-02-28  Martin Liska  <mliska@suse.cz>
28091             Jan Hubicka  <hubicka@ucw.cz>
28092
28093         PR ipa/65245
28094         * ipa-icf-gimple.c (func_checker::compare_function_decl):
28095         Remove.
28096         (func_checker::compare_variable_decl): Skip symtab vars.
28097         (func_checker::compare_cst_or_decl): Update.
28098         * ipa-icf.c (sem_function::parse): Do not consider aliases.
28099         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
28100         use correct symtab predicates.
28101         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
28102         (sem_variable::parse):  Update comment.
28103         (sem_item_optimizer::build_graph): Consider ultimate aliases
28104         for references.
28105
28106 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28107
28108         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
28109         of OBJ_TYPE_REF.
28110
28111 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28112
28113         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
28114         (sem_variable::merge) Likewise.
28115
28116 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28117
28118         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
28119         target; also match flag_ipa_devirt.
28120
28121 2015-03-01  Martin Liska  <mliska@suse.cz>
28122             Jan Hubicka  <hubicka@ucw.cz>
28123
28124         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
28125         Validate variable alignment.
28126         * ipa-icf.c (sem_function::equals_private): Be more precise
28127         about non-common function attributes.
28128         (sem_variable::equals): Likewise.
28129
28130 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28131
28132         PR ipa/65237
28133         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
28134         across COMDAT group boundary.
28135
28136 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28137
28138         PR ipa/65232
28139         * ipa-icf.c (clear_decl_rtl): New function.
28140         (sem_function::merge): Clear RTL before forming alias.
28141         (sem_variable::merge): Clear RTL before forming alias.
28142
28143 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
28144
28145         PR ipa/65236
28146         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
28147
28148 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
28149
28150         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
28151         to neon_to_gp<q>.
28152
28153 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28154
28155         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
28156         a typo in the description.
28157
28158 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28159
28160         PR target/64317
28161         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28162         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
28163         * lra-constraints.c: Include "params.h".
28164         (EBB_PROBABILITY_CUTOFF): Use
28165         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
28166         (lra_inheritance): Use '<' instead of '<=' for
28167         EBB_PROBABILITY_CUTOFF.
28168         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
28169         Document change.
28170
28171 2015-02-27  Martin Liska  <mliska@suse.cz>
28172
28173         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
28174         vector length condition.
28175
28176 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
28177
28178         * doc/extend.texi (x86 transactional memory intrinsics):
28179         Reorganize discussion of _xbegin.  Clarify that the return
28180         value is a bit mask.  Expand example and move to end of section.
28181
28182 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28183             Aldy Hernandez  <aldyh@redhat.com>
28184
28185         PR rtl-optimization/65220
28186         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
28187
28188 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
28189
28190         PR target/65032
28191         * lra-remat.c (update_scratch_ops): New.
28192         (do_remat): Call it.
28193         * lra.c (lra_register_new_scratch_op): New. Take code from ...
28194         (remove_scratches): ... here.
28195         * lra-int.h (lra_register_new_scratch_op): New prototype.
28196
28197 2015-02-27  Marek Polacek  <polacek@redhat.com>
28198
28199         PR c/65040
28200         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
28201         -Wformat-signedness anymore.
28202
28203 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28204
28205         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
28206         function.
28207         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
28208
28209 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28210
28211         * config/s390/s390.c (enum s390_builtin):
28212         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
28213         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
28214         (s390_init_builtins): Generate new builtin functions.
28215         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
28216         (s390_sfpc, s390_efpc): New pattern definitions.
28217
28218 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
28219
28220         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
28221         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
28222         (s390_builtin_decls): New array.
28223         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
28224         (s390_builtin_decl): New function.
28225         (TARGET_BUILTIN_DECL): Define macro.
28226
28227 2015-02-27  Richard Biener  <rguenther@suse.de>
28228
28229         PR middle-end/63175
28230         * builtins.c (get_object_alignment_2): Make sure to re-apply
28231         the ANDed mask after recursing to its operand gets us a new
28232         misalignment bit position.
28233
28234 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
28235             Martin Liska  <mliska@suse.cz>
28236
28237         PR bootstrap/65150
28238         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
28239         Use address_matters_p.
28240         (redirect_all_callers, set_addressable): New functions.
28241         (sem_function::merge): Reorganize and fix merging issues.
28242         (sem_variable::merge): Likewise.
28243         (sem_variable::compare_sections): Remove.
28244         * common.opt (fmerge-all-constants, fmerge-constants): Remove
28245         Optimization flag.
28246         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
28247         redirect them.
28248         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
28249         decl is used.
28250         (address_matters_1): New function.
28251         (symtab_node::address_matters_p): New function.
28252         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
28253         check for merged flag.
28254         * cgraph.h (address_matters_p): Declare.
28255         (symtab_node::address_taken_from_non_vtable_p): Remove.
28256         (symtab_node::address_can_be_compared_p): New method.
28257         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
28258         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
28259         Remove.
28260         (comdat_can_be_unshared_p_1) Use address_matters_p.
28261         (update_vtable_references): Fix formating.
28262         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
28263         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
28264         * cgraphclones.c: Preserve merged and icf_merged flags.
28265
28266 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
28267
28268         * doc/extend.texi (Function Attributes): Fix spelling and typos.
28269         (Label Attributes): Likewise.
28270         (Cilk Plus Builtins): Likewise.
28271         (ARC SIMD Built-in Functions): Likewise.
28272         (ARM C Language Extensions (ACLE)): Likewise.
28273         (PowerPC Built-in Functions): Likewise.
28274         (PowerPC Hardware Transactional Memory Built-in Functions):
28275         Likewise.
28276
28277 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28278
28279         PR tree-optimization/65216
28280         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
28281         new stmt and new SSA_NAME for lhs whenever the arguments have
28282         changed and weren't just swapped.  Fix comment typo.
28283
28284         PR tree-optimization/65215
28285         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
28286         for PDP endian targets.
28287         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
28288         Fix up formatting issues.
28289         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
28290         size is smaller than the original, adjust MEM_REF offset by the
28291         difference of sizes.  Use is_gimple_mem_ref_addr instead of
28292         is_gimple_min_invariant test to avoid adding address temporaries.
28293
28294 2015-02-26  Martin Liska  <mliska@suse.cz>
28295             Jan Hubicka  <hubicka@ucw.cz>
28296
28297         PR ipa/64693
28298         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
28299         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
28300         (sem_item_optimizer::process_cong_reduction): Include division by
28301         sensitive references.
28302         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
28303         * ipa-ref.c (ipa_ref::address_matters_p): New function.
28304         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
28305
28306 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
28307
28308         PR target/65192
28309         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
28310         Remove.
28311         * config/avr/avr.c: Same.
28312         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
28313         Refuse any constant address not in 0..0xbf.
28314         * config/avr/avr.md (*mov<mode>, *movsf): Remove
28315         tiny_valid_direct_memory_access_range from insn conditions.
28316         (mov<mode>): Don't special-case expansion of avrtiny addresses.
28317
28318 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
28319
28320         PR target/61142
28321         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
28322         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
28323         * config/sh/predicates.md (const_logical_operand): New predicate.
28324         * config/sh/sh.md: Add new peephole2 patterns.
28325
28326 2015-02-26  Marek Polacek  <polacek@redhat.com>
28327
28328         PR ipa/65008
28329         * ipa-inline.c (early_inliner): Recompute inline parameters.
28330
28331 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
28332
28333         PR target/65171
28334         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
28335         instructions with TImode operands are included in the analysis.
28336
28337 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28338
28339         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
28340         of an EDGE_FSM_THREAD.
28341
28342 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
28343
28344         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
28345
28346 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
28347
28348         PR debug/46102
28349         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
28350
28351 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
28352
28353         PR tree-optimization/65048
28354         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
28355         (thread_through_all_blocks): Call valid_jump_thread_path.
28356         Remove invalid FSM jump-thread paths.
28357
28358 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
28359
28360         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
28361         (ipa_write_optimization_summaries): Likewise.
28362         * tree-streamer.h: Include data-streamer.h.
28363         (streamer_mode_table): Declare extern variable.
28364         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
28365         * lto-streamer-out.c (lto_output_init_mode_table,
28366         lto_write_mode_table): New functions.
28367         (produce_asm_for_decls): Call lto_write_mode_table when streaming
28368         offloading LTO.
28369         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
28370         (lto_create_simple_input_block): Add mode_table argument to the
28371         lto_input_block constructors.
28372         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
28373         Likewise.
28374         * data-streamer-in.c (string_for_index): Likewise.
28375         * ipa-inline-analysis.c (inline_read_section): Likewise.
28376         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
28377         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
28378         * lto-streamer-in.c (lto_read_body_or_constructor,
28379         lto_input_toplevel_asms): Likewise.
28380         (lto_input_mode_table): New function.
28381         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
28382         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
28383         Use bp_pack_machine_mode.
28384         * real.h (struct real_format): Add name field.
28385         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
28386         (class lto_input_block): Add mode_table member.
28387         (lto_input_block::lto_input_block): Add mode_table_ argument,
28388         initialize mode_table.
28389         (struct lto_file_decl_data): Add mode_table field.
28390         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
28391         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
28392         unpack_ts_decl_common_value_fields,
28393         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
28394         * tree-streamer.c (streamer_mode_table): New variable.
28395         * real.c (ieee_single_format, mips_single_format,
28396         motorola_single_format, spu_single_format, ieee_double_format,
28397         mips_double_format, motorola_double_format,
28398         ieee_extended_motorola_format, ieee_extended_intel_96_format,
28399         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
28400         ibm_extended_format, mips_extended_format, ieee_quad_format,
28401         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
28402         decimal_single_format, decimal_double_format, decimal_quad_format,
28403         ieee_half_format, arm_half_format, real_internal_format): Add name
28404         field.
28405         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
28406
28407 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
28408
28409         PR target/65161
28410         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
28411         reordering for selective scheduling.
28412
28413 2015-02-26  Terry Guo  <terry.guo@arm.com>
28414
28415         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
28416         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
28417         (arm_arch_no_volatile_ce): Declare new global variable.
28418         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
28419         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
28420         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
28421         (TARGET_NO_VOLATILE_CE): New macro.
28422         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
28423         volatile memory access in IT block
28424
28425 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28426
28427         PR tree-optimization/61917
28428         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
28429         that reduc_def_stmt is null.
28430
28431 2015-02-25  Martin Liska  <mliska@suse.cz>
28432
28433         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
28434         hard register variables.
28435
28436 2015-02-25  Kai Tietz  <ktietz@redhat.com>
28437
28438         PR target/64212
28439         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
28440         (symtab::noninterposable_alias): Likewise.
28441
28442 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
28443
28444         PR target/65167
28445         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
28446         bounds registers.
28447         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
28448
28449 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
28450
28451         PR target/64997
28452         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
28453         as split condition; force split via '#' in output pattern.
28454
28455 2015-02-25  Richard Biener  <rguenther@suse.de>
28456             Kai Tietz  <ktietz@redhat.com>
28457
28458         PR tree-optimization/61917
28459         * tree-vect-loop.c (vectorizable_reduction): Allow
28460         vect_internal_def without reduction to exit graceful.
28461
28462 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28463
28464         PR target/65196
28465         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
28466         only with NONDEBUG_INSN_P.
28467
28468 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
28469
28470         Use variadic macros with avr-log.c.
28471
28472         * config/avr/avr-protos.h (avr_vdump): New prototype.
28473         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
28474         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
28475         * config/avr/avr-log.c: Adjust comments.
28476         (avr_vdump): New function.
28477         (avr_vadump): Pass caller as 2nd argument instead of format string.
28478         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
28479         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
28480
28481 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
28482
28483         PR lto/64374
28484         * target.def (target_option_stream_in): New target hook.
28485         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
28486         targetm.target_option.post_stream_in if non-NULL.
28487         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
28488         * doc/tm.texi: Updated.
28489         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
28490         function.
28491         (TARGET_OPTION_POST_STREAM_IN): Redefine.
28492
28493 2015-02-24  Jeff Law  <law@redhat.com>
28494
28495         PR target/65117
28496         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
28497         of operand 0 and operand 2.
28498         (zero_cost_loop_end, loop_end): Similarly.
28499
28500 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
28501
28502         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
28503         CXX_MEM_STAT_INFO.
28504
28505 2015-02-24  DJ Delorie  <dj@redhat.com>
28506
28507         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
28508         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
28509         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
28510         instead of hardcoding SImode.
28511
28512 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
28513
28514         * omp-low.c (create_omp_child_function): Tag entrypoint
28515         functions with a special attribute.
28516
28517 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
28518
28519         PR target/65058
28520         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
28521
28522 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
28523
28524         PR rtl-optimization/65123
28525         * lra-remat.c (operand_to_remat): Check hard regs in insn
28526         definition too.
28527
28528 2015-02-24  Nick Clifton  <nickc@redhat.com>
28529
28530         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
28531         to the assembler.
28532
28533 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
28534
28535         PR libgomp/64625
28536         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
28537         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
28538         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
28539         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
28540         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
28541         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
28542         (BUILT_IN_GOACC_PARALLEL): Specify as
28543         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
28544         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
28545         * builtin-types.def
28546         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28547         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28548         Remove function types.
28549         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
28550         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
28551         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
28552         New function types.
28553
28554 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
28555
28556         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
28557
28558 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
28559
28560         PR tree-optimization/65170
28561         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
28562         if val[1] < 0, clear also val[2] and return 3.
28563
28564 2015-02-24  Alan Modra  <amodra@gmail.com>
28565
28566         PR target/65172
28567         * config/rs6000/rs6000.c (get_memref_parts): Only return true
28568         when *base is a reg.  Handle nested plus addresses.  Simplify
28569         pre_modify test.
28570
28571 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
28572
28573         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
28574         use natural alignment when optimizing for size.
28575
28576 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
28577
28578         PR target/65153
28579         * config/sh/sh.md (movsicc_true+3): Remove peephole.
28580         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
28581         * config/sh/sh.c (replace_n_hard_rtx): Remove.
28582
28583 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
28584
28585         PR fortran/63427
28586         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
28587         too big for a wide_int.  Implement missing wrapping operation.
28588
28589 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
28590
28591         PR target/65163
28592         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
28593         instead of const_int 4294901760.
28594
28595 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
28596
28597         * config/avr/t-avr: Fix typo in comment.
28598
28599 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
28600
28601         * doc/rtl.texi (fma): Clarify documentation.
28602
28603 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
28604
28605         PR debug/58123
28606         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
28607         over input_location.
28608
28609 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28610
28611         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
28612         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
28613         restrict alignments to absolute_biggest_alignment.
28614         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
28615         Define.
28616         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
28617         * doc/tm.texi: Regenerate.
28618         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
28619
28620 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
28621
28622         PR target/64172
28623         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
28624
28625 2015-02-20  Richard Biener  <rguenther@suse.de>
28626
28627         PR tree-optimization/65136
28628         * tree-ssa-propagate.c: Include cfgloop.h.
28629         (replace_phi_args_in): Avoid replacing loop latch edge PHI
28630         arguments with constants.
28631
28632 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
28633             Martin Liska  <mliska@suse.cz>
28634
28635         PR target/63892
28636         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
28637         don't try to create_thunk if stdarg_p.  If
28638         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
28639         redirect_callers if possible.
28640         (sem_item_optimizer::execute): Call unregister_hooks here...
28641         (ipa_icf_driver): ... instead of here.
28642
28643 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28644
28645         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
28646         Mark operand 0 as earlyclobber in 2nd alternative.
28647         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
28648         Write negated shift amount into QI lowpart operand 0 and use it
28649         in the shift step.
28650         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
28651
28652 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28653
28654         * cgraph.h (clone_function_name_1): Declare.
28655         * cgraphclones.c (clone_function_name_1): New function.
28656         (clone_function_name): Use it.
28657         * lto-partition.c: Include "stringpool.h".
28658         (must_not_rename, maybe_rewrite_identifier)
28659         (validize_symbol_for_target): New static functions.
28660         (privatize_symbol_name): Use must_not_rename.
28661         (promote_symbol): Call validize_symbol_for_target.
28662         (lto_promote_cross_file_statics): Likewise.
28663         (lto_promote_statics_nonwpa): Likewise.
28664
28665 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
28666
28667         PR target/64452
28668         * config/avr/avr.md (pushhi_insn): New insn.
28669         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
28670
28671 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
28672             Jakub Jelinek  <jakub@redhat.com>
28673
28674         * tree-streamer.c (preload_common_nodes): Don't preload
28675         TI_VA_LIST* for offloading.
28676         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
28677         in_lto_p.
28678
28679 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
28680
28681         * config/pa/pa.c (pa_emit_move_sequence): Always force
28682         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
28683         note on insn.
28684
28685         * config/pa/pa.c (pa_reloc_rw_mask): New function.
28686         (TARGET_ASM_RELOC_RW_MASK): Define.
28687         (pa_cannot_force_const_mem): Revert previous change.
28688
28689 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
28690             Jan Hubicka  <hubicka@ucw.cz>
28691
28692         PR ipa/65028
28693         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
28694         across jump functions.
28695
28696 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
28697
28698         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
28699
28700 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
28701
28702         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
28703
28704 2015-02-19  Richard Henderson  <rth@redhat.com>
28705
28706         PR middle-end/65074
28707         * varasm.c (default_binds_local_p_2): Don't test node->definition;
28708         test DECL_EXTERNAL independent of symtab_node.
28709
28710 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
28711
28712         PR lto/65012
28713         * varpool.c (varpool_node::get_constructor): Return early
28714         if this->lto_file_data is NULL.
28715
28716 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28717
28718         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
28719         (rank_for_schedule_debug): Update.
28720         (ready_sort): Make static.  Move sorting logic to ...
28721         (ready_sort_debug, ready_sort_real): New static functions.
28722         (schedule_block): Sort both debug insns and real insns in preparation
28723         for ready list trimming.  Improve debug output.
28724         * sched-int.h (ready_sort): Remove global declaration.
28725
28726 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
28727
28728         * ipa-icf.c (sem_function::equals_private): Adjust.
28729         (sem_function::bb_dict_test): Take a vec<int> * instead of
28730         auto_vec<int>.
28731         * ipa-icf.h (bb_dict_test): Likewise.
28732
28733 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28734
28735         PR gcov-profile/64634
28736         * tree-eh.c (frob_into_branch_around): Fix up typos
28737         in function comment.
28738         (lower_catch): Put eh_seq resulting from EH lowering of
28739         the cleanup sequence after the cleanup rather than before it.
28740
28741 2015-02-18  Tom de Vries  <tom@codesourcery.com>
28742
28743         * common.opt (fstdarg-opt): New option.
28744         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
28745         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
28746         (@item -fstdarg-opt): New item.
28747
28748 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
28749
28750         PR target/65064
28751         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
28752         for common symbols.
28753
28754 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28755
28756         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
28757         insn-modes.h.
28758         (ALL_HOST_OBJS): Add mkoffload.o.
28759         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
28760
28761 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
28762
28763         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
28764         (compare_virtual_tables): Be smarter about skipping typeinfos;
28765         do sane output on virtual table table mismatch.
28766         (warn_odr): Be ready for forward declarations of enums;
28767         output sane info on base mismatch and virtual table mismatch.
28768         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
28769         when only one type is polymorphic.
28770         (get_odr_type): Fix hashtable corruption.
28771         (dump_odr_type): Dump mangled names.
28772
28773 2015-02-18  Richard Biener  <rguenther@suse.de>
28774
28775         PR tree-optimization/65063
28776         * tree-predcom.c (determine_unroll_factor): Return 1 if we
28777         have replaced looparound PHIs.
28778
28779 2015-02-18  Martin Liska  <mliska@suse.cz>
28780
28781         * lto-streamer.c (lto_streamer_init): Encapsulate
28782         streamer_check_handled_ts_structures with checking macro.
28783
28784 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
28785
28786         PR ipa/65087
28787         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
28788         section if !implicit_section.
28789         (cgraph_node::create_version_clone_with_body): Likewise.
28790         * trans-mem.c (ipa_tm_create_version): Likewise.
28791
28792 2015-02-18  Richard Biener  <rguenther@suse.de>
28793
28794         PR tree-optimization/62217
28795         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
28796         into BIVs.
28797
28798 2015-02-18  Marek Polacek  <polacek@redhat.com>
28799
28800         PR sanitizer/65081
28801         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
28802         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
28803         is in range [-16K, -1].  Don't issue run-time error if
28804         (ptr > ptr + offset).
28805
28806 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
28807
28808         * doc/install.texi (nvptx-*-none): New section.
28809         * doc/invoke.texi (Nvidia PTX Options): Likewise.
28810         * config/nvptx/nvptx.opt: Update.
28811
28812         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
28813         (access_check): New functions, copied from
28814         config/i386/intelmic-mkoffload.c.
28815         (main): For non-installed testing, look in all COMPILER_PATHs for
28816         GCC_INSTALL_NAME.
28817
28818         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
28819
28820 2015-02-18  Andrew Pinski  <apinski@cavium.com>
28821             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
28822
28823         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
28824         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
28825
28826 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28827
28828         * ipa-visibility.c (function_and_variable_visibility): Only
28829         check locality if node is not already local.
28830         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28831         call_for_symbol_and_aliases instead of
28832         call_for_symbol_thunks_and_aliases.
28833         (ipa_inline): Likewise.
28834         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28835         first walk aliases.
28836         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28837         call_for_symbol_and_aliases.
28838         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28839         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28840         (ipa_propagate_frequency): Update.
28841         (ipa_profile): Add opt_for_fn gueards.
28842
28843 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28844
28845         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
28846         * doc/invoke.texi (SH options): Document it.
28847         * config/sh/sh.c (sh_insn_length_adjustment): Check
28848         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
28849
28850 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
28851
28852         * common.opt (fipa-cp-alignment): New.
28853         * ipa-cp.c (ipcp_store_alignment_results): Check
28854         flag_ipa_cp_alignment.
28855         * opts.c (default_options_table): Enable -fipa-cp-alignment for
28856         -O2.
28857         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
28858         * doc/invoke.texi: Document -fipa-cp-alignment.
28859
28860 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
28861
28862         PR target/64793
28863         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
28864         to nil.  Adjust comments.
28865
28866 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
28867
28868         * ipa-visibility.c (function_and_variable_visibility): Only
28869         check locality if node is not already local.
28870         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
28871         call_for_symbol_and_aliases instead of
28872         call_for_symbol_thunks_and_aliases.
28873         (ipa_inline): Likewise.
28874         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
28875         first walk aliases.
28876         * ipa.c (symbol_table::remove_unreachable_nodes): Use
28877         call_for_symbol_and_aliases.
28878         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
28879         (ipa_propagate_frequency_1): Use it; use opt_for_fn
28880         (ipa_propagate_frequency): Update.
28881         (ipa_profile): Add opt_for_fn guards.
28882
28883 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
28884
28885         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
28886         skipping of "strange" tokens.
28887
28888 2015-02-17  Jeff Law  <law@redhat.com>
28889
28890         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
28891         obsolete comment.
28892
28893 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
28894
28895         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
28896         as forcing a HARD_DEP between instructions, thereby
28897         disallowing rewriting to break dependencies.
28898
28899 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
28900
28901         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
28902         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
28903         variables in boundary that have no inlitalizer encoded and are
28904         not aliases.
28905         * varasm.c (default_binds_local_p_2): External definitions do not
28906         count as definitions here.
28907
28908 2015-02-16  Jeff Law  <law@redhat.com>
28909
28910         PR tree-optimization/64823
28911         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
28912         statements.
28913         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
28914         threading through blocks with PHIs, but no statements.
28915         (thread_through_normal_block): Distinguish between blocks where
28916         we did not process all the statements and blocks with no statements.
28917
28918 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
28919             James Greenhalgh  <james.greenhalgh@arm.com>
28920
28921         PR ipa/64963
28922         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
28923         section if not linkonce.  Fix up formatting.
28924         (cgraph_node::create_version_clone_with_body): Copy section.
28925         * trans-mem.c (ipa_tm_create_version): Likewise.
28926
28927 2015-02-16  Richard Biener  <rguenther@suse.de>
28928
28929         PR tree-optimization/65077
28930         * tree-ssa-structalias.c (get_constraint_for_1): Handle
28931         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
28932         (find_func_aliases): Allow float values to carry pointers again.
28933
28934 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
28935
28936         * doc/install.texi (Specific): Reorder targets list to put
28937         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
28938         from the top menu.
28939
28940 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
28941             David Edelsohn  <dje.gcc@gmail.com>
28942
28943         PR target/65058
28944         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
28945         mapping class to external variable or function reference.
28946         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
28947         mapping class.
28948
28949 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
28950
28951         PR target/53348
28952         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
28953         ASM_WEAKEN_DECL if defined.
28954
28955 2015-02-16  Richard Biener  <rguenther@suse.de>
28956
28957         PR lto/65015
28958         * varasm.c (default_file_start): For LTO produced units
28959         emit <artificial> as file directive.
28960
28961 2015-02-16  Richard Biener  <rguenther@suse.de>
28962
28963         PR tree-optimization/63593
28964         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
28965         stmts and releasing SSA names until...
28966         (execute_pred_commoning): ... after processing all chains.
28967
28968 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
28969
28970         PR ipa/65059
28971         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
28972         external functions.
28973
28974 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
28975
28976         * doc/bugreport.texi: Adjust section titles throughout the file
28977         to use "Title Case".
28978         * doc/extend.texi: Likewise.
28979         * doc/gcov.texi: Likewise.
28980         * doc/implement-c.texi: Likewise.
28981         * doc/implement-cxx.texi: Likewise.
28982         * doc/invoke.texi: Likewise.
28983         * doc/objc.texi: Likewise.
28984         * doc/standards.texi: Likewise.
28985         * doc/trouble.texi: Likewise.
28986
28987 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
28988
28989         * cgraph.h (symtab_node::has_aliases_p): Simplify.
28990         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
28991         * tree.c (lookup_binfo_at_offset): Make static.
28992         (get_binfo_at_offset): Do not shadow offset; add explanatory
28993         comment.
28994
28995 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
28996
28997         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
28998         for all floading point loads and stores except those using a register
28999         index address.
29000         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
29001         to a register.
29002
29003 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29004
29005         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
29006         (do_estimate_growth_1): Record if any uninlinable edge was seen.
29007         (estimate_growth): Handle uninlinable edges correctly.
29008         (check_callers): New.
29009         (growth_likely_positive): Handle aliases correctly.
29010
29011 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
29012
29013         * ipa-chkp.c: Use iterate_direct_aliases.
29014         * symtab.c (resolution_used_from_other_file_p): Move inline.
29015         (symtab_node::create_reference): Fix formating.
29016         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29017         (symtab_node::iterate_reference): Move inline.
29018         (symtab_node::iterate_referring): Move inline.
29019         (symtab_node::iterate_direct_aliases): Move inline.
29020         (symtab_node::used_from_object_file_p_worker): Inline into ...
29021         (symtab_node::used_from_object_file_p): ... this one; move inline.
29022         (symtab_node::call_for_symbol_and_aliases): Move inline;
29023         use iterate_direct_aliases.
29024         (symtab_node::call_for_symbol_and_aliases_1): New method.
29025         (cgraph_node::call_for_symbol_and_aliases): Move inline;
29026         use iterate_direct_aliases.
29027         (cgraph_node::call_for_symbol_and_aliases_1): New method.
29028         (varpool_node::call_for_node_and_aliases): Rename to ...
29029         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
29030         use iterate_direct_aliases.
29031         (varpool_node::call_for_symbol_and_aliases_1): New method.
29032         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
29033         (ipa_discover_readonly_nonaddressable_var): Update.
29034         * ipa-devirt.c: Fix formating.
29035         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
29036         Move inline.
29037         (cgraph_node::call_for_symbol_and_aliases): Move inline.
29038         (cgraph_node::call_for_symbol_and_aliases_1): New function..
29039         * cgraph.h (used_from_object_file_p_worker): Remove.
29040         (resolution_used_from_other_file_p): Move inline.
29041         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
29042         (symtab_node::iterate_reference): Move inline.
29043         (symtab_node::iterate_referring): Move inline.
29044         (symtab_node::iterate_direct_aliases): Move inline.
29045         (symtab_node::used_from_object_file_p_worker): Inline into ...
29046         (symtab_node::used_from_object_file_p): Move inline.
29047         * tree-emutls.c (ipa_lower_emutls): Update.
29048         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
29049         (varpool_node::call_for_node_and_aliases): Remove.
29050
29051 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
29052
29053         PR tree-optimization/62209
29054         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
29055         op == range->exp, insert seq and gimplified code after labels
29056         instead of after the phi.
29057
29058 2015-02-13  Jeff Law  <law@redhat.com>
29059
29060         PR bootstrap/65060
29061         Revert my change for tree-optimization/64823.
29062
29063 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29064
29065         PR tree-optimization/65053
29066         * tree-ssa-phiopt.c (value_replacement): When moving assign before
29067         cond, either reset VR on lhs or set it to phi result VR.
29068
29069 2015-02-13  Jeff Law  <law@redhat.com>
29070
29071         PR tree-optimization/64823
29072         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
29073         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
29074         threading through blocks with PHIs, but no statements.
29075         (thread_through_normal_block): Distinguish between blocks where
29076         we did not process all the statements and blocks with no statements.
29077
29078         PR rtl-optimization/47477
29079         * match.pd (convert (plus/minus (convert @0) (convert @1): New
29080         simplifier to narrow arithmetic.
29081
29082 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
29083
29084         PR ipa/65028
29085         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
29086         polymorphic call info when type is not known to be preserved.
29087
29088 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
29089
29090         PR ipa/65028
29091         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
29092         (inline_call): Use it.
29093
29094 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
29095
29096         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
29097         GOMP_DEVICE_NVIDIA_PTX.
29098
29099 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
29100
29101         PR ipa/65034
29102         * stmt.c (emit_case_nodes): Use void_type_node instead of
29103         NULL_TREE as LABEL_DECL type.
29104
29105 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
29106
29107         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
29108         constraints.
29109         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
29110         symbolic references to data to be forced to constant memory on the
29111         SOM target.
29112
29113 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
29114
29115         PR tree-optimization/65002
29116         * tree-cfg.c (pass_data_fixup_cfg): Don't update
29117         SSA on start.
29118         * tree-sra.c (some_callers_have_no_vuse_p): New.
29119         (ipa_early_sra): Reject functions whose callers
29120         assume function is read only.
29121
29122 2015-02-13  Richard Biener  <rguenther@suse.de>
29123
29124         PR lto/65015
29125         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
29126         for LTO produced CUs.
29127
29128 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
29129
29130         PR tree-optimization/64705
29131         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
29132         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
29133         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
29134         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
29135         expand_simple_operations.
29136
29137 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
29138             Richard Henderson  <rth@redhat.com>
29139
29140         PR rtl/32219
29141         * cgraphunit.c (cgraph_node::finalize_function): Set definition
29142         before notice_global_symbol.
29143         (varpool_node::finalize_decl): Likewise.
29144         * varasm.c (default_binds_local_p_2): Rename from
29145         default_binds_local_p_1, add weak_dominate argument.  Use direct
29146         returns instead of assigning to local variable.  Unify varpool and
29147         cgraph paths via symtab_node.  Reject undef weak variables before
29148         testing visibility.  Reorder tests for simplicity.
29149         (default_binds_local_p): Use default_binds_local_p_2.
29150         (default_binds_local_p_1): Likewise.
29151         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
29152         via symtab_node.
29153         (default_elf_asm_output_external): Emit visibility when specified.
29154
29155 2015-02-13  Alan Modra  <amodra@gmail.com>
29156
29157         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
29158         code setting up r11 for out-of-line fp restore.
29159
29160 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
29161
29162         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
29163         (muser-mode): Likewise.
29164
29165 2015-02-13  Alan Modra  <amodra@gmail.com>
29166
29167         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
29168         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
29169
29170 2015-02-12  David Howells  <dhowells@redhat.com>
29171
29172         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
29173         warning.
29174         * tree-ssa-uninit.c (dump_predicates): Likewise.
29175         * opts.c (print_filtered_help): Likewise.
29176
29177 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29178
29179         * dwarf2out.c (output_die): Use "%s", name instead of name to
29180         avoid -Wformat-security warning.
29181
29182         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
29183         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29184         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
29185         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
29186
29187 2015-02-12  Jason Merrill  <jason@redhat.com>
29188
29189         * common.opt (-flifetime-dse): New.
29190
29191 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
29192
29193         PR sanitizer/65019
29194         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
29195
29196         PR tree-optimization/65014
29197         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
29198         use original second operand of arg0 or arg1 instead of
29199         that adjusted by STRIP_NOPS.
29200
29201 2015-02-11  Jeff Law  <law@redhat.com>
29202
29203         PR target/63347
29204         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
29205         that needs to be queued, just queue it for a single cycle.
29206
29207 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
29208
29209         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
29210         bodies of thunks; comment on why.
29211         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
29212         symbols are extern.
29213
29214 2015-02-11  Richard Henderson  <rth@redhat.com>
29215
29216         PR sanitize/65000
29217         * tree-eh.c (mark_reachable_handlers): Mark source and destination
29218         regions of __builtin_eh_copy_values.
29219
29220 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29221
29222         PR middle-end/65003
29223         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
29224         ultimate alias is MEM with SYMBOL_REF satisfying
29225         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
29226         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
29227
29228 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
29229
29230         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
29231         "diagnostic-core.h".
29232         (main): Initialize progname, and call diagnostic_initialize.
29233
29234         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
29235         instead of __OPENMP_TARGET__.
29236
29237         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
29238         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
29239         hard-coding PTX_ID.
29240
29241 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
29242
29243         * doc/sourcebuild.texi (pie_enabled): Document.
29244
29245 2015-02-11  Martin Liska  <mliska@suse.cz>
29246
29247         PR ipa/64813
29248         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
29249         a return value for call to a function that is noreturn.
29250
29251 2015-02-11  Richard Biener  <rguenther@suse.de>
29252
29253         PR lto/65015
29254         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
29255         and -fresolution.
29256
29257 2015-02-11  Andrew Pinski  <apinski@cavium.com>
29258
29259         PR target/64893
29260         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
29261         Change the first argument type to size_type_node and add another
29262         size_type_node.
29263         (aarch64_simd_expand_builtin): Handle the new argument to
29264         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
29265         print an out when the first two arguments are not
29266         nonzero integer constants.
29267         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
29268         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
29269
29270 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
29271
29272         PR target/61925
29273         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
29274         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
29275         (ix86_set_current_function): Rewritten.
29276         (ix86_add_new_builtins): Temporarily clear current_target_pragma
29277         when creating builtin fndecls.
29278
29279 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29280
29281         PR ipa/65005
29282         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
29283         function.
29284         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
29285         have no comdat group.
29286         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
29287         (lto_output_varpool_node): Always output alias info.
29288         (output_refs): Output refs of boundary aliases, too.
29289         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
29290         (output_symtab): Output call eges in thunks in boundary.
29291         (get_alias_symbol): Remove.
29292         (input_node, input_varpool_node): Do not special case weakrefs.
29293         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
29294         alias and thunks targets in the boundary; do not take removed symbols
29295         from their comdat groups.
29296         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
29297         (cgraph_node::global_info): Remove.
29298         (cgraph_node::rtl_info): Look through aliases and thunks.
29299         * cgrpah.h (global_info): Remove.
29300         (non_local_p): Remove.
29301
29302 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29303             Sandra Loosemore  <sandra@codesourcery.com>
29304
29305         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
29306         to inline asm.  List dialects in proper order.
29307
29308 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29309             Sandra Loosemore  <sandra@codesourcery.com>
29310
29311         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
29312
29313 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
29314
29315         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
29316         modified) reference to Solaris.
29317
29318 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
29319
29320         * doc/extend.texi (Extended Asm): Fix typos.
29321
29322 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
29323
29324         PR sanitizer/65004
29325         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
29326
29327 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
29328
29329         PR target/64661
29330         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
29331         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
29332         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
29333         * config/sh/constraints.md (Ara, Add): New constraints.
29334         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
29335         predicates.
29336         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
29337         atomic_mem_operand_0.  Don't use force_reg on the memory address.
29338         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
29339         Sra constraint.  Convert to insn_and_split.  Add workaround for
29340         PR 64974.
29341         (atomic_compare_and_swap<mode>_hard): Copy to
29342         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
29343         Use atomic_mem_operand_0 predicate.
29344         (atomic_compare_and_swap<mode>_soft_gusa,
29345         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
29346         AraAdd constraints.
29347         (atomic_compare_and_swap<mode>_soft_tcb,
29348         atomic_compare_and_swap<mode>_soft_imask,
29349         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
29350         atomic_mem_operand_0 predicate and SraSdd constraints.
29351         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
29352         constraint.
29353         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
29354         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
29355         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
29356         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
29357         force_reg on the memory address.
29358         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
29359         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
29360         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
29361         atomic_mem_operand_1 predicate and Sra constraint.
29362         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
29363         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29364         Use atomic_mem_operand_1 predicate.
29365         (atomic_<fetchop_name><mode>_hard): Copy to
29366         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
29367         Use atomic_mem_operand_1 predicate.
29368         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
29369         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29370         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
29371         insn_and_split.  Use atomic_mem_operand_1 predicate.
29372         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
29373         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
29374         Use atomic_mem_operand_1 predicate.
29375         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
29376         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
29377         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
29378         in generated insn with original mem operand before emitting the insn.
29379         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
29380         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
29381         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
29382         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
29383         Use atomic_mem_operand_1 predicate and AraAdd constraints.
29384         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
29385         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
29386         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
29387         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
29388         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
29389         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
29390         atomic_not_fetch<mode>_soft_tcb,
29391         atomic_<fetchop_name>_fetch<mode>_soft_imask,
29392         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
29393         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
29394         Use atomic_mem_operand_1 predicate and SraSdd constraints.
29395
29396 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
29397
29398         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
29399         and 3 earlyclobber operands.
29400
29401 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29402
29403         * common.opt (fstack-reuse): Mark as optimization.
29404
29405 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
29406
29407         PR ipa/64982
29408         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
29409
29410 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
29411
29412         PR tree-optimization/64326
29413         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
29414
29415 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
29416
29417         PR gcov-profile/61889
29418         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
29419
29420 2015-02-10  Richard Biener  <rguenther@suse.de>
29421
29422         PR tree-optimization/64995
29423         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
29424         value we use is final.
29425         (visit_reference_op_store): Always valueize op.
29426         (visit_use): Properly valueize vuses.
29427
29428 2015-02-10  Richard Biener  <rguenther@suse.de>
29429
29430         PR tree-optimization/64909
29431         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
29432         pass a scalar-stmt count estimate to the cost model.
29433         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
29434
29435 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
29436
29437         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
29438         enabled by default together with var-tracking.
29439
29440 2015-02-10  Nick Clifton  <nickc@redhat.com>
29441
29442         * config/rl78/rl78.c: Remove DIV attribute code accidentally
29443         included in previous rl78 commit.
29444
29445 2015-02-10  Richard Biener  <rguenther@suse.de>
29446
29447         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
29448         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
29449         return the bitpack.
29450
29451 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29452
29453         PR gcov-profile/61889
29454         * config.in: regenerate.
29455         * configure.in: Likewise.
29456         * configure.ac: Check for ftw.h.
29457         * gcov-tool.c: Check for ftw.h before using nftw.
29458
29459 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
29460
29461         PR lto/64076
29462         * ipa-visibility.c (update_visibility_by_resolution_info): Only
29463         assert when not in lto mode.
29464
29465 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
29466
29467         * ira-color.c (setup_left_conflict_sizes_p): Simplify
29468         initialization/assignment of conflict_size.
29469
29470 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
29471
29472         PR ipa/64978
29473         * ipa-cp.c (gather_caller_stats): Skip thunks.
29474         (propagate_constants_topo): Skip aliases.
29475
29476 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
29477
29478         PR target/64761
29479         * config/sh/sh.c (sh_option_override): Don't change
29480         -freorder-blocks-and-partition to -freorder-blocks even when
29481         unwinding is enabled.
29482         (sh_can_follow_jump): Return false if the followee jump is
29483         a crossing jump when -freorder-blocks-and-partition is specified.
29484         * config/sh/sh.md (*jump_compact_crossing): New insn.
29485
29486 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
29487             Kaz Kojima  <kkojima@gcc.gnu.org>
29488
29489         PR target/64761
29490         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
29491         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
29492         (sh_can_redirect_branch): Rename to ...
29493         (sh_can_follow_jump): ... this.  Constify argument types.
29494         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
29495         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
29496         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
29497         * doc/tm.texi: Regenerate.
29498
29499 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29500
29501         PR sanitizer/64981
29502         * builtins.c (expand_builtin): Call targetm.expand_builtin
29503         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
29504
29505 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29506
29507         PR ipa/61548
29508         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
29509
29510 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29511
29512         PR ipa/63566
29513         * ipa-icf.c (set_local): New function.
29514         (sem_function::merge): Use it.
29515
29516 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29517
29518         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
29519         (add_type_duplicate): Fix comparison of BINFOs.
29520
29521 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29522
29523         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
29524         on getting VOID pointer.
29525
29526 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
29527
29528         PR target/64979
29529         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
29530         va_list escapes.
29531
29532 2015-02-09  Richard Biener  <rguenther@suse.de>
29533
29534         * genmatch.c (replace_id): Copy expr_type.
29535
29536 2015-02-09  Richard Biener  <rguenther@suse.de>
29537
29538         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
29539         (streamer_write_tree_bitfields): Declare.
29540         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
29541         properly unpack padding.
29542         (unpack_value_fields): Inline ...
29543         (streamer_read_tree_bitfields): ... here.
29544         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
29545         and properly add padding bits.
29546         (streamer_pack_tree_bitfields): Fold into ...
29547         (streamer_write_tree_bitfields): ... this new function,
29548         exposing the bitpack object.
29549         * lto-streamer-out.c (lto_write_tree_1): Call
29550         streamer_write_tree_bitfields.
29551
29552 2015-02-09  Richard Biener  <rguenther@suse.de>
29553
29554         PR tree-optimization/54000
29555         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
29556         (struct ivopts_data): Add loop_loc member.
29557         (tree_ssa_iv_optimize_loop): Dump loop location.
29558         (create_new_ivs): Likewise, also dump number of IVs generated.
29559
29560 2015-02-09  Martin Liska  <mliska@suse.cz>
29561
29562         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
29563         just if not yet registered.
29564         (ipa_icf_generate_summary): Register callgraph hooks.
29565
29566 2015-02-08  Andrew Pinski  <apinski@cavium.com>
29567
29568         * config/aarch64/aarch64.c (gty_dummy): Delete.
29569
29570 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29571
29572         PR ipa/63566
29573         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
29574         (cgraph_node::local_p): Remove thunk related FIXME.
29575
29576 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29577
29578         PR ipa/63566
29579         * i386.c (ix86_function_regparm): Look through aliases to see if callee
29580         is local and optimized.
29581         (ix86_function_sseregparm): Likewise; also use target's SSE math
29582         settings; error out instead of silently generating wrong code
29583         on mismatches.
29584         (init_cumulative_args): Look through aliases.
29585
29586 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29587
29588         PR ipa/63566
29589         * ipa-split.c (execute_split_functions): Split if function has aliases.
29590
29591 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
29592
29593         PR ipa/63566
29594         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
29595         aliases before trying to expand it.
29596         (cgraph_node::expand_thunk): Fix formating.
29597
29598 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
29599
29600         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
29601         (Using Assembly Language with C): Expand introduction.
29602         (Basic Asm): Copy-edit.  Add more information about uses of
29603         basic asm.
29604         (Extended Asm): Copy-edit.  Document new escape syntax and
29605         %l[label] syntax.
29606         (Global Reg Vars): Copy-edit.
29607         (Local Reg Vars): Likewise.
29608
29609 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
29610
29611         PR debug/2714
29612         PR bootstrap/64256
29613         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
29614         (DBX_CONTIN_CHAR): Define.
29615
29616 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
29617             Brian Rzycki  <b.rzycki@samsung.com>
29618
29619         PR tree-optimization/64878
29620         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
29621         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
29622         Stop recursion at loop phi nodes after having visited a loop phi node.
29623
29624 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29625
29626         * toplev.c (process_options): Change flag_ipa_ra before creating
29627         optimization_{default,current}_node.
29628
29629         PR ipa/64896
29630         * cgraphunit.c (cgraph_node::expand_thunk): If
29631         restype is not is_gimple_reg_type nor the thunk_fndecl
29632         returns aggregate_value_p, set restmp to a temporary variable
29633         instead of resdecl.
29634
29635 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
29636
29637         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
29638
29639 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
29640
29641         PR target/64205
29642         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
29643         add a general secondary reload handler for SDmode, unless we have
29644         both read/write support for SDmode.
29645
29646 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29647
29648         PR middle-end/64937
29649         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
29650         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
29651         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
29652         1 before, push it to abstract_vec.
29653         (dwarf2out_abstract_function): Adjust caller.  Don't call
29654         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
29655         DECL_ABSTRACT_P flags for all abstract_vec elts.
29656
29657 2015-02-06  Renlin Li  <renlin.li@arm.com>
29658
29659         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
29660         complex gimple.
29661         * tree-ssa.c (execute_update_addresses_taken): Likewise.
29662
29663 2015-02-06  Jeff Law  <law@redhat.com>
29664
29665         PR target/64889
29666         * config/h8300/h8300.c (push): New argument "in_prologue".
29667         Pass "in_prologue" along to "F".
29668         (h8300_push_pop): Corresponding changes.
29669         (h8300_expand_prologue): Likewise.
29670         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
29671
29672 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
29673
29674         PR rtl-optimization/64957
29675         PR debug/64817
29676         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
29677         IOR rather than for AND.
29678
29679 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
29680
29681         PR target/62631
29682         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
29683         of shift-add and (add + shift) operations.  Rename local variable.
29684
29685 2015-02-05  Jeff Law  <law@redhat.com>
29686
29687         PR target/17306
29688         * config/h8300/constraints.md (U): Correctly dectect
29689         "eightbit_data" memory addresses.
29690         * config/h8300/h8300.c (eightbit_constant_address_p): Also
29691         handle (const (plus (symbol_ref (x)))) where x is declared
29692         as an 8-bit data memory address.
29693         * config/h8300/h8300.md (call, call_value): Correctly detect
29694         "funcvec" functions.
29695
29696         PR target/43264
29697         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
29698         24 to 28 bits for the H8/300.
29699
29700 2015-02-06  Alan Modra  <amodra@gmail.com>
29701
29702         PR target/64876
29703         * config/rs6000/rs6000.c (chain_already_loaded): New function.
29704         (rs6000_call_aix): Use it.
29705
29706 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
29707
29708         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
29709         check.
29710
29711 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
29712
29713         * config/h8300/constraints.md ("U" constraint): Use strict
29714         variant of REG_OK_FOR_BASE_P after reload has started.
29715
29716 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
29717
29718         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
29719         define to zero if !TARGET_NEON.
29720         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
29721
29722 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29723             Trevor Saunders  <tsaunders@mozilla.com>
29724
29725         PR ipa/61548
29726         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
29727
29728 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29729
29730         PR ipa/61548
29731         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
29732         when removing varpool nodes.
29733
29734 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29735
29736         PR ipa/61548
29737         * varpool.c (varpool_node::remove): Fix order of variables.
29738
29739 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29740
29741         PR ipa/64686
29742         * ipa-inline.c (inline_small_functions): Fix ordering issue between
29743         speculation resolution and key updates.
29744
29745 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29746
29747         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
29748         about not letting any speculative edges unupdated.
29749
29750 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29751
29752         PR gcov/64123
29753         * gcov-io.c (gcov_var): Export.
29754
29755 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29756
29757         PR middle-end/64922
29758         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
29759         edges that become speculative.
29760
29761 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29762
29763         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
29764         or DW_LANG_Fortran08.
29765         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
29766         DW_LANG_Fortran08.
29767         (gen_compile_unit_die): Handle "GNU Fortran2003" and
29768         "GNU Fortran2008" language strings.
29769         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
29770         * langhooks.h (lang_GNU_Fortran): New prototype.
29771         * langhooks.c (lang_GNU_Fortran): New function.
29772         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
29773         lang_GNU_Fortran.
29774
29775 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29776
29777         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
29778         (RTX_OK_FOR_OLO10_P): Likewise.
29779
29780 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
29781
29782         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
29783
29784 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
29785
29786         PR middle-end/64922
29787         * gimple.c: Include gimple-ssa.h.
29788         (maybe_remove_unused_call_args): New function.
29789         * gimple.h (maybe_remove_unused_call_args): Declare.
29790         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
29791         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
29792         * gimple-fold.c (gimple_fold_call): Likewise.
29793
29794 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
29795
29796         PR rtl-optimization/64905
29797         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
29798         pointer alignment if it isn't needed.
29799
29800 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29801
29802         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
29803         cortex-a72.cortex-a53.
29804         * config/aarch64/aarch64-tune.md: Regenerate.
29805         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
29806
29807 2015-02-04  Nick Clifton  <nickc@redhat.com>
29808
29809         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
29810         inside a MEM.
29811
29812 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
29813
29814         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
29815         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
29816         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
29817         of DEF_BUILTIN.
29818         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
29819         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
29820         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
29821         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
29822         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
29823         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
29824         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
29825         * tree-core.h (enum built_in_function): In between
29826         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
29827         for builtins that use DEF_BUILTIN_CHKP macro.
29828
29829 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
29830
29831         PR debug/64817
29832         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
29833         operands for tcc_comparison exprs.  Fix typos.
29834
29835         PR debug/64817
29836         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
29837         of two XORs that have an intervening AND or IOR.
29838
29839         PR debug/64817
29840         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
29841         simplification of XOR of AND to not allocate new rtx before
29842         committing to a simplification.
29843
29844 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29845
29846         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
29847         manual swaps in all peepholes.
29848
29849 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29850
29851         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
29852         of manual swapping implementation.
29853         (aarch64_expand_vec_perm_const_1): Likewise.
29854
29855 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
29856
29857         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
29858         (generic_addrcost_table): Remove NAMED_PARAM.
29859         (cortexa57_addrcost_table): Likewise.
29860         (xgene1_addrcost_table): Likewise.
29861         (generic_regmove_table): Likewise.
29862         (cortexa53_regmove_table): Likewise.
29863         (xgene1_regmove_table): Likewise.
29864         (generic_vector_table): Likewise.
29865         (cortexa57_vector_table): Likewise.
29866         (xgene1_vector_table): Likewise.
29867         (generic_tunings): Likewise.
29868         (cortexa53_tunings): Likewise.
29869         (cortexa57_tunings): Likewise.
29870         (xgene1_tunings): Likewise.
29871
29872 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
29873
29874         * config/arm/arm-cores.def: Add cortex-a72 and
29875         cortex-a72.cortex-a53.
29876         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
29877         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
29878         * config/arm/arm-tune.md: Regenerate.
29879         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
29880         "cortex-a72.cortex-a53".
29881         * doc/invoke.texi (ARM Options/-mtune): Likewise.
29882
29883 2015-02-04  Nick Clifton  <nickc@redhat.com>
29884
29885         PR target/64408
29886         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
29887         of accepted codes.
29888         (nonimmediate_di_operand): Likewise.
29889
29890         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
29891         prefixes of known F5 using MSP430 MCUs.
29892
29893 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29894
29895         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
29896         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
29897         instead of __builtin_sqrt.
29898
29899 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
29900
29901         * varasm.c (do_assemble_alias): Follow transparent alias
29902         chain for target.
29903         (default_assemble_visibility): Follow transparent alias
29904         chain for decl name.
29905
29906 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29907
29908         PR middle-end/62103
29909         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
29910         to compute size of referenced value in the constant case.
29911
29912 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
29913
29914         PR rtl-optimization/64756
29915         * cse.c (invalidate_dest): New function.
29916         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
29917         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
29918         invalidate and do not record it.
29919
29920 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
29921
29922         PR target/64660
29923         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
29924         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
29925         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
29926         atomic_nand<mode>_soft_tcb): New insns.
29927         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
29928         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
29929         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
29930         Split into atomic_not_fetchsi_hard if operands[0] is unused.
29931         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
29932         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
29933         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
29934         atomic_not<mode>_hard if operands[0] is unused.
29935         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
29936         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
29937         if operands[0] is unused.
29938         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
29939         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
29940         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
29941         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
29942         unused.
29943         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
29944         into atomic_not<mode>_soft_tcb if operands[0] is unused.
29945         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
29946         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
29947         if operands[0] is unused.
29948         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
29949         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
29950         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
29951         atomic_nand_fetchsi_hard if operands[0] is unused.
29952         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
29953         atomic_nand<mode>_hard if operands[0] is unused.
29954         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
29955         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
29956         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
29957         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
29958         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
29959         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
29960         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
29961         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
29962         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
29963         atomic_not<mode>_hard if operands[0] is unused.
29964         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
29965         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
29966         unused.
29967         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
29968         into atomic_not<mode>_soft_tcb if operands[0] is unused.
29969         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
29970         atomic_nand<mode>_hard if operands[0] is unused.
29971         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
29972         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
29973
29974 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
29975
29976         PR jit/64810
29977         * Makefile.in (GCC_OBJS): Add gcc-main.o.
29978         * gcc-main.c: New file, containing "main" taken from gcc.c.
29979         * gcc.c (do_self_spec): Free decoded_options.
29980         (class driver): Move declaration to gcc.h.
29981         (main): Move declaration and implementation to new file
29982         gcc-main.c.
29983         (driver_get_configure_time_options): New function.
29984         * gcc.h (class driver): Move this declaration here, from
29985         gcc.c.
29986         (driver_get_configure_time_options): New declaration.
29987
29988 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
29989
29990         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
29991         cross-module inlining.
29992         * cgraph.h (cgraph_node): Add flag merged.
29993         * ipa-icf.c (sem_function::merge): Maintain it.
29994
29995 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
29996
29997         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
29998         instead of OBJECT_P.
29999
30000 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
30001
30002         PR target/62631
30003         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
30004         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
30005         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
30006         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
30007
30008 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
30009
30010         PR other/63504
30011         * combine.c (reg_n_sets_max): New variable.
30012         (can_change_dest_mode, reg_nonzero_bits_for_combine,
30013         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
30014         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
30015         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
30016         (rest_of_handle_combine): Initialize reg_n_sets_max.
30017
30018 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
30019
30020         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
30021         if some always_inline was inlined, apply changes before inlining
30022         heuristically.
30023
30024 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
30025
30026         PR jit/64810
30027         * config/arm/arm.c (arm_option_override): Set
30028         arm_selected_arch/cpu/tune to NULL on entry.
30029
30030 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
30031             Andrew Pinski  <pinskia@gcc.gnu.org>
30032             Jakub Jelinek  <jakub@gcc.gnu.org>
30033
30034         PR target/64231
30035         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
30036         integer typing for small model. Use IN_RANGE.
30037
30038 2015-02-02  Richard Biener  <rguenther@suse.de>
30039
30040         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
30041         * tree-vrp.c (vrp_valueize_1): Likewise.
30042
30043 2015-02-02  Alan Modra  <amodra@gmail.com>
30044
30045         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
30046         than mem for toc_restore.
30047         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
30048         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
30049         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
30050
30051 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
30052
30053         PR target/64047
30054         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
30055         explicit default options.
30056
30057 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
30058
30059         PR ipa/64872
30060         * ipa-utils.c (ipa_merge_profiles): Add release argument.
30061         * ipa-icf.c (sem_function::merge): Do not release body when merging.
30062         * ipa-utils.h (ipa_merge_profiles): Update prototype.
30063
30064 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
30065
30066         PR debug/64817
30067         * cfgexpand.c (deep_ter_debug_map): New variable.
30068         (avoid_deep_ter_for_debug): New function.
30069         (expand_debug_expr): If TERed SSA_NAME is in
30070         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
30071         instead of trying to expand SSA_NAME's def stmt.
30072         (expand_debug_locations): When expanding debug bind
30073         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
30074         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
30075         value.
30076         (pass_expand::execute): Call avoid_deep_ter_for_debug on
30077         all debug bind stmts.  Delete deep_ter_debug_map after
30078         expand_debug_location if non-NULL and clear it.
30079
30080 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
30081
30082         PR target/64851
30083         * config/sh/sync.md (atomic_fetch_notsi_hard,
30084         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
30085         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
30086         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
30087         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
30088         atomic_not_fetch<mode>_soft_imask): New insns.
30089
30090 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
30091
30092         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
30093         (rank_for_schedule_debug): Split from ...
30094         (rank_for_schedule): ... this.
30095         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
30096         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
30097
30098 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30099
30100         * doc/md.texi (Machine Constraints): Alphabetize table by target.
30101         * doc/extend.texi (x86 Variable Attributes): Move section to
30102         correct alphabetization after renaming.
30103         (x86 Type Attributes): Likewise.
30104         (Target Builtins): Re-alphabetize menu.
30105         (x86 Built-in Functions): Move section to correct alphabetization
30106         after renaming.
30107         (x86 transactional memory intrinsics): Likewise.
30108         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
30109         and x86 Windows Options in table and menu.
30110         (x86 Options): Move section to correct alphabetization after
30111         renaming.
30112         (x86 Windows Options): Likewise.
30113
30114 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
30115
30116         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
30117         preferred names of the architecture and its 32- and 64-bit
30118         variants.
30119         * doc/invoke.texi: Likewise.
30120         * doc/md.texi: Likewise.
30121
30122 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30123
30124         PR target/64882
30125         * config/i386/predicates.md (address_no_seg_operand): Reject
30126         non-CONST_INT_P operands in invalid mode.
30127
30128 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
30129
30130         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
30131         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
30132         * config/i386/predicates.md (address_no_seg_operand): Call
30133         address_operand with VOIDmode.
30134         (vsib_address_operand): Ditto.
30135         (address_mpx_no_base_operand): Ditto.
30136         (address_mpx_no_index_operand): Ditto.
30137
30138 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30139
30140         PR target/64688
30141         * lra-constraints.c (original_subreg_reg_mode): New.
30142         (simplify_operand_subreg): Try to simplify subreg of const.  Use
30143         original_subreg_reg_mode for it.
30144         (swap_operands): Update original_subreg_reg_mode.
30145         (curr_insn_transform): Set up original_subreg_reg_mode.
30146
30147 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
30148
30149         PR target/64617
30150         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
30151         function.
30152         (process_alt_operands): Use it.
30153         (curr_insn_transform): Check the optional reload pseudo class is
30154         ok for the mode.
30155
30156 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
30157
30158         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
30159         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
30160         prototype.
30161         * toplev.h (init_asm_output): Update comment on use of
30162         UNKNOWN_LOCATION with fatal_error.
30163         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
30164         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
30165         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
30166         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
30167         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
30168         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
30169         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
30170         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
30171         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
30172         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
30173         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
30174         fatal_error changed to pass input_location as first argument.
30175
30176 2015-01-30  Martin Liska  <mliska@suse.cz>
30177
30178         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
30179         in #pragma GCC diagnostic guards.
30180
30181 2015-01-30  Richard Biener  <rguenther@suse.de>
30182
30183         PR tree-optimization/64829
30184         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
30185         not add a widening conversion pattern but hand off extra
30186         widenings to callers.
30187         (vect_recog_widen_mult_pattern): Handle extra widening produced
30188         by vect_handle_widen_op_by_const.
30189         (vect_recog_widen_shift_pattern): Likewise.
30190         (vect_pattern_recog_1): Remove excess vertical space in dumping.
30191         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
30192         (vect_init_vector_1): Likewise.
30193         (vect_get_vec_def_for_operand): Likewise.
30194         (vect_finish_stmt_generation): Likewise.
30195         (vectorizable_load): Likewise.
30196         (vect_analyze_stmt): Likewise.
30197         (vect_is_simple_use): Likewise.
30198
30199 2015-01-29  Jeff Law  <law@redhat.com>
30200
30201         * combine.c (try_combine): Fix typo in comment.
30202
30203 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
30204
30205         PR target/64580
30206         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
30207         (rs6000_stack_info): Add assert.
30208         (rs6000_output_savres_externs): New function, split off from...
30209         (rs6000_output_function_prologue): ... here.  Do not call it for
30210         thunks.
30211
30212 2015-01-29  Jeff Law  <law@redhat.com>
30213
30214         PR target/15184
30215         * combine.c (try_combine): If I0 is a memory load and I3 a store
30216         to a related address, increase the "goodness" of doing a 4-insn
30217         combination with I0-I3.
30218         (make_field_assignment): Handle SUBREGs in the ior+and case.
30219
30220 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
30221
30222         PR tree-optimization/64746
30223         * tree-if-conv.c (mask_exists): New function.
30224         (predicate_mem_writes): Save created mask with given size for further
30225         use.
30226         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
30227         (ifcvt_repair_bool_pattern): Collect all statements that are root
30228         of bool pattern and use iterative algorithm to remove multiple uses
30229         of predicates, display number of required iterations.
30230
30231 2015-01-29  Richard Biener  <rguenther@suse.de>
30232
30233         PR tree-optimization/64853
30234         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
30235         stmt will get simulated again.
30236         * tree-ssa-ccp.c (valueize_op_1): Likewise.
30237
30238 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
30239
30240         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
30241         return_in_pc.  Remove redundant assignments.
30242         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
30243         (arm_expand_epilogue): Don't compare boolean with true in if condition.
30244
30245 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
30246
30247         * config/i386/i386.c (ix86_mode_after): Make static.
30248
30249 2015-01-29  Richard Biener  <rguenther@suse.de>
30250
30251         PR tree-optimization/64844
30252         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
30253         dump cost model analysis.
30254         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
30255         Do not register adjusted load/store costs here.
30256
30257 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30258             Uros Bizjak  <ubizjak@gmail.com>
30259
30260         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
30261         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
30262         using x86_use_pseudo_pic_reg.
30263         * config/i386/i386.c (ix86_conditional_register_usage): Remove
30264         support for fixed PIC register.
30265         (ix86_use_pseudo_pic_reg): Not static any more.
30266
30267 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
30268
30269         PR middle-end/64805
30270         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
30271         to avoid error in cgraph node verification.
30272
30273 2015-01-29  Marek Polacek  <polacek@redhat.com>
30274
30275         * doc/standards.texi: Reflect that the default for C is gnu11.
30276
30277 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
30278
30279         PR target/64761
30280         * reorg.c (switch_text_sections_between_p): New function.
30281         (relax_delay_slots): Call it when testing if the jump insn
30282         is removable.  Use targetm.can_follow_jump when testing if
30283         the conditional branch can follow an unconditional jump.
30284
30285 2015-01-27  Caroline Tice  <cmtice@google.com>
30286
30287         Committing VTV Cywin/Ming patch for Patrick Wollgast
30288         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
30289         if -fvtable-verify=preinit/std is used.
30290         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
30291         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
30292         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
30293         if -fvtable-verify=preinit/std is used.
30294         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
30295         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
30296         if -fvtable-verify=preinit/std is used.
30297         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
30298         * config/i386/mingw32.h (LIB_SPEC): Likewise.
30299         * varasm.c (assemble_variable): Add code to properly set the comdat
30300         section and name for the .vtable_map_vars section in case the
30301         target is PE or COFF.
30302
30303 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30304
30305         PR ipa/64801
30306         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
30307         make sane BB profile.
30308         (cgraph_node::expand_thunk): Make sane BB profile.
30309         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
30310         * cgraph.h (init_lowered_empty_function): Update prototype.
30311         * config/i386/i386.c (make_resolver_func): Update call.
30312         * predict.c (gate): Disable branch prediction pass if
30313         profile is already there.
30314
30315 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
30316
30317         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
30318         * opth-gen.awk: Likewise.
30319         * common.opt: Mark flag_fp_contract_mode as Optimization.
30320
30321 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30322
30323         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
30324         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
30325
30326 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
30327
30328         PR target/64659
30329         * config/sh/predicates.md (atomic_arith_operand,
30330         atomic_logical_operand): Remove.
30331         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
30332         (atomic_arith_operand_0): New predicate.
30333         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
30334         Use atomic_arith_operand_0 for input values.
30335         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
30336         atomic_compare_and_swap<mode>_soft_gusa,
30337         atomic_compare_and_swap<mode>_soft_tcb,
30338         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
30339         arith_reg_operand instead of register_operand.
30340         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
30341         atomic_arith_operand_0 for newval input.
30342         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
30343         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
30344         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
30345         arith_reg_operand instead of register_operand.
30346         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
30347         fetchop_predicate_1, fetchop_constraint_1_llcs,
30348         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
30349         fetchop_constraint_1_imask): New code iterator attributes.
30350         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
30351         register_operand.  Use fetchop_predicate_1.
30352         (atomic_fetch_<fetchop_name>si_hard,
30353         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
30354         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
30355         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
30356         and arith_reg_operand instead of register_operand.  Use
30357         fetchop_predicate_1, fetchop_constraint_1_gusa.
30358         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
30359         and arith_reg_operand instead of register_operand.  Use
30360         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
30361         to allow R0 usage.
30362         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
30363         and arith_reg_operand instead of register_operand.  Use
30364         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
30365         to allow R0 usage.
30366         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
30367         register_operand.  Use atomic_logical_operand_1.
30368         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
30369         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
30370         arith_reg_operand instead of register_operand.
30371         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
30372         Use arith_reg_dest and arith_reg_operand instead of register_operand.
30373         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
30374         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
30375         register_operand.  Use fetchop_predicate_1.
30376         (atomic_<fetchop_name>_fetchsi_hard,
30377         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
30378         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30379         fetchop_constraint_1_llcs.
30380         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
30381         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30382         fetchop_constraint_1_gusa.
30383         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
30384         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30385         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
30386         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
30387         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
30388         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
30389         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
30390         register_operand.  Use atomic_logical_operand_1.
30391         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
30392         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
30393         arith_reg_operand instead of register_operand.
30394         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
30395         arith_reg_operand instead of register_operand.  Use logical_operand
30396         and K08.  Adjust asm sequence to allow R0 usage.
30397         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
30398         arith_reg_operand instead of register_operand.  Use logical_operand
30399         and K08.
30400
30401 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30402
30403         PR other/63504
30404         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
30405         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
30406         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
30407         only get_full_len HOST_WIDE_INTs from get_val () array rather than
30408         all bits in *val_wide.
30409
30410 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
30411
30412         * varpool.c (tls_model_names): Fix names.
30413         (varpool_node::dump): Dump tls- prefix for tls models.
30414
30415 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
30416             Bernd Schmidt  <bernds@codesourcery.com>
30417             Nathan Sidwell  <nathan@codesourcery.com>
30418
30419         * config/nvptx/mkoffload.c: New file.
30420         * config/nvptx/t-nvptx: Add build rules for it.
30421         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
30422         (extra_programs): Add mkoffload.
30423         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
30424         function.
30425         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
30426
30427 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
30428
30429         PR middle-end/64809
30430         * cfgexpand.c (reorder_operands): Skip debug gimples.
30431
30432 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
30433
30434         PR tree-optimization/64277
30435         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
30436         range info when possible to refine estimation.
30437
30438 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30439
30440         PR tree-optimization/64718
30441         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
30442         be a 16bit unsigned integer when n->range is 16.
30443         (bswap_replace): Convert src to that type if necessary for all bswap
30444         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
30445         set in pass_optimize_bswap::execute ().
30446
30447 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
30448
30449         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
30450         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
30451         integer and floating point variants.
30452         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
30453
30454 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
30455
30456         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
30457         for all vector modes.
30458
30459 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
30460
30461         PR bootstrap/64612
30462         * doc/sourcebuild.texi (comdat_group): Document.
30463
30464 2015-01-28  Terry Guo  <terry.guo@arm.com>
30465
30466         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
30467
30468 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
30469
30470         * toplev.c (print_version): Add param "show_global_state", and
30471         only print GGC and plugin information if it is true.
30472         (init_asm_output): Pass in "true" for the new param when calling
30473         print_version.
30474         (process_options): Likewise.
30475         (toplev::main): Likewise.
30476         * toplev.h (print_version): Add new param to decl.
30477
30478 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30479
30480         PR ipa/60871
30481         PR ipa/64139
30482         * tree.c (lookup_binfo_at_offset): New function.
30483         (get_binfo_at_offset): Use it.
30484
30485 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
30486
30487         PR ipa/64282
30488         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
30489         on vtable being vtable.
30490
30491 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
30492
30493         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
30494         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
30495         -mhotpatch= option.
30496         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
30497         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
30498         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
30499         Renamed.
30500         (s390_hotpatch_trampoline_halfwords_max): Renamed.
30501         (s390_hotpatch_hw_max): New name.
30502         (s390_hotpatch_trampoline_halfwords): Renamed.
30503         (s390_hotpatch_hw_before_label): New name.
30504         (get_hotpatch_attribute): Removed.
30505         (s390_hotpatch_hw_after_label): New name.
30506         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
30507         attribute.
30508         (s390_attribute_table): Ditto.
30509         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
30510         (s390_function_num_hotpatch_hw): New name.
30511         Remove special handling of inline functions and hotpatching.
30512         Return number of nops before and after the function label.
30513         (s390_can_inline_p): Removed.
30514         (s390_asm_output_function_label): Emit a configurable number of nops
30515         after the function label.
30516         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
30517         (TARGET_CAN_INLINE_P) Removed.
30518         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
30519
30520 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
30521             Jiong Wang  <jiong.wang@arm.com>
30522
30523         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
30524         of scratch reg.
30525         (cb<optab><mode>1): Likewise.
30526         * config/aarch64/iterators.md (bcond): New define_code_attr.
30527
30528 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30529
30530         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
30531         memory accesses.
30532
30533 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30534
30535         * config/s390/s390.c (s390_register_move_cost): Increase costs for
30536         FPR->GPR moves.
30537
30538 2015-01-27  Richard Biener  <rguenther@suse.de>
30539
30540         * tree-vrp.c (update_value_range): Intersect the range with
30541         old recorded SSA name range information.
30542
30543 2015-01-27  Nick Clifton  <nickc@redhat.com>
30544
30545         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
30546         BC, DE and HL registers directly, not via AX.
30547         When decrementing the stack pointer by a large amount, transfer SP
30548         into AX and perform the subtraction there.
30549         (rl78_expand_epilogue): Perform the inverse of the above
30550         enhancements.
30551
30552 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30553
30554         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
30555
30556 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30557             Yury Gribov  <y.gribov@samsung.com>
30558
30559         PR ubsan/64741
30560         * ubsan.c (ubsan_source_location): Refactor code.
30561         (ubsan_type_descriptor): Update type size. Refactor code.
30562
30563 2015-01-27  Richard Biener  <rguenther@suse.de>
30564
30565         PR tree-optimization/56273
30566         PR tree-optimization/59124
30567         PR tree-optimization/64277
30568         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
30569         from the first VRP pass.
30570
30571 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30572
30573         PR ipa/64776
30574         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
30575         handle the first argument in the same loop as all the other arguments.
30576
30577         PR rtl-optimization/61058
30578         * jump.c (cleanup_barriers): Update basic block boundaries
30579         if BLOCK_FOR_INSN is non-NULL on PREV.
30580
30581 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
30582
30583         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
30584         bounds narrowing, already instrumented calls and calls to
30585         not instrumentable functions.
30586
30587 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
30588
30589         PR tree-optimization/64807
30590         * wide-int.cc (wi::divmod_internal): Clear
30591         b_dividend[dividend_blocks_needed].
30592
30593 2015-01-26  DJ Delorie  <dj@redhat.com>
30594
30595         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
30596         volatile memory references.
30597
30598 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
30599
30600         PR target/49263
30601         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
30602         remove_insn.
30603         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
30604         shifts if it already fits into K08.
30605
30606 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30607
30608         PR ipa/64730
30609         * ipa-inline.c (inline_small_functions): Print "unknown" even
30610         if edge->call_stmt is non-NULL, but has builtins or unknown
30611         location.
30612
30613         PR middle-end/64421
30614         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
30615         with asterisk, skip the first character.
30616
30617 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30618
30619         PR target/64806
30620         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
30621         order change.
30622
30623 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
30624
30625         PR target/64795
30626         * config/i386/i386.md (*movdi_internal): Also check operand 0
30627         to determine TYPE_LEA operand.
30628         (*movsi_internal): Ditto.
30629
30630 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
30631
30632         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
30633         OPTION_MASK_QUAD_MEMORY_ATOMIC.
30634
30635 2015-01-26  Renlin Li  <renlin.li@arm.com>
30636
30637         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
30638         the comment.
30639         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
30640         for higher part.
30641
30642 2015-01-26  Richard Biener  <rguenther@suse.de>
30643
30644         PR middle-end/64764
30645         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
30646         combining two BIT_AND_EXPR predicates.
30647
30648 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
30649
30650         PR bootstrap/64754
30651         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
30652
30653 2015-01-26  Terry Guo  <terry.guo@arm.com>
30654
30655         * config/arm/arm.c (arm_file_start): Update the assignment of
30656         Tag_ABI_HardFP_use.
30657
30658 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
30659
30660         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
30661         pipeline model.
30662         config/arm/arm.md: Include the new Cortex-A57 model.
30663         (generic_sched): Don't use generic_sched when tuning for
30664         Cortex-A57.
30665
30666 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
30667             Uros Bizjak  <ubizjak@gmail.com>
30668
30669         * config/i386/i386.c (get_builtin_code_for_version): Add
30670         support for BMI and BMI2 multiversion functions.
30671
30672 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
30673
30674         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
30675         (extract_bit_field): Likewise.
30676         (extract_low_bits): Likewise.
30677         (expand_mult): Likewise.
30678         (expand_mult_highpart_adjust): Likewise.
30679
30680 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
30681
30682         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
30683         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
30684         * config/i386/i386.c (processor_model): Add
30685         M_INTEL_COREI7_BROADWELL.
30686         (arch_names_table): Add "broadwell".
30687
30688 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
30689
30690         PR target/49263
30691         PR target/53987
30692         PR target/64345
30693         PR target/59533
30694         PR target/52933
30695         PR target/54236
30696         PR target/51244
30697         * config/sh/sh-protos.h
30698         (sh_extending_set_of_reg::can_use_as_unextended_reg,
30699         sh_extending_set_of_reg::use_as_unextended_reg,
30700         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
30701         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
30702         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
30703         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
30704         (sh_treg_insns): New class.
30705         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
30706         (scope_counter): New class.
30707         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
30708         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
30709         sh_extending_set_of_reg::can_use_as_unextended_reg,
30710         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
30711         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
30712         sh_split_treg_set_expr): New functions.
30713         (addsubcosts): Handle treg_set_expr.
30714         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
30715         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
30716         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
30717         (sh_insn_operands_modified_between_p): Make non-static.
30718         * config/sh/predicates.md (zero_extend_movu_operand): Allow
30719         simple_mem_operand in addition to displacement_mem_operand.
30720         (zero_extend_operand): Don't allow zero_extend_movu_operand.
30721         (treg_set_expr, treg_set_expr_not_const01,
30722         arith_reg_or_treg_set_expr): New predicates.
30723         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
30724         arith_or_int_operand instead of logical_operand.  Convert to
30725         insn_and_split.  Try to optimize constant operand in splitter.
30726         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
30727         (*tstqi_t_zero): Delete.
30728         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
30729         (tstsi_t_and_not): Delete.
30730         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
30731         Convert to insn_and_split.
30732         (unnamed split, tstsi_t_zero_extract_xor,
30733         tstsi_t_zero_extract_subreg_xor_little,
30734         tstsi_t_zero_extract_subreg_xor_big): Delete.
30735         (*tstsi_t_shift_mask): New insn_and_split.
30736         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
30737         to recombine with surrounding insns when splitting.
30738         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
30739         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
30740         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
30741         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
30742         (*cbranch_div0s: Delete.
30743         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30744         Try to recombine with surrounding insns when splitting.  Add operand
30745         order variants.
30746         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
30747         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
30748         *addc_r_r_msb, *addc_2r_msb): Delete.
30749         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
30750         order variant.
30751         (*addc_negreg_t): New insn_and_split.
30752         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
30753         Try to recombine with surrounding insns when splitting.
30754         Add operand order variants.
30755         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
30756         insn_and_split patterns.
30757         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
30758         surrounding insns when splitting.
30759         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
30760         (*rotcl): Likewise.  Add zero_extract variant.
30761         (*ashrsi2_31): New insn_and_split.
30762         (*negc): Convert to insn_and_split.  Use treg_set_expr.
30763         (*zero_extend<mode>si2_disp_mem): Update comment.
30764         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
30765         condition.
30766         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
30767         with surrounding insns when splitting.
30768         (any_treg_expr_to_reg): New insn_and_split.
30769         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
30770         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
30771         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
30772         *zero_extract_2): New single bit zero extract patterns.
30773         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
30774         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
30775         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
30776         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
30777         set destination.
30778         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
30779         register_operand for set source.
30780
30781 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
30782
30783         * i386.opt (prefetch_sse): New targetsave.
30784         * i386.c (ix86_function_specific_save): Save prefetch_sse.
30785         (ix86_function_specific_restore): Restore prefetch_sse and initialize
30786         ix86_cost/ix86_tune_cost.
30787
30788 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30789
30790         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
30791         Support the JIT by using 0 as the language type.
30792
30793 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
30794
30795         PR target/64317
30796         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
30797         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
30798         (mark_regno_live, process_bb_lives): Pass new parameter value to
30799         make_hard_regno_born.
30800
30801 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30802
30803         PR rtl-optimization/63637
30804         PR rtl-optimization/60663
30805         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
30806         if elt->cost is MAX_COST for ASM_OPERANDS.
30807         (find_sets_in_insn): Fix up comment typo.
30808         (cse_insn): Don't set src_volatile for all non-volatile
30809         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
30810         or with "memory" clobber.  Set elt->cost to MAX_COST
30811         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
30812         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
30813
30814 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30815
30816         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
30817         alternative 1.
30818
30819 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
30820
30821         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
30822         libgcc/config/i386/elf-lib.h.
30823
30824 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30825
30826         PR driver/64737
30827         * gcc.c (print_configuration): Don't print a blank line at the end
30828         here...
30829         (run_attempt): ... but here unstead.
30830
30831         PR middle-end/64734
30832         * omp-low.c (scan_sharing_clauses): Don't ignore
30833         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
30834         on target data/update constructs.
30835
30836 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30837
30838         PR target/50928
30839         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
30840         (DEBUG_RELOAD): Removed define.
30841         (m32c_limit_reload_class): Enable traces with if DEBUG0.
30842         (m32c_function_arg): Added a type cast.
30843         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
30844         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
30845         * config/m32c/bitops.md (andqi3_16): Likewise.
30846         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
30847         (push_a01_l): Likewise.
30848
30849 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30850
30851         PR jit/64721
30852         * main.c (main): Construct toplev instances with init_signals=true.
30853         * toplev.c (general_init): Add param "init_signals", and use it to
30854         conditionalize the calls to signal and host_hooks.extra_signals.
30855         (toplev::toplev): Add param "init_signals".
30856         (toplev::main): When invoking general_init, pass m_init_signals
30857         to control whether signal-handlers are installed.
30858         * toplev.h (toplev::toplev): Add param "init_signals".
30859         (toplev::m_init_signals): New field.
30860
30861 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
30862
30863         PR jit/64722
30864         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
30865         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
30866         latter may be affected by the former (e.g. on i686).
30867
30868 2015-01-23  Martin Liska  <mliska@suse.cz>
30869
30870         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
30871         false positive during profiledbootstrap.
30872
30873 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30874
30875         PR libgomp/64672
30876         * lto-opts.c (lto_write_options): Output non-explicit conservative
30877         -fno-openacc.
30878         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
30879         (append_compiler_options): Pass -fopenacc through.
30880
30881 2015-01-23  Tom de Vries  <tom@codesourcery.com>
30882
30883         PR libgomp/64707
30884         * lto-opts.c (lto_write_options): Output non-explicit conservative
30885         -fno-openmp.
30886         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
30887         (append_compiler_options): Pass -fopenmp through.
30888
30889 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
30890
30891         PR debug/64511
30892         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
30893         GTY markup.
30894
30895         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
30896         * diagnostic.def (DK_ICE_NOBT): New kind.
30897         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
30898         like DK_ICE, but never print backtrace.
30899         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
30900         (internal_error_no_backtrace): New function.
30901         * gcc.c (execute): Use internal_error_no_backtrace instead of
30902         internal_error.
30903
30904 2015-01-22  Jeff Law  <law@redhat.com>
30905
30906         PR target/52076
30907         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
30908         improve code density for small immediate to memory case.
30909         (insv): Better handle bitfield assignments when the field is
30910         being set to all ones.
30911         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
30912         operand predicate.
30913
30914 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
30915             Jakub Jelinek  <jakub@redhat.com>
30916
30917         PR middle-end/64729
30918         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
30919         for !TARGET_LIBC_PROVIDES_SSP version and
30920         -fstack-protector-{all,strong,explicit} otherwise.
30921         * config/freebsd.h (LINK_SSP_SPEC): Handle
30922         -fstack-protector-{strong,explicit}.
30923
30924 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
30925             H.J. Lu  <hongjiu.lu@intel.com>
30926
30927         PR ipa/64694
30928         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
30929         heap.
30930
30931 2015-01-22  Wei Mi  <wmi@google.com>
30932
30933         PR rtl-optimization/64557
30934         * dse.c (record_store): Call get_addr for mem_addr.
30935         (check_mem_read_rtx): Likewise.
30936
30937 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
30938
30939         * fold-const.c (const_binop): Add early return for non-tcc_binary.
30940
30941 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
30942
30943         * toplev.c (init_local_tick): Process the failure when read
30944         fails for random_seed.
30945
30946         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
30947         'pretty_name' to avoid memory overflow.
30948
30949 2015-01-22  Richard Biener  <rguenther@suse.de>
30950
30951         PR middle-end/64728
30952         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
30953         abnormal coalescing on undefined SSA names.
30954
30955 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
30956
30957         PR target/64688
30958         PR target/64477
30959         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
30960         for alternative 3.
30961         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
30962
30963 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
30964
30965         PR middle-end/63325
30966         * fold-const.c (fold_checksum_tree): Don't include value of
30967         expr->decl_with_vis.symtab_node in the checksum.
30968
30969 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30970
30971         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
30972
30973 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
30974
30975         PR driver/64690
30976         * gcc.c (insert_comments): New function.
30977         (try_generate_repro): Call it.
30978         (append_text): Removed.
30979
30980 2015-01-22  Richard Biener  <rguenther@suse.de>
30981
30982         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
30983         with IL incompatible options.  Properly honor user optimize
30984         attributes.
30985
30986 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
30987
30988         PR rtl-optimization/64682
30989         * combine.c (distribute_notes): When moving a death note for
30990         a register that is set in the new I2, make sure to put it
30991         before that new I2.
30992
30993 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
30994
30995         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
30996         not TARGET_DEFAULT.
30997
30998 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
30999
31000         PR debug/64511
31001         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
31002         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
31003         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
31004
31005         PR sanitizer/64706
31006         * doc/invoke.texi (-fsanitize=vptr): Document.
31007
31008         PR rtl-optimization/62078
31009         * dse.c: Include cfgcleanup.h.
31010         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
31011         anything call purge_all_dead_edges and cleanup_cfg at the end
31012         of the pass.
31013
31014 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
31015
31016         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
31017         edges.
31018
31019 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31020
31021         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
31022         decl attribute.
31023
31024 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31025             Tejas Belagod <Tejas.Belagod@arm.com>
31026
31027         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
31028         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
31029         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
31030         Removed.
31031
31032 2015-01-21  David Sherwood  <david.sherwood@arm.com>
31033             Tejas Belagod <Tejas.Belagod@arm.com>
31034
31035         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
31036         (aarch64_reverse_mask): New decls.
31037         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
31038         (insn_count): New mode_attr.
31039         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
31040         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
31041         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
31042         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
31043         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
31044         (aarch64_simd_st4): New patterns.
31045         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
31046         (aarch64_reverse_mask): New functions.
31047
31048 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
31049
31050         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
31051         Declare.
31052         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
31053         addressing modes for BE.
31054         (aarch64_print_operand): Add 'R' specifier.
31055         (aarch64_simd_disambiguate_copy): Delete.
31056         (aarch64_simd_emit_reg_reg_move): New function.
31057         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
31058         in define_splits for structural moves.
31059         (mov<mode>): Use less restrictive predicates.
31060         (*aarch64_mov<mode>): Simplify and only allow for LE.
31061         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
31062
31063 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
31064
31065         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
31066
31067 2015-01-21  Richard Henderson  <rth@redhat.com>
31068
31069         PR target/64669
31070         * ccmp.c (used_in_cond_stmt_p): Remove.
31071         (expand_ccmp_expr): Don't use it.
31072
31073 2015-01-21  Nick Clifton  <nickc@redhat.com>
31074
31075         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
31076         PARALLELs.
31077
31078 2015-01-21  Richard Biener  <rguenther@suse.de>
31079
31080         PR middle-end/64313
31081         * tree-core.h (builtin_info, builtin_info_type): Turn from
31082         an object with two arrays into an array of an object with
31083         decl and two flags, implicit_p and declared_p.
31084         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
31085         set_builtin_decl, set_builtin_decl_implicit_p,
31086         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
31087         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
31088         * builtins.c (builtin_info): Adjust.
31089         * gimplify.c (gimplify_addr_expr): References to builtins
31090         that have been declared by the user makes them eligible for
31091         use by the compiler.  Call set_builtin_decl_implicit_p on them.
31092
31093 2015-01-20  Jeff Law  <law@redhat.com>
31094
31095         PR target/59946
31096         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
31097         allow pc-relative addresses in operand predicates or constraints.
31098
31099 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
31100
31101         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
31102         neon on aarch32 processors for stringops.
31103
31104 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31105
31106         PR ipa/63576
31107         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
31108
31109 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31110
31111         PR lto/45375
31112         * ipa-inline.c: Include lto-streamer.h
31113         (report_inline_failed_reason): Output source file differences and
31114         flags on optimization/target node mismatch.
31115         (can_inline_edge_p): Consider caller to be the outer inline function;
31116         be less restrictive about matching opimize and optimize_size attributes.
31117         (inline_account_function_p): Break out from ...
31118         (inline_small_functions): ... here.
31119         * ipa-inline-transform.c (clone_inlined_nodes): Use
31120         inline_account_function_p.
31121         (inline_call): Use optimize attribution; use inline_account_function_p.
31122         (inline_transform): Use opt_for_fn.
31123         * ipa-inline.h (inline_account_function_p): Declare.
31124
31125 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
31126
31127         PR debug/64663
31128         * dwarf2out.c (decl_piece_node): Don't put bitsize into
31129         mode if bitsize <= 0.
31130         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
31131         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
31132         sizes and positions.
31133
31134 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
31135
31136         * config/nios2/nios2.c (nios2_asm_file_end): Implement
31137         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
31138         needed.
31139         (TARGET_ASM_FILE_END): Define.
31140
31141 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31142
31143         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
31144         (struct tune_params): Use the enum.
31145         * arm.c (arm_*_tune): Update.
31146         (arm_option_override): Update.
31147
31148 2015-01-20  Richard Biener  <rguenther@suse.de>
31149
31150         PR ipa/64684
31151         * ipa-reference.c (add_static_var): Inline ...
31152         (analyze_function): ... here after splitting out from ...
31153         (is_proper_for_analysis): ... this.
31154
31155 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
31156
31157         PR target/64149
31158         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
31159         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
31160         replace the conditional with it's true branch.
31161         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
31162         (arm_lra_p): Remove.
31163
31164 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
31165
31166         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
31167
31168 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31169
31170         * config/tilegx/mul-tables.c: Move symtab.h include after
31171         coretypes.h include.
31172         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
31173         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
31174         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
31175         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
31176         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
31177
31178 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
31179
31180         PR bootstrap/64676
31181         Revert:
31182         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31183
31184         PR rtl-optimization/64081
31185         * loop-iv.c (def_pred_latch_p): New function.
31186         (latch_dominating_def): Allow specific cases with non-single
31187         definitions.
31188         (iv_get_reaching_def): Likewise.
31189         (check_complex_exit_p): New function.
31190         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31191         with exits not executing on any iteration.
31192
31193 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31194
31195         PR lto/45375
31196         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
31197         to set branch cost.
31198
31199 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31200
31201         PR lto/45375
31202         * i386.c (gate): Check flag_expensive_optimizations and
31203         optimize_size.
31204         (ix86_option_override_internal): Drop optimize_size condition
31205         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
31206         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
31207         MASK_PREFER_AVX128.
31208         (ix86_avx256_split_vector_move_misalign,
31209         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
31210         * sse.md (all uses of TARGET_PREFER_AVX128): Add
31211         optimize_insn_for_speed_p check.
31212
31213 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
31214
31215         * config/mips/mips.h (FP_ASM_SPEC): New define.
31216         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
31217         instead.
31218
31219 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
31220
31221         PR target/53988
31222         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
31223         nullptr for insn when reaching the first insn.
31224         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
31225         (sh_insn_operands_modified_between_p): Add nullptr check.
31226         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
31227         sign extending mem load if the insn contains any UNSPEC or
31228         UNSPEC_VOLATILE.
31229
31230 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31231
31232         * params.def (inline-unit-growth): Drop to 15%.
31233         * invoke.texi (inline-unit-growth): Document change.
31234
31235 2015-01-19  Martin Liska  <mliska@suse.cz>
31236
31237         PR ipa/64668
31238         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
31239         function for second argument of OBJ_TYPE_REF.
31240
31241 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31242
31243         PR ipa/64218
31244         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
31245         whether function is an alias.
31246
31247 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
31248
31249         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
31250         cases.
31251
31252 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
31253
31254         PR rtl-optimization/64671
31255         * lra-remat.c (operand_to_remat): Don't consider jump and call
31256         insns.
31257
31258 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
31259
31260         PR target/59828
31261         * config/rs6000/default64.h: Include rs6000-cpus.def.
31262         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
31263         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
31264         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
31265         and POWER8.
31266         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
31267         POWER8.
31268         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
31269         pseudo-op to specify assembler dialect.
31270
31271 2015-01-19  Martin Liska  <mliska@suse.cz>
31272
31273         PR ipa/64664
31274         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
31275         Handle safe potentially removed nodes during filtering.
31276
31277 2015-01-19  Martin Liska  <mliska@suse.cz>
31278
31279         * doc/extend.texi (no_icf): Add new attribute description.
31280         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
31281         where the pass attempts to merge a function with no_icf attribute.
31282
31283 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
31284
31285         PR target/64532
31286         * doc/md.texi (ARM Options): Document register constraints.
31287
31288 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
31289             Andrew Pinski  <apinski@cavium.com>
31290
31291         PR target/64304
31292         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
31293         (ashl<mode>3): Don't expand if operands[2] is not constant.
31294
31295 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31296
31297         PR target/64448
31298         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
31299         Match xor-and-xor RTL pattern.
31300
31301 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
31302
31303         PR rtl-optimization/64081
31304         * loop-iv.c (def_pred_latch_p): New function.
31305         (latch_dominating_def): Allow specific cases with non-single
31306         definitions.
31307         (iv_get_reaching_def): Likewise.
31308         (check_complex_exit_p): New function.
31309         (check_simple_exit): Use check_complex_exit_p to allow certain cases
31310         with exits not executing on any iteration.
31311
31312 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
31313
31314         * common.opt (fgraphite): Fix a typo.
31315
31316 2015-01-19  Felix Yang  <felix.yang@huawei.com>
31317
31318         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
31319         pattern.
31320         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
31321         uminp, smax_nanp, smin_nanp): New builtins.
31322         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
31323         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
31324         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
31325         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
31326         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
31327         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
31328         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
31329         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
31330         vpminnms_f32): Rewrite using builtin functions.
31331
31332 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
31333
31334         PR libgomp/64625
31335         * omp-low.c (offload_symbol_decl): Remove variable.
31336         (get_offload_symbol_decl): Remove function.
31337         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
31338         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
31339         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
31340         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
31341         BUILT_IN_GOACC_UPDATE don't pass it at all.
31342
31343 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31344
31345         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
31346         callers.
31347
31348 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
31349
31350         * ipa-chkp.c (chkp_produce_thunks): Add early param
31351         to split thunks production into two passes.  Keep
31352         'always_inline' function bodies after the first pass.
31353         (pass_data_ipa_chkp_early_produce_thunks): New.
31354         (pass_ipa_chkp_early_produce_thunks): New.
31355         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
31356         chkp_produce_thunks signature.
31357         (make_pass_ipa_chkp_early_produce_thunks): New.
31358         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
31359         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
31360         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
31361
31362 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31363
31364         * cgraph.c (cgraph_node::dump): Dump profile flags.
31365
31366 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
31367
31368         PR target/64652
31369         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
31370         reg appear first in the parallel.
31371
31372 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31373
31374         * ipa-reference.c (set_reference_optimization_summary,
31375         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
31376         disabled.
31377         (ignore_module_statics): New static var.
31378         (propagate_bits): If ipa-reference is disabled, do not look into local
31379         properties.
31380         (analyze_function): Disable analysis when ipa_reference is disabled.
31381         (generate_summary): Do not dump when reference is disabled;
31382         collect vars accessed from functions with ipa-reference disabled.
31383         (get_read_write_all_from_node): When ipa-reference is disabled, use the
31384         node flags.
31385         (gate): Enable for LTO.
31386         (ignore_edge_p): New function.
31387         (propagate): Skip functions w/o ipa-reference analysis.
31388         * optc-save-gen.awk: Handle optimize_debug correctly.
31389         * opth-gen.awk: Likewise.
31390         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
31391         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
31392         fira-share-save-slots, fira-share-spill-slots,
31393         fmodulo-sched-allow-regmoves, fpartial-inlining,
31394         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
31395         ftracer, ftree-parallelize-loops, fassociative-math,
31396         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
31397         Optimization
31398         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
31399         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
31400         Optimization.
31401         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
31402         Fix for IPA.
31403
31404 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
31405
31406         PR ipa/64378
31407         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
31408         flag correctly.
31409         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
31410
31411 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
31412
31413         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
31414         Remove duplicate option listings.
31415
31416 2015-01-18  Felix Yang  <felix.yang@huawei.com>
31417
31418         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
31419         (autofdo_source_profile::get_callsite_total_count,
31420         function_instance::get_function_instance_by_decl,
31421         string_table::get_index, string_table::get_index_by_decl,
31422         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
31423         Fix comment typos. Reformatting and minor code rearrangement.
31424
31425 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31426
31427         * config/rs6000/rs6000.md (probe_stack): Delete.
31428         (probe_stack_address): New.
31429
31430 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31431
31432         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
31433         to test for 32-bit ABIs, not !TARGET_POWERPC64.
31434
31435 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
31436
31437         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
31438         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
31439         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
31440         snafu.
31441         (rs6000_libcall_value): Use the new function.
31442
31443 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
31444
31445         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
31446
31447 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
31448
31449         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
31450         implement a more precise life analysis for it during backward scan.
31451
31452 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
31453
31454         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
31455
31456 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
31457
31458         PR rtl-optimization/52773
31459         * calls.c (emit_library_call_value): When pushing arguments use
31460         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
31461         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
31462         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
31463
31464 2015-01-17  Jeff Law  <law@redhat.com>
31465
31466         PR rtl-optimization/32790
31467         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
31468         not ZERO_EXTEND in SET_DESTs.
31469
31470 2015-01-17  Alan Modra  <amodra@gmail.com>
31471
31472         * cprop.c (do_local_cprop): Revert last change.
31473
31474 2015-01-16  DJ Delorie  <dj@redhat.com>
31475             Nick Clifton  <nickc@redhat.com>
31476
31477         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
31478         (addhi3_real): Likewise.  Fix [HL+0] syntax.
31479         (subqi3_real): Likewise.
31480         (subhi3_real): Likewise.
31481         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
31482         (cbranchhi4_real): Likewise.
31483         (cbranchhi4_real_inverted): Likewise.
31484         (cbranchsi4_real_lt): Likewise.
31485         (cbranchsi4_real_ge): Likewise.
31486         (cbranchsi4_real_ge): Likewise.
31487         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
31488         (sub<mode>3_virt): Likewise.
31489         (cbranchqi4_virt): Likewise.
31490         (cbranchhi4_virt): Likewise.
31491         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
31492         always use '[reg+imm]' even when imm is zero.
31493         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
31494         (rl78_general_operand): New.
31495         (rl78_nonimmediate_operand): New.
31496         (rl78_nonfar_operand): Use them.
31497         (rl78_nonfar_nonimm_operand): Likewise.
31498         (rl78_stack_based_mem): Fix.
31499         * config/rl78/constraints.md (Ibqi): New.
31500         (IBqi): New.
31501         (Wsa): New.
31502         (Wsf): New.
31503         (Cs1): Fix.
31504         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
31505         (iorqi3): Likewise.
31506         (xorqi3): Likewise.
31507         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
31508
31509         * config/rl78/constrains (Qs8): New constraint.
31510         * config/rl78/rl78.c (rl78_flags_already_set): New function.
31511         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
31512         * config/rl78/rl78-real.md (update_Z): New attribute.
31513         Update patterns to set it.
31514         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
31515         shorter compare and branch sequence can be used.
31516         (cbranchhi4_real): Likewise.
31517         (cbranchhi4_real_inverted): Likewise.
31518
31519         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
31520         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
31521         address space.
31522         * config/rl78/rl78.c (rl78_get_name_encoding): New.
31523         (rl78_option_override): Allow -mes0 only if C.
31524         (characterize_address): Support subregs of symbol_refs.
31525         (rl78_addr_space_address_mode): Move.  Add __near.
31526         (rl78_far_p): Likewise.
31527         (rl78_addr_space_pointer_mode): Likewise.
31528         (rl78_as_legitimate_address): Likewise.
31529         (rl78_addr_space_subset_p): Likewise.
31530         (rl78_addr_space_convert): Likewise.
31531         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
31532         symbols with -mes0.
31533         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
31534         addressing.
31535         (rl78_alloc_physical_registers_op1): Change logic to prefer
31536         symbol[BC] addressing.
31537         (frodata_section): New.
31538         (rl78_asm_init_sections): Initialize it.
31539         (rl78_select_section): Put __far readonly symbols in .frodata.
31540         (rl78_make_type_far): New.
31541         (rl78_insert_attributes): Force all readonly symbols to be
31542         __far when -mes0.
31543         (rl78_asm_out_integer): New.
31544         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
31545         * config/rl78/rl78.opt (-mes0): New.
31546
31547         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
31548         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
31549         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
31550         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
31551         (rl78_saddr_p): New.
31552         (rl78_output_aligned_common): New.
31553         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
31554         (rl78_handle_saddr_attribute): New.
31555         (rl78_handle_naked_attribute): New.
31556         (rl78_attribute_table): Add saddr.
31557         (rl78_print_operand_1): Don't print '!' on saddr operands.
31558         (rl78_print_operand_1): Strip encodings.
31559         (rl78_sfr_p): New.
31560         (rl78_strip_name_encoding): New.
31561         (rl78_attrlist_to_encoding): New.
31562         (rl78_encode_section_info): New.
31563         (rl78_asm_init_sections): New.
31564         (rl78_select_section): New.
31565         (rl78_output_labelref): New.
31566         (rl78_output_aligned_common): New.
31567         (rl78_asm_out_integer): New.
31568         (rl78_asm_ctor_dtor): New.
31569         (rl78_asm_constructor): New.
31570         (rl78_asm_destructor): New.
31571
31572         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
31573         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
31574         (transcode_memory_rtx): Update.
31575         (rl78_expand_epilogue): Use A_REG instead of 0.
31576
31577 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31578
31579         * config/arm/arm-protos.h (struct tune_params): New field
31580         sched_autopref_queue_depth.
31581         * config/arm/arm.c (sched-int.h): Include header.
31582         (arm_first_cycle_multipass_dfa_lookahead_guard,)
31583         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
31584         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
31585         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
31586         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
31587         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
31588         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
31589         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
31590         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
31591         * config/arm/t-arm (arm.o): Update.
31592         * haifa-sched.c (update_insn_after_change): Update.
31593         (rank_for_schedule): Use auto-prefetcher model, if requested.
31594         (autopref_multipass_init): New static function.
31595         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
31596         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
31597         variable for debug dumps.
31598         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
31599         (autopref_multipass_dfa_lookahead_guard): New global function that
31600         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
31601         (init_h_i_d): Update.
31602         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
31603         * sched-int.h (enum autopref_multipass_data_status): New const enum.
31604         (autopref_multipass_data_): Structure for auto-prefetcher data.
31605         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
31606         (struct _haifa_insn_data:autopref_multipass_data): New field.
31607         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
31608         (autopref_multipass_dfa_lookahead_guard): Declare.
31609
31610 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31611
31612         * rtlanal.c (get_base_term): Handle SCRATCH.
31613
31614 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31615
31616         * config/aarch64/aarch64.c
31617         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
31618         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31619         * config/arm/arm.c
31620         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
31621         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
31622
31623 2015-01-17  Alan Modra  <amodra@gmail.com>
31624
31625         * cprop.c (do_local_cprop): Disallow replacement of fixed
31626         hard registers.
31627
31628 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31629
31630         PR target/62066
31631         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
31632         early return 0.
31633
31634 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31635
31636         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
31637         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
31638
31639 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31640
31641         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
31642         * config/arm/thumb1.md: ... Here.
31643
31644 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31645
31646         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
31647         TImode for TARGET_32BIT.
31648
31649 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31650
31651         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
31652         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
31653         as ...
31654         (rs6000_abi_word_mode): New function.
31655
31656 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31657
31658         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
31659         instead of UNITS_PER_WORD to describe the size of stack slots.
31660
31661 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31662
31663         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
31664         as rs6000_promote_function_mode.  Move comment to there.
31665         (rs6000_promote_function_mode): New function.
31666
31667 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
31668
31669         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
31670         -mpowerpc64 is active.
31671
31672 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31673
31674         PR middle-end/64353
31675         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
31676         virtuals on start.
31677
31678 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31679
31680         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
31681         introduced in revision 219724.
31682
31683 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31684             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31685
31686         PR target/64263
31687         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
31688         destination is not a GP reg.
31689         (*movdi_aarch64): Likewise.
31690
31691 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
31692
31693         PR target/64623
31694         * config/rs6000/default64.h: Revert ISA change.
31695
31696 2015-01-16  Richard Biener  <rguenther@suse.de>
31697
31698         PR middle-end/64614
31699         * tree-ssa-uninit.c: Include tree-cfg.h.
31700         (MAX_SWITCH_CASES): New define.
31701         (convert_control_dep_chain_into_preds): Handle switch statements.
31702         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
31703         (normalize_one_pred_1): Do not split bit-manipulations.
31704         Record (x & CST).
31705
31706 2015-01-16  Richard Biener  <rguenther@suse.de>
31707
31708         PR tree-optimization/64568
31709         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
31710         complex load rewriting for TARGET_MEM_REFs.
31711
31712 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
31713
31714         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
31715
31716 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
31717
31718         PR target/64149
31719         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
31720         variable.
31721         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
31722         (aarch64_lra_p): Remove.
31723
31724 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
31725
31726         PR target/64363
31727         * ipa-chkp.h (chkp_instrumentable_p): New.
31728         * ipa-chkp.c: Include tree-inline.h.
31729         (chkp_instrumentable_p): New.
31730         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
31731         Fix processing of not instrumentable functions.
31732         (chkp_versioning): Use chkp_instrumentable_p. Warn about
31733         not instrumentable functions.
31734         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
31735         chkp_instrumentable_p.
31736         * tree-inline.h (copy_forbidden): New.
31737         * tree-inline.c (copy_forbidden): Not static anymore.
31738
31739 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
31740
31741         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
31742         ptr1, ptr2 unused.
31743
31744 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31745
31746         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
31747         type OP_OUT to OP_INOUT.
31748
31749 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
31750
31751         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
31752         (high x) y) to y if x and y have the same base.
31753
31754 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
31755
31756         * config/arm/cortex-a57.md: New.
31757         * config/aarch64/aarch64.md: Include it.
31758         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
31759         * config/aarch64/aarch64-tune.md: Regenerate.
31760
31761 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
31762
31763         PR target/64015
31764         * ccmp.c (expand_ccmp_next): New function.
31765         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
31766         and compare insn sequence.
31767         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
31768         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
31769         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
31770         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
31771         (*ccmp_ior): Changed to ccmp_ior<mode>.
31772         (cmp<mode>): New pattern.
31773         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
31774         parameters.
31775         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
31776
31777 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
31778
31779         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
31780         _mm256_bsrli_epi128): New.
31781         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
31782
31783 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31784
31785         * expmed.c (store_bit_field_using_insv): Improve warning message.
31786         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
31787
31788 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
31789
31790         PR rtl-optimization/64011
31791         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
31792         there is partial overflow.
31793
31794 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31795
31796         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
31797         prototype.
31798         (nds32_expand_epilogue_v3pop): Likewise.
31799         * config/nds32/nds32.md (sibcall): Define this for sibling call
31800         optimization.
31801         (sibcall_register): Likewise.
31802         (sibcall_immediate): Likewise.
31803         (sibcall_value): Likewise.
31804         (sibcall_value_register): Likewise.
31805         (sibcall_value_immediate): Likewise.
31806         (sibcall_epilogue): Likewise.
31807         (epilogue): Pass false to indicate this is not a sibcall epilogue.
31808         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
31809         (nds32_expand_epilogue_v3pop): Likewise.
31810
31811 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31812
31813         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
31814         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
31815         (return_internal): New.
31816         (return): Define this named pattern.
31817         (simple_return): Define this named pattern.
31818         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
31819         pattern instead of unspec_volatile_func_return.
31820         (nds32_expand_epilogue_v3pop): Likewise.
31821         (nds32_can_use_return_insn): New function.
31822
31823 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31824
31825         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
31826         * config/nds32/nds32.md (pop25return): New.
31827         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
31828         pop25return pattern.
31829
31830 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31831
31832         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
31833         -mforbid-fp-as-gp, and -mex9 options.
31834
31835 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
31836
31837         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
31838         remove -mgp-direct option.
31839
31840 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31841
31842         * doc/invoke.texi (--param early-inlining-insns): Update default value.
31843         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
31844
31845 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31846
31847         * ipa-inline.c (inline_small_functions): Work around hints
31848         cache issue.
31849
31850 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
31851
31852         PR target/59710
31853         * doc/invoke.texi (Option Summary): Document new Nios II
31854         -mgpopt= syntax.
31855         (Nios II Options): Likewise.
31856         * config/nios2/nios2.opt: Add -mgpopt= option support.
31857         Modify existing -mgpopt and -mno-gpopt options to be aliases.
31858         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
31859         * config/nios2/nios2.c (nios2_option_override): Adjust
31860         -mgpopt defaulting.
31861         (nios2_in_small_data_p): Return true for explicit small data
31862         sections even with -G0.
31863         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
31864         option choices.
31865
31866 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
31867
31868         PR ipa/64612
31869         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
31870         of comdat locals.
31871         (inline_call): Fix removal of aliases.
31872
31873 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
31874
31875         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
31876         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
31877         * opts.c (common_handle_option): Add -fsanitize=vptr.
31878         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
31879         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
31880         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
31881         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
31882         (ubsan_expand_vptr_ifn): New prototype.
31883         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
31884         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
31885         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
31886         expand_LOOP_VECTORIZED): Make argument nameless, remove
31887         ATTRIBUTE_UNUSED.
31888         (expand_UBSAN_VPTR): New function.
31889         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
31890         in fn spec.
31891         (UBSAN_VPTR): New internal function.
31892         * sanopt.c (tree_map_traits): Renamed to ...
31893         (sanopt_tree_map_traits): ... this.
31894         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
31895         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
31896         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
31897         (maybe_optimize_ubsan_vptr_ifn): New function.
31898         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
31899         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
31900         -fsanitize=vptr.
31901         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
31902         internal calls like pure functions for aliasing, even when they
31903         have other side-effects that prevent making them ECF_PURE.
31904         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
31905         (ubsan_expand_vptr_ifn): New function.
31906
31907 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
31908
31909         PR rtl-optimization/64110
31910         * stmt.c (parse_output_constraint): Process '^' and '$'.
31911         (parse_input_constraint): Ditto.
31912         * lra-constraints.c (process_alt_operands): Process the new
31913         constraints.
31914         * ira-costs.c (record_reg_classes): Process the new constraint
31915         '^'.
31916         * genoutput.c (indep_constraints): Add '^' and '$'.
31917         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
31918         * doc/md.texi: Add description of the new constraints.
31919
31920 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
31921             Bernd Schmidt  <bernds@codesourcery.com>
31922             Cesar Philippidis  <cesar@codesourcery.com>
31923             James Norris  <jnorris@codesourcery.com>
31924             Tom de Vries  <tom@codesourcery.com>
31925             Ilmir Usmanov  <i.usmanov@samsung.com>
31926             Dmitry Bocharnikov  <dmitry.b@samsung.com>
31927             Evgeny Gavrin  <e.gavrin@samsung.com>
31928             Jakub Jelinek  <jakub@redhat.com>
31929
31930         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
31931         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31932         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31933         New function types.
31934         * builtins.c: Include "gomp-constants.h".
31935         (expand_builtin_acc_on_device): New function.
31936         (expand_builtin, is_inexpensive_builtin): Handle
31937         BUILT_IN_ACC_ON_DEVICE.
31938         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
31939         New macros.
31940         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
31941         flag_openmp.
31942         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
31943         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
31944         i386/intelmic-offload.h.
31945         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
31946         to libgomp and its dependencies.
31947         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
31948         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
31949         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
31950         * config/ia64/hpux.h (LIB_SPEC): Likewise.
31951         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
31952         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
31953         * doc/generic.texi: Update for OpenACC changes.
31954         * doc/gimple.texi: Likewise.
31955         * doc/invoke.texi: Likewise.
31956         * doc/sourcebuild.texi: Likewise.
31957         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
31958         GF_OMP_FOR_KIND_OACC_LOOP.
31959         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
31960         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
31961         GF_OMP_TARGET_KIND_OACC_UPDATE,
31962         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
31963         Dump more data.
31964         * gimple.c: Update comments for OpenACC changes.
31965         * gimple.def: Likewise.
31966         * gimple.h: Likewise.
31967         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
31968         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
31969         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
31970         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
31971         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
31972         appropriate place.
31973         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
31974         * gimplify.c: Include "gomp-constants.h".
31975         Update comments for OpenACC changes.
31976         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
31977         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
31978         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
31979         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
31980         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
31981         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
31982         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
31983         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
31984         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
31985         OMP_CLAUSE_SEQ.
31986         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
31987         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
31988         OMP_CLAUSE_SET_MAP_KIND.
31989         (gimplify_oacc_cache): New function.
31990         (gimplify_omp_for): Handle OACC_LOOP.
31991         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
31992         OACC_DATA.
31993         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
31994         OACC_EXIT_DATA, OACC_UPDATE.
31995         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
31996         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
31997         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
31998         (gimplify_body): Consider flag_openacc next to flag_openmp.
31999         * lto-streamer-out.c: Include "gomp-constants.h".
32000         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
32001         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
32002         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
32003         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
32004         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
32005         (BUILT_IN_ACC_ON_DEVICE): New builtins.
32006         * omp-low.c: Include "gomp-constants.h".
32007         Update comments for OpenACC changes.
32008         (struct omp_context): Add reduction_map, gwv_below, gwv_this
32009         members.
32010         (extract_omp_for_data, use_pointer_for_field, install_var_field)
32011         (new_omp_context, delete_omp_context, scan_sharing_clauses)
32012         (create_omp_child_function, scan_omp_for, scan_omp_target)
32013         (check_omp_nesting_restrictions, lower_reduction_clauses)
32014         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
32015         Update for OpenACC changes.
32016         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
32017         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
32018         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
32019         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
32020         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
32021         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
32022         OMP_CLAUSE_MAP_*.
32023         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
32024         Handle GF_OMP_FOR_KIND_OACC_LOOP.
32025         (expand_omp_target, lower_omp_target): Handle
32026         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
32027         GF_OMP_TARGET_KIND_OACC_UPDATE,
32028         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
32029         GF_OMP_TARGET_KIND_OACC_DATA.
32030         (pass_expand_omp::execute, execute_lower_omp)
32031         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
32032         flag_openmp.
32033         (offload_symbol_decl): New variable.
32034         (oacc_get_reduction_array_id, oacc_max_threads)
32035         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
32036         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
32037         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
32038         (oacc_gimple_assign, oacc_initialize_reduction_data)
32039         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
32040         functions.
32041         (is_targetreg_ctx): Remove function.
32042         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
32043         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
32044         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
32045         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
32046         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
32047         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
32048         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
32049         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
32050         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
32051         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
32052         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
32053         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
32054         * tree-core.h: Update comments for OpenACC changes.
32055         (enum omp_clause_map_kind): Remove.
32056         (struct tree_omp_clause): Change type of map_kind member from enum
32057         omp_clause_map_kind to unsigned char.
32058         * tree-inline.c: Update comments for OpenACC changes.
32059         * tree-nested.c: Likewise.  Include "gomp-constants.h".
32060         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
32061         (convert_tramp_reference_stmt, convert_gimple_call): Update for
32062         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
32063         OMP_CLAUSE_SET_MAP_KIND.
32064         * tree-pretty-print.c: Include "gomp-constants.h".
32065         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
32066         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
32067         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
32068         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
32069         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
32070         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
32071         instead of OMP_CLAUSE_MAP_*.
32072         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
32073         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
32074         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
32075         * tree-streamer-in.c: Include "gomp-constants.h".
32076         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
32077         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
32078         * tree-streamer-out.c: Include "gomp-constants.h".
32079         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
32080         OMP_CLAUSE_MAP_*.
32081         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
32082         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
32083         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
32084         * tree.c (omp_clause_num_ops): Update accordingly.
32085         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
32086         Likewise.
32087         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
32088         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
32089         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
32090         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
32091         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
32092         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
32093         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
32094         (OMP_CLAUSE_SET_MAP_KIND): New macro.
32095         * varpool.c (varpool_node::get_create): Consider flag_openacc next
32096         to flag_openmp.
32097         * config/i386/intelmic-offload.h: New file.
32098         * config/nvptx/offload.h: Likewise.
32099
32100 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32101
32102         * explow.h: Remove duplicate contents.
32103         * dojump.h: Likewise.
32104
32105 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
32106
32107         * arm.c (arm_xgene_tune): Add default initializer for instruction
32108         fusion.
32109
32110 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
32111
32112         PR ipa/64068
32113         PR ipa/64559
32114         * ipa.c (symbol_table::remove_unreachable_nodes):
32115         Do not put abstract origins into boundary.
32116
32117 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
32118
32119         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
32120         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
32121
32122 2015-01-15  Steve Ellcey  <sellcey@mips.com>
32123
32124         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
32125         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
32126         builtins.def, and chkp-builtins.def.
32127
32128 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
32129
32130         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
32131         ISA 2.7 (POWER8).
32132
32133 2015-01-15  Richard Biener  <rguenther@suse.de>
32134
32135         PR tree-optimization/61743
32136         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
32137         information on PHIs for some simple cases.
32138
32139 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32140
32141         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
32142         Include xgene1.md.
32143         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
32144         * config/arm/arm-cores.def (xgene1): New entry.
32145         * config/arm/arm-tables.opt: Regenerate.
32146         * config/arm/arm-tune.md: Regenerate.
32147         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
32148
32149 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32150
32151         * tree-if-conv.c: Include hash-map.h.
32152         (aggressive_if_conv): New variable.
32153         (fold_build_cond_expr): Add simplification of non-zero condition.
32154         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
32155         destination block is not always executed.
32156         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
32157         than two predecessors if AGGRESSIVE_IF_CONV is true.
32158         (if_convertible_stmt_p): Fix commentary.
32159         (all_preds_critical_p): New function.
32160         (has_pred_critical_p): New function.
32161         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
32162         BB can have more than two predecessors and all incoming edges can be
32163         critical.
32164         (predicate_bbs): Skip predication for loop exit block, use build2_loc
32165         to compute predicate for true edge.
32166         (find_phi_replacement_condition): Delete this function.
32167         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
32168         Allow interchange PHI arguments if EXTENDED is false.
32169         Change check that block containing reduction statement candidate
32170         is predecessor of phi-block since phi may have more than two arguments.
32171         (phi_args_hash_traits): New helper structure.
32172         (struct phi_args_hash_traits): New type.
32173         (phi_args_hash_traits::hash): New function.
32174         (phi_args_hash_traits::equal_keys): New function.
32175         (gen_phi_arg_condition): New function.
32176         (predicate_scalar_phi): Add handling of phi nodes with more than two
32177         arguments, delete COND and TRUE_BB arguments, insert body of
32178         find_phi_replacement_condition to predicate ordinary phi nodes.
32179         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
32180         delete call of find_phi_replacement_condition and invoke
32181         predicate_scalar_phi with two arguments.
32182         (insert_gimplified_predicates): Add assert that non-predicated block
32183         don't have statements to insert.
32184         (ifcvt_split_critical_edges): New function.
32185         (ifcvt_split_def_stmt): Likewise.
32186         (ifcvt_walk_pattern_tree): Likewise.
32187         (stmt_is_root_of_bool_pattern): Likewise.
32188         (ifcvt_repair_bool_pattern): Likewise.
32189         (ifcvt_local_dce): Likewise.
32190         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
32191         is copy of inner or outer loop force_vectorize field, invoke
32192         ifcvt_split_critical_edges, ifcvt_local_dce and
32193         ifcvt_repair_bool_pattern for aggressive if-conversion.
32194
32195 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
32196
32197         * config/aarch64/aarch64.md: Include xgene1.md.
32198         * config/aarch64/xgene1.md: New file.
32199
32200 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
32201
32202         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
32203         xgene1 (APM XGene-1) core definition.
32204         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
32205         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
32206         * doc/invoke.texi: Document -mcpu=xgene1.
32207
32208 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32209
32210         * dojump.h: New header file.
32211         * explow.h: Likewise.
32212         * expr.h: Remove includes.
32213         Move expmed.c prototypes to expmed.h.
32214         Move dojump.c prototypes to dojump.h.
32215         Move alias.c prototypes to alias.h.
32216         Move explow.c prototypes to explow.h.
32217         Move calls.c prototypes to calls.h.
32218         Move emit-rtl.c prototypes to emit-rtl.h.
32219         Move varasm.c prototypes to varasm.h.
32220         Move stmt.c prototypes to stmt.h.
32221         (saved_pending_stack_adjust): Move to dojump.h.
32222         (adjust_address): Move to explow.h.
32223         (adjust_address_nv): Move to emit-rtl.h.
32224         (adjust_bitfield_address): Likewise.
32225         (adjust_bitfield_address_size): Likewise.
32226         (adjust_bitfield_address_nv): Likewise.
32227         (adjust_automodify_address_nv): Likewise.
32228         * explow.c (expr_size): Move to expr.c.
32229         (int_expr_size): Likewise.
32230         (tree_expr_size): Likewise.
32231         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32232         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32233         * genemit.c (main): Generate includes statistics.h, real.h,
32234         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
32235         stmt.h.
32236         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
32237         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
32238         explow.h, emit-rtl.h, stmt.h.
32239         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
32240         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
32241         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
32242         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
32243         emit-rtl.h, varasm.h, stmt.h.
32244         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
32245         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
32246         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
32247         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
32248         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
32249         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
32250         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
32251         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
32252         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
32253         tm.h tree.h varasm.h vec.h wide-int.h.
32254         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32255         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32256         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
32257         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
32258         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
32259         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
32260         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
32261         * loop-iv.c: Likewise.
32262         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
32263         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
32264         statistics.h stmt.h tree.h varasm.h wide-int.h.
32265         * lra-constraints.c: Likewise.
32266         * lra-eliminations.c: Likewise.
32267         * lra-lives.c: Likewise.
32268         * lra-remat.c: Likewise.
32269         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32270         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
32271         statistics.h stmt.h tree.h varasm.h wide-int.h.
32272         * hw-doloop.c: Likewise.
32273         * ira-color.c: Likewise.
32274         * ira-emit.c: Likewise.
32275         * loop-doloop.c: Likewise.
32276         * loop-invariant.c: Likewise.
32277         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32278         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
32279         statistics.h stmt.h tree.h varasm.h wide-int.h.
32280         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
32281         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
32282         statistics.h stmt.h tree.h varasm.h wide-int.h.
32283         * combine-stack-adj.c: Likewise.
32284         * cse.c: Likewise.
32285         * ddg.c: Likewise.
32286         * ifcvt.c: Likewise.
32287         * ira-costs.c: Likewise.
32288         * jump.c: Likewise.
32289         * lra-coalesce.c: Likewise.
32290         * lra-spills.c: Likewise.
32291         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32292         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
32293         stmt.h varasm.h wide-int.h.
32294         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
32295         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32296         varasm.h.
32297         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
32298         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
32299         statistics.h stmt.h varasm.h wide-int.h.
32300         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
32301         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
32302         varasm.h wide-int.h.
32303         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
32304         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32305         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
32306         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
32307         statistics.h stmt.h.
32308         * config/tilepro/tilepro.c: Likewise.
32309         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
32310         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
32311         * config/pdp11/pdp11.c: Likewise.
32312         * config/xtensa/xtensa.c: Likewise.
32313         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
32314         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
32315         varasm.h.
32316         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32317         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32318         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
32319         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32320         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
32321         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
32322         * rtl-chkp.c: Likewise.
32323         * tree-chkp-opt.c: Likewise.
32324         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
32325         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
32326         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
32327         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32328         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32329         statistics.h stmt.h.
32330         * tree-vect-data-refs.c: Likewise.
32331         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
32332         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32333         rtl.h statistics.h stmt.h varasm.h.
32334         * internal-fn.c: Likewise.
32335         * ipa-icf-gimple.c: Likewise.
32336         * lto-section-out.c: Likewise.
32337         * tree-data-ref.c: Likewise.
32338         * tree-nested.c: Likewise.
32339         * tree-outof-ssa.c: Likewise.
32340         * tree-predcom.c: Likewise.
32341         * tree-pretty-print.c: Likewise.
32342         * tree-scalar-evolution.c: Likewise.
32343         * tree-ssa-strlen.c: Likewise.
32344         * tree-vect-loop.c: Likewise.
32345         * tree-vect-patterns.c: Likewise.
32346         * tree-vect-slp.c: Likewise.
32347         * tree-vect-stmts.c: Likewise.
32348         * tsan.c: Likewise.
32349         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32350         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
32351         stmt.h.
32352         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
32353         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32354         statistics.h stmt.h varasm.h.
32355         * loop-unroll.c: Likewise.
32356         * ubsan.c: Likewise.
32357         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
32358         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
32359         stmt.h varasm.h.
32360         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32361         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
32362         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
32363         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32364         statistics.h stmt.h.
32365         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
32366         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
32367         statistics.h stmt.h varasm.h.
32368         * gimple-match-head.c: Likewise.
32369         * lto-cgraph.c: Likewise.
32370         * lto-section-in.c: Likewise.
32371         * lto-streamer-in.c: Likewise.
32372         * lto-streamer-out.c: Likewise.
32373         * tree-affine.c: Likewise.
32374         * tree-cfg.c: Likewise.
32375         * tree-cfgcleanup.c: Likewise.
32376         * tree-if-conv.c: Likewise.
32377         * tree-into-ssa.c: Likewise.
32378         * tree-ssa-alias.c: Likewise.
32379         * tree-ssa-copyrename.c: Likewise.
32380         * tree-ssa-dse.c: Likewise.
32381         * tree-ssa-forwprop.c: Likewise.
32382         * tree-ssa-live.c: Likewise.
32383         * tree-ssa-math-opts.c: Likewise.
32384         * tree-ssa-pre.c: Likewise.
32385         * tree-ssa-sccvn.c: Likewise.
32386         * tree-tailcall.c: Likewise.
32387         * tree-vect-generic.c: Likewise.
32388         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32389         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
32390         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32391         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
32392         * varasm.c: Likewise.
32393         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32394         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
32395         varasm.h.
32396         * init-regs.c: Likewise.
32397         * ira.c: Likewise.
32398         * omp-low.c: Likewise.
32399         * stack-ptr-mod.c: Likewise.
32400         * tree-ssa-reassoc.c: Likewise.
32401         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32402         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
32403         varasm.h.
32404         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32405         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
32406         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32407         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
32408         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32409         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
32410         * tree-ssa-phiopt.c: Likewise.
32411         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32412         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32413         * config/fr30/fr30.c: Likewise.
32414         * config/frv/frv.c: Likewise.
32415         * expr.c: Likewise.
32416         * final.c: Likewise.
32417         * optabs.c: Likewise.
32418         * passes.c: Likewise.
32419         * simplify-rtx.c: Likewise.
32420         * stmt.c: Likewise.
32421         * toplev.c: Likewise.
32422         * var-tracking.c: Likewise.
32423         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32424         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32425         * lower-subreg.c: Likewise.
32426         * postreload-gcse.c: Likewise.
32427         * ree.c: Likewise.
32428         * reginfo.c: Likewise.
32429         * store-motion.c: Likewise.
32430         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32431         fixed-value.h hashtab.h real.h stmt.h varasm.h.
32432         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32433         fixed-value.h hashtab.h statistics.h stmt.h.
32434         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32435         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
32436         * except.c: Likewise.
32437         * explow.c: Likewise.
32438         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32439         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
32440         varasm.h.
32441         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32442         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
32443         * tree-ssa-structalias.c: Likewise.
32444         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32445         fixed-value.h insn-config.h real.h statistics.h.
32446         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32447         fixed-value.h insn-config.h real.h statistics.h stmt.h.
32448         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32449         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32450         * cfgbuild.c: Likewise.
32451         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32452         fixed-value.h real.h rtl.h statistics.h stmt.h.
32453         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32454         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32455         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32456         fixed-value.h real.h statistics.h stmt.h.
32457         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
32458         fixed-value.h real.h statistics.h stmt.h varasm.h.
32459         * cprop.c: Likewise.
32460         * modulo-sched.c: Likewise.
32461         * postreload.c: Likewise.
32462         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32463         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
32464         statistics.h stmt.h varasm.h.
32465         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
32466         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32467         rtl.h statistics.h stmt.h varasm.h.
32468         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
32469         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
32470         varasm.h.
32471         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
32472         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
32473         varasm.h.
32474         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
32475         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
32476         varasm.h.
32477         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
32478         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32479         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32480         function.h real.h statistics.h stmt.h varasm.h.
32481         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32482         insn-config.h real.h statistics.h stmt.h.
32483         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
32484         statistics.h stmt.h.
32485         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
32486         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
32487         statistics.h stmt.h varasm.h.
32488         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
32489         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
32490         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32491         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
32492         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
32493         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
32494         statistics.h stmt.h varasm.h.
32495         * ipa-polymorphic-call.c: Likewise.
32496         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
32497         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32498         statistics.h stmt.h.
32499         * config/c6x/c6x.c: Likewise.
32500         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
32501         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
32502         statistics.h stmt.h varasm.h.
32503         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
32504         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
32505         stmt.h varasm.h.
32506         * ipa-split.c: Likewise.
32507         * tree-eh.c: Likewise.
32508         * tree-ssa-dce.c: Likewise.
32509         * tree-ssa-loop-niter.c: Likewise.
32510         * tree-vrp.c: Likewise.
32511         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
32512         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
32513         stmt.h.
32514         * config/nds32/nds32-fp-as-gp.c: Likewise.
32515         * config/nds32/nds32-intrinsic.c: Likewise.
32516         * config/nds32/nds32-isr.c: Likewise.
32517         * config/nds32/nds32-md-auxiliary.c: Likewise.
32518         * config/nds32/nds32-memory-manipulation.c: Likewise.
32519         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
32520         * config/nds32/nds32-predicates.c: Likewise.
32521         * config/nds32/nds32.c: Likewise.
32522         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
32523         fixed-value.h hashtab.h real.h statistics.h.
32524         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
32525         fixed-value.h hashtab.h real.h statistics.h stmt.h.
32526         * config/arm/arm.c: Likewise.
32527         * config/avr/avr.c: Likewise.
32528         * config/bfin/bfin.c: Likewise.
32529         * config/h8300/h8300.c: Likewise.
32530         * config/i386/i386.c: Likewise.
32531         * config/ia64/ia64.c: Likewise.
32532         * config/iq2000/iq2000.c: Likewise.
32533         * config/m32c/m32c.c: Likewise.
32534         * config/m32r/m32r.c: Likewise.
32535         * config/m68k/m68k.c: Likewise.
32536         * config/mcore/mcore.c: Likewise.
32537         * config/mep/mep.c: Likewise.
32538         * config/mips/mips.c: Likewise.
32539         * config/mn10300/mn10300.c: Likewise.
32540         * config/moxie/moxie.c: Likewise.
32541         * config/pa/pa.c: Likewise.
32542         * config/rl78/rl78.c: Likewise.
32543         * config/rx/rx.c: Likewise.
32544         * config/s390/s390.c: Likewise.
32545         * config/sh/sh.c: Likewise.
32546         * config/sparc/sparc.c: Likewise.
32547         * config/spu/spu.c: Likewise.
32548         * config/stormy16/stormy16.c: Likewise.
32549         * config/v850/v850.c: Likewise.
32550         * config/vax/vax.c: Likewise.
32551         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
32552         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
32553         * config/msp430/msp430.c: Likewise.
32554         * predict.c: Likewise.
32555         * value-prof.c: Likewise.
32556         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
32557         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
32558         * config/microblaze/microblaze.c: Likewise.
32559         * config/nios2/nios2.c: Likewise.
32560         * config/rs6000/rs6000.c: Likewise.
32561         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32562         insn-config.h real.h rtl.h statistics.h stmt.h.
32563         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
32564         insn-config.h real.h statistics.h stmt.h.
32565         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
32566         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
32567         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
32568         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
32569         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
32570         fixed-value.h real.h statistics.h stmt.h.
32571         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
32572         fixed-value.h statistics.h stmt.h.
32573         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
32574         stmt.h.
32575
32576 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
32577
32578         * gengtype.c (create_user_defined_type): Workaround
32579         -Wmaybe-uninitialized false positives.
32580         * cse.c (fold_rtx): Likewise.
32581         * loop-invariant.c (gain_for_invariant): Likewise.
32582
32583 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
32584
32585         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
32586         set the memory attributes in all cases but clear MEM_EXPR if need be.
32587
32588 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
32589
32590         PR tree-optimization/64434
32591         * cfgexpand.c (reorder_operands): New function.
32592         (expand_gimple_basic_block): Insert call of reorder_operands if
32593         optimized is true.
32594
32595 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
32596
32597         * config/mips/micromips.md (*swp): Remove explicit parallel.
32598         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
32599         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
32600         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
32601         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
32602         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
32603         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
32604         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
32605         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
32606         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
32607         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
32608         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
32609         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
32610         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
32611         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
32612         (mips_wrdsp): Likewise.
32613         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
32614         parallel.
32615         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
32616         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
32617         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
32618         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
32619         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
32620         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
32621         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
32622         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
32623         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
32624
32625 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32626
32627         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
32628         (mips_print_operand): Support 'y' to print exact log2 in decimal
32629         of a const_int.
32630         * config/mips/mips.h (ISA_HAS_LSA): New define.
32631         (ISA_HAS_DLSA): Likewise.
32632         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
32633         * config/mips/predicates.md (const_immlsa_operand): New predicate.
32634
32635 2015-01-15  Martin Liska  <mliska@suse.cz>
32636
32637         PR target/64377
32638         * optc-save-gen.awk: Add support for array types.
32639
32640 2015-01-15  Richard Biener  <rguenther@suse.de>
32641
32642         PR middle-end/64365
32643         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
32644         for MEM_REF access functions with the same base can never partially
32645         overlap.
32646
32647 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
32648
32649         * common.opt: New option -fstack-protector-explicit.
32650         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
32651         (stack_protect_decl_phase): Handle stack_protect attribute for
32652         explicit stack protection requests.
32653         (expand_used_vars): Similarly.
32654         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
32655         * doc/extend.texi: Add documentation for "stack_protect" attribute.
32656         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
32657
32658 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
32659
32660         PR target/53988
32661         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
32662         reg-reg copies.
32663         (sh_extending_set_of_reg): New struct.
32664         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
32665         sh_remove_reg_dead_or_unused_notes): New Declarations.
32666         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
32667         sh_find_extending_set_of_reg, sh_split_tst_subregs,
32668         sh_extending_set_of_reg::use_as_extended_reg): New functions.
32669         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
32670         convert to insn_and_split and use new function sh_split_tst_subregs.
32671
32672 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
32673
32674         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
32675         option.
32676         (Optimization Options): Move -fuse-ld documentation to...
32677         (Link Options): ...here.
32678
32679 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32680
32681         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
32682         offsets.
32683         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
32684         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
32685         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
32686         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
32687         instead of ZR for the memory operand of LL/SC.
32688         (compare_and_swap_12, sync_add<mode>): Likewise.
32689         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
32690         (sync_new_<optab>_12, sync_nand_12): Likewise.
32691         (sync_old_nand_12, sync_new_nand_12): Likewise.
32692         (sync_sub<mode>, sync_old_add<mode>): Likewise.
32693         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
32694         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
32695         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
32696         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
32697         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
32698         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
32699         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
32700         * doc/md.texi (ZC): Update description.
32701
32702 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32703
32704         * builtins.c (expand_builtin_atomic_exchange): Remove error when
32705         memory model is CONSUME.
32706         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
32707         expand_builtin_atomic_store): Change invalid memory model errors to
32708         warnings.
32709         (expand_builtin_atomic_clear): Change invalid model errors to warnings
32710         and issue warning for CONSUME.
32711
32712 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
32713
32714         * lto-cgraph: Update function comments for
32715         lto_symtab_encoder_encode_*.
32716
32717 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32718
32719         * Makefile.in (site.exp): Do not set ENABLE_LTO.
32720
32721 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
32722
32723         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
32724         * lto-cgraph.c (select_what_to_stream): Remove argument, use
32725         lto_stream_offload_p instead.
32726         * lto-streamer.h (select_what_to_stream): Remove argument.
32727         * passes.c (ipa_write_summaries): Likewise.
32728         * tree-pass.h (ipa_write_summaries): Likewise.
32729
32730 2015-01-14  Richard Biener  <rguenther@suse.de>
32731
32732         PR tree-optimization/59354
32733         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
32734         groups larger than the slp group size as having gaps.
32735
32736 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
32737
32738         PR middle-end/59448
32739         * builtins.c (get_memmodel): Promote consume to acquire always.
32740
32741 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32742
32743         PR target/64386
32744         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
32745         V32HImode.
32746
32747 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32748
32749         PR target/64393
32750         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
32751         Enable AVX512BW.
32752         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
32753         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
32754         AVX512VBMI, as it implies AVX512BW.
32755
32756 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
32757
32758         PR target/64387
32759         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
32760         (vec_unpacks_hi_v16sf): Ditto.
32761
32762 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32763
32764         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
32765         is not available.
32766
32767 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32768
32769         * doc/invoke.texi (mapcs): Mention deprecation.
32770         (mapcs-frame): Likewise.
32771
32772 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32773
32774         PR target/64453
32775         * config/arm/arm.c (callee_saved_reg_p): Define.
32776         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
32777         register is callee saved instead of !call_used_regs[reg].
32778         (thumb1_compute_save_reg_mask): Likewise.
32779
32780 2015-01-14  Hale Wang  <hale.wang@arm.com>
32781
32782         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
32783         Cortex-M7.
32784
32785 2015-01-14  Richard Biener  <rguenther@suse.de>
32786
32787         PR lto/64415
32788         * tree-inline.c (insert_debug_decl_map): Check destination
32789         function MAY_HAVE_DEBUG_STMTS.
32790         (insert_init_debug_bind): Likewise.
32791         (insert_init_stmt): Remove redundant check.
32792         (remap_gimple_stmt): Drop debug stmts if the destination
32793         function has var-tracking assignments disabled.
32794
32795 2015-01-14  Martin Liska  <mliska@suse.cz>
32796
32797         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
32798         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
32799
32800 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32801
32802         PR target/64460
32803         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
32804         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
32805
32806 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
32807
32808         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
32809         level from an ARCH; do not inject the default.
32810         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
32811         MIPS_ISA_LEVEL_SPEC.
32812         (MIPS_ISA_NAN2008_SPEC): Update comment.
32813         (BASE_DRIVER_SELF_SPECS): Likewise.
32814         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
32815         MIPS_DEFAULT_ISA_LEVEL_SPEC.
32816         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
32817         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
32818         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
32819
32820 2015-01-14  Richard Biener  <rguenther@suse.de>
32821
32822         PR tree-optimization/64493
32823         PR tree-optimization/64495
32824         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
32825         assign the proper vectorized PHI to the inner loop exit PHIs.
32826
32827 2015-01-14  Joey Ye  <joey.ye@arm.com>
32828
32829         * config/arm/arm.c (arm_compute_save_reg_mask):
32830         Do not save lr in case of tail call.
32831         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
32832
32833 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
32834
32835         * tree-vrp.c (check_array_ref): Emit more warnings
32836         for warn_array_bounds >= 2.
32837         * common.opt: New option -Warray-bounds=.
32838         * doc/invoke.texi: Document -Warray-bounds=.
32839
32840 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
32841
32842         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
32843         (mforbid-fp-as-gp): Remove.
32844         (mex9): Remove.
32845         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
32846         (nds32_symbol_load_store_p): Remove.
32847         (nds32_fp_as_gp_check_available): Clean up implementation.
32848         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
32849         cases.
32850         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
32851         fp-as-gp and ex9 cases.
32852
32853 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32854
32855         * tree-profile.c (init_ic_make_global_vars): Drop workaround
32856         for bintuils bug 14342.
32857         (init_ic_make_global_vars): Likewise.
32858         (gimple_init_edge_profiler): Likewise.
32859         (gimple_gen_ic_func_profiler): Likewise.
32860
32861 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
32862
32863         * ipa-inline.c (inline_small_functions): Swap the operands in
32864         enum.
32865
32866 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32867
32868         PR ipa/64481
32869         * ipa-inline-analysis.c (node_growth_cache): Remove.
32870         (initialize_growth_caches): Do not initialize it.
32871         (free_growth_caches): Do not free it.
32872         (do_estimate_growth): Rename to ...
32873         (estimate_growth): ... this one; drop growth cache code.
32874         (growth_likely_positive): Always go the heuristics way.
32875         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
32876         (reset_edge_caches): Do not reset node growth.
32877         (heap_edge_removal_hook): Do not maintain cache.
32878         (inline_small_functions): Likewise; strenghten sanity check.
32879         (ipa_inline): Do not maintain caches.
32880         * ipa-inline.h (node_growth_cache): Remove.
32881         (do_estimate_growth): Remove to ...
32882         (estimate_growth): this one; remove inline version.
32883         (reset_node_growth_cache): Remove.
32884
32885 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
32886
32887         PR ipa/64565
32888         * ipa-inline.c (inline_small_functions): Update callee keys after
32889         resolving speculation
32890         (inline_small_functions): Always check monotonicity of the queue.
32891
32892 2015-01-13  Marek Polacek  <polacek@redhat.com>
32893
32894         PR middle-end/64391
32895         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
32896
32897 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
32898
32899         PR rtl-optimization/64286
32900         * ree.c (combine_reaching_defs): Move part of comment earlier,
32901         remove !SCALAR_INT_MODE_P check.
32902         (add_removable_extension): Don't add vector mode
32903         extensions if all uses of the source register aren't the same
32904         vector extensions.
32905
32906 2015-01-13  Renlin Li  <renlin.li@arm.com>
32907
32908         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
32909         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
32910
32911 2015-01-13  Martin Liska  <mliska@suse.cz>
32912
32913         * ipa-icf.c (sem_function::equals_private): Call new functions
32914         cl_target_option_print_diff and cl_optimization_print_diff.
32915         * optc-save-gen.awk (cl_target_option_print_diff): New function.
32916         (cl_optimization_print_diff): Likewise.
32917         * opth-gen.awk: Likewise.
32918
32919 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
32920
32921         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
32922         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
32923         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
32924         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
32925         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
32926         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
32927
32928 2015-01-13  Andrew Pinski  <apinski@cavium.com>
32929
32930         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
32931         instead of src mode.
32932
32933 2015-01-13  Richard Biener  <rguenther@suse.de>
32934
32935         PR lto/64373
32936         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
32937         DECL_CONTEXT.
32938
32939 2015-01-13  Andrew Pinski  <apinski@cavium.com>
32940
32941         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
32942         volatile mems.
32943         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
32944
32945 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
32946
32947         PR middle-end/63974
32948         * cfgexpand.c (expand_computed_goto): Don't call
32949         convert_memory_address here.
32950
32951 2015-01-13  Richard Biener  <rguenther@suse.de>
32952
32953         PR tree-optimization/64406
32954         * tree-loop-distibution.c (pass_loop_distribution::execute):
32955         Reset the SCEV hashtable if we distributed anything.
32956
32957 2015-01-13  Richard Biener  <rguenther@suse.de>
32958
32959         PR tree-optimization/64404
32960         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
32961         SLP types for CSEd loads.
32962
32963 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32964
32965         PR tree-optimization/64436
32966         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
32967         merge of two symbolic numbers for a bitwise OR to ...
32968         (perform_symbolic_merge): This. Also fix computation of the range and
32969         end of the symbolic number corresponding to the result of a bitwise OR.
32970
32971 2015-01-13  Richard Biener  <rguenther@suse.de>
32972
32973         PR tree-optimization/64568
32974         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
32975         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
32976
32977 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32978
32979         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
32980         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
32981
32982 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32983
32984         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
32985         target-specific symbol_ref flag.
32986         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
32987         resides in rodata section.
32988         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
32989         (nds32_encode_section_info): New function.
32990
32991 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
32992
32993         * config/nds32/nds32.md (call): Use pseudo instruction bal which
32994         clobbers TA_REGNUM if large code model is specified.
32995         (call_register): Likewise.
32996         (call_immediate): Likewise.
32997         (call_value): Likewise.
32998         (call_value_register): Likewise.
32999         (call_value_immediate): Likewise.
33000
33001 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33002
33003         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
33004         (TARGET_CMODEL_MEDIUM): New macro.
33005         (TARGET_CMODEL_LARGE): New macro.
33006         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
33007         code model setting in assembly code.
33008
33009 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33010
33011         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
33012         Remove MASK_GP_DIRECT flag.
33013         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
33014         one of the multilib default options.
33015         * config/nds32/nds32.opt (mgp-direct): Remove.
33016         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
33017         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
33018
33019 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
33020
33021         * config/nds32/nds32.opt (mcmodel): Add new option.
33022         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
33023         to describe code model.
33024
33025 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
33026
33027         PR target/64479
33028         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
33029
33030 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
33031
33032         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
33033         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
33034         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
33035         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
33036         __builtin_sh_set_fpscr.
33037
33038 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33039
33040         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
33041         after a funtion name just to indicate it is a function.
33042         ([-fsanitize-undefined-trap-on-error]): Likewise.
33043         ([-fdbg-cnt=]): Likewise.
33044         ([-mmemcpy]): Likewise.
33045         ([-mflush-func]): Likewise.
33046         ([-msynci]): Likewise.
33047
33048 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
33049
33050         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
33051         example.
33052
33053 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
33054
33055         PR tree-optimization/64563
33056         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
33057         instead of != VR_VARYING.
33058
33059         PR target/64513
33060         * config/i386/i386.c (ix86_expand_prologue): Add
33061         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
33062
33063         PR tree-optimization/64454
33064         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
33065         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
33066         for signed or [0, op1 - 1] for unsigned modulo.
33067         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
33068         even if op1 does not satisfy integer_pow2p.
33069
33070         PR other/64370
33071         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
33072
33073 2015-01-12  Jeff Law  <law@redhat.com>
33074
33075         PR target/64461
33076         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
33077         (trunchiqi2, truncsihi2): Similarly.
33078
33079         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
33080         rather than calling F.
33081
33082 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33083
33084         * tsan.c (instrument_expr): Use force_gimple_operand.
33085         Use may_be_nonaddressable_p instead of is_gimple_addressable.
33086
33087 2015-01-12  Richard Biener  <rguenther@suse.de>
33088
33089         PR tree-optimization/64530
33090         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
33091         back dr1.
33092
33093 2015-01-12  Richard Biener  <rguenther@suse.de>
33094
33095         PR middle-end/64357
33096         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
33097         latches properly.
33098
33099 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33100
33101         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
33102         Cortex-A17 tuning parameters.
33103         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
33104
33105 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33106
33107         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
33108         * config/arm/arm.c (arm_macro_fusion_p): New function.
33109         (arm_macro_fusion_pair_p): Likewise.
33110         (TARGET_SCHED_MACRO_FUSION_P): Define.
33111         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
33112         (ARM_FUSE_NOTHING): Likewise.
33113         (ARM_FUSE_MOVW_MOVT): Likewise.
33114         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
33115         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
33116         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
33117         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
33118         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
33119         arm_cortex_a5_tune): Specify fuseable_ops value.
33120
33121 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
33122
33123         PR bootstrap/64561
33124         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
33125         test for PIE with copy reloc.
33126         * configure: Regenerated.
33127
33128 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33129
33130         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
33131         in gen_rtx_REG.
33132         (arm_tls_descseq_addr): Likewise.
33133         (arm_gen_movmemqi): Likewise.
33134         (arm_expand_epilogue_apcs_frame): Likewise.
33135         (arm_expand_epilogue): Likewise.
33136         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
33137         in gen_rtx_REG.
33138
33139 2015-01-12  Martin Liska  <mliska@suse.cz>
33140
33141         PR ipa/64550
33142         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
33143         volatility for correct operands.
33144
33145 2015-01-12  Martin Liska  <mliska@suse.cz>
33146
33147         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
33148         indication that a function is not leaf.
33149         (sem_function::compare_polymorphic_p): Likewise.
33150
33151 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33152
33153         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
33154         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
33155         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
33156         fold-const.h, tree-check.h.
33157
33158 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33159
33160         PR ipa/63967
33161         PR ipa/64425
33162         * ipa-inline.c (compute_uninlined_call_time,
33163         compute_inlined_call_time): Use counts for extra precision when
33164         needed possible.
33165         (big_speedup_p): Fix formating.
33166         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
33167         (relative_time_benefit): Remove.
33168         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
33169         merge guessed and read profile paths.
33170         (inline_small_functions): Count only !optimize_size functions into
33171         initial size; be more lax about sanity check when profile is used;
33172         be sure to update inlined function profile when profile is read.
33173
33174 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
33175
33176         PR ipa/63470
33177         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
33178         cost when edge becomes direct.
33179         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
33180         is resolved or when introducing new speculation.
33181
33182 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
33183
33184         PR ipa/64551
33185         PR ipa/64552
33186         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
33187         '||' to fix typo issue.
33188
33189         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
33190         accept and return NULL.
33191
33192 2015-01-12  Martin Liska  <mliska@suse.cz>
33193
33194         * cgraph.c (cgraph_edge::remove_callee): Move function to header
33195         file for being inlined.
33196         (cgraph_set_edge_callee): Delete.
33197         (cgraph_edge::redirect_callee): Move function to header file
33198         for being inlined.
33199         (cgraph_edge::make_direct): Use new function.
33200         (cgraph_edge::dump_edge_flags): New function created from
33201         static dump_edge_flags function.
33202         (cgraph_node::dump): Use new function.
33203         (cgraph_edge::verify_count_and_frequency): New function created
33204         from verify_edge_count_and_frequency.
33205         (cgraph_edge::verify_corresponds_to_fndecl): New function created
33206         from verify_edge_corresponds_to_fndecl.
33207         (verify_edge_corresponds_to_fndecl): Delete.
33208         (cgraph_node::verify_node): Use new function.
33209         * cgraph.h (cgraph_edge::set_callee): New function.
33210         (cgraph_edge::dump_edge_flags): Likewise.
33211         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
33212
33213 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
33214
33215         * ipa-utils.c (estimate_function_body_sizes): Do not
33216         free node params when called late with early=true.
33217
33218 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
33219
33220         * doc/md.texi (Instruction Patterns): Rewrite text for
33221         clarity.
33222         (Example): Likewise.
33223
33224 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
33225
33226         * doc/invoke.texi (Option Summary): Break long lines.
33227         [(-fdiagnostics-color)]: Put long literal in @smallexample
33228         instead of inline.
33229         [(-fsanitize-recover)]: Likewise.
33230         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
33231         [(-ffast-math)]: Likewise.
33232         [(--param max-inline-insns-recursive)]: Likewise.
33233         [(--param max-inline-recursive-depth)]: Likewise.
33234         [(-mno-text-section-literals)]: Likewise.
33235
33236 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
33237
33238         * doc/install.texi: Update for libgomp being renamed from "GNU
33239         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
33240         Runtime Library".
33241         * doc/sourcebuild.texi: Likewise.
33242
33243 2015-01-10  Anthony Green  <green@moxielogic.com>
33244
33245         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
33246         mul.x availability for moxiebox configuration.
33247
33248 2015-01-09  Anthony Green  <green@moxielogic.com>
33249
33250         * config/moxie/moxie.md: Tabify assembly output.
33251
33252 2015-01-09  Anthony Green  <green@moxielogic.com>
33253
33254         * config/moxie/moxie.md (CC_REG): Correct register definition.
33255
33256 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
33257
33258         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
33259         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
33260         of log files.
33261
33262 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33263
33264         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
33265
33266 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
33267             Jakub Jelinek  <jakub@redhat.com>
33268
33269         PR middle-end/64412
33270         * lto-streamer.h (lto_stream_offload_p): New declaration.
33271         * lto-streamer.c (lto_stream_offload_p): New variable.
33272         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
33273         at the same time as section_name_prefix.
33274         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
33275         if lto_stream_offload_p.
33276         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
33277         stream TREE_TARGET_OPTION if lto_stream_offload_p.
33278         (write_ts_function_decl_tree_pointers): Don't
33279         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
33280         * tree-streamer-in.c (unpack_value_fields): Don't stream
33281         TREE_TARGET_OPTION in if ACCEL_COMPILER.
33282         (lto_input_ts_function_decl_tree_pointers): Don't stream
33283         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
33284         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
33285         instead of section_name_prefix string comparisons.
33286
33287 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
33288
33289         PR rtl-optimization/64536
33290         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
33291         tablejumps.
33292
33293 2015-01-09  Michael Collison  <michael.collison@linaro.org>
33294
33295         PR tree-optimization/64322
33296         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
33297         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
33298
33299 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33300
33301         PR rtl-optimization/64539
33302         * regcprop.c (kill_clobbered_values): Factor out of ...
33303         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
33304         instead of note_stores with kill_clobbered_value.
33305
33306 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33307
33308          * ginclude/unwind-arm-common.h: Revert previous commit.
33309
33310 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
33311
33312         * config.gcc (arm*-*-freebsd*): New configuration.
33313         * config/arm/freebsd.h: New file.
33314         * config.host: Add extra components for arm*-*-freebsd*.
33315         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
33316         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
33317
33318 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33319
33320         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
33321         for -mcpu=e6500.
33322         * config/rs6000/t-rtems: Add e6500 multilibs.
33323
33324 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33325
33326         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
33327         MPC8540.
33328
33329 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33330
33331         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
33332         MULTILIB_EXCEPTIONS.
33333
33334 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33335
33336         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
33337         MULTILIB_EXCEPTIONS.
33338
33339 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
33340
33341         * config/arm/t-rtems-eabi: Rename to...
33342         * config/arm/t-rtems: ...this.
33343         * config/arm/rtems-eabi.h: Rename to...
33344         * config/arm/rtems.h: ...this.
33345         * config.gcc (arm*-*-rtems*): Reflect changes above.
33346
33347 2015-01-09  Richard Biener  <rguenther@suse.de>
33348
33349         PR tree-optimization/64410
33350         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
33351         on the LHS.
33352         (execute_update_addresses_taken): Deal with that.
33353         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
33354         loads/stores for complex variables.
33355
33356 2015-01-09  Martin Liska  <mliska@suse.cz>
33357
33358         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
33359         name comparison.
33360         (func_checker::compare_memory_operand): New function.
33361         (func_checker::compare_operand): Split case to newly
33362         added functions.
33363         (func_checker::compare_cst_or_decl): New function.
33364         (func_checker::compare_gimple_call): Identify
33365         memory operands.
33366         (func_checker::compare_gimple_assign): Likewise.
33367         * ipa-icf-gimple.h: New function.
33368
33369 2015-01-09  Martin Liska  <mliska@suse.cz>
33370
33371         PR ipa/64503
33372         * sreal.c (sreal::dump): Change unsigned format to signed for
33373         m_exp value.
33374         (sreal::to_double): Replace exp2 with scalbln.
33375
33376 2015-01-09  Martin Liska  <mliska@suse.cz>
33377
33378         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
33379         * ipa-icf.c (sem_function::equals_private): Add support for target and
33380         (sem_item_optimizer::merge_classes): Remove redundant function
33381         optimization flags comparison.
33382         * tree.h (target_opts_for_fn): New function.
33383
33384 2015-01-09  Tom de Vries  <tom@codesourcery.com>
33385
33386         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
33387
33388 2015-01-09  Kito Cheng  <kito@0xlab.org>
33389
33390         PR rtl-optimization/64348
33391         * lra-constraints.c (split_reg): Fix caller-save store/restore
33392         instruction generation.
33393
33394 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
33395
33396         PR gcov-profile/61790
33397         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
33398         long long.  Fallback to int64_t if host doesn't have long long and
33399         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
33400
33401 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33402
33403         PR tree-optimization/63989
33404         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
33405         from 1000 to 10000.
33406         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
33407         (get_stridx): If we don't have a record for certain SSA_NAME,
33408         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
33409         constant offset, call get_stridx_plus_constant.
33410         (get_stridx_plus_constant): New function.
33411         (zero_length_string): Don't use get_stridx here.
33412
33413         PR target/55023
33414         PR middle-end/64388
33415         * dse.c (struct insn_info): Mention frame_read set also
33416         before reload for tail calls on some targets.
33417         (scan_insn): Revert 2014-12-22 change.  Set frame_read
33418         also before reload for tail calls if
33419         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
33420         instead of add_non_frame_wild_read for non-const/memset
33421         tail calls after reload.
33422
33423 2015-01-08  Jason Merrill  <jason@redhat.com>
33424
33425         * ubsan.c (do_ubsan_in_current_function): New.
33426         (pass_ubsan::gate): Use it.
33427         * ubsan.h: Declare it.
33428         * convert.c (convert_to_integer): Use it.
33429
33430 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33431
33432         PR target/64338
33433         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
33434         compare_code when it is unconditionally overwritten afterwards.
33435         Use ix86_reverse_condition instead of reverse_condition.  Don't
33436         change code if *reverse_condition* returned UNKNOWN and don't
33437         swap ct/cf and negate diff in that case.
33438
33439 2015-01-08  Mike Stump  <mikestump@comcast.net>
33440
33441         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
33442         (pass_tsan_O0::gate): Likewise.
33443         * extend.texi (Function Attributes): Add no_sanitize_thread
33444         documentation.
33445
33446 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
33447
33448         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
33449         for registering builtins.
33450         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
33451         add -fopenmp to the argv_obstack used when invoking
33452         compile_for_target.
33453
33454         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
33455         add "-m32" or "-m64" to argv_obstack.
33456         (generate_host_descr_file): Likewise, when invoking host_compiler.
33457         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
33458         ld.
33459
33460 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33461
33462         * config/sh/sh-mem.cc: Use constant as second operand when emitting
33463         tstsi_t insns.
33464
33465 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
33466
33467         PR target/55212
33468         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
33469         constant load if constant operand fits into I08.
33470
33471 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
33472
33473         PR sanitizer/64336
33474         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
33475         and TREE_THIS_VOLATILE for MEM_REFs.
33476         (build5_stat): Fix up initialization of TREE_READONLY and
33477         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
33478
33479 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
33480
33481         PR target/64533
33482         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
33483         of r for the second alternative of the destination operand.
33484
33485 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
33486
33487         PR target/36557
33488         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
33489
33490 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33491
33492         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
33493         keywords.
33494         ([-fivar-visibility], [-fvisibility]): Likewise.
33495
33496 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
33497
33498         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
33499         the file where @code, @command, etc is more appropriate.
33500
33501 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
33502
33503         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
33504         of -mrecip= documentation.
33505
33506 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
33507
33508         PR target/64505
33509         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
33510         correct reload handler if -m32 -mpowerpc64 is used.
33511
33512 2015-01-06  Tom de Vries  <tom@codesourcery.com>
33513
33514         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
33515
33516 2015-01-08  Christian Bruel  <christian.bruel@st.com>
33517
33518         PR target/64507
33519         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
33520
33521 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33522
33523         PR tree-optimization/63259
33524         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
33525         if optab exists for 16bit byteswap.
33526
33527 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
33528
33529         * opts.c (common_handle_option): Add support for
33530         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
33531         * doc/invoke.texi: Document -fno-sanitize=all,
33532         -f{,no-}sanitize-recover=all.  Document that
33533         -fsanitize=float-cast-overflow is not enabled
33534         by -fsanitize=undefined.  Fix up documentation
33535         of -f{,no-}sanitize-recover.
33536
33537 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
33538
33539         * config.gcc: Add Visium support.
33540         * configure.ac: Likewise.
33541         * configure: Regenerate.
33542         * doc/extend.texi (interrupt attribute): Add Visium.
33543         * doc/invoke.texi: Document Visium options.
33544         * doc/install.texi: Document Visium target.
33545         * doc/md.texi: Document Visium constraints.
33546         * common/config/visium: New directory.
33547         * config/visium: Likewise.
33548
33549 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33550
33551         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
33552         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
33553
33554 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
33555
33556         * combine.c (combine_validate_cost): Do not count the cost of a
33557         split I2 twice.  Do not display it twice in the dump, either.
33558
33559 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33560
33561         Revert parts of r219199.
33562         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
33563         <inttypes.h>.
33564         ([-Wtraditional]): Restore markup on <limits.h>.
33565
33566 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
33567
33568         PR c++/31397
33569         * doc/invoke.texi: Document -Wsuggest-override.
33570
33571 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
33572
33573         PR rtl-optimization/64287
33574         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
33575         (process_options): Disable flag_ipa_ra if profiling.
33576
33577 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
33578
33579         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
33580
33581 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
33582
33583         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
33584         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
33585         put under #if TARGET_LOOPS guard.
33586
33587 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
33588
33589         * config/i386/i386.c (output_387_binary_op): Use std::swap.
33590
33591 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
33592
33593         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
33594         * rtl.h (refers_to_regno_p): Add overload.
33595         * cse.c: Use it.
33596         * bt-load.c: Likewise.
33597         * combine.c: Likewise.
33598         * df-scan.c: Likewise.
33599         * sched-deps.c: Likewise.
33600         * config/s390/s390.c: Likewise.
33601         * config/m32r/m32r.c: Likewise.
33602         * config/rs6000/spe.md: Likewise.
33603         * config/rs6000/rs6000.c: Likewise.
33604         * config/pa/pa.c: Likewise.
33605         * config/stormy16/stormy16.c: Likewise.
33606         * config/cris/cris.c: Likewise.
33607         * config/arc/arc.md: Likewise.
33608         * config/arc/arc.c: Likewise.
33609         * config/sh/sh.md: Likewise.
33610         * config/sh/sh.c: Likewise.
33611         * config/frv/frv.c: Likewise.
33612
33613 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33614
33615         PR sanitizer/64265
33616         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
33617         call as cleanup of the whole body.
33618         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
33619         * tsan.c (replace_func_exit): New function.
33620         (instrument_func_exit): Moved earlier.
33621         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
33622         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
33623         been found.
33624         (tsan_pass): Don't call instrument_func_exit.
33625         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
33626         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
33627         inlining.
33628
33629         PR sanitizer/64344
33630         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
33631         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
33632         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
33633         if the result is integer_zerop, return NULL_TREE.
33634         * convert.c (convert_to_integer): Pass expr as ARG.
33635
33636         PR tree-optimization/64465
33637         * tree-inline.c (redirect_all_calls): During inlining
33638         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
33639         changed the stmt to a non-throwing call.
33640
33641 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
33642
33643         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
33644         etc markup throughout the file.
33645
33646 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33647
33648         Enable experimental TSAN support for Ada.
33649         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
33650
33651 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33652
33653         PR tree-optimization/64494
33654         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
33655         clear SSA_NAME_ANTI_RANGE_P flag.
33656
33657 2015-01-05  Marek Polacek  <polacek@redhat.com>
33658
33659         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
33660
33661 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
33662
33663         Update copyright years.
33664
33665         * gcc.c (process_command): Update copyright notice dates.
33666         * gcov-dump.c: Ditto.
33667         * gcov.c: Ditto.
33668         * doc/cpp.texi: Bump @copying's copyright year.
33669         * doc/cppinternals.texi: Ditto.
33670         * doc/gcc.texi: Ditto.
33671         * doc/gccint.texi: Ditto.
33672         * doc/gcov.texi: Ditto.
33673         * doc/install.texi: Ditto.
33674         * doc/invoke.texi: Ditto.
33675
33676         * auto-profile.c, auto-profile.h: Fix up Copyright line.
33677
33678 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
33679
33680         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
33681         verb tense, etc.
33682         ([-fvtable-verify], [-fvtv-debug]): Likewise.
33683         ([-Wabi]): Likewise.
33684         ([-fmessage-length]): Likewise.
33685         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
33686         ([-Wno-discarded-qualifiers]): Likewise.
33687         ([-Wnodiscarded-array-qualifiers]): Likewise.
33688         ([-Wno-virtual-move-assign]): Likewise.
33689         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
33690         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
33691         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
33692         ([-fsanitize-undefined-trap-on-error]): Likewise.
33693         ([-floop-interchange]): Likewise.
33694         ([-ftree-coalesce-inlined-vars]): Likewise.
33695         ([-fvect-cost-model]): Likewise.
33696         ([-flto]): Likewise.
33697         ([--param]): Likewise.
33698         (Spec Files): Likewise.
33699         ([-mstrict-align]): Likewise.
33700         ([-mfix-cortex-a53-835769]): Likewise.
33701         ([-march], [-mtune]): Likewise.
33702         ([-mpic-register]): Likewise.
33703         ([-munaligned-access]): Likewise.
33704         ([-msp8]): Likewise.
33705         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
33706         (AVR Built-in Macros): Likewise.
33707         ([-mpreferred-stack-boundary]): Likewise.
33708         ([-mtune-crtl]): Likewise.
33709         ([-mashf]): Likewise.
33710         ([-mmcu=]): Likewise.
33711         ([-minrt]): Likewise.
33712         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
33713         ([-mupper-regs]): Likewise.
33714         ([-matomic-model]): Likewise.
33715         ([-mdiv]): Likewise.
33716         ([-mzdcbranch]): Likewise.
33717         ([-mdisable-callt]): Likewise.
33718         ([-msoft-float]): Likewise.
33719         ([-m8byte-align]): Likewise.
33720         ([-fstack-reuse]): Likewise.
33721
33722 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33723
33724         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
33725         Fix markup, light copy-editing.
33726         ([-fauto-profile]): Rewrite to fix formatting and content
33727         problems.
33728
33729 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33730
33731         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
33732         Copy-edit description.
33733         ([-fisolate-erroneous-paths-attribute]): Likewise.
33734         * common.opt (fisolate-erroneous-paths-dereference):
33735         Copy-edit description.
33736         (fisolate-erroneous-paths-attribute): Likewise.
33737
33738 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33739
33740         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
33741         tidy grammar.
33742
33743 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
33744
33745         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
33746         ([-fvtv-debug]): Likewise.
33747         ([-Wc++-compat]): Likewise.
33748         ([-Wc++11-compat]): Likewise.
33749         ([-Wc++14-compat]): Likewise.
33750         ([-Wno-sized-deallocation]): Likewise.
33751         ([-femit-class-debug-always]): Likewise.
33752         ([-femit-struct-debug-detailed]): Likewise.
33753         ([-fno-keep-inline-dllexport]): Likewise.
33754         ([-fira-algorithm]): Likewise.
33755         ([-fira-region]): Likewise.
33756         ([-flra-remat]): Likewise.
33757         ([-fipa-ra]): Likewise.
33758         ([-fhoist-adjacent-loads]): Likewise.
33759         ([-fisolate-erroneous-paths-dereference]): Likewise.
33760         ([-fisolate-erroneous-paths-attribute]): Likewise.
33761         ([-ftree-switch-conversion]): Likewise.
33762         ([-ftree-tail-merge]): Likewise.
33763         ([-ftree-loop-if-convert]): Likewise.
33764         ([-ftree-loop-if-convert-stores]): Likewise.
33765         ([-ftree-loop-distribution]): Likewise.
33766         ([-ftree-loop-distribute-patterns]): Likewise.
33767         ([-flto-compression-level]): Likewise.
33768         ([-flto-report]): Likewise.
33769         ([-flto-report-wpa]): Likewise.
33770         ([-fuse-linker-plugin]): Likewise.
33771         ([-mfix-cortex-a53-835769]): Likewise.
33772         ([-mno-fix-cortex-a53-835769]): Likewise.
33773         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
33774         explicit listing; add a note to the discussion indicating they
33775         exist.  Reorder table to group similar options.  Add missing
33776         @opindex entries.  Add @need commands throughout the table to
33777         allow it to be split across multiple pages.
33778         ([-m8bit-idiv]): Fix @opindex.
33779         ([-mavx256-split-unaligned-load]): Likewise.
33780         ([-mavx256-split-unaligned-store]): Likewise.
33781         ([-mstack-protector-guard]): Likewise.
33782         ([-mcpu=]): Likewise.
33783         ([-mcpu]): Likewise.
33784         ([-mpointer-size=]): Likewise.
33785
33786 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
33787
33788         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
33789         instead of `m' constraint.  Likewise for unnamed movb comparison
33790         patterns using reg_before_reload_operand predicate.
33791         * config/pa/predicates.md (reg_before_reload_operand): Tighten
33792         predicate to reject register index and LO_SUM DLT memory forms
33793         after reload.
33794
33795 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33796
33797         * doc/invoke.texi (Option Summary): Fix spelling of
33798         -fdevirtualize-at-ltrans.
33799         ([-fdevirtualize]): Fix markup.
33800         ([-fdevirtualize-speculatively]): Fix typo.
33801         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
33802         implementor-speaky.
33803         * common.opt (fdevirtualize-at-ltrans): Likewise.
33804         * ipa-devirt.c: Fix typos in comments throughout the file.
33805         (ipa_devirt): Fix typos in format strings for dump output.
33806
33807 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
33808
33809         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
33810         discussion of defaults, light copy-editing.
33811
33812 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33813
33814         * tsan.c (instrument_expr): corrected previous checkin.
33815
33816 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33817
33818         Instrument bit field and unaligned accesses for TSAN.
33819         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
33820         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
33821         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
33822         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
33823         unaligned memory regions.
33824
33825 2015-01-01  Anthony Green  <green@moxielogic.com>
33826
33827         * config/moxie/predicates.md (moxie_general_movsrc_operand):
33828         Restrict move source register offsets to 16 bits.
33829 \f
33830 Copyright (C) 2015 Free Software Foundation, Inc.
33831
33832 Copying and distribution of this file, with or without modification,
33833 are permitted in any medium without royalty provided the copyright
33834 notice and this notice are preserved.