bd9abfc6702a91004925f3a26777c2d649a4e663
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
2
3         * rtl.h (emit): Add an optional boolean parameter to control
4         whether barriers are emitted.
5         * emit-rtl.c (emit): Likewise.
6         * gensupport.c (get_emit_function): Return null rather than "emit".
7         * genemit.c (gen_emit_seq): Handle the null return value.
8         Don't emit barriers after the final instruction in the sequence.
9         * gentarget-def.c (main): Don't emit barriers after the instruction.
10
11 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12
13         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
14         TARGET_UNIFIED_ASM.
15
16 2015-06-26  Richard Biener  <rguenther@suse.de>
17
18         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
19
20 2015-06-26  Richard Biener  <rguenther@suse.de>
21
22         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
23         irrespective on whether the inner operation has a single use
24         of both off are constant.
25
26 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
27             Segher Boessenkool  <segher@kernel.crashing.org>
28
29         PR target/66412
30         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
31         before doing PUT_MODE or PUT_CODE on operands to avoid
32         in-place RTX modification.
33
34 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
35
36         * gentarget-def.c (def_target_insn): Cast return of strtol to
37         unsigned int.
38
39 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
40
41         * gimple.h (gimple_call_set_fn): Move inline function.
42         * gimple.c (gimple_call_set_fn): Relocate here.
43
44 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
45
46         PR target/65979
47         PR target/66611
48         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
49         the replacement insn will work.
50
51 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
52
53         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
54         by default.
55
56 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
57
58         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
59         * cgraph.h: Include ipa-ref.h and plugin-api.h.
60         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
61         (symtab_node::address_can_be_compared_p): Move function.
62         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
63         definition here.
64         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
65         * auto-profile.c: Likewise.
66         * bb-reorder.c: Likewise.
67         * builtins.c: Likewise.
68         * calls.c: Likewise.
69         * cfgexpand.c: Likewise.
70         * cgraphbuild.c: Likewise.
71         * cgraphclones.c: Likewise.
72         * cgraphunit.c: Likewise.
73         * combine.c: Likewise.
74         * coverage.c: Likewise.
75         * data-streamer-in.c: Likewise.
76         * data-streamer-out.c: Likewise.
77         * data-streamer.c: Likewise.
78         * dbxout.c: Likewise.
79         * dwarf2out.c: Likewise.
80         * except.c: Likewise.
81         * expr.c: Likewise.
82         * final.c: Likewise.
83         * fold-const.c: Likewise.
84         * ggc-page.c: Likewise.
85         * gimple-fold.c: Likewise.
86         * gimple-iterator.c: Likewise.
87         * gimple-pretty-print.c: Likewise.
88         * gimple-streamer-in.c: Likewise.
89         * gimple-streamer-out.c: Likewise.
90         * gimple.c: Likewise.
91         * gimplify.c: Likewise.
92         * ipa-chkp.c: Likewise.
93         * ipa-comdats.c: Likewise.
94         * ipa-cp.c: Likewise.
95         * ipa-devirt.c: Likewise.
96         * ipa-icf-gimple.c: Likewise.
97         * ipa-icf.c: Likewise.
98         * ipa-inline-analysis.c: Likewise.
99         * ipa-inline-transform.c: Likewise.
100         * ipa-inline.c: Likewise.
101         * ipa-polymorphic-call.c: Likewise.
102         * ipa-profile.c: Likewise.
103         * ipa-prop.c: Likewise.
104         * ipa-pure-const.c: Likewise.
105         * ipa-ref.c: Likewise.
106         * ipa-reference.c: Likewise.
107         * ipa-split.c: Likewise.
108         * ipa-utils.c: Likewise.
109         * ipa-visibility.c: Likewise.
110         * ipa.c: Likewise.
111         * langhooks.c: Likewise.
112         * lto-cgraph.c: Likewise.
113         * lto-compress.c: Likewise.
114         * lto-opts.c: Likewise.
115         * lto-section-in.c: Likewise.
116         * lto-section-out.c: Likewise.
117         * lto-streamer-in.c: Likewise.
118         * lto-streamer-out.c: Likewise.
119         * lto-streamer.c: Likewise.
120         * omp-low.c: Likewise.
121         * opts-global.c: Likewise.
122         * passes.c: Likewise.
123         * predict.c: Likewise.
124         * print-tree.c: Likewise.
125         * profile.c: Likewise.
126         * ree.c: Likewise.
127         * sanopt.c: Likewise.
128         * stor-layout.c: Likewise.
129         * symtab.c: Likewise.
130         * toplev.c: Likewise.
131         * trans-mem.c: Likewise.
132         * tree-cfg.c: Likewise.
133         * tree-chkp.c: Likewise.
134         * tree-eh.c: Likewise.
135         * tree-emutls.c: Likewise.
136         * tree-inline.c: Likewise.
137         * tree-nested.c: Likewise.
138         * tree-parloops.c: Likewise.
139         * tree-pretty-print.c: Likewise.
140         * tree-profile.c: Likewise.
141         * tree-sra.c: Likewise.
142         * tree-ssa-alias.c: Likewise.
143         * tree-ssa-live.c: Likewise.
144         * tree-ssa-loop-ivcanon.c: Likewise.
145         * tree-ssa-loop-ivopts.c: Likewise.
146         * tree-ssa-pre.c: Likewise.
147         * tree-ssa-sccvn.c: Likewise.
148         * tree-ssa-strlen.c: Likewise.
149         * tree-ssa-structalias.c: Likewise.
150         * tree-streamer-in.c: Likewise.
151         * tree-streamer-out.c: Likewise.
152         * tree-streamer.c: Likewise.
153         * tree-switch-conversion.c: Likewise.
154         * tree-tailcall.c: Likewise.
155         * tree-vect-data-refs.c: Likewise.
156         * tree-vect-stmts.c: Likewise.
157         * tree-vectorizer.c: Likewise.
158         * tree.c: Likewise.
159         * tsan.c: Likewise.
160         * ubsan.c: Likewise.
161         * value-prof.c: Likewise.
162         * varasm.c: Likewise.
163         * varpool.c: Likewise.
164         * config/arm/arm.c: Likewise.
165         * config/bfin/bfin.c: Likewise.
166         * config/c6x/c6x.c: Likewise.
167         * config/cris/cris.c: Likewise.
168         * config/darwin-c.c: Likewise.
169         * config/darwin.c: Likewise.
170         * config/i386/i386.c: Likewise.
171         * config/i386/winnt.c: Likewise.
172         * config/microblaze/microblaze.c: Likewise.
173         * config/mips/mips.c: Likewise.
174         * config/rs6000/rs6000.c: Likewise.
175         * config/rx/rx.c: Likewise.
176         * config/s390/s390.c: Likewise.
177         * config/tilegx/mul-tables.c: Likewise.
178
179 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
180
181         * config/aarch64/aarch64.c, config/alpha/alpha.c,
182         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
183         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
184         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
185         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
186         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
187         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
188         config/microblaze/microblaze.c, config/mips/mips.c,
189         config/mmix/mmix.c, config/mn10300/mn10300.c,
190         config/moxie/moxie.c, config/msp430/msp430.c,
191         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
192         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
193         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
194         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
195         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
196         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
197         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
198         target-def.h include.
199         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
200
201 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
202
203         * Makefile.in (TARGET_DEF): Add target-insns.def.
204         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
205         (build/gentarget-def.o): New rule.
206         (genprogrtl): Add target-def.
207         * target-insns.def, gentarget-def.c: New files.
208         * target.def: Add targetm.have_* and targetm.gen_* hooks,
209         based on the contents of target-insns.def.
210         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
211         (HAVE_return, gen_return): Delete.
212         * target-def.h: Include insn-target-def.h.
213         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
214         instead of direct calls.  Rely on them to do the appropriate assertions.
215         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
216         (convert_jumps_to_returns): Use targetm interface instead of
217         direct calls.
218         (thread_prologue_and_epilogue_insns): Likewise.
219         * reorg.c (find_end_label, dbr_schedule): Likewise.
220         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
221         * shrink-wrap.c (convert_to_simple_return): Likewise.
222         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
223
224 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
225
226         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
227         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
228         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
229         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
230         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
231         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
232         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
233         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
234         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
235         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
236         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
237         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
238         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
239         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
240         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
241         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
242         includes to end.
243
244 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
245
246         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
247         (unbounded_int_hashmap_traits::key_type): Likewise.
248         * hash-map.h (hash_map): Get the key type from the traits.
249         * hash-traits.h (default_hash_traits): By default, inherit from the
250         template parameter.
251         * alias.c (alias_set_traits): Delete.
252         (alias_set_entry_d::children): Use alias_set_hash as the first
253         template parameter.
254         (record_alias_subset): Update accordingly.
255         * except.c (tree_hash_traits): Delete.
256         (type_to_runtime_map): Use tree_hash as the first template parameter.
257         (init_eh): Update accordingly.
258         * genmatch.c (capture_id_map_hasher): Delete.
259         (cid_map_t): Use nofree_string_hash as first template parameter.
260         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
261         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
262         Use symbol_compare_hash as the first template parameter in
263         subdivide_hash_map.
264         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
265         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
266         template parameter.
267         * passes.c (pass_registry_hasher): Delete.
268         (name_to_pass_map): Use nofree_string_hash as the first template
269         parameter.
270         (register_pass_name): Update accordingly.
271         * sanopt.c (sanopt_tree_map_traits): Delete.
272         (sanopt_tree_triplet_map_traits): Delete.
273         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
274         template parameter.
275         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
276         the first template parameter.
277         * sese.c (rename_map_hasher): Delete.
278         (rename_map_type): Use tree_ssa_name_hash as the first template
279         parameter.
280         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
281         (function_summary::m_map): Use map_hash as the first template
282         parameter.
283         (function_summary::release): Update accordingly.
284         * tree-if-conv.c (phi_args_hash_traits): Delete.
285         (predicate_scalar_phi): Use tree_operand_hash as the first template
286         parameter to phi_arg_map.
287         * tree-inline.h (dependence_hasher): Delete.
288         (copy_body_data::dependence_map): Use dependence_hash as the first
289         template parameter.
290         * tree-inline.c (remap_dependence_clique): Update accordingly.
291         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
292         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
293         parameter.
294         (addr_stridxptr): Update accordingly.
295         * value-prof.c (profile_id_traits): Delete.
296         (cgraph_node_map): Use profile_id_hash as the first template
297         parameter.
298         (init_node_map): Update accordingly.
299         * config/alpha/alpha.c (string_traits): Delete.
300         (machine_function::links): Use nofree_string_hash as the first
301         template parameter.
302         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
303         * config/m32c/m32c.c (pragma_traits): Delete.
304         (pragma_htab): Use nofree_string_hash as the first template parameter.
305         (m32c_note_pragma_address): Update accordingly.
306         * config/mep/mep.c (pragma_traits): Delete.
307         (pragma_htab): Use nofree_string_hash as the first template parameter.
308         (mep_note_pragma_flag): Update accordingly.
309         * config/mips/mips.c (mips16_flip_traits): Delete.
310         (mflip_mips16_htab): Use nofree_string_hash as the first template
311         parameter.
312         (mflip_mips16_use_mips16_p): Update accordingly.
313         (local_alias_traits): Delete.
314         (mips16_local_aliases): Use nofree_string_hash as the first template
315         parameter.
316         (mips16_local_alias): Update accordingly.
317
318 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
319
320         * hash-map-traits.h (default_hashmap_traits): Delete.
321
322 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
323
324         * hash-map-traits.h (unbounded_hashmap_traits): New class.
325         (unbounded_int_hashmap_traits): Likewise.
326         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
327
328 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
329
330         * ipa-icf.h (symbol_compare_hash): New class.
331         (symbol_compare_hashmap_traits): Use it.
332         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
333         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
334         (mem_alloc_description::reverse_mem_map_t): Remove redundant
335         default_hashmap_traits.
336         * sanopt.c (sanopt_tree_triplet_hash): New class.
337         (sanopt_tree_triplet_map_traits): Use it.
338
339 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
340
341         * gengtype-parse.c (require_template_declaration): Allow '+' in
342         template parameters.  Consolidate cases.
343         * hash-traits.h (int_hash): New class.
344         * alias.c (alias_set_hash): New structure.
345         (alias_set_traits): Use it.
346         * symbol-summary.h (function_summary::map_hash): New class.
347         (function_summary::summary_hashmap_traits): Use it.
348         * tree-inline.h (dependence_hash): New class.
349         (dependence_hasher): Use it.
350         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
351         * value-prof.c (profile_id_hash): New class.
352         (profile_id_traits): Use it.
353
354 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
355
356         * config/mips/mips.c (mips16_flip_traits): Use it.
357         (local_alias_traits, mips16_local_aliases): Convert from a map of
358         rtxes to a map of symbol names.
359         (mips16_local_alias): Update accordingly.
360
361 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
362
363         * hash-traits.h (string_hash, nofree_string_hash): New classes.
364         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
365         * passes.c (pass_registry_hasher): Likewise.
366         * config/alpha/alpha.c (string_traits): Likewise.
367         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
368         * config/m32c/m32c.c (pragma_traits): Likewise.
369         * config/mep/mep.c (pragma_traits): Likewise.
370
371 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
372
373         * tree-hash-traits.h (tree_hash): New class.
374         * except.c: Include tree-hash-traits.h.
375         (tree_hash_traits): Use tree_hash.
376
377 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
378
379         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
380         * sese.c: Include tree-hash-traits.h.
381         (rename_map_hasher): Use tree_ssa_name_hasher.
382
383 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
384
385         * tree-hash-traits.h (tree_decl_hash): New class.
386         * tree-ssa-strlen.c: Include tree-hash-traits.h.
387         (stridxlist_hash_traits): Use tree_decl_hash.
388
389 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
390
391         * tree-hash-traits.h: New file.
392         (tree_operand_hash): New class.
393         * sanopt.c: Include tree-hash-traits.h.
394         (sanopt_tree_map_traits): Use tree_operand_hash.
395         * tree-if-conv.c: Include tree-hash-traits.h.
396         (phi_args_hash_traits): Use tree_operand_hash.
397         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
398         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
399
400 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
401
402         * hash-map-traits.h: Include hash-traits.h.
403         (simple_hashmap_traits): New class.
404         * mem-stats.h (hash_map): Change the default traits to
405         simple_hashmap_traits<default_hash_traits<Key> >.
406
407 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
408
409         * hash-table.h: Update comments.
410
411 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
412
413         * hash-traits.h (default_hash_traits): New structure.
414         * hash-set.h (default_hashset_traits): Delete.
415         (hash_set): Use default_hash_traits<Key> instead of
416         default_hashset_traits.  Delete hash_entry type and use Key directly.
417         * ipa-devirt.c (pair_traits): Delete.
418         (default_hash_traits <type_pair>): Override.
419         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
420         (odr_types_equivalent_p, add_type_duplicate): Likewise.
421
422 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
423
424         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
425
426 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
427
428         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
429         (has_is_empty, is_empty_helper): Delete.
430         (has_mark_deleted, mark_deleted_helper): Delete.
431         (has_mark_empty, mark_empty_helper): Delete.
432         (hash_table::is_deleted): Call the Descriptor unconditionally.
433         (hash_table::is_empty): Likewise.
434         (hash_table::mark_deleted): Likewise.
435         (hash_table::mark_empty): Likewise.
436
437 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
438
439         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
440         redundant typedefs and members.
441         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
442         redundant typedefs.
443         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
444         * ipa-devirt.c (odr_name_hasher): Likewise.
445         (polymorphic_call_target_hasher): Likewise.
446         * ira-costs.c (cost_classes_hasher): Likewise.
447         * statistics.c (stats_counter_hasher): Likewise.
448         * trans-mem.c (log_entry_hasher): Likewise.
449         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
450         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
451         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
452         * var-tracking.c (variable_hasher): Likewise.
453         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
454         Remove redundant typedefs and members.
455
456 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
457
458         * hash-traits.h (ggc_cache_hasher): Rename to...
459         (ggc_cache_remove): ...this and remove typedefs.
460         (ggc_cache_ptr_hash): New class.
461         * hash-table.h: Update commentary.
462         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
463         rather than ggc_cache_hasher.
464         (const_wide_int_hasher, reg_attr_hasher): Likewise.
465         (const_double_hasher, const_fixed_hasher): Likewise.
466         * function.c (insn_cache_hasher): Likewise.
467         * trans-mem.c (tm_wrapper_hasher): Likewise.
468         * tree.h (tree_decl_map_cache_hasher): Likewise.
469         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
470         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
471         * ubsan.c (tree_type_map_cache_hasher): Likewise.
472         * varasm.c (tm_clone_hasher): Likewise.
473         * config/i386/i386.c (dllimport_hasher): Likewise.
474         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
475         (tree_hasher): Likewise.
476
477 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
478
479         * hash-traits.h (ggc_hasher): Rename to...
480         (ggc_remover): ...this and remove typedefs.
481         (ggc_cache_hasher): Update accordingly.  Add typedefs.
482         (ggc_ptr_hash): New class.
483         * hash-table.h: Update comment.
484         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
485         ggc_hasher.
486         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
487         (tree_descriptor_hasher): Likewise.
488         * cgraph.c (function_version_hasher): Likewise.
489         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
490         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
491         (dw_loc_list_hasher, addr_hasher): Likewise.
492         * function.h (used_type_hasher): Likewise.
493         * function.c (temp_address_hasher): Likewise.
494         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
495         * libfuncs.h (libfunc_hasher): Likewise.
496         * lto-streamer.h (decl_state_hasher): Likewise.
497         * optabs.c (libfunc_decl_hasher): Likewise.
498         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
499         * varasm.c (section_hasher, object_block_hasher): Likewise.
500         (const_rtx_desc_hasher): Likewise.
501         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
502         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
503
504 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
505
506         * hash-traits.h (free_ptr_hash): New class.
507         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
508         rather than typed_free_remove.  Remove redudant typedefs.
509         (external_ref_hasher): Likewise.
510         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
511         (ehspec_hasher): Likewise.
512         * ggc-common.c (saving_hasher): Likewise.
513         * gimplify.c (gimplify_hasher): Likewise.
514         * haifa-sched.c (delay_i2_hasher): Likewise.
515         * loop-invariant.c (invariant_expr_hasher): Likewise.
516         * loop-iv.c (biv_entry_hasher): Likewise.
517         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
518         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
519         * tree-cfg.c (locus_discrim_hasher): Likewise.
520         * tree-eh.c (finally_tree_hasher): Likewise.
521         * tree-into-ssa.c (var_info_hasher): Likewise.
522         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
523         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
524         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
525         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
526         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
527         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
528         (shared_bitmap_hasher): Likewise.
529         * tree-ssa-threadupdate.c (redirection_data): Likewise.
530         * tree-vectorizer.h (peel_info_hasher): Likewise.
531         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
532         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
533
534 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
535
536         * hash-table.h: Update comments.
537         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
538         (nofree_ptr_hash): New class.
539         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
540         than typed_noop_remove.  Remove redudant typedefs.
541         * attribs.c (attribute_hasher): Likewise.
542         * cfg.c (bb_copy_hasher): Likewise.
543         * cselib.c (cselib_hasher): Likewise.
544         * dse.c (invariant_group_base_hasher): Likewise.
545         * dwarf2cfi.c (trace_info_hasher): Likewise.
546         * dwarf2out.c (macinfo_entry_hasher): Likewise.
547         (comdat_type_hasher, loc_list_hasher): Likewise.
548         * gcse.c (pre_ldst_expr_hasher): Likewise.
549         * genmatch.c (id_base): Likewise.
550         * genrecog.c (test_pattern_hasher): Likewise.
551         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
552         * haifa-sched.c (delay_i1_hasher): Likewise.
553         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
554         * ipa-icf.h (congruence_class_group_hash): Likewise.
555         * ipa-profile.c (histogram_hash): Likewise.
556         * ira-color.c (allocno_hard_regs_hasher): Likewise.
557         * lto-streamer.h (string_slot_hasher): Likewise.
558         * lto-streamer.c (tree_entry_hasher): Likewise.
559         * plugin.c (event_hasher): Likewise.
560         * postreload-gcse.c (expr_hasher): Likewise.
561         * store-motion.c (st_expr_hasher): Likewise.
562         * tree-sra.c (uid_decl_hasher): Likewise.
563         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
564         (ssa_name_var_hash): Likewise.
565         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
566         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
567         * tree-ssa-pre.c (pre_expr_d): Likewise.
568         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
569         * vtable-verify.h (registration_hasher): Likewise.
570         * vtable-verify.c (vtbl_map_hasher): Likewise.
571         * config/arm/arm.c (libcall_hasher): Likewise.
572         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
573         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
574         * config/sol2.c (comdat_entry_hasher): Likewise.
575         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
576         (print_fold_checksum, fold_checksum_tree): Likewise.
577         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
578         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
579         (fold_build_call_array_loc): Likewise.
580         * tree-ssa-ccp.c (gimple_htab): Likewise.
581         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
582         rather than pointer_type.
583
584 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
585
586         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
587         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
588
589 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
590
591         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
592         (ggc_hasher::ggc_mx): Likewise.
593         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
594         that duplicate ggc_hasher ones.
595
596 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
597
598         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
599         (gt_cleare_cache): Check here for deleted and empty entries.
600         Replace handle_cache_entry with a call to keep_cache_entry.
601         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
602         (ggc_cache_hasher::keep_cache_entry): New function.
603         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
604         (tm_wrapper_hasher::keep_cache_entry): New function.
605         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
606         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
607         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
608         (type_cache_hasher::keep_cache_entry): New function.
609         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
610         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
611         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
612         (tree_type_map_cache_hasher::keep_cache_entry): New function.
613         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
614         (tm_clone_hasher::keep_cache_entry): New function.
615         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
616         (dllimport_hasher::keep_cache_entry): New function.
617
618 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
619
620         * hash-table.h: Include hash-traits.h.
621         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
622         (ggc_cache_hasher): Move to...
623         * hash-traits.h: ...this new file.
624
625 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
626
627         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
628         struct cl_optimization.
629         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
630         * tree.c (make_node_stat): Allocate cl_optimization struct.
631         (copy_node_stat): Allocate and copy cl_optimization struct.
632
633 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
634
635         * function.h (struct incoming_args): Move struct.
636         (pass_by_reference, reference_callee_copied): Remove prototypes.
637         * emit-rtl.h (struct incoming_args): Relocate struct here.
638         * calls.h (pass_by_reference, reference_callee_copied): Relocate
639         prototypes here.
640         * function.c (pass_by_reference, reference_callee_copied): Move.
641         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
642         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
643         * ipa-chkp.c: Include calls.h.
644
645 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
646
647         * alias.h (alias_set_type): Move typedef.
648         * coretypes.h (alias_set_type): Relocate typedef here.
649         * rtl.h: Don't include alias.h.
650
651 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
652
653         * cgraph.h (cgraph_rtl_info): Move to rtl.h
654         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
655         and instance.
656         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
657         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
658         doesn't exist.
659         * calls.c: Include hard-reg-set.h before rtl.h.
660         * ira.c: Likewise.
661
662 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
663             Vladimir Makarov  <vmakarov@redhat.com>
664
665         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
666         Add assert.
667
668 2015-06-25  Richard Biener  <rguenther@suse.de>
669
670         * fold-const.c (fold_binary_loc): Move simplification of
671         (X <<>> C1) & C2 ...
672         * match.pd: ... here.
673
674 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
675
676         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
677
678 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
679
680         * match.pd: Add patterns for vec_conds between 1 and 0.
681
682 2015-06-25  Richard Biener  <rguenther@suse.de>
683
684         * tree-vect-stmts.c (vectorizable_conversion): Do not set
685         STMT_VINFO_VEC_STMT for SLP.
686         (vectorizable_store): Likewise.
687         (vectorizable_load): Likewise.
688         (vect_transform_stmt): Catch SLP vectorization clobbering
689         STMT_VINFO_VEC_STMT.
690
691 2015-06-25  Richard Biener  <rguenther@suse.de>
692
693         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
694         dumping.
695         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
696         cleanup resulting dead code and parameters.
697         (vect_transform_slp_perm_load): Adjust.
698
699 2015-06-25  Nick Clifton  <nickc@redhat.com>
700
701         * config/bfin/bfin.c (bfin_expand_prologue): Set
702         current_function_static_stack_size if flag_stack_usage_info is
703         set.
704         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
705         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
706         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
707         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
708
709 2015-06-25  Tom de Vries  <tom@codesourcery.com>
710
711         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
712         comment that the generated IV is unsigned.
713
714 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
715
716         PR target/29693
717         * config/arm/arm.c (arm_dbx_register_number): Return
718         DWARF_FRAME_REGISTERS by default.
719
720 2015-06-25  Tom de Vries  <tom@codesourcery.com>
721
722         * dominance.c (calculate_dominance_info): Fix verify_dominators call
723         argument.  Call verify_dominator when reusing dominator info.
724
725 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
726
727         PR target/66563
728         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
729         an additional element of the unspec vector.  Modify indices
730         of operands.
731         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
732         * config/sh/sh.c (prepare_move_operands): Pass incremented
733         const_int to gen_GOTaddr2picreg.
734         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
735
736 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
737
738         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
739         Condition on TARGET_FLOAT.
740
741 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
742
743         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
744         and (no)crypto.
745
746 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
747
748         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
749
750         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
751         aarch64_err_no_fpadvsimd.
752
753         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
754         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
755         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
756         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
757         Turn error into assert, test TARGET_FLOAT.
758         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
759         TARGET_FLOAT.
760
761 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
762
763         PR debug/66482
764         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
765
766 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
767
768         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
769
770 2015-06-24 Renlin Li <renlin.li@arm.com>
771
772         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
773         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
774
775 2015-06-24  Richard Biener  <rguenther@suse.de>
776
777         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
778         (main): Likewise.
779         (lower_opt_convert): Support lowering of conditional view_convert.
780         (parser::parse_operation): Likewise.
781         (parser::parse_for): Likewise.
782
783 2015-06-24  Renlin Li  <renlin.li@arm.com>
784
785         * varasm.c (emit_local): Use unsigned int for align variable.
786
787 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
788
789         PR target/63408
790         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
791         for negative numbers.
792
793 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
794
795         PR rtl-optimization/66306
796         * reload.c (find_reloads): Swap the match_dup info for
797         commutative operands.
798
799 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
800
801         * config/s390/vx-builtins.md
802         ("vec_scatter_element<mode>_<non_vec_int>")
803         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
804         attribute with bhfgq.
805
806 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
807
808         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
809
810 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
811
812         * config/s390/s390-builtin-types.def: Add flag to indicate the
813         options under which the function type is needed.
814         * config/s390/s390-builtins.def: Add flag to indicate the options
815         under which the builtin is enabled.
816         * config/s390/s390-builtins.h: Add flags parameter to macro
817         definitions.
818         (bflags_for_builtin): New function.
819         (flags_for_builtin): Renamed to ...
820         (opflags_for_builtin): ... this.
821         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
822         flags_for_builtin to bflags_for_builtin and
823         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
824         * config/s390/s390.c: Add initialization of bflags_builtin and
825         opflags_builtin arrays.
826         Remove code for flags_builtin.
827         (s390_init_builtins): Only create builtin function types if one of
828         their flags is active.
829         Only create builtins if all of their flags are active.
830         (s390_expand_builtin): Rename flags_for_builtin to
831         opflags_for_builtin.
832
833 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
834
835         * config/s390/vecintrin.h: Remove internal builtins.
836
837 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
838
839         * config/s390/s390.c (s390_secondary_reload): Fix check for
840         GENERAL_REGS register class.
841
842 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
843
844         * config/s390/s390.c (s390_support_vector_misalignment): Call
845         default implementation for !TARGET_VX.
846
847 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
848
849         * config/s390/s390.c (s390_legitimate_constant_p): Add
850         TARGET_VX check.
851
852 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
853
854         * config/s390/s390.c (s390_vector_abi): New variable definition.
855         (s390_check_type_for_vector_abi): New function.
856         (TARGET_ASM_FILE_END): New macro definition.
857         (s390_asm_file_end): New function.
858         (s390_function_arg): Call s390_check_type_for_vector_abi.
859         (s390_gimplify_va_arg): Likewise.
860         * configure: Regenerate.
861         * configure.ac: Check for .gnu_attribute Binutils feature.
862
863 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
864
865         PR target/65803
866         * config/bfin/bfin.c (hwloop_optimize): Initialize
867         JUMP_LABEL for newly created jump.
868
869 2015-06-23  Tristan Gingold  <gingold@adacore.com>
870
871         * collect-utils.c (collect_wait): Unlink the response file here
872         instead of...
873         (do_wait): ...here.
874         (utils_cleanup): ...and here.
875
876 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
877
878         * df-scan.c: Don't include target-def.h.
879         * targhooks.c: Likewise.
880         * config/arm/arm-c.c: Likewise.
881         * config/i386/i386-c.c: Likewise.
882         * config/nds32/nds32-cost.c: Likewise.
883         * config/nds32/nds32-fp-as-gp.c: Likewise.
884         * config/nds32/nds32-intrinsic.c: Likewise.
885         * config/nds32/nds32-isr.c: Likewise.
886         * config/nds32/nds32-md-auxiliary.c: Likewise.
887         * config/nds32/nds32-memory-manipulation.c: Likewise.
888         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
889         * config/nds32/nds32-predicates.c: Likewise.
890
891 2015-06-23  Richard Biener  <rguenther@suse.de>
892
893         PR tree-optimization/66636
894         * tree-vect-stmts.c (vectorizable_store): Properly compute the
895         def type for further defs for strided stores.
896
897 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
898
899         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
900         conditional selects.
901         (setcc_int<mode>, setcc_float<mode>): Reformat.
902
903 2015-06-23  Marek Polacek  <polacek@redhat.com>
904
905         * match.pd ((x + y) - (x | y) -> x & y,
906         (x + y) - (x & y) -> x | y): New patterns.
907
908 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
909
910         PR 65711
911         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
912         '-dynamic-linker' within %{!shared: ...}.
913
914 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
915
916         PR target/66560
917         * config/i386/predicates.md (addsub_vm_operator): New predicate.
918         (addsub_vs_operator): Ditto.
919         (addsub_vs_parallel): Ditto.
920         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
921         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
922         Put minus RTX before plus and adjust vec_merge selector.
923         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
924         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
925         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
926         (addsub vec_merge splitters): New combiner splitters.
927         (addsub vec_select/vec_concat splitters): Ditto.
928
929 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
930
931         PR tree-optimization/66449
932         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
933         POINTER_PLUS_EXPR for pointers.
934
935 2015-06-23  Alan Modra  <amodra@gmail.com>
936
937         * rtlanal.c (commutative_operand_precedence): Correct comments.
938         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
939         declaration.  Return an int.  Distinguish REG,REG return from
940         others.
941         (struct simplify_plus_minus_op_data): Make local to function.
942         (simplify_plus_minus): Don't set canonicalized if merely sorting
943         registers.  Avoid packing ops if nothing changes.  White space fixes.
944
945 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
946
947         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
948         -fdump-ada-spec is passed but not if -fsyntax-only is.
949
950 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
951
952         PR bootstrap/63740
953         * lra-lives.c (process_bb_lives): Check insn copying the same
954         reload pseudo and don't create a copy for it.
955
956 2015-06-22  Tom de Vries  <tom@codesourcery.com>
957
958         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
959         for cond_stmt.
960
961 2015-06-22  Tom de Vries  <tom@codesourcery.com>
962
963         * builtins.def (DEF_GOMP_BUILTIN): Test
964         'flag_tree_parallelize_loops > 1' instead of
965         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
966
967 2015-06-22  Tom de Vries  <tom@codesourcery.com>
968
969         * dominance.c (calculate_dominance_info): Verify dominators if
970         early-out.
971
972 2015-06-22  Marek Polacek  <polacek@redhat.com>
973
974         * match.pd ((x ^ y) ^ (x | y) -> x & y,
975         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
976         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
977         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
978
979 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
980
981         PR target/65871
982         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
983         cost of embedded comparison.
984
985 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
986
987         PR target/65914
988         * config/rs6000/predicates.md (altivec_register_operand): Permit
989         virtual stack registers.
990         (vsx_register_operand): Likewise.
991         (vfloat_operand): Likewise.
992         (vint_operand): Likewise.
993         (vlogical_operand): Likewise.
994
995 2015-06-22  Richard Biener  <rguenther@suse.de>
996
997         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
998         and single_scalar_iteration_cost members.
999         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
1000         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
1001         (vect_get_single_scalar_iteration_cost): Remove.
1002         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
1003         Use LOOP_VINFO_SCALAR_ITERATION_COST.
1004         * tree-vect-loop.c (destroy_loop_vec_info): Free
1005         scalar_cost_vec.
1006         (vect_get_single_scalar_iteration_cost): Compute result into
1007         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
1008         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
1009         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
1010         (vect_estimate_min_profitable_iters): Use them.
1011
1012 2015-06-22  Christian Bruel  <christian.bruel@st.com>
1013
1014         PR target/52144
1015         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
1016         (TARGET_INSERT_ATTRIBUTES): Define.
1017         (thumb_flipper): New var.
1018         * config/arm/arm.opt (-mflip-thumb): New switch.
1019
1020 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
1021             Martin Liska  <mliska@suse.cz>
1022
1023         PR ipa/65908
1024         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
1025         construction of arg_types.
1026         (sem_function::sem_function): Likewise.
1027         (sem_function::~sem_function): Remove destruction of arg_types.
1028         (sem_function::compatible_parm_types_p): New function.
1029         (sem_function::equals_wpa): Reorg matching of return values
1030         and parameter types.
1031         (sem_function::equals_private): Reorg mathcing of argument types.
1032         (sem_function::parse_tree_args): Remove.
1033         * ipa-icf.h (init_wpa): Do not call it.
1034         (parse_tree_args): Remove.
1035         (compatible_parm_types_p): Declare.
1036         (result_type): Remove.
1037         (arg_types): Remove.
1038
1039 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
1040
1041         PR ipa/66351
1042         * ipa-polymorphic-call.c
1043         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
1044         initializing alias oracle; fix formating; set base_alias_set if it
1045         is known.
1046
1047 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
1048
1049         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
1050         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
1051         (find_inc): Likewise.
1052         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
1053         swapping.
1054         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
1055         * df-scan.c (df_swap_refs): Remove.
1056         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
1057         * dominance.c (link_roots): Use std::swap instead of manually swapping.
1058         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
1059         * fold-const.c (fold_relational_const): Likewise.
1060         * genattrtab.c (simplify_test_exp): Likewise.
1061         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
1062         gimple_simplify): Likewise.
1063         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
1064         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
1065         * ipa-devirt.c (add_type_duplicate): Likewise.
1066         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
1067         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
1068         * lra.c (lra_create_copy): Likewise.
1069         * lto-streamer-out.c (DFS::DFS): Likewise.
1070         * modulo-sched.c (get_sched_window): Likewise.
1071         * omega.c (omega_pretty_print_problem): Likewise.
1072         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
1073         * reload1.c (reloads_unique_chain_p): Likewise.
1074         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
1075         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
1076         use std::swap.
1077         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
1078         manually swapping.
1079         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
1080         predicate_mem_writes): Likewise.
1081         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
1082         * tree-predcom.c (combine_chains): Likewise.
1083         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
1084         refs_may_alias_p_1): Likewise.
1085         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
1086         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
1087         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
1088         number_of_iterations_cond): Likewise.
1089         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
1090         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
1091         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
1092         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
1093         * tree-vrp.c (extract_range_from_binary_expr_1,
1094         extract_range_from_unary_expr_1): Likewise.
1095
1096 2015-06-20  Marek Polacek  <polacek@redhat.com>
1097
1098         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
1099
1100 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
1101
1102         PR target/66591
1103         * config/sh/sh.c (prepare_move_operands): Replace subreg
1104         index term with R0 for base and index addressing.
1105
1106 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
1107
1108         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
1109         op1 is an fp zero.
1110         (movsf_aarch64): Change condition from register_operand to
1111         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
1112         load1.  Change type for alternative 7 to store1.
1113         (movdf_aarch64): Likewise.
1114
1115 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
1116
1117         * config/vax/vax.md: Adjust sign/zero extend patterns to
1118         handle SUBREGs in operands[1].
1119
1120 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1121
1122         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
1123         of manually swapping.
1124         (expand_vec_perm_interleave2): Likewise.
1125
1126 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
1127
1128         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
1129         reuse bounds created for abnormal ssa names.
1130
1131 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
1132
1133         * config/nvptx/nvptx.md (allocate_stack): Rename to...
1134         (allocate_stack_<mode>): ... this, and add :P on both
1135         match_operand and unspec.
1136         (allocate_stack): New expander.
1137
1138 2015-06-19  Christian Bruel  <christian.bruel@st.com>
1139
1140         PR target/66541
1141         PR target/52144
1142         * config/arm/arm.c (arm_set_current_function): Handle
1143         explicit default options.
1144
1145 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
1146
1147         * config/i386/i386.md (*movsicc_noc_zext): New insn.
1148         (zero-extended cmove with mem peephole2): New pattern.
1149         (cmove with mem peephole2): Merge patterns.
1150
1151 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
1152
1153         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
1154
1155 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
1156
1157         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
1158         * config/mips/mips.md (*madd4<mode>): Ditto.
1159         (*nmadd3<mode>) Ditto.
1160         (*nmadd4<mode>_fastmath): Ditto.
1161         (*nmadd3<mode>_fastmath): Ditto.
1162         (*nmsub4<mode>): Ditto.
1163         (*nmsub3<mode>): Ditto.
1164         (*nmsub4<mode>_fastmath): Ditto.
1165         (*nmsub3<mode>_fastmath): Ditto.
1166
1167 2015-06-18  Michael Matz  <matz@suse.de>
1168
1169         PR middle-end/66253
1170         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
1171         grouped strided stores.
1172         (vectorizable_load): Don't use the DR from first_stmt in
1173         the non-SLP grouped strided case.
1174
1175 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1176
1177         PR target/66569
1178         * function.c (assign_bounds): Add arguments assign_regs,
1179         assign_special, assign_bt.
1180         (assign_parms): For vararg functions handle bounds in BT
1181         and special slots after incoming vararg bounds.
1182
1183 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1184
1185         PR middle-end/66568
1186         * cfgexpand.c (expand_return): Handle missing bounds.
1187         (expand_gimple_stmt_1): Likewise.
1188         * tree-chkp.c (chkp_expand_zero_bounds): New.
1189         * tree-chkp.h (chkp_expand_zero_bounds): New.
1190
1191 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
1192
1193         PR middle-end/66567
1194         * ipa-chkp.c (chkp_maybe_create_clone): Require
1195         functions to be instrumentable.
1196         * tree-chkp.c (chkp_replace_function_pointer): Use
1197         chkp_instrumentable_p instead of attribute check.
1198
1199 2015-06-18  Richard Biener  <rguenther@suse.de>
1200
1201         PR tree-optimization/66510
1202         * tree-vect-stmts.c (vectorizable_load): Properly compute the
1203         number of vector loads for SLP permuted loads.
1204         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
1205         check the stride for loop vectorization.
1206         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
1207         vectorization factor.
1208         (vect_analyze_group_access): If the group size is not a power
1209         of two require a epilogue loop.
1210         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
1211         compute and optimizing and alias test pruning after final
1212         vectorization factor computation.
1213         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
1214         vector alignment.
1215         (vect_transform_slp_perm_load): Properly compute the original
1216         number of vector load stmts.
1217
1218 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
1219
1220         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
1221         "unlikely character , in @var" warning.
1222
1223 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
1224
1225         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
1226         (ix86_function_arg_advance): Ditto.
1227         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
1228
1229 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1230
1231         * function.h (struct rtl_data): Remove struct and accessor macros.
1232         * emit-rtl.h (struct rtl_data): Relocate to here.
1233         * Makefile.in (GTFILES): Add emit-rtl.h.
1234         * df-core.c: Include emit-rtl.h.
1235         * genattrtab.c: Likewise.
1236         * genconditions.c: Likewise.
1237         * genpreds.c: Likewise.
1238         * genrecog.c: Likewise.
1239         * regcprop.c: Likewise.
1240         * resource.c: Likewise.
1241         * sched-rgn.c: Likewise.
1242         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
1243         * config/i386/winnt.c: Likewise.
1244
1245 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
1246
1247         PR middle-end/66429
1248         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
1249         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
1250         and has_force_vectorize_loops flags from cfun into
1251         child_cfun.
1252         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
1253         if simduid is non-NULL.
1254         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
1255         * passes.def (pass_simduid_cleanup): Add new pass after loop
1256         passes.
1257         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
1258         indirection from htab argument's type.
1259         (shrink_simd_arrays): New function.
1260         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
1261         Don't call adjust_simduid_builtins if there are no loops.
1262         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
1263         (pass_simduid_cleanup::execute): New method.
1264         (make_pass_simduid_cleanup): New function.
1265
1266 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
1267
1268         * tree-core.h (tree_target_option): Make opts field a pointer to a
1269         cl_target_option instead of an instance of the struct.
1270         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
1271         the structure.
1272         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
1273         TARGET_OPTION_NODE.
1274         (copy_node_stat): Allocate and copy struct cl_target_option.
1275
1276 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1277
1278         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
1279         Remove conditional exposure of prototypes.
1280         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
1281         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
1282         definitions in tree.h with functions.
1283         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
1284         anon_aggrname_p.
1285         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
1286
1287 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
1288
1289         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
1290         (*cmp<mode>_signed): ... this.
1291         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
1292         (*cmp<mode>_unsigned): ... this.  Remove %b.
1293
1294 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
1295
1296         * coretypes.h: Include input.h and as-a.h.
1297         * rtl.h: Include input.h and as-a.h for generator files.
1298         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
1299         * vec.c: Don't include diagnostic-core.h.
1300         * alias.c: Do not include input.h, line-map.h or is-a.h.
1301         * asan.c: Likewise.
1302         * attribs.c: Likewise.
1303         * auto-inc-dec.c: Likewise.
1304         * auto-profile.c: Likewise.
1305         * bb-reorder.c: Likewise.
1306         * bt-load.c: Likewise.
1307         * builtins.c: Likewise.
1308         * caller-save.c: Likewise.
1309         * calls.c: Likewise.
1310         * ccmp.c: Likewise.
1311         * cfg.c: Likewise.
1312         * cfganal.c: Likewise.
1313         * cfgbuild.c: Likewise.
1314         * cfgcleanup.c: Likewise.
1315         * cfgexpand.c: Likewise.
1316         * cfghooks.c: Likewise.
1317         * cfgloop.c: Likewise.
1318         * cfgloop.h: Likewise.
1319         * cfgloopanal.c: Likewise.
1320         * cfgloopmanip.c: Likewise.
1321         * cfgrtl.c: Likewise.
1322         * cgraph.c: Likewise.
1323         * cgraphbuild.c: Likewise.
1324         * cgraphclones.c: Likewise.
1325         * cgraphunit.c: Likewise.
1326         * cilk-common.c: Likewise.
1327         * combine-stack-adj.c: Likewise.
1328         * combine.c: Likewise.
1329         * compare-elim.c: Likewise.
1330         * convert.c: Likewise.
1331         * coverage.c: Likewise.
1332         * cppbuiltin.c: Likewise.
1333         * cprop.c: Likewise.
1334         * cse.c: Likewise.
1335         * cselib.c: Likewise.
1336         * data-streamer-in.c: Likewise.
1337         * data-streamer-out.c: Likewise.
1338         * data-streamer.c: Likewise.
1339         * dbxout.c: Likewise.
1340         * dce.c: Likewise.
1341         * ddg.c: Likewise.
1342         * debug.c: Likewise.
1343         * df-core.c: Likewise.
1344         * df-problems.c: Likewise.
1345         * df-scan.c: Likewise.
1346         * df.h: Likewise.
1347         * dfp.c: Likewise.
1348         * diagnostic-core.h: Likewise.
1349         * diagnostic.c: Likewise.
1350         * dojump.c: Likewise.
1351         * dominance.c: Likewise.
1352         * domwalk.c: Likewise.
1353         * double-int.c: Likewise.
1354         * dse.c: Likewise.
1355         * dumpfile.c: Likewise.
1356         * dumpfile.h: Likewise.
1357         * dwarf2asm.c: Likewise.
1358         * dwarf2cfi.c: Likewise.
1359         * dwarf2out.c: Likewise.
1360         * emit-rtl.c: Likewise.
1361         * et-forest.c: Likewise.
1362         * except.c: Likewise.
1363         * explow.c: Likewise.
1364         * expmed.c: Likewise.
1365         * expr.c: Likewise.
1366         * final.c: Likewise.
1367         * fixed-value.c: Likewise.
1368         * fold-const.c: Likewise.
1369         * function.c: Likewise.
1370         * fwprop.c: Likewise.
1371         * gcc-plugin.h: Likewise.
1372         * gcse.c: Likewise.
1373         * generic-match-head.c: Likewise.
1374         * ggc-page.c: Likewise.
1375         * gimple-builder.c: Likewise.
1376         * gimple-expr.c: Likewise.
1377         * gimple-fold.c: Likewise.
1378         * gimple-iterator.c: Likewise.
1379         * gimple-low.c: Likewise.
1380         * gimple-match-head.c: Likewise.
1381         * gimple-pretty-print.c: Likewise.
1382         * gimple-ssa-isolate-paths.c: Likewise.
1383         * gimple-ssa-strength-reduction.c: Likewise.
1384         * gimple-streamer-in.c: Likewise.
1385         * gimple-streamer-out.c: Likewise.
1386         * gimple-streamer.h: Likewise.
1387         * gimple-walk.c: Likewise.
1388         * gimple.c: Likewise.
1389         * gimplify-me.c: Likewise.
1390         * gimplify.c: Likewise.
1391         * godump.c: Likewise.
1392         * graph.c: Likewise.
1393         * graphite-blocking.c: Likewise.
1394         * graphite-dependences.c: Likewise.
1395         * graphite-interchange.c: Likewise.
1396         * graphite-isl-ast-to-gimple.c: Likewise.
1397         * graphite-optimize-isl.c: Likewise.
1398         * graphite-poly.c: Likewise.
1399         * graphite-scop-detection.c: Likewise.
1400         * graphite-sese-to-poly.c: Likewise.
1401         * graphite.c: Likewise.
1402         * haifa-sched.c: Likewise.
1403         * hw-doloop.c: Likewise.
1404         * ifcvt.c: Likewise.
1405         * init-regs.c: Likewise.
1406         * input.c: Likewise.
1407         * internal-fn.c: Likewise.
1408         * ipa-chkp.c: Likewise.
1409         * ipa-comdats.c: Likewise.
1410         * ipa-cp.c: Likewise.
1411         * ipa-devirt.c: Likewise.
1412         * ipa-icf-gimple.c: Likewise.
1413         * ipa-icf.c: Likewise.
1414         * ipa-inline-analysis.c: Likewise.
1415         * ipa-inline-transform.c: Likewise.
1416         * ipa-inline.c: Likewise.
1417         * ipa-polymorphic-call.c: Likewise.
1418         * ipa-profile.c: Likewise.
1419         * ipa-prop.c: Likewise.
1420         * ipa-pure-const.c: Likewise.
1421         * ipa-ref.c: Likewise.
1422         * ipa-reference.c: Likewise.
1423         * ipa-split.c: Likewise.
1424         * ipa-utils.c: Likewise.
1425         * ipa-visibility.c: Likewise.
1426         * ipa.c: Likewise.
1427         * ira-build.c: Likewise.
1428         * ira-color.c: Likewise.
1429         * ira-conflicts.c: Likewise.
1430         * ira-costs.c: Likewise.
1431         * ira-emit.c: Likewise.
1432         * ira-lives.c: Likewise.
1433         * ira.c: Likewise.
1434         * jump.c: Likewise.
1435         * langhooks.c: Likewise.
1436         * lcm.c: Likewise.
1437         * loop-doloop.c: Likewise.
1438         * loop-init.c: Likewise.
1439         * loop-invariant.c: Likewise.
1440         * loop-iv.c: Likewise.
1441         * loop-unroll.c: Likewise.
1442         * lower-subreg.c: Likewise.
1443         * lra-assigns.c: Likewise.
1444         * lra-coalesce.c: Likewise.
1445         * lra-constraints.c: Likewise.
1446         * lra-eliminations.c: Likewise.
1447         * lra-lives.c: Likewise.
1448         * lra-remat.c: Likewise.
1449         * lra-spills.c: Likewise.
1450         * lra.c: Likewise.
1451         * lto-cgraph.c: Likewise.
1452         * lto-compress.c: Likewise.
1453         * lto-opts.c: Likewise.
1454         * lto-section-in.c: Likewise.
1455         * lto-section-out.c: Likewise.
1456         * lto-streamer-in.c: Likewise.
1457         * lto-streamer-out.c: Likewise.
1458         * lto-streamer.c: Likewise.
1459         * mcf.c: Likewise.
1460         * mode-switching.c: Likewise.
1461         * modulo-sched.c: Likewise.
1462         * omega.c: Likewise.
1463         * omp-low.c: Likewise.
1464         * optabs.c: Likewise.
1465         * opts-global.c: Likewise.
1466         * opts.h: Likewise.
1467         * passes.c: Likewise.
1468         * plugin.c: Likewise.
1469         * postreload-gcse.c: Likewise.
1470         * postreload.c: Likewise.
1471         * predict.c: Likewise.
1472         * pretty-print.h: Likewise.
1473         * print-rtl.c: Likewise.
1474         * print-tree.c: Likewise.
1475         * profile.c: Likewise.
1476         * real.c: Likewise.
1477         * realmpfr.c: Likewise.
1478         * recog.c: Likewise.
1479         * ree.c: Likewise.
1480         * reg-stack.c: Likewise.
1481         * regcprop.c: Likewise.
1482         * reginfo.c: Likewise.
1483         * regrename.c: Likewise.
1484         * regstat.c: Likewise.
1485         * reload.c: Likewise.
1486         * reload1.c: Likewise.
1487         * reorg.c: Likewise.
1488         * resource.c: Likewise.
1489         * rtl-chkp.c: Likewise.
1490         * rtl-error.c: Likewise.
1491         * rtlanal.c: Likewise.
1492         * rtlhooks.c: Likewise.
1493         * sanopt.c: Likewise.
1494         * sched-deps.c: Likewise.
1495         * sched-ebb.c: Likewise.
1496         * sched-rgn.c: Likewise.
1497         * sched-vis.c: Likewise.
1498         * sdbout.c: Likewise.
1499         * sel-sched-dump.c: Likewise.
1500         * sel-sched-ir.c: Likewise.
1501         * sel-sched.c: Likewise.
1502         * sese.c: Likewise.
1503         * shrink-wrap.c: Likewise.
1504         * simplify-rtx.c: Likewise.
1505         * stack-ptr-mod.c: Likewise.
1506         * statistics.c: Likewise.
1507         * stmt.c: Likewise.
1508         * stor-layout.c: Likewise.
1509         * store-motion.c: Likewise.
1510         * streamer-hooks.c: Likewise.
1511         * stringpool.c: Likewise.
1512         * symtab.c: Likewise.
1513         * target-globals.c: Likewise.
1514         * targhooks.c: Likewise.
1515         * toplev.c: Likewise.
1516         * tracer.c: Likewise.
1517         * trans-mem.c: Likewise.
1518         * tree-affine.c: Likewise.
1519         * tree-browser.c: Likewise.
1520         * tree-call-cdce.c: Likewise.
1521         * tree-cfg.c: Likewise.
1522         * tree-cfgcleanup.c: Likewise.
1523         * tree-chkp-opt.c: Likewise.
1524         * tree-chkp.c: Likewise.
1525         * tree-chrec.c: Likewise.
1526         * tree-complex.c: Likewise.
1527         * tree-data-ref.c: Likewise.
1528         * tree-dfa.c: Likewise.
1529         * tree-diagnostic.c: Likewise.
1530         * tree-dump.c: Likewise.
1531         * tree-eh.c: Likewise.
1532         * tree-emutls.c: Likewise.
1533         * tree-if-conv.c: Likewise.
1534         * tree-inline.c: Likewise.
1535         * tree-into-ssa.c: Likewise.
1536         * tree-iterator.c: Likewise.
1537         * tree-loop-distribution.c: Likewise.
1538         * tree-nested.c: Likewise.
1539         * tree-nrv.c: Likewise.
1540         * tree-object-size.c: Likewise.
1541         * tree-outof-ssa.c: Likewise.
1542         * tree-parloops.c: Likewise.
1543         * tree-phinodes.c: Likewise.
1544         * tree-predcom.c: Likewise.
1545         * tree-pretty-print.c: Likewise.
1546         * tree-profile.c: Likewise.
1547         * tree-scalar-evolution.c: Likewise.
1548         * tree-sra.c: Likewise.
1549         * tree-ssa-address.c: Likewise.
1550         * tree-ssa-alias.c: Likewise.
1551         * tree-ssa-ccp.c: Likewise.
1552         * tree-ssa-coalesce.c: Likewise.
1553         * tree-ssa-copy.c: Likewise.
1554         * tree-ssa-copyrename.c: Likewise.
1555         * tree-ssa-dce.c: Likewise.
1556         * tree-ssa-dom.c: Likewise.
1557         * tree-ssa-dse.c: Likewise.
1558         * tree-ssa-forwprop.c: Likewise.
1559         * tree-ssa-ifcombine.c: Likewise.
1560         * tree-ssa-live.c: Likewise.
1561         * tree-ssa-loop-ch.c: Likewise.
1562         * tree-ssa-loop-im.c: Likewise.
1563         * tree-ssa-loop-ivcanon.c: Likewise.
1564         * tree-ssa-loop-ivopts.c: Likewise.
1565         * tree-ssa-loop-manip.c: Likewise.
1566         * tree-ssa-loop-niter.c: Likewise.
1567         * tree-ssa-loop-prefetch.c: Likewise.
1568         * tree-ssa-loop-unswitch.c: Likewise.
1569         * tree-ssa-loop.c: Likewise.
1570         * tree-ssa-math-opts.c: Likewise.
1571         * tree-ssa-operands.c: Likewise.
1572         * tree-ssa-phiopt.c: Likewise.
1573         * tree-ssa-phiprop.c: Likewise.
1574         * tree-ssa-pre.c: Likewise.
1575         * tree-ssa-propagate.c: Likewise.
1576         * tree-ssa-reassoc.c: Likewise.
1577         * tree-ssa-sccvn.c: Likewise.
1578         * tree-ssa-scopedtables.c: Likewise.
1579         * tree-ssa-sink.c: Likewise.
1580         * tree-ssa-strlen.c: Likewise.
1581         * tree-ssa-structalias.c: Likewise.
1582         * tree-ssa-tail-merge.c: Likewise.
1583         * tree-ssa-ter.c: Likewise.
1584         * tree-ssa-threadedge.c: Likewise.
1585         * tree-ssa-threadupdate.c: Likewise.
1586         * tree-ssa-uncprop.c: Likewise.
1587         * tree-ssa-uninit.c: Likewise.
1588         * tree-ssa.c: Likewise.
1589         * tree-ssanames.c: Likewise.
1590         * tree-stdarg.c: Likewise.
1591         * tree-streamer-in.c: Likewise.
1592         * tree-streamer-out.c: Likewise.
1593         * tree-streamer.c: Likewise.
1594         * tree-switch-conversion.c: Likewise.
1595         * tree-tailcall.c: Likewise.
1596         * tree-vect-data-refs.c: Likewise.
1597         * tree-vect-generic.c: Likewise.
1598         * tree-vect-loop-manip.c: Likewise.
1599         * tree-vect-loop.c: Likewise.
1600         * tree-vect-patterns.c: Likewise.
1601         * tree-vect-slp.c: Likewise.
1602         * tree-vect-stmts.c: Likewise.
1603         * tree-vectorizer.c: Likewise.
1604         * tree-vrp.c: Likewise.
1605         * tree.c: Likewise.
1606         * tsan.c: Likewise.
1607         * ubsan.c: Likewise.
1608         * valtrack.c: Likewise.
1609         * value-prof.c: Likewise.
1610         * var-tracking.c: Likewise.
1611         * varasm.c: Likewise.
1612         * varpool.c: Likewise.
1613         * vmsdbgout.c: Likewise.
1614         * vtable-verify.c: Likewise.
1615         * web.c: Likewise.
1616         * wide-int.cc: Likewise.
1617         * xcoffout.c: Likewise.
1618         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
1619         * common/common-targhooks.c: Likewise.
1620         * config/aarch64/aarch64-builtins.c: Likewise.
1621         * config/aarch64/aarch64.c: Likewise.
1622         * config/alpha/alpha.c: Likewise.
1623         * config/arc/arc.c: Likewise.
1624         * config/arm/aarch-common.c: Likewise.
1625         * config/arm/arm-builtins.c: Likewise.
1626         * config/arm/arm-c.c: Likewise.
1627         * config/arm/arm.c: Likewise.
1628         * config/avr/avr-c.c: Likewise.
1629         * config/avr/avr-log.c: Likewise.
1630         * config/avr/avr.c: Likewise.
1631         * config/bfin/bfin.c: Likewise.
1632         * config/c6x/c6x.c: Likewise.
1633         * config/cr16/cr16.c: Likewise.
1634         * config/cris/cris.c: Likewise.
1635         * config/darwin-c.c: Likewise.
1636         * config/darwin.c: Likewise.
1637         * config/default-c.c: Likewise.
1638         * config/epiphany/epiphany.c: Likewise.
1639         * config/epiphany/mode-switch-use.c: Likewise.
1640         * config/epiphany/resolve-sw-modes.c: Likewise.
1641         * config/fr30/fr30.c: Likewise.
1642         * config/frv/frv.c: Likewise.
1643         * config/ft32/ft32.c: Likewise.
1644         * config/glibc-c.c: Likewise.
1645         * config/h8300/h8300.c: Likewise.
1646         * config/i386/i386-c.c: Likewise.
1647         * config/i386/i386.c: Likewise.
1648         * config/i386/msformat-c.c: Likewise.
1649         * config/i386/winnt-cxx.c: Likewise.
1650         * config/i386/winnt-stubs.c: Likewise.
1651         * config/i386/winnt.c: Likewise.
1652         * config/ia64/ia64-c.c: Likewise.
1653         * config/ia64/ia64.c: Likewise.
1654         * config/iq2000/iq2000.c: Likewise.
1655         * config/lm32/lm32.c: Likewise.
1656         * config/m32c/m32c-pragma.c: Likewise.
1657         * config/m32c/m32c.c: Likewise.
1658         * config/m32r/m32r.c: Likewise.
1659         * config/m68k/m68k.c: Likewise.
1660         * config/mcore/mcore.c: Likewise.
1661         * config/mep/mep-pragma.c: Likewise.
1662         * config/mep/mep.c: Likewise.
1663         * config/microblaze/microblaze-c.c: Likewise.
1664         * config/microblaze/microblaze.c: Likewise.
1665         * config/mips/mips.c: Likewise.
1666         * config/mmix/mmix.c: Likewise.
1667         * config/mn10300/mn10300.c: Likewise.
1668         * config/moxie/moxie.c: Likewise.
1669         * config/msp430/msp430-c.c: Likewise.
1670         * config/msp430/msp430.c: Likewise.
1671         * config/nds32/nds32-cost.c: Likewise.
1672         * config/nds32/nds32-fp-as-gp.c: Likewise.
1673         * config/nds32/nds32-intrinsic.c: Likewise.
1674         * config/nds32/nds32-isr.c: Likewise.
1675         * config/nds32/nds32-md-auxiliary.c: Likewise.
1676         * config/nds32/nds32-memory-manipulation.c: Likewise.
1677         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
1678         * config/nds32/nds32-predicates.c: Likewise.
1679         * config/nds32/nds32.c: Likewise.
1680         * config/nios2/nios2.c: Likewise.
1681         * config/nvptx/nvptx.c: Likewise.
1682         * config/pa/pa.c: Likewise.
1683         * config/pdp11/pdp11.c: Likewise.
1684         * config/rl78/rl78-c.c: Likewise.
1685         * config/rl78/rl78.c: Likewise.
1686         * config/rs6000/rs6000-c.c: Likewise.
1687         * config/rs6000/rs6000.c: Likewise.
1688         * config/rx/rx.c: Likewise.
1689         * config/s390/s390-c.c: Likewise.
1690         * config/s390/s390.c: Likewise.
1691         * config/sh/sh-c.c: Likewise.
1692         * config/sh/sh-mem.cc: Likewise.
1693         * config/sh/sh.c: Likewise.
1694         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
1695         * config/sh/sh_treg_combine.cc: Likewise.
1696         * config/sol2-c.c: Likewise.
1697         * config/sol2-cxx.c: Likewise.
1698         * config/sol2-stubs.c: Likewise.
1699         * config/sol2.c: Likewise.
1700         * config/sparc/sparc-c.c: Likewise.
1701         * config/sparc/sparc.c: Likewise.
1702         * config/spu/spu-c.c: Likewise.
1703         * config/spu/spu.c: Likewise.
1704         * config/stormy16/stormy16.c: Likewise.
1705         * config/tilegx/mul-tables.c: Likewise.
1706         * config/tilegx/tilegx-c.c: Likewise.
1707         * config/tilegx/tilegx.c: Likewise.
1708         * config/tilepro/mul-tables.c: Likewise.
1709         * config/tilepro/tilepro-c.c: Likewise.
1710         * config/tilepro/tilepro.c: Likewise.
1711         * config/v850/v850-c.c: Likewise.
1712         * config/v850/v850.c: Likewise.
1713         * config/vax/vax.c: Likewise.
1714         * config/visium/visium.c: Likewise.
1715         * config/vms/vms-c.c: Likewise.
1716         * config/vms/vms.c: Likewise.
1717         * config/vxworks.c: Likewise.
1718         * config/winnt-c.c: Likewise.
1719         * config/xtensa/xtensa.c: Likewise.
1720
1721 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
1722
1723         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
1724         function.
1725         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
1726
1727 2015-06-17  Richard Biener  <rguenther@suse.de>
1728
1729         PR tree-optimization/66251
1730         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
1731         stmts for SLP strided stores.
1732
1733         Revert
1734         2015-05-22  Richard Biener  <rguenther@suse.de>
1735
1736         PR tree-optimization/66251
1737         * tree-vect-stmts.c (vectorizable_conversion): Properly
1738         set STMT_VINFO_VEC_STMT even for the SLP case.
1739
1740         2015-05-26  Michael Matz  <matz@suse.de>
1741
1742         PR middle-end/66251
1743         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
1744         STMT_VINFO_VEC_STMT, also with SLP.
1745
1746 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
1747
1748         PR target/56766
1749         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
1750         (*avx_addsubv4df3_1s): Ditto.
1751         (*sse3_addsubv2df3_1): Ditto.
1752         (*sse3_addsubv2df3_1s): Ditto.
1753         (*avx_addsubv8sf3_1): Ditto.
1754         (*avx_addsubv8sf3_1s): Ditto.
1755         (*sse3_addsubv4sf3_1): Ditto.
1756         (*sse3_addsubv4sf3_1s): Ditto.
1757
1758 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
1759
1760         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
1761         (SYSROOT_SUFFIX_SPEC): Update.
1762         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
1763         (STARTFILE_PREFIX_SPEC): Update.
1764         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
1765         (MULTILIB_REQUIRED): New.
1766         (MULTILIB_OSDIRNAMES): New.
1767         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
1768         (MULTILIB_REQUIRED): New.
1769         (MULTILIB_OSDIRNAMES): New.
1770
1771 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
1772
1773         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
1774         * config/aarch64/aarch64-options-extensions.def: Update "fP",
1775         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
1776         * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
1777         (AARCH64_FL_PAN): New.
1778         (AARCH64_FL_LOR): New.
1779         (AARCH64_FL_RDMA): New.
1780         (AARCH64_FL_FOR_ARCH8_1): New.
1781         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
1782         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
1783
1784 2015-06-16  Martin Liska  <mliska@suse.cz>
1785
1786         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
1787         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
1788         guard.
1789
1790 2015-06-16  Richard Biener  <rguenther@suse.de>
1791
1792         * tree-vect-stmts.c (vectorizable_store): Adjust.
1793         (vectorizable_load): Likewise.
1794         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
1795         Simplify.
1796         (vect_create_data_ref_ptr): Likewise.
1797         (bump_vector_ptr): Adjust.
1798
1799 2015-06-16  Richard Biener  <rguenther@suse.de>
1800
1801         * tree-vect-stmts.c (vectorizable_load): Properly start loads
1802         with the first element if this is grouped loads.
1803
1804 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
1805
1806         * config/arm/arm-protos.h (struct tune_params): Rename
1807         log_op_non_sc to log_op_non_short_circuit, and rename enum
1808         values to expand SC to SHORT_CIRCUIT.
1809         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
1810         to LOG_OP_NON_SHORT_CIRCUIT.
1811         (arm_fastmul_tune):Likewise
1812         (arm_strongarm_tune): Likewise.
1813         (arm_xscale_tune): Likewise.
1814         (arm_9e_tune): Likewise.
1815         (arm_marvell_pj4_tune): Likewise.
1816         (arm_v6t2_tune): Likewise.
1817         (arm_cortex_tune): Likewise.
1818         (arm_cortex_a8_tune): Likewise.
1819         (arm_cortex_a7_tune): Likewise.
1820         (arm_cortex_a15_tune): Likewise.
1821         (arm_cortex_a53_tune): Likewise.
1822         (arm_cortex_a57_tune): Likewise.
1823         (arm_xgene1_tune): Likewise.
1824         (arm_cortex_a5_tune): Likewise.
1825         (arm_cortex_a9_tune): Likewise.
1826         (arm_cortex_a12_tune): Likewise.
1827         (arm_v7m_tune): Likewise.
1828         (arm_cortex_m7_tune): Likewise.
1829         (arm_v6m_tune): Likewise.
1830         (arm_fa726te_tune): Likewise.
1831
1832 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
1833
1834         * altivec.md: Delete UNSPEC_VMLADDUHM.
1835         (mulv4si3_p8): New pattern.
1836         (mulv4si3): Use it for POWER8.
1837         (mulv8hi3): Use vmladduhm with zero addend.
1838         (altivec_vmladduhm): Descriptive RTL.
1839
1840 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
1841
1842         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
1843         to use neon_move instead of mov_imm.
1844         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
1845         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
1846
1847         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
1848         aarch64_float_const_zero_rtx_p check before TFmode check.
1849         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
1850         an fp zero.
1851         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
1852         code and attributes to match.  Change condition from register_operand
1853         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
1854         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
1855         to store2.
1856
1857 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
1858
1859         PR debug/66535
1860         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
1861         there is no parent.
1862
1863 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
1864
1865         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
1866         HOST_WIDE_INT parameter.
1867
1868 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
1869
1870         PR ipa/66181
1871         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
1872         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
1873         TYPE_NO_FORCE_BLK.
1874         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
1875
1876 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
1877
1878         * rtl.h (classify_insn): Declare.
1879         * emit-rtl.c (classify_insn): Move to...
1880         * rtl.c: ...here and add generator support.
1881         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
1882         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
1883         * genemit.c (gen_emit_seq): New function.
1884         (gen_expand, gen_split): Use it.
1885
1886 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
1887
1888         * tree.c (make_vector_stat): Fix comment to state that the
1889         function returns a VECTOR_CST.
1890
1891 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
1892
1893         * gensupport.h (add_implicit_parallel): Declare.
1894         * genrecog.c (add_implicit_parallel): Move to...
1895         * gensupport.c (add_implicit_parallel): ...here.
1896         (process_one_cond_exec): Use it.
1897         * genemit.c (gen_insn): Likewise.
1898
1899 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
1900
1901         PR bootstrap/66448
1902         * passes.c (rest_of_decl_compilation): Do not register globals for
1903         early debug if they are declared in built-ins.
1904
1905 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
1906
1907         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
1908
1909 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1910
1911         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
1912         manually swapping.
1913         (noce_try_cmove_arith): Likewise.
1914         (noce_get_alt_condition): Likewise.
1915
1916 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1917
1918         * common/config/i386/i386-common.c
1919         (OPTION_MASK_ISA_MWAITX_SET): New.
1920         (ix86_handle_option): Handle mwaitx.
1921         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
1922         (x86_64-*-*): Likewise.
1923         * config/i386/mwaitxintrin.h: New header.
1924         * config/i386/cpuid.h (bit_MWAITX):  Define.
1925         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1926         MWAITX support.
1927         * config/i386/i386.opt (mwaitx): New.
1928         * config/i386/i386-builtin-types.def
1929         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
1930         * config/i386/i386-c.c: Define __MWAITX__ if needed.
1931         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
1932         (PTA_MWAITX): New.
1933         (ix86_option_override_internal): Handle new option.
1934         (processor_alias_table): Added PTA_MWAITX.
1935         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
1936         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
1937         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
1938         IX86_BUILTIN_MONITORX  built-ins.
1939         * config/i386/i386.h (TARGET_MWAITX): New.
1940         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
1941         UNSPEC_MONITORX.
1942         (mwaitx):  New pattern.
1943         (monitorx_<mode>): New pattern.
1944         * config/i386/x86intrin.h: Include mwaitxintrin.h.
1945         * doc/extend.texi: Document monitorx and mwaitx builtins.
1946         * doc/invoke.texi: Document -mmwaitx option.
1947
1948 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
1949
1950         * emit-rtl.c (need_atomic_barrier_p): Mask model with
1951         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
1952
1953 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
1954
1955         * dbxout.c (xcoff_debug_hooks): Provide a function for
1956         register_main_translation_unit hook.
1957
1958 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
1959
1960         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
1961         variants cases from switch.
1962         (rs6000_post_atomic_barrier): Same.
1963         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
1964         (rs6000_expand_atomic_exchange): Same.
1965         (rs6000_expand_atomic_op): Same.
1966         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
1967         SYNC variants cases from switch.
1968         (atomic_load): Same.
1969         (atomic_store): Same.
1970
1971 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
1972
1973         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
1974         CONST_INT for goto.
1975
1976 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
1977
1978         PR bootstrap/66448
1979         * dwarf2out.c (check_die): Check for common duplicate attributes.
1980         (add_location_or_const_value_attribute): Do not add duplicate
1981         attributes.
1982         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
1983         time around.
1984         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
1985         (gen_type_die_with_usage): Call check_die.
1986         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
1987
1988 2015-06-11  Jason Merrill  <jason@redhat.com>
1989
1990         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
1991         dies.
1992
1993 2015-06-11  Marek Polacek  <polacek@redhat.com>
1994
1995         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
1996
1997 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
1998
1999         PR bootstrap/66252
2000         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
2001         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
2002         (*addx_extend_sp32): Fix pasto.
2003         (*subx_extend): Rename into...
2004         (*subx_extend_sp32): ...this.
2005         (*adddi3_extend_sp32): Add earlyclobber.
2006         (*subdi3_insn_sp32): Likewise.
2007         (*subdi3_extend_sp32): Likewise.
2008         (*and_not_di_sp32): Likewise.
2009         (*or_not_di_sp32): Likewise.
2010         (*xor_not_di_sp32): Likewise.
2011         (*negdi2_sp32): Likewise.
2012         (*one_cmpldi2_sp32): Likewise.
2013
2014 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
2015
2016         * debug.h (struct gcc_debug_hooks): Add a
2017         register_main_translation_unit hook.
2018         * debug.c (do_nothing_debug_hooks): Provide a function for this
2019         new hook.
2020         * dbxout.c (dbx_debug_hooks): Likewise.
2021         * sdbout.c (sdb_debug_hooks): Likewise.
2022         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
2023         * dwarf2out.c (main_translation_unit): New global variable.
2024         (dwarf2out_register_main_translation_unit): New function
2025         implementing the new hook.
2026         (dwarf2_debug_hooks): Assign
2027         dwarf2out_register_main_translation_unit to this new hook.
2028         (dwarf2out_init): Associate any main translation unit to
2029         comp_unit_die ().
2030
2031 2015-06-11  Marek Polacek  <polacek@redhat.com>
2032
2033         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
2034
2035 2015-06-11  Marek Polacek  <polacek@redhat.com>
2036
2037         * match.pd: Use single_use throughout.
2038
2039 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2040
2041         * config/arm/arm.c (arm_option_params_internal): When optimising
2042         for speed set max_insns_skipped when arm_restrict_it.
2043
2044 2015-06-11  Christian Bruel  <christian.bruel@st.com>
2045
2046         PR target/52144
2047         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
2048          macros in ...
2049         (arm_cpu_builtins): New function.
2050         (arm_pragma_target_parse): Call arm_cpu_builtins.
2051         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
2052         (arm_register_target_pragmas): Likewise.
2053         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
2054          Call arm_register_target_pragmas.
2055         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
2056         (arm_pragma_target_parse): Likewise.
2057
2058 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2059
2060         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
2061         of the second operand.
2062
2063 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
2064
2065         PR target/66473
2066         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
2067         to prepare mask operand for AVX512 modes.
2068
2069 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
2070
2071         PR target/66474
2072         * doc/md.texi (Machine Constraints): Document that on the PowerPC
2073         if you use a constraint that targets a VSX register, you must use
2074         %x<n> in the template.
2075
2076 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
2077
2078         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
2079         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
2080         (define_insn "trap"): New definition.
2081
2082 2015-06-10  Richard Biener  <rguenther@suse.de>
2083
2084         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
2085         out from ...
2086         (vect_supported_load_permutation_p): ... here.  Handle
2087         supportable permutations in reductions.
2088         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
2089         for vectorizing strided group loads.
2090
2091 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
2092
2093         PR target/66470
2094         * config/i386/i386.c (ix86_split_long_move): For collisions
2095         involving direct tls segment refs, move the UNSPEC_TP possibly
2096         wrapped in ZERO_EXTEND out of the address for lea, to each of
2097         the memory loads.
2098
2099 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2100
2101         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
2102         dmb sy. Adjust tabs.
2103
2104 2015-06-10  Tom de Vries  <tom@codesourcery.com>
2105
2106         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
2107
2108 2015-06-10  Martin Liska  <mliska@suse.cz>
2109
2110         PR bootstrap/66471
2111         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
2112         all enum values in mem_alloc_origin.
2113         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
2114         name.
2115         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
2116         * bitmap.c (bitmap_register): Likewise.
2117         (dump_bitmap_statistics): Likewise.
2118         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
2119         (ggc_record_overhead): Likewise.
2120         * hash-map.h: Likewise.
2121         * hash-set.h: Likewise.
2122         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
2123         * hash-table.h: Likewise.
2124         * vec.c (vec_prefix::register_overhead): Likewise.
2125         (vec_prefix::release_overhead): Likewise.
2126         (dump_vec_loc_statistics): Likewise.
2127
2128 2015-06-09  Christian Bruel  <christian.bruel@st.com>
2129
2130         PR target/52144
2131         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
2132         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
2133         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
2134         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
2135         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
2136         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
2137         (arm_valid_target_attribute_p): Likewise.
2138         (arm_set_current_function, arm_can_inline_p): Likewise.
2139         (arm_valid_target_attribute_rec): Likewise.
2140         (arm_previous_fndecl): New variable.
2141         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
2142         (TARGET_CAN_INLINE_P): Define.
2143         (arm_asm_trampoline_template): Emit mode.
2144         (arm_file_start): Don't set unified syntax.
2145         (arm_declare_function_name): Set unified syntax and mode.
2146         (arm_option_override): Init target_option_default_node.
2147         and target_option_current_node.
2148         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
2149         (*call_symbol): Likewise.
2150         * doc/extend.texi: Document ARM/Thumb target attribute.
2151         * doc/invoke.texi: Likewise.
2152
2153 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
2154
2155         Revert:
2156         2015-06-09  Alexandre Oliva <aoliva@redhat.com>
2157         PR rtl-optimization/64164
2158         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
2159         * tree-ssa-copyrename.c: Removed.
2160         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
2161         -ftree-coalesce-vars.
2162         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
2163         * common.opt (ftree-copyrename): Ignore.
2164         (ftree-coalesce-inlined-vars): Likewise.
2165         * doc/invoke.texi: Remove the ignored options above.
2166         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
2167         * tree-ssa-coalesce.h: ... here.
2168         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
2169         headers required by it.
2170         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
2171         across variables when flag_tree_coalesce_vars.  Check register
2172         use and promoted modes to allow coalescing.  Moved to
2173         tree-ssa-coalesce.c.
2174         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
2175         with its member functions to tree-ssa-coalesce.c.
2176         (var_map_base_init): Likewise.  Renamed to
2177         compute_samebase_partition_bases.
2178         (partition_view_normal): Drop want_bases parameter.
2179         (partition_view_bitmap): Likewise.
2180         * tree-ssa-live.h: Adjust declarations.
2181         * tree-ssa-coalesce.c: Include explow.h.
2182         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
2183         default defs at the entry point.
2184         (dump_part_var_map): New.
2185         (compute_optimized_partition_bases): New, called by...
2186         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
2187         of compute_samebase_partition_bases.  Adjust.
2188         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
2189         * cfgexpand.c (leader_merge): New.
2190         (get_rtl_for_parm_ssa_default_def): New.
2191         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
2192         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
2193         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
2194         redundant MEM attr setting.
2195         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
2196         from...
2197         (expand_one_stack_var): ... this.  New wrapper to check and
2198         skip already expanded SSA partitions.
2199         (record_alignment_for_reg_var): New, factored out of...
2200         (expand_one_var): ... this.
2201         (expand_one_ssa_partition): New.
2202         (adjust_one_expanded_partition_var): New.
2203         (expand_one_register_var): Check and skip already expanded SSA
2204         partitions.
2205         (expand_used_vars): Don't create DECLs for anonymous SSA
2206         names.  Expand all SSA partitions, then adjust all SSA names.
2207         (pass::execute): Replace the loops that set
2208         SA.partition_to_pseudo from partition leaders and cleared
2209         DECL_RTL for multi-location variables, and that which used to
2210         rename vars and set attrs, with one that clears DECL_RTL and
2211         checks that PARMs and RESULTs default_defs match DECL_RTL.
2212         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
2213         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
2214         * explow.c (promote_ssa_mode): New.
2215         * explow.h (promote_ssa_mode): Declare.
2216         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
2217         * function.c: Include cfgexpand.h.
2218         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
2219         (use_register_for_parm_decl): Wrapper for the above to
2220         special-case the result_ptr.
2221         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
2222         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
2223         multiple locations.
2224         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
2225         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
2226         (assign_parm_setup_block): Prefer SSA-assigned location.
2227         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
2228         if stack_parm is NULL.
2229         (assign_parm_setup_stack): Prefer SSA-assigned location.
2230         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
2231         rtl before testing for pointer bounds.  Special-case result_ptr.
2232         (expand_function_start): Maybe reset DECL_RTL of result.
2233         Prefer SSA-assigned location for result and static chain.
2234         Factor out DECL_RESULT and SET_DECL_RTL.
2235         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
2236         anonymous SSA names.  Use promote_ssa_mode.
2237         (get_temp_reg): Likewise.
2238         (remove_ssa_form): Adjust.
2239         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
2240         and get its reg_usage for reg invalidation.
2241         (compute_bb_dataflow): Pass it insn.
2242         (emit_notes_in_bb): Likewise.
2243         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
2244         fail assert on conversion between unsigned types.
2245
2246 2015-06-09  Tom de Vries  <tom@codesourcery.com>
2247
2248         PR tree-optimization/65460
2249         * omp-low.c (expand_omp_target): Set parallelized_function on
2250         cgraph_node for child_fn.
2251
2252 2015-06-09  Tom de Vries  <tom@codesourcery.com>
2253
2254         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
2255         parallelized_function before add_new_function.
2256
2257 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
2258
2259         * gcc-plugin.h: Move decls to plugin.h and include it.
2260         * plugin.h: Relocate decls from gcc-plugin.h
2261         * ggc-page.c: Include required header files.
2262         * passes.c: Likewise.
2263         * cgraphunit.c: Likewise.
2264
2265 2015-06-09  Tom de Vries  <tom@codesourcery.com>
2266
2267         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
2268
2269 2015-06-09  Jason Merrill  <jason@redhat.com>
2270
2271         PR bootstrap/66448
2272         * toplev.c (check_global_declaration): Don't warn about a clone.
2273
2274 2015-06-09  Marek Polacek  <polacek@redhat.com>
2275
2276         PR tree-optimization/66299
2277         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
2278         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
2279         patterns.
2280
2281 2015-06-09  Richard Biener  <rguenther@suse.de>
2282
2283         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
2284         (vect_analyze_slp_instance): Instead do not falsely drop
2285         load permutations.
2286
2287 2015-06-09  Richard Biener  <rguenther@suse.de>
2288
2289         PR middle-end/66423
2290         * match.pd: Handle A % (unsigned)(1 << B).
2291
2292 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
2293
2294         * varasm.c (output_object_block_htab): Remove.
2295         (output_object_block_compare): New.
2296         (output_object_blocks): Sort named object_blocks before outputting
2297         them.
2298
2299 2015-06-09  Richard Biener  <rguenther@suse.de>
2300
2301         PR tree-optimization/66419
2302         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
2303         consider GROUP_GAP when detecting a perfect subchain.
2304
2305 2015-06-09  Nick Clifton  <nickc@redhat.com>
2306
2307         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
2308         place read only data in the .frodata section.
2309
2310 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
2311
2312         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
2313         (atomic_store<mode>): Likewise.
2314
2315 2015-06-09  Richard Biener  <rguenther@suse.de>
2316
2317         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
2318
2319 2015-06-09  Richard Biener  <rguenther@suse.de>
2320
2321         PR middle-end/66413
2322         * tree-inline.c (insert_init_debug_bind): Unshare value.
2323
2324 2015-06-09  Richard Biener  <rguenther@suse.de>
2325
2326         PR tree-optimization/66396
2327         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
2328         Rename virtual operands.
2329
2330 2015-06-09  Tom de Vries  <tom@codesourcery.com>
2331
2332         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
2333         always return false.
2334
2335 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
2336
2337         PR rtl-optimization/64164
2338         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
2339         * tree-ssa-copyrename.c: Removed.
2340         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
2341         -ftree-coalesce-vars.
2342         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
2343         * common.opt (ftree-copyrename): Ignore.
2344         (ftree-coalesce-inlined-vars): Likewise.
2345         * doc/invoke.texi: Remove the ignored options above.
2346         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
2347         * tree-ssa-coalesce.h: ... here.
2348         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
2349         headers required by it.
2350         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
2351         across variables when flag_tree_coalesce_vars.  Check register
2352         use and promoted modes to allow coalescing.  Moved to
2353         tree-ssa-coalesce.c.
2354         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
2355         with its member functions to tree-ssa-coalesce.c.
2356         (var_map_base_init): Likewise.  Renamed to
2357         compute_samebase_partition_bases.
2358         (partition_view_normal): Drop want_bases parameter.
2359         (partition_view_bitmap): Likewise.
2360         * tree-ssa-live.h: Adjust declarations.
2361         * tree-ssa-coalesce.c: Include explow.h.
2362         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
2363         default defs at the entry point.
2364         (dump_part_var_map): New.
2365         (compute_optimized_partition_bases): New, called by...
2366         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
2367         of compute_samebase_partition_bases.  Adjust.
2368         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
2369         * cfgexpand.c (leader_merge): New.
2370         (get_rtl_for_parm_ssa_default_def): New.
2371         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
2372         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
2373         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
2374         redundant MEM attr setting.
2375         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
2376         from...
2377         (expand_one_stack_var): ... this.  New wrapper to check and
2378         skip already expanded SSA partitions.
2379         (record_alignment_for_reg_var): New, factored out of...
2380         (expand_one_var): ... this.
2381         (expand_one_ssa_partition): New.
2382         (adjust_one_expanded_partition_var): New.
2383         (expand_one_register_var): Check and skip already expanded SSA
2384         partitions.
2385         (expand_used_vars): Don't create DECLs for anonymous SSA
2386         names.  Expand all SSA partitions, then adjust all SSA names.
2387         (pass::execute): Replace the loops that set
2388         SA.partition_to_pseudo from partition leaders and cleared
2389         DECL_RTL for multi-location variables, and that which used to
2390         rename vars and set attrs, with one that clears DECL_RTL and
2391         checks that PARMs and RESULTs default_defs match DECL_RTL.
2392         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
2393         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
2394         * explow.c (promote_ssa_mode): New.
2395         * explow.h (promote_ssa_mode): Declare.
2396         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
2397         * function.c: Include cfgexpand.h.
2398         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
2399         (use_register_for_parm_decl): Wrapper for the above to
2400         special-case the result_ptr.
2401         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
2402         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
2403         multiple locations.
2404         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
2405         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
2406         (assign_parm_setup_block): Prefer SSA-assigned location.
2407         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
2408         if stack_parm is NULL.
2409         (assign_parm_setup_stack): Prefer SSA-assigned location.
2410         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
2411         rtl before testing for pointer bounds.  Special-case result_ptr.
2412         (expand_function_start): Maybe reset DECL_RTL of result.
2413         Prefer SSA-assigned location for result and static chain.
2414         Factor out DECL_RESULT and SET_DECL_RTL.
2415         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
2416         anonymous SSA names.  Use promote_ssa_mode.
2417         (get_temp_reg): Likewise.
2418         (remove_ssa_form): Adjust.
2419         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
2420         and get its reg_usage for reg invalidation.
2421         (compute_bb_dataflow): Pass it insn.
2422         (emit_notes_in_bb): Likewise.
2423         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
2424         fail assert on conversion between unsigned types.
2425
2426 2015-06-09  Alexandre Oliva <aoliva@redhat.com>
2427
2428         PR debug/58315
2429         * tree-inline.c (reset_debug_binding): New.
2430         (reset_debug_bindings): Likewise.
2431         (expand_call_inline): Call it.
2432
2433 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
2434
2435         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
2436         TYPE_STRING_FLAG.
2437
2438 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
2439
2440         * lto-streamer-out.c (lto_output_location): Stream
2441         reserved locations correctly.
2442         * lto-streamer-in.c (lto_output_location): Likewise.
2443
2444 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
2445
2446         * coretypes.h: Include hash-table.h and hash-set.h for host files.
2447         * ggc.h: Don't include statistics.h>
2448         * hash-map.h: Remove all includes.
2449         * hash-set.h: Likewise.
2450         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
2451         the include list. Remove <new>.
2452         * inchash.h: Remove all includes.
2453         * mem-stats.h: Likewise.
2454         * vec.h: No special processing for generators or ggc.  
2455         * alias.c : Adjust include files.
2456         * alloc-pool.c : Likewise.
2457         * alloc-pool.h : Likewise.
2458         * asan.c : Likewise.
2459         * attribs.c : Likewise.
2460         * auto-inc-dec.c : Likewise.
2461         * auto-profile.c : Likewise.
2462         * bb-reorder.c : Likewise.
2463         * bitmap.c : Likewise.
2464         * bitmap.h : Likewise.
2465         * bt-load.c : Likewise.
2466         * builtins.c : Likewise.
2467         * caller-save.c : Likewise.
2468         * calls.c : Likewise.
2469         * ccmp.c : Likewise.
2470         * cfg.c : Likewise.
2471         * cfganal.c : Likewise.
2472         * cfgbuild.c : Likewise.
2473         * cfgcleanup.c : Likewise.
2474         * cfgexpand.c : Likewise.
2475         * cfghooks.c : Likewise.
2476         * cfgloop.c : Likewise.
2477         * cfgloop.h : Likewise.
2478         * cfgloopanal.c : Likewise.
2479         * cfgloopmanip.c : Likewise.
2480         * cfgrtl.c : Likewise.
2481         * cgraph.c : Likewise.
2482         * cgraphbuild.c : Likewise.
2483         * cgraphclones.c : Likewise.
2484         * cgraphunit.c : Likewise.
2485         * cilk-common.c : Likewise.
2486         * combine-stack-adj.c : Likewise.
2487         * combine.c : Likewise.
2488         * compare-elim.c : Likewise.
2489         * context.c : Likewise.
2490         * convert.c : Likewise.
2491         * coverage.c : Likewise.
2492         * cppbuiltin.c : Likewise.
2493         * cprop.c : Likewise.
2494         * cse.c : Likewise.
2495         * cselib.c : Likewise.
2496         * data-streamer-in.c : Likewise.
2497         * data-streamer-out.c : Likewise.
2498         * data-streamer.c : Likewise.
2499         * data-streamer.h : Likewise.
2500         * dbxout.c : Likewise.
2501         * dce.c : Likewise.
2502         * ddg.c : Likewise.
2503         * debug.c : Likewise.
2504         * df-core.c : Likewise.
2505         * df-problems.c : Likewise.
2506         * df-scan.c : Likewise.
2507         * df.h : Likewise.
2508         * dfp.c : Likewise.
2509         * dojump.c : Likewise.
2510         * dominance.c : Likewise.
2511         * domwalk.c : Likewise.
2512         * double-int.c : Likewise.
2513         * dse.c : Likewise.
2514         * dumpfile.c : Likewise.
2515         * dwarf2asm.c : Likewise.
2516         * dwarf2cfi.c : Likewise.
2517         * dwarf2out.c : Likewise.
2518         * emit-rtl.c : Likewise.
2519         * et-forest.c : Likewise.
2520         * except.c : Likewise.
2521         * except.h : Likewise.
2522         * explow.c : Likewise.
2523         * expmed.c : Likewise.
2524         * expr.c : Likewise.
2525         * final.c : Likewise.
2526         * fixed-value.c : Likewise.
2527         * fold-const.c : Likewise.
2528         * function.c : Likewise.
2529         * fwprop.c : Likewise.
2530         * gcc-plugin.h : Likewise.
2531         * gcc.c : Likewise.
2532         * gcse-common.c : Likewise.
2533         * gcse.c : Likewise.
2534         * genattrtab.c : Likewise.
2535         * genautomata.c : Likewise.
2536         * genconditions.c : Likewise.
2537         * genemit.c : Likewise.
2538         * generic-match-head.c : Likewise.
2539         * genextract.c : Likewise.
2540         * gengtype-state.c : Likewise.
2541         * gengtype.c : Likewise.
2542         * genhooks.c : Likewise.
2543         * genmatch.c : Likewise.
2544         * genmodes.c : Likewise.
2545         * genrecog.c : Likewise.
2546         * gensupport.c : Likewise.
2547         * ggc-common.c : Likewise.
2548         * ggc-internal.h : Likewise.
2549         * ggc-none.c : Likewise.
2550         * ggc-page.c : Likewise.
2551         * gimple-builder.c : Likewise.
2552         * gimple-expr.c : Likewise.
2553         * gimple-fold.c : Likewise.
2554         * gimple-iterator.c : Likewise.
2555         * gimple-low.c : Likewise.
2556         * gimple-match-head.c : Likewise.
2557         * gimple-pretty-print.c : Likewise.
2558         * gimple-ssa-isolate-paths.c : Likewise.
2559         * gimple-ssa-strength-reduction.c : Likewise.
2560         * gimple-ssa.h : Likewise.
2561         * gimple-streamer-in.c : Likewise.
2562         * gimple-streamer-out.c : Likewise.
2563         * gimple-streamer.h : Likewise.
2564         * gimple-walk.c : Likewise.
2565         * gimple.c : Likewise.
2566         * gimplify-me.c : Likewise.
2567         * gimplify.c : Likewise.
2568         * godump.c : Likewise.
2569         * graph.c : Likewise.
2570         * graphds.c : Likewise.
2571         * graphite-blocking.c : Likewise.
2572         * graphite-dependences.c : Likewise.
2573         * graphite-interchange.c : Likewise.
2574         * graphite-isl-ast-to-gimple.c : Likewise.
2575         * graphite-optimize-isl.c : Likewise.
2576         * graphite-poly.c : Likewise.
2577         * graphite-scop-detection.c : Likewise.
2578         * graphite-sese-to-poly.c : Likewise.
2579         * graphite.c : Likewise.
2580         * haifa-sched.c : Likewise.
2581         * hard-reg-set.h : Likewise.
2582         * hw-doloop.c : Likewise.
2583         * ifcvt.c : Likewise.
2584         * inchash.c : Likewise.
2585         * incpath.c : Likewise.
2586         * init-regs.c : Likewise.
2587         * input.c : Likewise.
2588         * internal-fn.c : Likewise.
2589         * ipa-chkp.c : Likewise.
2590         * ipa-comdats.c : Likewise.
2591         * ipa-cp.c : Likewise.
2592         * ipa-devirt.c : Likewise.
2593         * ipa-icf-gimple.c : Likewise.
2594         * ipa-icf.c : Likewise.
2595         * ipa-inline-analysis.c : Likewise.
2596         * ipa-inline-transform.c : Likewise.
2597         * ipa-inline.c : Likewise.
2598         * ipa-polymorphic-call.c : Likewise.
2599         * ipa-profile.c : Likewise.
2600         * ipa-prop.c : Likewise.
2601         * ipa-pure-const.c : Likewise.
2602         * ipa-ref.c : Likewise.
2603         * ipa-reference.c : Likewise.
2604         * ipa-split.c : Likewise.
2605         * ipa-utils.c : Likewise.
2606         * ipa-visibility.c : Likewise.
2607         * ipa.c : Likewise.
2608         * ira-build.c : Likewise.
2609         * ira-color.c : Likewise.
2610         * ira-conflicts.c : Likewise.
2611         * ira-costs.c : Likewise.
2612         * ira-emit.c : Likewise.
2613         * ira-lives.c : Likewise.
2614         * ira.c : Likewise.
2615         * jump.c : Likewise.
2616         * langhooks.c : Likewise.
2617         * lcm.c : Likewise.
2618         * libfuncs.h : Likewise.
2619         * lists.c : Likewise.
2620         * loop-doloop.c : Likewise.
2621         * loop-init.c : Likewise.
2622         * loop-invariant.c : Likewise.
2623         * loop-iv.c : Likewise.
2624         * loop-unroll.c : Likewise.
2625         * lower-subreg.c : Likewise.
2626         * lra-assigns.c : Likewise.
2627         * lra-coalesce.c : Likewise.
2628         * lra-constraints.c : Likewise.
2629         * lra-eliminations.c : Likewise.
2630         * lra-lives.c : Likewise.
2631         * lra-remat.c : Likewise.
2632         * lra-spills.c : Likewise.
2633         * lra.c : Likewise.
2634         * lto-cgraph.c : Likewise.
2635         * lto-compress.c : Likewise.
2636         * lto-opts.c : Likewise.
2637         * lto-section-in.c : Likewise.
2638         * lto-section-out.c : Likewise.
2639         * lto-streamer-in.c : Likewise.
2640         * lto-streamer-out.c : Likewise.
2641         * lto-streamer.c : Likewise.
2642         * lto-streamer.h : Likewise.
2643         * mcf.c : Likewise.
2644         * mode-switching.c : Likewise.
2645         * modulo-sched.c : Likewise.
2646         * omega.c : Likewise.
2647         * omp-low.c : Likewise.
2648         * optabs.c : Likewise.
2649         * opts-global.c : Likewise.
2650         * opts.h : Likewise.
2651         * passes.c : Likewise.
2652         * plugin.c : Likewise.
2653         * postreload-gcse.c : Likewise.
2654         * postreload.c : Likewise.
2655         * predict.c : Likewise.
2656         * print-rtl.c : Likewise.
2657         * print-tree.c : Likewise.
2658         * profile.c : Likewise.
2659         * read-md.c : Likewise.
2660         * read-md.h : Likewise.
2661         * read-rtl.c : Likewise.
2662         * real.c : Likewise.
2663         * realmpfr.c : Likewise.
2664         * recog.c : Likewise.
2665         * ree.c : Likewise.
2666         * reg-stack.c : Likewise.
2667         * regcprop.c : Likewise.
2668         * reginfo.c : Likewise.
2669         * regrename.c : Likewise.
2670         * regstat.c : Likewise.
2671         * reload.c : Likewise.
2672         * reload1.c : Likewise.
2673         * reorg.c : Likewise.
2674         * resource.c : Likewise.
2675         * rtl-chkp.c : Likewise.
2676         * rtl.c : Likewise.
2677         * rtl.h : Likewise.
2678         * rtlanal.c : Likewise.
2679         * rtlhash.c : Likewise.
2680         * rtlhash.h : Likewise.
2681         * rtlhooks.c : Likewise.
2682         * sanopt.c : Likewise.
2683         * sched-deps.c : Likewise.
2684         * sched-ebb.c : Likewise.
2685         * sched-rgn.c : Likewise.
2686         * sched-vis.c : Likewise.
2687         * sdbout.c : Likewise.
2688         * sel-sched-dump.c : Likewise.
2689         * sel-sched-ir.c : Likewise.
2690         * sel-sched-ir.h : Likewise.
2691         * sel-sched.c : Likewise.
2692         * sese.c : Likewise.
2693         * shrink-wrap.c : Likewise.
2694         * shrink-wrap.h : Likewise.
2695         * simplify-rtx.c : Likewise.
2696         * stack-ptr-mod.c : Likewise.
2697         * statistics.c : Likewise.
2698         * stmt.c : Likewise.
2699         * stor-layout.c : Likewise.
2700         * store-motion.c : Likewise.
2701         * stringpool.c : Likewise.
2702         * symtab.c : Likewise.
2703         * target-globals.c : Likewise.
2704         * targhooks.c : Likewise.
2705         * tlink.c : Likewise.
2706         * toplev.c : Likewise.
2707         * tracer.c : Likewise.
2708         * trans-mem.c : Likewise.
2709         * tree-affine.c : Likewise.
2710         * tree-affine.h : Likewise.
2711         * tree-browser.c : Likewise.
2712         * tree-call-cdce.c : Likewise.
2713         * tree-cfg.c : Likewise.
2714         * tree-cfgcleanup.c : Likewise.
2715         * tree-chkp-opt.c : Likewise.
2716         * tree-chkp.c : Likewise.
2717         * tree-chrec.c : Likewise.
2718         * tree-complex.c : Likewise.
2719         * tree-data-ref.c : Likewise.
2720         * tree-dfa.c : Likewise.
2721         * tree-diagnostic.c : Likewise.
2722         * tree-dump.c : Likewise.
2723         * tree-eh.c : Likewise.
2724         * tree-eh.h : Likewise.
2725         * tree-emutls.c : Likewise.
2726         * tree-hasher.h : Likewise.
2727         * tree-if-conv.c : Likewise.
2728         * tree-inline.c : Likewise.
2729         * tree-inline.h : Likewise.
2730         * tree-into-ssa.c : Likewise.
2731         * tree-iterator.c : Likewise.
2732         * tree-loop-distribution.c : Likewise.
2733         * tree-nested.c : Likewise.
2734         * tree-nrv.c : Likewise.
2735         * tree-object-size.c : Likewise.
2736         * tree-outof-ssa.c : Likewise.
2737         * tree-parloops.c : Likewise.
2738         * tree-phinodes.c : Likewise.
2739         * tree-predcom.c : Likewise.
2740         * tree-pretty-print.c : Likewise.
2741         * tree-profile.c : Likewise.
2742         * tree-scalar-evolution.c : Likewise.
2743         * tree-sra.c : Likewise.
2744         * tree-ssa-address.c : Likewise.
2745         * tree-ssa-alias.c : Likewise.
2746         * tree-ssa-ccp.c : Likewise.
2747         * tree-ssa-coalesce.c : Likewise.
2748         * tree-ssa-copy.c : Likewise.
2749         * tree-ssa-copyrename.c : Likewise.
2750         * tree-ssa-dce.c : Likewise.
2751         * tree-ssa-dom.c : Likewise.
2752         * tree-ssa-dse.c : Likewise.
2753         * tree-ssa-forwprop.c : Likewise.
2754         * tree-ssa-ifcombine.c : Likewise.
2755         * tree-ssa-live.c : Likewise.
2756         * tree-ssa-loop-ch.c : Likewise.
2757         * tree-ssa-loop-im.c : Likewise.
2758         * tree-ssa-loop-ivcanon.c : Likewise.
2759         * tree-ssa-loop-ivopts.c : Likewise.
2760         * tree-ssa-loop-manip.c : Likewise.
2761         * tree-ssa-loop-niter.c : Likewise.
2762         * tree-ssa-loop-prefetch.c : Likewise.
2763         * tree-ssa-loop-unswitch.c : Likewise.
2764         * tree-ssa-loop.c : Likewise.
2765         * tree-ssa-math-opts.c : Likewise.
2766         * tree-ssa-operands.c : Likewise.
2767         * tree-ssa-phiopt.c : Likewise.
2768         * tree-ssa-phiprop.c : Likewise.
2769         * tree-ssa-pre.c : Likewise.
2770         * tree-ssa-propagate.c : Likewise.
2771         * tree-ssa-reassoc.c : Likewise.
2772         * tree-ssa-sccvn.c : Likewise.
2773         * tree-ssa-scopedtables.c : Likewise.
2774         * tree-ssa-sink.c : Likewise.
2775         * tree-ssa-strlen.c : Likewise.
2776         * tree-ssa-structalias.c : Likewise.
2777         * tree-ssa-tail-merge.c : Likewise.
2778         * tree-ssa-ter.c : Likewise.
2779         * tree-ssa-threadedge.c : Likewise.
2780         * tree-ssa-threadupdate.c : Likewise.
2781         * tree-ssa-uncprop.c : Likewise.
2782         * tree-ssa-uninit.c : Likewise.
2783         * tree-ssa.c : Likewise.
2784         * tree-ssanames.c : Likewise.
2785         * tree-stdarg.c : Likewise.
2786         * tree-streamer-in.c : Likewise.
2787         * tree-streamer-out.c : Likewise.
2788         * tree-streamer.c : Likewise.
2789         * tree-streamer.h : Likewise.
2790         * tree-switch-conversion.c : Likewise.
2791         * tree-tailcall.c : Likewise.
2792         * tree-vect-data-refs.c : Likewise.
2793         * tree-vect-generic.c : Likewise.
2794         * tree-vect-loop-manip.c : Likewise.
2795         * tree-vect-loop.c : Likewise.
2796         * tree-vect-patterns.c : Likewise.
2797         * tree-vect-slp.c : Likewise.
2798         * tree-vect-stmts.c : Likewise.
2799         * tree-vectorizer.c : Likewise.
2800         * tree-vectorizer.h : Likewise.
2801         * tree-vrp.c : Likewise.
2802         * tree.c : Likewise.
2803         * tsan.c : Likewise.
2804         * ubsan.c : Likewise.
2805         * valtrack.c : Likewise.
2806         * valtrack.h : Likewise.
2807         * value-prof.c : Likewise.
2808         * var-tracking.c : Likewise.
2809         * varasm.c : Likewise.
2810         * varpool.c : Likewise.
2811         * vec.c: Likewise.
2812         * vmsdbgout.c : Likewise.
2813         * vtable-verify.c : Likewise.
2814         * vtable-verify.h : Likewise.
2815         * web.c : Likewise.
2816         * wide-int.cc : Likewise.
2817         * xcoffout.c : Likewise.
2818         * config/aarch64/aarch64-builtins.c : Likewise.
2819         * config/aarch64/aarch64.c : Likewise.
2820         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
2821         * config/alpha/alpha.c : Likewise.
2822         * config/arc/arc.c : Likewise.
2823         * config/arm/aarch-common.c : Likewise.
2824         * config/arm/arm-builtins.c : Likewise.
2825         * config/arm/arm-c.c : Likewise.
2826         * config/arm/arm.c : Likewise.
2827         * config/avr/avr-c.c : Likewise.
2828         * config/avr/avr-log.c : Likewise.
2829         * config/avr/avr.c : Likewise.
2830         * config/bfin/bfin.c : Likewise.
2831         * config/c6x/c6x.c : Likewise.
2832         * config/cr16/cr16.c : Likewise.
2833         * config/cris/cris.c : Likewise.
2834         * config/darwin-c.c : Likewise.
2835         * config/darwin.c : Likewise.
2836         * config/default-c.c : Likewise.
2837         * config/epiphany/epiphany.c : Likewise.
2838         * config/epiphany/mode-switch-use.c : Likewise.
2839         * config/epiphany/resolve-sw-modes.c : Likewise.
2840         * config/fr30/fr30.c : Likewise.
2841         * config/frv/frv.c : Likewise.
2842         * config/ft32/ft32.c : Likewise.
2843         * config/glibc-c.c : Likewise.
2844         * config/h8300/h8300.c : Likewise.
2845         * config/i386/i386-c.c : Likewise.
2846         * config/i386/i386.c : Likewise.
2847         * config/i386/msformat-c.c : Likewise.
2848         * config/i386/winnt-cxx.c : Likewise.
2849         * config/i386/winnt-stubs.c : Likewise.
2850         * config/i386/winnt.c : Likewise.
2851         * config/ia64/ia64-c.c : Likewise.
2852         * config/ia64/ia64.c : Likewise.
2853         * config/iq2000/iq2000.c : Likewise.
2854         * config/lm32/lm32.c : Likewise.
2855         * config/m32c/m32c-pragma.c : Likewise.
2856         * config/m32c/m32c.c : Likewise.
2857         * config/m32r/m32r.c : Likewise.
2858         * config/m68k/m68k.c : Likewise.
2859         * config/mcore/mcore.c : Likewise.
2860         * config/mep/mep-pragma.c : Likewise.
2861         * config/mep/mep.c : Likewise.
2862         * config/microblaze/microblaze-c.c : Likewise.
2863         * config/microblaze/microblaze.c : Likewise.
2864         * config/mips/mips.c : Likewise.
2865         * config/mmix/mmix.c : Likewise.
2866         * config/mn10300/mn10300.c : Likewise.
2867         * config/moxie/moxie.c : Likewise.
2868         * config/msp430/msp430-c.c : Likewise.
2869         * config/msp430/msp430.c : Likewise.
2870         * config/nds32/nds32-cost.c : Likewise.
2871         * config/nds32/nds32-fp-as-gp.c : Likewise.
2872         * config/nds32/nds32-intrinsic.c : Likewise.
2873         * config/nds32/nds32-isr.c : Likewise.
2874         * config/nds32/nds32-md-auxiliary.c : Likewise.
2875         * config/nds32/nds32-memory-manipulation.c : Likewise.
2876         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
2877         * config/nds32/nds32-predicates.c : Likewise.
2878         * config/nds32/nds32.c : Likewise.
2879         * config/nios2/nios2.c : Likewise.
2880         * config/nvptx/nvptx.c : Likewise.
2881         * config/pa/pa.c : Likewise.
2882         * config/pdp11/pdp11.c : Likewise.
2883         * config/rl78/rl78-c.c : Likewise.
2884         * config/rl78/rl78.c : Likewise.
2885         * config/rs6000/rs6000-c.c : Likewise.
2886         * config/rs6000/rs6000.c : Likewise.
2887         * config/rx/rx.c : Likewise.
2888         * config/s390/s390-c.c : Likewise.
2889         * config/s390/s390.c : Likewise.
2890         * config/sh/sh-c.c : Likewise.
2891         * config/sh/sh-mem.cc : Likewise.
2892         * config/sh/sh.c : Likewise.
2893         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
2894         * config/sh/sh_treg_combine.cc : Likewise.
2895         * config/sol2-c.c : Likewise.
2896         * config/sol2-cxx.c : Likewise.
2897         * config/sol2-stubs.c : Likewise.
2898         * config/sol2.c : Likewise.
2899         * config/sparc/sparc-c.c : Likewise.
2900         * config/sparc/sparc.c : Likewise.
2901         * config/spu/spu-c.c : Likewise.
2902         * config/spu/spu.c : Likewise.
2903         * config/stormy16/stormy16.c : Likewise.
2904         * config/tilegx/mul-tables.c : Likewise.
2905         * config/tilegx/tilegx-c.c : Likewise.
2906         * config/tilegx/tilegx.c : Likewise.
2907         * config/tilepro/mul-tables.c : Likewise.
2908         * config/tilepro/tilepro-c.c : Likewise.
2909         * config/tilepro/tilepro.c : Likewise.
2910         * config/v850/v850-c.c : Likewise.
2911         * config/v850/v850.c : Likewise.
2912         * config/vax/vax.c : Likewise.
2913         * config/visium/visium.c : Likewise.
2914         * config/vms/vms-c.c : Likewise.
2915         * config/vms/vms.c : Likewise.
2916         * config/vxworks.c : Likewise.
2917         * config/winnt-c.c : Likewise.
2918         * config/xtensa/xtensa.c : Likewise.
2919
2920 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
2921
2922         PR lto/65378
2923         * ipa-utils.h (warn_types_mismatch): Update prototype.
2924         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
2925         parameters.
2926         (type_mismatch_p): New function.
2927         (warn_types_mismatch): Reorg to work better on non-C++ types.
2928         (odr_types_equivalent_p): Add loc1/loc2 parameters.
2929         (add_type_duplicate): Update.
2930
2931 2015-06-08  Tom de Vries  <tom@codesourcery.com>
2932
2933         PR rtl-optimization/66444
2934         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
2935         call_used_regs.
2936
2937 2015-06-08  Richard Biener  <rguenther@suse.de>
2938
2939         PR tree-optimization/66422
2940         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
2941         block after inserted gcc_unreachable.
2942
2943 2015-06-08  Nick Clifton  <nickc@redhat.com>
2944
2945         * config/rx/rx.c (rx_function_value): Do not promote vector types.
2946         (rx_promote_function_mode): Likewise.
2947         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
2948
2949 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
2950
2951         * genattrtab.c (insn_alternatives): Change type from int *
2952         to uint64_t *.
2953         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
2954         (get_attr_value): Change type of num_alt to uint64_t.
2955         (compute_alternative_mask): Change return type from
2956         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
2957         (make_alternative_compare, mk_attr_alt): Change argument type
2958         from int to uint64_t.
2959         (simplify_test_exp): Change type of i from int to uint64_t.
2960         Shift ((uint64_t) 1) instead of 1 up.
2961         (main): Adjust oballocvec first argument from int to uint64_t.
2962         Shift ((uint64_t) 1) instead of 1 up.
2963
2964 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
2965
2966         PR other/65366
2967         * gdbhooks.py: Import sys.
2968         (intptr): New function.  Replace int(...) by intptr(...).
2969
2970 2015-06-08  Richard Biener  <rguenther@suse.de>
2971
2972         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
2973         adjustment for gaps at the end of a SLP load group properly.
2974         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
2975         all permutations we can generate.
2976         (vect_transform_slp_perm_load): Use the correct group-size.
2977
2978 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
2979
2980         * genmatch.c (expr::gen_transform): For conditions, guess the type
2981         from the second operand.
2982
2983 2015-06-08  Tom de Vries  <tom@codesourcery.com>
2984
2985         PR tree-optimization/66442
2986         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
2987         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
2988         if the loop latch is not a singleton.  Use
2989         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
2990
2991 2015-06-08  Marek Polacek  <polacek@redhat.com>
2992
2993         PR sanitizer/66452
2994         * toplev.c (check_global_declaration): Don't warn about artificial
2995         decls.
2996
2997 2015-06-08  Tom de Vries  <tom@codesourcery.com>
2998
2999         PR tree-optimization/66436
3000         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
3001         dump file.
3002         * gimplify.c: Add tree-dump.h include.
3003         (gimplify_function_tree): Dump function to gimple dump file.
3004         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
3005         dump file.
3006
3007 2015-06-08  Tom de Vries  <tom@codesourcery.com>
3008
3009         PR tree-optimization/66435
3010         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
3011         function.
3012
3013 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
3014
3015         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
3016         of ptr_type_node to not be ptr_to_node.
3017         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
3018         TREE_TYPE of pointers.
3019         * gimple-expr.c (useless_type_conversion): Reorder the check for
3020         function pointers and TYPE_CANONICAL.
3021
3022 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
3023
3024         PR bootstrap/66319
3025         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
3026         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
3027         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
3028         later.
3029         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
3030         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
3031         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
3032         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
3033         and non iso if unix2003.
3034
3035 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
3036
3037         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
3038
3039 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
3040
3041         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
3042         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
3043         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
3044         except.c, final.c, function.c, gcse-common.c, genemit.c,
3045         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
3046         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
3047         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
3048         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
3049         more derived ones.
3050
3051 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
3052
3053         * combine.c (combine_split_insns): Remove cast.
3054         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
3055         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
3056         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
3057         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
3058         * genemit.c (gen_split): Change return type of generated functions to
3059         rtx_insn.
3060         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
3061         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
3062         gen_peephole2_* functions.
3063         (print_subroutine, main): Likewise.
3064         * recog.c (peephole2_optimize): Remove cast.
3065         (peep2_next_insn): Promote return type to rtx_insn.
3066         * recog.h (peep2_next_insn): Fix prototype.
3067         * rtl.h (try_split, split_insns): Likewise.
3068
3069 2015-06-06  DJ Delorie  <dj@redhat.com>
3070
3071         * config/msp430/msp430.c (msp430_asm_integer): Support addition
3072         and subtraction too.
3073
3074 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
3075
3076         PR target/66410
3077         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
3078         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
3079         instead of Snd.  Disparage Sid/z alternative with '^'.
3080
3081 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
3082
3083         * dwarf2out.c: Remove deferred_locations*.
3084         (dwarf2_debug_hooks): Add early_finish hook.
3085         Remove global_decl hook.
3086         Add early_global_decl and late_global_decl hook.
3087         New global early_dwarf.
3088         New structure set_early_dwarf.
3089         (output_die): Indicate whether a DIE was generated early
3090         when generating assembly with -dA.
3091         (struct limbo_die_struct): Document created_for field.
3092         Remove file_table_last_lookup.
3093         (remove_AT): Return TRUE if successful.
3094         (remove_child_TAG): Clear die_parent.
3095         (reparent_child): New function abstracted from...
3096         (splice_child_die): ...here.
3097         (new_die): ICE if a DIE ends up in limbo too late.
3098         (check_die): New.
3099         (defer_location): Remove.
3100         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
3101         (fill_variable_array_bounds): New.
3102         (decl_start_label): Call fill_variable_array_bounds.
3103         (gen_formal_parameter_die): Rewrite to reuse previously generated
3104         DIEs.
3105         (gen_subprogram_die): Same.
3106         (gen_variable_die): Same.
3107         (gen_const_die): Same.
3108         (gen_label_die): Same.
3109         (gen_lexical_block_die): Same.
3110         (decl_will_get_specification_p): New.
3111         (local_function_static): New.
3112         (gen_struct_or_union_type_die): Fill in variable-length fields.
3113         (gen_typedef_die): Fill in variable-length typedefs.
3114         (gen_tagged_type_die): Gracefully return on error_mark_node.
3115         Handle re-entrancy.
3116         (gen_type_die_with_usage): Handle variable-length types.
3117         Remove duplicate code for ARRAY_TYPE case.
3118         (process_scope_var): Only process imported modules during early
3119         dwarf.
3120         (dwarf2out_early_global_decl): New.
3121         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
3122         (dwarf2out_type_decl): Set early_dwarf while calling
3123         dwarf2out_decl.
3124         (dwarf2out_decl): Verify that we did not recreate a previously
3125         generated DIE.
3126         Do not return on DECL_EXTERNALs in VAR_DECLs.
3127         Abstract some code to local_function_static.
3128         (lookup_filename): Remove use of file_table_last_lookup.
3129         Gracefully exit on missing file_name.
3130         (dwarf2out_finish): Verify limbo list.
3131         Remove deferred_locations_list use.
3132         Move deferred_asm_name and limbo flushing to...
3133         (dwarf2out_early_finish): ...here.  New.
3134         (dwarf2out_c_finalize): Remove set of deferred_location_list,
3135         deferred_asm_name, and file_table_last_lookup.
3136         * cgraph.h (referred_to_p): Add default argument.
3137         * cgraphunit.c (referred_to_p): Add and handle include_self
3138         argument.
3139         (analyze_functions): Add first_time argument.
3140         Call check_global_declaration for all symbols.
3141         Call late_global_decl for nodes for moribund nodes.
3142         (finalize_compilation_unit): Add new argument to
3143         analyze_functions.
3144         Call early_global_decl for functions.
3145         Call early_finish debug hook.
3146         * dbxout.c (dbxout_early_global_decl): New.
3147         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
3148         (dbx_debug_hooks): Add new hooks.
3149         (xcoff_debug_hooks): Same.
3150         * debug.c (do_nothing_debug_hooks): Add early_finish field.
3151         Add early and late debug hooks.
3152         Remove global_decl hook.
3153         * debug.h (struct gcc_debug_hooks): Add early_finish,
3154         early_global_decl, and late_global_decl fields.
3155         Remove global_decl field.
3156         Document gcc_debug_hooks.
3157         * gengtype.c (output_typename): Remove.
3158         * godump.c (go_early_global_decl): New.
3159         (go_late_global_decl): New.
3160         (go_global_decl): Remove.
3161         (dump_go_spec_init): Remove global_decl.  Add
3162         {early,late}_global_decl.
3163         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
3164         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
3165         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
3166         (write_global_declarations): Remove.
3167         (global_decl_processing): New.
3168         * langhooks.h (struct lang_hooks_for_decls): Remove
3169         final_write_globals field.
3170         Add post_compilation_parsing_cleanups field.
3171         * passes.c (rest_of_decl_compilation): Call early_global_decl.
3172         * sdbout.c: Add early and late_global_decl hooks.  Remove
3173         sdbout_global_decl hook.
3174         Add early_finish field for sdb_debug_hooks.
3175         (sdbout_global_decl): Remove.
3176         (sdbout_early_global_decl): New.
3177         (sdbout_late_global_decl): New.
3178         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
3179         * toplev.c (check_global_declaration): Rename from
3180         check_global_declaration_1.
3181         Adapt to use symtab infrastructure.
3182         (check_global_declarations): Remove.
3183         (emit_debug_global_declarations): Remove.
3184         (compile_file): Remove call to final_write_globals langhook.
3185         Run the actual compilation process.
3186         Perform any post compilation parser cleanups.
3187         Generate late debug info.
3188         * toplev.h (check_global_declaration): New.
3189         (check_global_declaration_1): Remove.
3190         (check_global_declarations): Remove.
3191         (write_global_declarations): Remove.
3192         (emit_debug_global_declarations): Remove.
3193         (global_decl_processing): New.
3194         * tree-core.h (struct tree_block): Add DIE field.
3195         * tree.h (BLOCK_DIE): New.
3196         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
3197         throughout.
3198         (vmsdbgout_early_global_decl): New.
3199         (vmsdbgout_late_global_decl): New.
3200         Add early_finish debug hook field to vmsdbg_debug_hooks.
3201         Remove vmsdbgout_decl to vmsdbgout_function_decl.
3202         Add early and late_global_decl debug hooks.
3203
3204 2015-06-05  Julian Brown  <julian@codesourcery.com>
3205             Sandra Loosemore  <sandra@codesourcery.com>
3206
3207         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
3208         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
3209         to print-sysroot-suffix.sh script.
3210
3211 2015-06-05  Tom de Vries  <tom@codesourcery.com>
3212
3213         merge from gomp4 branch:
3214         2015-05-28  Tom de Vries  <tom@codesourcery.com>
3215
3216         PR tree-optimization/65443
3217         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
3218         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
3219         (try_transform_to_exit_first_loop_alt): New function.
3220         (transform_to_exit_first_loop): Use
3221         try_transform_to_exit_first_loop_alt.
3222
3223 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
3224
3225         * builtins.c (expand_builtin_atomic_compare_exchange): Call
3226         emit_cmp_and_jump_insns with the mode of target.
3227
3228 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3229
3230         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
3231
3232 2015-06-04  DJ Delorie  <dj@redhat.com>
3233
3234         * config/msp430/msp430.md (movsi_s): New.  Special case for
3235         storing a 20-bit symbol into a 32-bit register.
3236         * config/msp430/msp430.c (msp430_subreg): Add support for it.
3237         * config/msp430/predicates.md (msp430_symbol_operand): New.
3238
3239 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
3240
3241         * c-family/c-common.c (noplt): New attribute.
3242         (handle_noplt_attribute): New handler.
3243         * calls.c (prepare_call_address): Check for noplt
3244         attribute.
3245         * config/i386/i386.c (ix86_expand_call): Check
3246         for noplt attribute.
3247         (ix86_nopic_noplt_attribute_p): New function.
3248         (ix86_output_call_insn): Output indirect call for non-pic
3249         no plt calls.
3250         * doc/extend.texi (noplt): Document new attribute.
3251         * doc/invoke.texi: Document new attribute.
3252
3253 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
3254
3255         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
3256         real.h, and fixed-value.h when included in host source files.
3257         * double-int.h: Remove redundant #includes listed above.
3258         * fixed-value.h: Likewise.
3259         * real.h: Likewise.
3260         * wide-int.h: Likewise.
3261         * inchash.h: Likewise.
3262         * rtl.h: Add some include files When included from a generator file.
3263         * target.h: Remove wide-int.h and insn-modes.h from the include list.
3264         * internal-fn.h: Don't include coretypes.h.
3265         * alias.c: Adjust includes for restructured coretypes.h.
3266         * asan.c: Likewise.
3267         * attribs.c: Likewise.
3268         * auto-inc-dec.c: Likewise.
3269         * auto-profile.c: Likewise.
3270         * bb-reorder.c: Likewise.
3271         * bt-load.c: Likewise.
3272         * builtins.c: Likewise.
3273         * caller-save.c: Likewise.
3274         * calls.c: Likewise.
3275         * ccmp.c: Likewise.
3276         * cfg.c: Likewise.
3277         * cfganal.c: Likewise.
3278         * cfgbuild.c: Likewise.
3279         * cfgcleanup.c: Likewise.
3280         * cfgexpand.c: Likewise.
3281         * cfghooks.c: Likewise.
3282         * cfgloop.c: Likewise.
3283         * cfgloop.h: Likewise.
3284         * cfgloopanal.c: Likewise.
3285         * cfgloopmanip.c: Likewise.
3286         * cfgrtl.c: Likewise.
3287         * cgraph.c: Likewise.
3288         * cgraphbuild.c: Likewise.
3289         * cgraphclones.c: Likewise.
3290         * cgraphunit.c: Likewise.
3291         * cilk-common.c: Likewise.
3292         * combine-stack-adj.c: Likewise.
3293         * combine.c: Likewise.
3294         * compare-elim.c: Likewise.
3295         * convert.c: Likewise.
3296         * coverage.c: Likewise.
3297         * cppbuiltin.c: Likewise.
3298         * cprop.c: Likewise.
3299         * cse.c: Likewise.
3300         * cselib.c: Likewise.
3301         * data-streamer-in.c: Likewise.
3302         * data-streamer-out.c: Likewise.
3303         * data-streamer.c: Likewise.
3304         * dbxout.c: Likewise.
3305         * dce.c: Likewise.
3306         * ddg.c: Likewise.
3307         * debug.c: Likewise.
3308         * df-core.c: Likewise.
3309         * df-problems.c: Likewise.
3310         * df-scan.c: Likewise.
3311         * df.h: Likewise.
3312         * dfp.c: Likewise.
3313         * dojump.c: Likewise.
3314         * dominance.c: Likewise.
3315         * domwalk.c: Likewise.
3316         * double-int.c: Likewise.
3317         * dse.c: Likewise.
3318         * dumpfile.c: Likewise.
3319         * dwarf2asm.c: Likewise.
3320         * dwarf2cfi.c: Likewise.
3321         * dwarf2out.c: Likewise.
3322         * dwarf2out.h: Likewise.
3323         * emit-rtl.c: Likewise.
3324         * et-forest.c: Likewise.
3325         * except.c: Likewise.
3326         * explow.c: Likewise.
3327         * expmed.c: Likewise.
3328         * expr.c: Likewise.
3329         * final.c: Likewise.
3330         * fixed-value.c: Likewise.
3331         * fold-const.c: Likewise.
3332         * function.c: Likewise.
3333         * fwprop.c: Likewise.
3334         * gcc-plugin.h: Likewise.
3335         * gcse.c: Likewise.
3336         * generic-match-head.c: Likewise.
3337         * ggc-page.c: Likewise.
3338         * gimple-builder.c: Likewise.
3339         * gimple-expr.c: Likewise.
3340         * gimple-fold.c: Likewise.
3341         * gimple-iterator.c: Likewise.
3342         * gimple-low.c: Likewise.
3343         * gimple-match-head.c: Likewise.
3344         * gimple-pretty-print.c: Likewise.
3345         * gimple-ssa-isolate-paths.c: Likewise.
3346         * gimple-ssa-strength-reduction.c: Likewise.
3347         * gimple-streamer-in.c: Likewise.
3348         * gimple-streamer-out.c: Likewise.
3349         * gimple-streamer.h: Likewise.
3350         * gimple-walk.c: Likewise.
3351         * gimple.c: Likewise.
3352         * gimplify-me.c: Likewise.
3353         * gimplify.c: Likewise.
3354         * godump.c: Likewise.
3355         * graph.c: Likewise.
3356         * graphite-blocking.c: Likewise.
3357         * graphite-dependences.c: Likewise.
3358         * graphite-interchange.c: Likewise.
3359         * graphite-isl-ast-to-gimple.c: Likewise.
3360         * graphite-optimize-isl.c: Likewise.
3361         * graphite-poly.c: Likewise.
3362         * graphite-scop-detection.c: Likewise.
3363         * graphite-sese-to-poly.c: Likewise.
3364         * graphite.c: Likewise.
3365         * haifa-sched.c: Likewise.
3366         * hooks.h: Likewise.
3367         * hw-doloop.c: Likewise.
3368         * ifcvt.c: Likewise.
3369         * incpath.c: Likewise.
3370         * init-regs.c: Likewise.
3371         * internal-fn.c: Likewise.
3372         * ipa-chkp.c: Likewise.
3373         * ipa-comdats.c: Likewise.
3374         * ipa-cp.c: Likewise.
3375         * ipa-devirt.c: Likewise.
3376         * ipa-icf-gimple.c: Likewise.
3377         * ipa-icf.c: Likewise.
3378         * ipa-inline-analysis.c: Likewise.
3379         * ipa-inline-transform.c: Likewise.
3380         * ipa-inline.c: Likewise.
3381         * ipa-polymorphic-call.c: Likewise.
3382         * ipa-profile.c: Likewise.
3383         * ipa-prop.c: Likewise.
3384         * ipa-pure-const.c: Likewise.
3385         * ipa-ref.c: Likewise.
3386         * ipa-reference.c: Likewise.
3387         * ipa-split.c: Likewise.
3388         * ipa-utils.c: Likewise.
3389         * ipa-visibility.c: Likewise.
3390         * ipa.c: Likewise.
3391         * ira-build.c: Likewise.
3392         * ira-color.c: Likewise.
3393         * ira-conflicts.c: Likewise.
3394         * ira-costs.c: Likewise.
3395         * ira-emit.c: Likewise.
3396         * ira-lives.c: Likewise.
3397         * ira.c: Likewise.
3398         * jump.c: Likewise.
3399         * langhooks.c: Likewise.
3400         * lcm.c: Likewise.
3401         * loop-doloop.c: Likewise.
3402         * loop-init.c: Likewise.
3403         * loop-invariant.c: Likewise.
3404         * loop-iv.c: Likewise.
3405         * loop-unroll.c: Likewise.
3406         * lower-subreg.c: Likewise.
3407         * lra-assigns.c: Likewise.
3408         * lra-coalesce.c: Likewise.
3409         * lra-constraints.c: Likewise.
3410         * lra-eliminations.c: Likewise.
3411         * lra-lives.c: Likewise.
3412         * lra-remat.c: Likewise.
3413         * lra-spills.c: Likewise.
3414         * lra.c: Likewise.
3415         * lto-cgraph.c: Likewise.
3416         * lto-compress.c: Likewise.
3417         * lto-opts.c: Likewise.
3418         * lto-section-in.c: Likewise.
3419         * lto-section-out.c: Likewise.
3420         * lto-streamer-in.c: Likewise.
3421         * lto-streamer-out.c: Likewise.
3422         * lto-streamer.c: Likewise.
3423         * mcf.c: Likewise.
3424         * mode-switching.c: Likewise.
3425         * modulo-sched.c: Likewise.
3426         * omega.c: Likewise.
3427         * omp-low.c: Likewise.
3428         * optabs.c: Likewise.
3429         * opts-global.c: Likewise.
3430         * passes.c: Likewise.
3431         * plugin.c: Likewise.
3432         * postreload-gcse.c: Likewise.
3433         * postreload.c: Likewise.
3434         * predict.c: Likewise.
3435         * print-rtl.c: Likewise.
3436         * print-tree.c: Likewise.
3437         * profile.c: Likewise.
3438         * real.c: Likewise.
3439         * realmpfr.c: Likewise.
3440         * realmpfr.h: Likewise.
3441         * recog.c: Likewise.
3442         * ree.c: Likewise.
3443         * reg-stack.c: Likewise.
3444         * regcprop.c: Likewise.
3445         * reginfo.c: Likewise.
3446         * regrename.c: Likewise.
3447         * regs.h: Likewise.
3448         * regstat.c: Likewise.
3449         * reload.c: Likewise.
3450         * reload1.c: Likewise.
3451         * reorg.c: Likewise.
3452         * resource.c: Likewise.
3453         * rtl-chkp.c: Likewise.
3454         * rtlanal.c: Likewise.
3455         * rtlhooks.c: Likewise.
3456         * sanopt.c: Likewise.
3457         * sched-deps.c: Likewise.
3458         * sched-ebb.c: Likewise.
3459         * sched-rgn.c: Likewise.
3460         * sched-vis.c: Likewise.
3461         * sdbout.c: Likewise.
3462         * sel-sched-dump.c: Likewise.
3463         * sel-sched-ir.c: Likewise.
3464         * sel-sched.c: Likewise.
3465         * sese.c: Likewise.
3466         * shrink-wrap.c: Likewise.
3467         * shrink-wrap.h: Likewise.
3468         * simplify-rtx.c: Likewise.
3469         * stack-ptr-mod.c: Likewise.
3470         * statistics.c: Likewise.
3471         * stmt.c: Likewise.
3472         * stor-layout.c: Likewise.
3473         * store-motion.c: Likewise.
3474         * stringpool.c: Likewise.
3475         * symtab.c: Likewise.
3476         * target-globals.c: Likewise.
3477         * targhooks.c: Likewise.
3478         * toplev.c: Likewise.
3479         * tracer.c: Likewise.
3480         * trans-mem.c: Likewise.
3481         * tree-affine.c: Likewise.
3482         * tree-affine.h: Likewise.
3483         * tree-browser.c: Likewise.
3484         * tree-call-cdce.c: Likewise.
3485         * tree-cfg.c: Likewise.
3486         * tree-cfgcleanup.c: Likewise.
3487         * tree-chkp-opt.c: Likewise.
3488         * tree-chkp.c: Likewise.
3489         * tree-chrec.c: Likewise.
3490         * tree-complex.c: Likewise.
3491         * tree-data-ref.c: Likewise.
3492         * tree-dfa.c: Likewise.
3493         * tree-diagnostic.c: Likewise.
3494         * tree-dump.c: Likewise.
3495         * tree-eh.c: Likewise.
3496         * tree-emutls.c: Likewise.
3497         * tree-if-conv.c: Likewise.
3498         * tree-inline.c: Likewise.
3499         * tree-into-ssa.c: Likewise.
3500         * tree-iterator.c: Likewise.
3501         * tree-loop-distribution.c: Likewise.
3502         * tree-nested.c: Likewise.
3503         * tree-nrv.c: Likewise.
3504         * tree-object-size.c: Likewise.
3505         * tree-outof-ssa.c: Likewise.
3506         * tree-parloops.c: Likewise.
3507         * tree-phinodes.c: Likewise.
3508         * tree-predcom.c: Likewise.
3509         * tree-pretty-print.c: Likewise.
3510         * tree-pretty-print.h: Likewise.
3511         * tree-profile.c: Likewise.
3512         * tree-scalar-evolution.c: Likewise.
3513         * tree-sra.c: Likewise.
3514         * tree-ssa-address.c: Likewise.
3515         * tree-ssa-alias.c: Likewise.
3516         * tree-ssa-ccp.c: Likewise.
3517         * tree-ssa-coalesce.c: Likewise.
3518         * tree-ssa-copy.c: Likewise.
3519         * tree-ssa-copyrename.c: Likewise.
3520         * tree-ssa-dce.c: Likewise.
3521         * tree-ssa-dom.c: Likewise.
3522         * tree-ssa-dse.c: Likewise.
3523         * tree-ssa-forwprop.c: Likewise.
3524         * tree-ssa-ifcombine.c: Likewise.
3525         * tree-ssa-live.c: Likewise.
3526         * tree-ssa-loop-ch.c: Likewise.
3527         * tree-ssa-loop-im.c: Likewise.
3528         * tree-ssa-loop-ivcanon.c: Likewise.
3529         * tree-ssa-loop-ivopts.c: Likewise.
3530         * tree-ssa-loop-manip.c: Likewise.
3531         * tree-ssa-loop-niter.c: Likewise.
3532         * tree-ssa-loop-prefetch.c: Likewise.
3533         * tree-ssa-loop-unswitch.c: Likewise.
3534         * tree-ssa-loop.c: Likewise.
3535         * tree-ssa-loop.h: Likewise.
3536         * tree-ssa-math-opts.c: Likewise.
3537         * tree-ssa-operands.c: Likewise.
3538         * tree-ssa-phiopt.c: Likewise.
3539         * tree-ssa-phiprop.c: Likewise.
3540         * tree-ssa-pre.c: Likewise.
3541         * tree-ssa-propagate.c: Likewise.
3542         * tree-ssa-reassoc.c: Likewise.
3543         * tree-ssa-sccvn.c: Likewise.
3544         * tree-ssa-scopedtables.c: Likewise.
3545         * tree-ssa-sink.c: Likewise.
3546         * tree-ssa-strlen.c: Likewise.
3547         * tree-ssa-structalias.c: Likewise.
3548         * tree-ssa-tail-merge.c: Likewise.
3549         * tree-ssa-ter.c: Likewise.
3550         * tree-ssa-threadedge.c: Likewise.
3551         * tree-ssa-threadupdate.c: Likewise.
3552         * tree-ssa-uncprop.c: Likewise.
3553         * tree-ssa-uninit.c: Likewise.
3554         * tree-ssa.c: Likewise.
3555         * tree-ssanames.c: Likewise.
3556         * tree-stdarg.c: Likewise.
3557         * tree-streamer-in.c: Likewise.
3558         * tree-streamer-out.c: Likewise.
3559         * tree-streamer.c: Likewise.
3560         * tree-switch-conversion.c: Likewise.
3561         * tree-tailcall.c: Likewise.
3562         * tree-vect-data-refs.c: Likewise.
3563         * tree-vect-generic.c: Likewise.
3564         * tree-vect-loop-manip.c: Likewise.
3565         * tree-vect-loop.c: Likewise.
3566         * tree-vect-patterns.c: Likewise.
3567         * tree-vect-slp.c: Likewise.
3568         * tree-vect-stmts.c: Likewise.
3569         * tree-vectorizer.c: Likewise.
3570         * tree-vrp.c: Likewise.
3571         * tree.c: Likewise.
3572         * tsan.c: Likewise.
3573         * ubsan.c: Likewise.
3574         * valtrack.c: Likewise.
3575         * value-prof.c: Likewise.
3576         * var-tracking.c: Likewise.
3577         * varasm.c: Likewise.
3578         * varpool.c: Likewise.
3579         * vmsdbgout.c: Likewise.
3580         * vtable-verify.c: Likewise.
3581         * web.c: Likewise.
3582         * wide-int-print.cc: Likewise.
3583         * wide-int-print.h: Likewise.
3584         * wide-int.cc: Likewise.
3585         * xcoffout.c: Likewise.
3586         * config/aarch64/aarch64-builtins.c: Likewise.
3587         * config/aarch64/aarch64.c: Likewise.
3588         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3589         * config/alpha/alpha.c: Likewise.
3590         * config/arc/arc.c: Likewise.
3591         * config/arm/aarch-common.c: Likewise.
3592         * config/arm/arm-builtins.c: Likewise.
3593         * config/arm/arm-c.c: Likewise.
3594         * config/arm/arm.c: Likewise.
3595         * config/avr/avr-c.c: Likewise.
3596         * config/avr/avr-log.c: Likewise.
3597         * config/avr/avr.c: Likewise.
3598         * config/bfin/bfin.c: Likewise.
3599         * config/c6x/c6x.c: Likewise.
3600         * config/cr16/cr16.c: Likewise.
3601         * config/cris/cris.c: Likewise.
3602         * config/darwin-c.c: Likewise.
3603         * config/darwin.c: Likewise.
3604         * config/default-c.c: Likewise.
3605         * config/epiphany/epiphany.c: Likewise.
3606         * config/epiphany/mode-switch-use.c: Likewise.
3607         * config/epiphany/resolve-sw-modes.c: Likewise.
3608         * config/fr30/fr30.c: Likewise.
3609         * config/frv/frv.c: Likewise.
3610         * config/ft32/ft32.c: Likewise.
3611         * config/glibc-c.c: Likewise.
3612         * config/h8300/h8300.c: Likewise.
3613         * config/i386/i386-c.c: Likewise.
3614         * config/i386/i386.c: Likewise.
3615         * config/i386/msformat-c.c: Likewise.
3616         * config/i386/winnt-cxx.c: Likewise.
3617         * config/i386/winnt-stubs.c: Likewise.
3618         * config/i386/winnt.c: Likewise.
3619         * config/ia64/ia64-c.c: Likewise.
3620         * config/ia64/ia64.c: Likewise.
3621         * config/iq2000/iq2000.c: Likewise.
3622         * config/lm32/lm32.c: Likewise.
3623         * config/m32c/m32c-pragma.c: Likewise.
3624         * config/m32c/m32c.c: Likewise.
3625         * config/m32r/m32r.c: Likewise.
3626         * config/m68k/m68k.c: Likewise.
3627         * config/mcore/mcore.c: Likewise.
3628         * config/mep/mep-pragma.c: Likewise.
3629         * config/mep/mep.c: Likewise.
3630         * config/microblaze/microblaze-c.c: Likewise.
3631         * config/microblaze/microblaze.c: Likewise.
3632         * config/mips/mips.c: Likewise.
3633         * config/mmix/mmix.c: Likewise.
3634         * config/mn10300/mn10300.c: Likewise.
3635         * config/moxie/moxie.c: Likewise.
3636         * config/msp430/msp430-c.c: Likewise.
3637         * config/msp430/msp430.c: Likewise.
3638         * config/nds32/nds32-cost.c: Likewise.
3639         * config/nds32/nds32-fp-as-gp.c: Likewise.
3640         * config/nds32/nds32-intrinsic.c: Likewise.
3641         * config/nds32/nds32-isr.c: Likewise.
3642         * config/nds32/nds32-md-auxiliary.c: Likewise.
3643         * config/nds32/nds32-memory-manipulation.c: Likewise.
3644         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3645         * config/nds32/nds32-predicates.c: Likewise.
3646         * config/nds32/nds32.c: Likewise.
3647         * config/nios2/nios2.c: Likewise.
3648         * config/nvptx/nvptx.c: Likewise.
3649         * config/pa/pa.c: Likewise.
3650         * config/pdp11/pdp11.c: Likewise.
3651         * config/rl78/rl78-c.c: Likewise.
3652         * config/rl78/rl78.c: Likewise.
3653         * config/rs6000/rs6000-c.c: Likewise.
3654         * config/rs6000/rs6000.c: Likewise.
3655         * config/rx/rx.c: Likewise.
3656         * config/s390/s390-c.c: Likewise.
3657         * config/s390/s390.c: Likewise.
3658         * config/sh/sh-c.c: Likewise.
3659         * config/sh/sh-mem.cc: Likewise.
3660         * config/sh/sh.c: Likewise.
3661         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3662         * config/sh/sh_treg_combine.cc: Likewise.
3663         * config/sol2-c.c: Likewise.
3664         * config/sol2-cxx.c: Likewise.
3665         * config/sol2-stubs.c: Likewise.
3666         * config/sol2.c: Likewise.
3667         * config/sparc/sparc-c.c: Likewise.
3668         * config/sparc/sparc.c: Likewise.
3669         * config/spu/spu-c.c: Likewise.
3670         * config/spu/spu.c: Likewise.
3671         * config/stormy16/stormy16.c: Likewise.
3672         * config/tilegx/mul-tables.c: Likewise.
3673         * config/tilegx/tilegx-c.c: Likewise.
3674         * config/tilegx/tilegx.c: Likewise.
3675         * config/tilepro/mul-tables.c: Likewise.
3676         * config/tilepro/tilepro-c.c: Likewise.
3677         * config/tilepro/tilepro.c: Likewise.
3678         * config/v850/v850-c.c: Likewise.
3679         * config/v850/v850.c: Likewise.
3680         * config/vax/vax.c: Likewise.
3681         * config/visium/visium.c: Likewise.
3682         * config/vms/vms-c.c: Likewise.
3683         * config/vms/vms.c: Likewise.
3684         * config/vxworks.c: Likewise.
3685         * config/winnt-c.c: Likewise.
3686         * config/xtensa/xtensa.c: Likewise.
3687         * common/config/bfin/bfin-common.c: Likewise.
3688
3689 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
3690
3691         * tree.h (tree_code_for_canonical_type_merging): New function.
3692         * tree.c (gimple_canonical_types_compatible_p): Use
3693         tree_code_for_canonical_type_merging..
3694
3695 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3696
3697         PR c++/66192
3698         PR target/66200
3699         * doc/tm.texi: Regenerate.
3700         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
3701         * target.def (TARGET_RELAXED_ORDERING): Likewise.
3702         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
3703         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
3704         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
3705         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
3706         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
3707         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
3708         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
3709
3710 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3711
3712         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
3713         register fma steering pass.
3714         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
3715         AARCH64_TUNE_FMA_STEERING.
3716
3717 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
3718
3719         * tree.c (verify_type_variant): Verify that type and variant is
3720         compatible.
3721         (gimple_canonical_types_compatible_p): Look for main variants.
3722
3723 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
3724
3725         * config.gcc (powerpc*-*-*): Add support for a new configure
3726         option --with-advance-toolchain=<xxx> which overrides using the
3727         default header files, libraries and dynamic linker.
3728
3729         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
3730         specs to support the configure --with-advance-toolchain=<xxx>
3731         option.
3732         (INCLUDE_EXTRA_SPEC): Likewise.
3733         (LINK_OS_EXTRA_SPEC32): Likewise.
3734         (LINK_OK_EXTRA_SPEC64): Likewise.
3735         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
3736         (DYNAMIC_LINKER_PREFIX): Likewise.
3737         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
3738         toolchain support.
3739         (GLIBC_DYNAMIC_LINKER32): Likewise.
3740         (GLIBC_DYNAMIC_LINKER64): Likewise.
3741         (LINK_OS_LINUX_SPEC32): Likewise.
3742         (LINK_OS_LINUX_SPEC64): Likewise.
3743
3744         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
3745         configuration option.
3746
3747 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
3748
3749         PR target/66275
3750         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
3751         to determine current function ABI.
3752         (ix86_function_value_regno_p): Ditto.
3753
3754 2015-06-03  Martin Liska  <mliska@suse.cz>
3755
3756         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
3757         * bitmap.h (struct bitmap_usage): Likewise.
3758         * ggc-common.c (struct ggc_usage): Likewise.
3759         * mem-stats.h (struct mem_location): Likewise.
3760         (struct mem_usage): Likewise.
3761         * vec.c (struct vec_usage): Likewise.
3762
3763 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
3764
3765         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
3766         -Bsymbolic.
3767
3768 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
3769
3770         * doc/plugins.texi (enum plugin_event): New event.
3771         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
3772         and PLUGIN_FINISH_FUNCTION.
3773         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
3774         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
3775
3776 2015-06-03  Richard Biener  <rguenther@suse.de>
3777
3778         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
3779         compute GROUP_GAP for the first element.
3780         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
3781         on in-group gaps.
3782
3783 2015-06-03  Nick Clifton  <nickc@redhat.com>
3784
3785         * config/rl78/rl78-real.md: Add peepholes to avoid a register
3786         copy when calling a function.
3787         * config/rl78/rl78.c (need_to_save): Do not push the frame
3788         pointer in an interrupt handler prologue if it is never used.
3789
3790 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3791
3792         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
3793
3794 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
3795
3796         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
3797         reference when cloning alias node.
3798
3799 2015-06-03  Martin Liska  <mliska@suse.cz>
3800
3801         * alloc-pool.h (struct pool_usage): Correct space padding.
3802         * ggc-page.c (ggc_print_statistics): Align columns in a report.
3803         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
3804         * tree.c (dump_tree_statistics): Align columns in a report.
3805
3806 2015-06-03  Martin Liska  <mliska@suse.cz>
3807
3808         * alloc-pool.c (allocate_pool_descriptor): Remove.
3809         (struct pool_output_info): Likewise.
3810         (print_alloc_pool_statistics): Likewise.
3811         (dump_alloc_pool_statistics): Likewise.
3812         * alloc-pool.h (struct pool_usage): New struct.
3813         (pool_allocator::initialize): Change usage of memory statistics
3814         to a new interface.
3815         (pool_allocator::release): Likewise.
3816         (pool_allocator::allocate): Likewise.
3817         (pool_allocator::remove): Likewise.
3818         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
3819         for a pool allocator.
3820         * mem-stats.h (struct mem_location): Add new ctor.
3821         (struct mem_usage): Add counter for number of
3822         instances.
3823         (mem_alloc_description::register_descriptor): New overload of
3824         * mem-stats.h (mem_location::to_string): New function.
3825         * bitmap.h (struct bitmap_usage): Use this new function.
3826         * ggc-common.c (struct ggc_usage): Likewise.
3827         the function.
3828
3829 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
3830
3831         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
3832         of GCC_INSN_FLAGS_H block.
3833
3834 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
3835
3836         * explow.c (plus_constant): Update check after force_const_mem call
3837         to see if the value returned is not a NULL_RTX.
3838
3839 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
3840
3841         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
3842         remove instumentation thunks calling reachable functions.
3843         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
3844         * lto/lto-partition.c (privatize_symbol_name_1): New.
3845         (privatize_symbol_name): Privatize both decl and orig_decl
3846         names for instrumented functions.
3847         * cgraph.c (cgraph_node::verify_node): Add transparent
3848         alias chain check for instrumented node.
3849
3850 2015-06-03  Marek Polacek  <polacek@redhat.com>
3851
3852         PR c/64223
3853         PR c/29358
3854         * tree.c (attribute_value_equal): Handle attribute format.
3855         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
3856
3857 2015-06-03  Richard Biener  <rguenther@suse.de>
3858
3859         PR tree-optimization/63916
3860         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
3861         Forward-propagate non-invariant addresses by splicing their
3862         reference ops if the result isn't going to be used by PRE.
3863         (vn_reference_lookup_3): Remove pointless assert.
3864
3865 2015-06-03  Richard Biener  <rguenther@suse.de>
3866
3867         PR tree-optimization/66375
3868         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
3869         add to the evolution before following SSA edges.
3870
3871 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
3872
3873         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
3874         (dump_use, dump_cand, find_induction_variables): Pass new argument
3875         to dump_iv.
3876         (record_use): Preserve the ssa name information in IV.
3877
3878 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
3879
3880         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
3881         NO_MODE_TEST.
3882         (add_mode_tests): Don't add mode tests if the predicate only
3883         accepts scalar constant integers.  Otherwise, allow the mode
3884         of "op" to be VOIDmode if the predicate does accept such integers.
3885
3886 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
3887
3888         PR target/66258
3889         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
3890         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
3891         (aarch64_secondary_reload): Likewise
3892         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
3893         to !TARGET_FLOAT.
3894         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
3895         Likewise.
3896
3897 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
3898             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
3899
3900         PR target/65768
3901         * cprop.c (try_replace_reg): Check cost of constants before propagating.
3902
3903 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
3904
3905         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
3906         provide access to the IBM extended double floating point mode if
3907         long double is IEEE 128-bit floating point.
3908         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
3909         point if long double is the IBM extended double type.
3910
3911         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
3912         enable adding IEEE 128-bit floating point support.
3913         (-mfloat128-software): Likewise.
3914         (-mfloat128-sw): Likewise.
3915
3916         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
3917         128-bit floating point types to occupy any register if
3918         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
3919         -mfloat128-software is enabled.
3920         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
3921         support.
3922         (rs6000_option_override_internal): Add -mfloat128-* support.
3923         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
3924
3925         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
3926         and float128 type nodes.
3927         (ieee128_float_type_node): Likewise.
3928         (ibm128_float_type_node): Likewise.
3929
3930 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3931
3932         PR target/66136
3933         * config/aarch64/geniterators.sh: Rewrite in awk.
3934
3935 2015-06-02  Martin Liska  <mliska@suse.cz>
3936
3937         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
3938         values to avoid -Wmaybe-uninitialized errors.
3939
3940 2015-06-02  Richard Biener  <rguenther@suse.de>
3941
3942         PR debug/65549
3943         * dwarf2out.c (lookup_context_die): New function.
3944         (resolve_addr): Avoid forcing a full DIE for the
3945         target of a DW_TAG_GNU_call_site during late compilation.
3946         Instead create a stub DIE without a type if we have a
3947         context DIE present.
3948
3949 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
3950
3951         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
3952
3953 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
3954
3955         PR tree-optimization/48052
3956         * cfgloop.h (struct control_iv): New.
3957         (struct loop): New field control_ivs.
3958         * tree-ssa-loop-niter.c : Include "stor-layout.h".
3959         (number_of_iterations_lt): Set no_overflow information.
3960         (number_of_iterations_exit): Init control iv in niter struct.
3961         (record_control_iv): New.
3962         (estimate_numbers_of_iterations_loop): Call record_control_iv.
3963         (loop_exits_before_overflow): New.  Interface factored out of
3964         scev_probably_wraps_p.
3965         (scev_probably_wraps_p): Factor loop niter related code into
3966         loop_exits_before_overflow.
3967         (free_numbers_of_iterations_estimates_loop): Free control ivs.
3968         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
3969
3970 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
3971
3972         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
3973         the target doesn't belong to the current function.
3974
3975 2015-06-02  Marek Polacek  <polacek@redhat.com>
3976
3977         PR middle-end/66345
3978         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
3979         get_maxval_strlen does not produce an INTEGER_CST.
3980
3981 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
3982
3983         * config/arc/constraints.md: Use lower-case names in match_code.
3984         * config/mmix/constraints.md: Likewise.
3985
3986 2015-06-02  Richard Biener  <rguenther@suse.de>
3987
3988         PR tree-optimization/65961
3989         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
3990         check and clarify dump message.
3991         (vect_build_slp_tree): If all children are built up from scalars
3992         build up the parent from scalars instead.
3993         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
3994
3995 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
3996
3997         PR other/65366
3998         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
3999         instead of print ... .
4000
4001 2015-06-02  Alan Modra  <amodra@gmail.com>
4002
4003         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
4004         2014-08-11 change.
4005
4006 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
4007
4008         PR tree-optimization/52563
4009         PR tree-optimization/62173
4010         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
4011         (alloc_iv, set_iv): New parameter.
4012         (determine_biv_step): Delete.
4013         (find_bivs): Inline original determine_biv_step.  Pass new
4014         argument to set_iv.
4015         (idx_find_step): Use no_overflow information for conversion.
4016         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
4017         resolve_mixers handle folded_casts.
4018         (instantiate_scev_name): Change bool parameter to bool pointer.
4019         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
4020         (instantiate_array_ref, instantiate_scev_not): Ditto.
4021         (instantiate_scev_3, instantiate_scev_2): Ditto.
4022         (instantiate_scev_1, instantiate_scev_r): Ditto.
4023         (instantiate_scev_convert, ): Change parameter.  Pass argument
4024         to chrec_convert_aggressive.
4025         (instantiate_scev): Change argument.
4026         (resolve_mixers): New parameter and set it.
4027         (scev_const_prop): New argument.
4028         * tree-scalar-evolution.h (resolve_mixers): New parameter.
4029         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
4030         of chrec_conert_1.
4031         (chrec_convert): New parameter.  Move definition below.
4032         (chrec_convert_aggressive): New parameter and set it.  Call
4033         convert_affine_scev.
4034         * tree-chrec.h (chrec_convert): New parameter.
4035         (chrec_convert_aggressive): Ditto.
4036
4037 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4038
4039         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
4040         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
4041         the LHS of a no-return call if its type has variable size.
4042         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
4043         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
4044
4045 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
4046
4047         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
4048         * config.in: Regenerate.
4049
4050 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
4051
4052         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
4053         consecutive accesses within outer-loop with force_vectorize
4054         for references with zero step in inner-loop.
4055
4056 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
4057
4058         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
4059         rather than from gcc/build directory.
4060
4061 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
4062
4063         PR target/65697
4064         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
4065         for __sync memory models, emit initial loads and final barriers as
4066         appropriate.
4067
4068 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
4069
4070         PR target/65697
4071         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
4072         (aarch64_split_atomic_op): Check for __sync memory models, emit
4073         appropriate initial loads and final barriers.
4074
4075 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
4076
4077         * Makefile.in: Fix gcov dependencies that should
4078         not point to a build folder.
4079
4080 2015-06-01  Richard Biener  <rguenther@suse.de>
4081
4082         Revert
4083         2015-05-29  Richard Biener  <rguenther@suse.de>
4084
4085         PR tree-optimization/66314
4086         * tree-ssa-threadupdate.c (create_block_for_threading): Add
4087         parameter that says which loop the new block belongs to.
4088         (ssa_create_duplicates): Blocks duplicated for the threaded
4089         path belong to the loop of the thread destination.
4090
4091 2015-06-01  Martin Liska  <mliska@suse.cz>
4092
4093         * sched-deps.c: Include pool-alloc.h before
4094         cselib.h header file is included.
4095
4096 2015-06-01  Richard Biener  <rguenther@suse.de>
4097
4098         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
4099         functions.
4100
4101 2015-06-01  Martin Liska  <mliska@suse.cz>
4102
4103         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
4104         a function local variable.
4105
4106 2015-06-01  Martin Liska  <mliska@suse.cz>
4107
4108         * alloc-pool.c (create_alloc_pool): Remove.
4109         (empty_alloc_pool): Likewise.
4110         (free_alloc_pool): Likewise.
4111         (free_alloc_pool_if_empty): Likewise.
4112         (pool_alloc): Likewise.
4113         (pool_free): Likewise.
4114         * alloc-pool.h: Remove old declarations.
4115
4116 2015-06-01  Martin Liska  <mliska@suse.cz>
4117
4118         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
4119         (ira_create_object): Likewise.
4120         (ira_create_allocno): Likewise.
4121         (ira_create_live_range): Likewise.
4122         (copy_live_range): Likewise.
4123         (ira_finish_live_range): Likewise.
4124         (ira_free_allocno_costs): Likewise.
4125         (finish_allocno): Likewise.
4126         (finish_allocnos): Likewise.
4127         (initiate_prefs): Likewise.
4128         (ira_create_pref): Likewise.
4129         (finish_pref): Likewise.
4130         (finish_prefs): Likewise.
4131         (initiate_copies): Likewise.
4132         (ira_create_copy): Likewise.
4133         (finish_copy): Likewise.
4134         (finish_copies): Likewise.
4135         (finish_prefs): Likewise.
4136
4137 2015-06-01  Martin Liska  <mliska@suse.cz>
4138
4139         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
4140         (allocate_and_init_ipcp_value): Likewise.
4141         (ipcp_lattice::add_value): Likewise.
4142         (merge_agg_lats_step): Likewise.
4143         (ipcp_driver): Likewise.
4144         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
4145         (ipa_free_all_structures_after_iinln): Likewise.
4146         * ipa-prop.h: Likewise.
4147
4148 2015-06-01  Martin Liska  <mliska@suse.cz>
4149
4150         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
4151         pool allocator.
4152         (set_hint_predicate): Likewise.
4153         (inline_summary_alloc): Likewise.
4154         (reset_inline_edge_summary): Likewise.
4155         (reset_inline_summary): Likewise.
4156         (set_cond_stmt_execution_predicate): Likewise.
4157         (set_switch_stmt_execution_predicate): Likewise.
4158         (compute_bb_predicates): Likewise.
4159         (estimate_function_body_sizes): Likewise.
4160         (inline_free_summary): Likewise.
4161
4162 2015-06-01  Martin Liska  <mliska@suse.cz>
4163
4164         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
4165         (ipa_edge_duplication_hook): Likewise.
4166         (ipa_free_all_structures_after_ipa_cp): Likewise.
4167         (ipa_free_all_structures_after_iinln): Likewise.
4168
4169 2015-06-01  Martin Liska  <mliska@suse.cz>
4170
4171         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
4172         (ipa_profile_generate_summary): Likewise.
4173         (ipa_profile_read_summary): Likewise.
4174         (ipa_profile): Likewise.
4175
4176 2015-06-01  Martin Liska  <mliska@suse.cz>
4177
4178         * tree-ssa-structalias.c (new_var_info): Use new type-based
4179         pool allocator.
4180         (new_constraint): Likewise.
4181         (init_alias_vars): Likewise.
4182         (delete_points_to_sets): Likewise.
4183
4184 2015-06-01  Martin Liska  <mliska@suse.cz>
4185
4186         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
4187         (free_strinfo): Likewise.
4188         (pass_strlen::execute): Likewise.
4189
4190 2015-06-01  Martin Liska  <mliska@suse.cz>
4191
4192         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
4193         pool allocator.
4194         (vn_reference_insert_pieces): Likewise.
4195         (vn_phi_insert): Likewise.
4196         (visit_reference_op_call): Likewise.
4197         (copy_phi): Likewise.
4198         (copy_reference): Likewise.
4199         (process_scc): Likewise.
4200         (allocate_vn_table): Likewise.
4201         (free_vn_table): Likewise.
4202
4203 2015-06-01  Martin Liska  <mliska@suse.cz>
4204
4205         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
4206         pool allocator.
4207         (add_repeat_to_ops_vec): Likewise.
4208         (get_ops): Likewise.
4209         (maybe_optimize_range_tests): Likewise.
4210         (init_reassoc): Likewise.
4211         (fini_reassoc): Likewise.
4212
4213 2015-06-01  Martin Liska  <mliska@suse.cz>
4214
4215         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
4216         pool allocator.
4217         (bitmap_set_new): Likewise.
4218         (get_or_alloc_expr_for_constant): Likewise.
4219         (get_or_alloc_expr_for): Likewise.
4220         (phi_translate_1): Likewise.
4221         (compute_avail): Likewise.
4222         (init_pre): Likewise.
4223         (fini_pre): Likewise.
4224
4225 2015-06-01  Martin Liska  <mliska@suse.cz>
4226
4227         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
4228         (delete_dep_node): Likewise.
4229         (create_deps_list): Likewise.
4230         (free_deps_list): Likewise.
4231         (sched_deps_init): Likewise.
4232         (sched_deps_finish): Likewise.
4233
4234 2015-06-01  Martin Liska  <mliska@suse.cz>
4235
4236         * regcprop.c (free_debug_insn_changes): Use new type-based
4237         pool allocator.
4238         (replace_oldest_value_reg): Likewise.
4239         (pass_cprop_hardreg::execute): Likewise.
4240
4241 2015-06-01  Martin Liska  <mliska@suse.cz>
4242
4243         * ira-build.c (initiate_cost_vectors): Use new type-based
4244         pool allocator.
4245         (ira_allocate_cost_vector): Likewise.
4246         (ira_free_cost_vector): Likewise.
4247         (finish_cost_vectors): Likewise.
4248
4249 2015-06-01  Martin Liska  <mliska@suse.cz>
4250
4251         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
4252         pool allocator.
4253         (free_sched_pools): Likewise.
4254         * sel-sched-ir.h (_list_alloc): Likewise.
4255         (_list_remove): Likewise.
4256
4257 2015-06-01  Martin Liska  <mliska@suse.cz>
4258
4259         * stmt.c (add_case_node): Use new type-based pool allocator.
4260         (expand_case): Likewise.
4261         (expand_sjlj_dispatch_table): Likewise.
4262
4263 2015-06-01  Martin Liska  <mliska@suse.cz>
4264
4265         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
4266         (free_bb): Likewise.
4267         (pass_cse_reciprocals::execute): Likewise.
4268
4269 2015-06-01  Martin Liska  <mliska@suse.cz>
4270
4271         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
4272         (sra_deinitialize) Likewise.
4273         (create_access_1) Likewise.
4274         (build_accesses_from_assign) Likewise.
4275         (create_artificial_child_access) Likewise.
4276
4277 2015-06-01  Martin Liska  <mliska@suse.cz>
4278
4279         * dse.c (get_group_info):Use new type-based pool allocator.
4280         (dse_step0) Likewise.
4281         (free_store_info) Likewise.
4282         (delete_dead_store_insn) Likewise.
4283         (free_read_records) Likewise.
4284         (record_store) Likewise.
4285         (replace_read) Likewise.
4286         (check_mem_read_rtx) Likewise.
4287         (scan_insn) Likewise.
4288         (dse_step1) Likewise.
4289         (dse_step7) Likewise.
4290
4291 2015-06-01  Martin Liska  <mliska@suse.cz>
4292
4293         * df-scan.c (struct df_scan_problem_data):Use new type-based
4294         pool allocator.
4295         (df_scan_free_internal) Likewise.
4296         (df_scan_alloc) Likewise.
4297         (df_grow_reg_info) Likewise.
4298         (df_free_ref) Likewise.
4299         (df_insn_create_insn_record) Likewise.
4300         (df_mw_hardreg_chain_delete) Likewise.
4301         (df_insn_info_delete) Likewise.
4302         (df_free_collection_rec) Likewise.
4303         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
4304         (df_sort_and_compress_mws) Likewise.
4305         (df_ref_create_structure) Likewise.
4306         (df_ref_record) Likewise.
4307
4308 2015-06-01  Martin Liska  <mliska@suse.cz>
4309
4310         * df-problems.c (df_chain_create):Use new type-based pool allocator.
4311         (df_chain_unlink_1) Likewise.
4312         (df_chain_unlink) Likewise.
4313         (df_chain_remove_problem) Likewise.
4314         (df_chain_alloc) Likewise.
4315         (df_chain_free) Likewise.
4316         * df.h (struct dataflow) Likewise.
4317
4318 2015-06-01  Martin Liska  <mliska@suse.cz>
4319
4320         * cselib.c (new_elt_list):Use new type-based pool allocator.
4321         (new_elt_loc_list) Likewise.
4322         (unchain_one_elt_list) Likewise.
4323         (unchain_one_elt_loc_list) Likewise.
4324         (unchain_one_value) Likewise.
4325         (new_cselib_val) Likewise.
4326         (cselib_init) Likewise.
4327         (cselib_finish) Likewise.
4328
4329 2015-06-01  Martin Liska  <mliska@suse.cz>
4330
4331         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
4332         (sh_reorg) Likewise.
4333
4334 2015-06-01  Martin Liska  <mliska@suse.cz>
4335
4336         * cfg.c (initialize_original_copy_tables):Use new type-based
4337         pool allocator.
4338         (free_original_copy_tables) Likewise.
4339         (copy_original_table_clear) Likewise.
4340         (copy_original_table_set) Likewise.
4341
4342 2015-06-01  Martin Liska  <mliska@suse.cz>
4343
4344         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
4345         pool allocator.
4346         (asan_mem_ref_new) Likewise.
4347         (free_mem_ref_resources) Likewise.
4348
4349 2015-06-01  Martin Liska  <mliska@suse.cz>
4350
4351         * var-tracking.c (variable_htab_free):Use new type-based
4352         pool allocator.
4353         (attrs_list_clear) Likewise.
4354         (attrs_list_insert) Likewise.
4355         (attrs_list_copy) Likewise.
4356         (shared_hash_unshare) Likewise.
4357         (shared_hash_destroy) Likewise.
4358         (unshare_variable) Likewise.
4359         (var_reg_delete_and_set) Likewise.
4360         (var_reg_delete) Likewise.
4361         (var_regno_delete) Likewise.
4362         (drop_overlapping_mem_locs) Likewise.
4363         (variable_union) Likewise.
4364         (insert_into_intersection) Likewise.
4365         (canonicalize_values_star) Likewise.
4366         (variable_merge_over_cur) Likewise.
4367         (dataflow_set_merge) Likewise.
4368         (remove_duplicate_values) Likewise.
4369         (variable_post_merge_new_vals) Likewise.
4370         (dataflow_set_preserve_mem_locs) Likewise.
4371         (dataflow_set_remove_mem_locs) Likewise.
4372         (variable_from_dropped) Likewise.
4373         (variable_was_changed) Likewise.
4374         (set_slot_part) Likewise.
4375         (clobber_slot_part) Likewise.
4376         (delete_slot_part) Likewise.
4377         (loc_exp_insert_dep) Likewise.
4378         (notify_dependents_of_changed_value) Likewise.
4379         (emit_notes_for_differences_1) Likewise.
4380         (vt_emit_notes) Likewise.
4381         (vt_initialize) Likewise.
4382         (vt_finalize) Likewise.
4383
4384 2015-06-01  Martin Liska  <mliska@suse.cz>
4385
4386         * ira-color.c (init_update_cost_records):Use new type-based
4387         pool allocator.
4388         (get_update_cost_record) Likewise.
4389         (free_update_cost_record_list) Likewise.
4390         (finish_update_cost_records) Likewise.
4391         (initiate_cost_update) Likewise.
4392
4393 2015-06-01  Martin Liska  <mliska@suse.cz>
4394
4395         * lra.c (init_insn_regs): Use new type-based pool allocator.
4396         (new_insn_reg) Likewise.
4397         (free_insn_reg) Likewise.
4398         (free_insn_regs) Likewise.
4399         (finish_insn_regs) Likewise.
4400         (init_insn_recog_data) Likewise.
4401         (init_reg_info) Likewise.
4402         (finish_reg_info) Likewise.
4403         (lra_free_copies) Likewise.
4404         (lra_create_copy) Likewise.
4405         (invalidate_insn_data_regno_info) Likewise.
4406
4407 2015-06-01  Martin Liska  <mliska@suse.cz>
4408
4409         * lra-lives.c (free_live_range): Use new type-based pool allocator.
4410         (free_live_range_list) Likewise.
4411         (create_live_range) Likewise.
4412         (copy_live_range) Likewise.
4413         (lra_merge_live_ranges) Likewise.
4414         (remove_some_program_points_and_update_live_ranges) Likewise.
4415         (lra_live_ranges_init) Likewise.
4416         (lra_live_ranges_finish) Likewise.
4417
4418 2015-06-01  Martin Liska  <mliska@suse.cz>
4419
4420         * et-forest.c (et_new_occ): Use new type-based pool allocator.
4421         (et_new_tree): Likewise.
4422         (et_free_tree): Likewise.
4423         (et_free_tree_force): Likewise.
4424         (et_free_pools): Likewise.
4425         (et_split): Likewise.
4426
4427 2015-06-01  Martin Liska  <mliska@suse.cz>
4428
4429         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
4430         to header file.
4431         * alloc-pool.h (pool_allocator::pool_allocator): New function.
4432         (pool_allocator::release): Likewise.
4433         (inline pool_allocator::release_if_empty): Likewise.
4434         (inline pool_allocator::~pool_allocator): Likewise.
4435         (pool_allocator::allocate): Likewise.
4436         (pool_allocator::remove): Likewise.
4437
4438 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
4439
4440         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
4441         in comment.
4442
4443 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
4444
4445         * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
4446         to fusible_ops.
4447         * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
4448         (arm_macro_fusion_p): Likewise.
4449         (arm_macro_fusion_pair_p): Likewise.
4450
4451 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
4452
4453         * config/aarch64/aarch64-protos.h (tune_params): Rename
4454         fuseable_ops to fusible_ops.
4455         * config/aarch64/aarch64.c (generic_tunings): Rename
4456         fuseable_ops to fusible_ops.
4457         (cortexa53_tunings): Likewise.
4458         (cortexa57_tunings): Likewise.
4459         (thunderx_tunings): Likewise.
4460         (xgene1_tunings): Likewise.
4461         (aarch64_macro_fusion_p): Likewise.
4462         (aarch64_macro_fusion_pair_p): Likewise.
4463
4464 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4465
4466         * config/s390/driver-native.c: New file.
4467         * config/s390/x-native: New file.
4468         * config.host: Add new files for s390.
4469         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
4470         and -march=native
4471         * config.gcc: Likewise.
4472         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
4473         * config/s390/s390-opts.h (enum processor_type): Ditto.
4474         * config/s390/s390.c (s390_option_override): Catch unhandled
4475         PROCESSOR_NATIVE
4476
4477 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
4478
4479         PR target/65527
4480         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
4481         redirection for instrumented calls.
4482         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
4483         (append_compiler_options): Append -fcheck-pointer-bounds.
4484         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
4485         (chkp_redirect_edge): New.
4486         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
4487         (chkp_redirect_edge): New.
4488
4489 2015-06-01  Richard Biener  <rguenther@suse.de>
4490
4491         PR tree-optimization/66280
4492         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
4493         def-use walking.
4494
4495 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4496
4497         * config/aarch64/aarch64.md
4498         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
4499         logic_shift_imm.
4500
4501 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
4502
4503         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
4504         Remove obsolete kludge.
4505
4506 2015-06-01  Richard Biener  <rguenther@suse.de>
4507
4508         * tree-ssa-reassoc.c (get_rank): Simplify.
4509
4510 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
4511
4512         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
4513         * configure: Regenerated.
4514
4515 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
4516
4517         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
4518         issue (add space between string literal and macro).
4519         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
4520
4521 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
4522
4523         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
4524         implict or explicit -fPIE or -fpie.
4525
4526 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
4527
4528         * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
4529
4530 2015-05-28  DJ Delorie  <dj@redhat.com>
4531
4532         * expmed.c (extract_bit_field_1): Avoid clobbering a
4533         yet-to-be-used base/index register.
4534
4535 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
4536
4537         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
4538         (alias_stats): Add num_universal.
4539         (alias_set_subset_of): Special case pointers; be ready for NULL
4540         children.
4541         (alias_sets_conflict_p): Special case pointers; be ready for NULL
4542         children.
4543         (init_alias_set_entry): Break out from ...
4544         (record_alias_subset): ... here; propagate new fields;
4545         allocate children only when really needed.
4546         (get_alias_set): Do less generous pointer globbing.
4547         (dump_alias_stats_in_alias_c): Update statistics.
4548
4549 2015-05-30  Alan Modra  <amodra@gmail.com>
4550
4551         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
4552         correct block for use of r12.
4553         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
4554
4555 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
4556
4557         PR target/66215
4558         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
4559         with -mhotpatch=.
4560
4561 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
4562
4563         PR tree-optimization/66142
4564         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
4565         virtual phis that feed themselves.
4566
4567 2015-05-29  Richard Biener  <rguenther@suse.de>
4568
4569         PR tree-optimization/66314
4570         * tree-ssa-threadupdate.c (create_block_for_threading): Add
4571         parameter that says which loop the new block belongs to.
4572         (ssa_create_duplicates): Blocks duplicated for the threaded
4573         path belong to the loop of the thread destination.
4574
4575 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
4576
4577         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
4578         to cleanup-saved-temps.
4579         * doc/sourcebuild.texi (Clean up generated test files): Expand
4580         introduction.
4581         (dg-keep-saved-temps): Document new proc.
4582         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
4583         cleanup-saved-temps): Remove.
4584
4585 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
4586
4587         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
4588         gcc_AC_CHECK_DECLS.
4589         * configure: Regenerate.
4590
4591 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
4592
4593         * config/nios2/linux.h (CPP_SPEC): Define.
4594
4595 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
4596
4597         * config/microblaze/linux.h (CPP_SPEC): Define.
4598
4599 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
4600
4601         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
4602         -pthread is specified.
4603
4604 2015-05-28  Richard Biener  <rguenther@suse.de>
4605
4606         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
4607         (vect_fixup_scalar_cycles_with_patterns): Likewise.
4608         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
4609         after pattern recog.
4610         (vect_create_epilog_for_reduction): Properly handle reductions
4611         with patterns.
4612         (vectorizable_reduction): Likewise.
4613         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
4614         reduction chains.
4615         (vect_get_constant_vectors): Create the correct number of
4616         initial values for reductions.
4617         (vect_schedule_slp_instance): Handle reduction chains that are
4618         type changing properly.
4619         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
4620
4621 2015-05-28  Richard Biener  <rguenther@suse.de>
4622
4623         PR tree-optimization/66142
4624         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
4625         values better in memcpy destination handling.  Handle non-aliasing
4626         we discover here.
4627
4628 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
4629
4630         PR target/63810
4631         * config/darwin-c.c (version_components): New global enum.
4632         (parse_version, version_as_legacy_macro)
4633         (version_as_modern_macro, macosx_version_as_macro): New functions.
4634         (version_as_macro): Remove.
4635         (darwin_cpp_builtins): Use new function.
4636
4637 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
4638
4639         * builtins.c (expand_builtin_acc_on_device): Mark parameters
4640         with ATTRIBUTE_UNUSED.
4641
4642 2015-05-28  Julian Brown  <julian@codesourcery.com>
4643
4644         PR libgomp/65742
4645
4646         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
4647         sequence for !ACCEL_COMPILER.
4648
4649 2015-05-28  Nick Clifton  <nickc@redhat.com>
4650
4651         * config/rx/rx.c (push_regs): New function.  Extracts code from...
4652         (rx_expand_prologue): ... here.  Use push_regs to push even small
4653         spans of registers.
4654         (pop_regs): New function.
4655         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
4656         registers.
4657
4658 2015-05-28  Richard Biener  <rguenther@suse.de>
4659
4660         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
4661         member.
4662         (SLP_INSTANCE_BODY_COST_VEC): Remove.
4663         (vect_update_slp_costs_according_to_vf): Likewise.
4664         (vect_slp_analyze_operations): Update prototype.
4665         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
4666         vect_update_slp_costs_according_to_vf, adjust.
4667         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
4668         (vect_analyze_slp_cost_1): Likewise.
4669         (vect_analyze_slp_cost): Likewise.  Properly deal with
4670         widening reduction ops.  Commit body costs.
4671         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
4672         cost for loops from here.
4673         (vect_slp_analyze_operations): But do it from here when
4674         the vectorization factor is known and stmts are analyzed.
4675         (vect_bb_vectorization_profitable_p): Simplify.
4676         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
4677         (vect_update_slp_costs_according_to_vf): Remove.
4678
4679 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
4680             H.J. Lu  <hongjiu.lu@intel.com>
4681
4682         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
4683         (BUILD_CFLAGS): Likewise.
4684         (BUILD_CXXFLAGS): Likewise.
4685         (LINKER): Add @NO_PIE_FLAG@.
4686         (BUILD_LDFLAGS): Likewise.
4687         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
4688         --enable-default-pie.
4689         * common.opt (fPIE): Initialize to -1.
4690         (fpie): Likewise.
4691         (no-pie): New option.
4692         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
4693         * configure.ac: Add --enable-default-pie.
4694         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
4695         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
4696         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
4697         * gcc.c (NO_PIE_SPEC): New.
4698         (PIE_SPEC): Likewise.
4699         (NO_FPIE1_SPEC): Likewise.
4700         (FPIE1_SPEC): Likewise.
4701         (NO_FPIE2_SPEC): Likewise.
4702         (FPIE2_SPEC): Likewise.
4703         (NO_FPIE2_SPEC): Likewise.
4704         (FPIE_SPEC): Likewise.
4705         (NO_FPIE_SPEC): Likewise.
4706         (NO_FPIC1_SPEC): Likewise.
4707         (FPIC1_SPEC): Likewise.
4708         (NO_FPIC2_SPEC): Likewise.
4709         (FPIC2_SPEC): Likewise.
4710         (NO_FPIC2_SPEC): Likewise.
4711         (FPIC_SPEC): Likewise.
4712         (NO_FPIC_SPEC): Likewise.
4713         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
4714         (FPIE1_OR_FPIC1_SPEC): Likewise.
4715         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
4716         (FPIE2_OR_FPIC2_SPEC): Likewise.
4717         (NO_FPIE_AND_FPIC_SPEC): Likewise.
4718         (FPIE_OR_FPIC_SPEC): Likewise.
4719         (LD_PIE_SPEC): Likewise.
4720         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
4721         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
4722         * config/darwin.h (PIE_SPEC): Renamed to ...
4723         (DARWIN_PIE_SPEC): This.
4724         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
4725         * config/darwin9.h (PIE_SPEC): Renamed to ...
4726         (DARWIN_PIE_SPEC): This.
4727         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
4728         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
4729         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
4730         FPIE2_OR_FPIC2_SPEC.
4731         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
4732         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
4733         * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
4734         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
4735         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
4736         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
4737         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
4738         * config/m32r/m32r.h (ASM_SPEC): Likewise.
4739         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
4740         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
4741         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
4742         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
4743         * config/sparc/linux.h (ASM_SPEC): Likewise.
4744         * config/sparc/linux64.h (ASM_SPEC): Likewise.
4745         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
4746         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
4747         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
4748         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
4749         * config/sparc/sparc.h (ASM_SPEC): Likewise.
4750         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
4751         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
4752         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
4753         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
4754         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
4755         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
4756         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
4757         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
4758         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
4759         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
4760         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
4761         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
4762         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
4763         * config/vax/linux.h (ASM_SPEC): Likewise.
4764         * doc/install.texi: Document --enable-default-pie.
4765         * doc/invoke.texi: Document -no-pie.
4766         * config.in: Regenerated.
4767         * configure: Likewise.
4768
4769 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4770
4771         PR rtl-optimization/66168
4772         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
4773         can_move_invariant_reg.
4774
4775 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
4776
4777         PR target/66148
4778         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
4779         REG_EQUAL note when doing insert.
4780
4781         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
4782         instead of "%d" for 'o' operand.
4783
4784 2015-05-27  Nathan Sidwell  <nathan@acm.org>
4785
4786         PR c++/66270
4787         * tree.c (build_pointer_type_for_mode): Canonical type does not
4788         inherit can_alias_all.
4789         (build_reference_type_for_mode): Likewise.
4790
4791 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4792
4793         * expr.h (array_at_struct_end_p): Move to...
4794         (array_ref_element_size): Likewise.
4795         (component_ref_field_offset): Likewise.
4796         * tree.h (array_ref_element_size): ...here.
4797         (array_at_struct_end_p): Likewise.
4798         (component_ref_field_offset): Likewise.
4799         * expr.c (array_ref_element_size): Move to...
4800         (array_ref_low_bound): Likewise.
4801         (array_at_struct_end_p): Likewise.
4802         (array_ref_up_bound): Likewise.
4803         (component_ref_field_offset): Likewise.
4804         * tree.c (array_ref_element_size): ...here.
4805         (array_ref_low_bound): Likewise.
4806         (array_ref_up_bound): Likewise.
4807         (array_at_struct_end_p): Likewise.
4808         (component_ref_field_offset): Likewise.
4809
4810 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
4811             Szabolcs Nagy  <szabolcs.nagy@arm.com>
4812
4813         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
4814
4815 2015-05-27  Jason Merrill  <jason@redhat.com>
4816
4817         PR bootstrap/66304
4818         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
4819         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
4820         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
4821
4822 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
4823
4824         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
4825         is true.
4826
4827         * statistics.c (statistics_fini_pass): Print pass name.
4828
4829 2015-05-27  Richard Biener  <rguenther@suse.de>
4830
4831         PR tree-optimization/66272
4832         Revert parts of
4833         2014-08-15  Richard Biener  <rguenther@suse.de>
4834
4835         PR tree-optimization/62031
4836         * tree-data-ref.c (dr_analyze_indices): Do not set
4837         DR_UNCONSTRAINED_BASE.
4838         (dr_may_alias_p): All indirect accesses have to go the
4839         formerly DR_UNCONSTRAINED_BASE path.
4840         * tree-data-ref.h (struct indices): Remove
4841         unconstrained_base member.
4842         (DR_UNCONSTRAINED_BASE): Remove.
4843
4844 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
4845
4846         * dwarf2out.c: Remove block_map.
4847         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
4848         (gen_lexical_block_die): Same.
4849         (dwarf2out_function_decl): Remove block_map use.
4850         (dwarf2out_c_finalize): Same.
4851         * tree-core.h (struct tree_block): Add die field.
4852         * tree.h (BLOCK_DIE): New.
4853
4854 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4855
4856         PR target/65358
4857         * expr.c (memory_load_overlap): New function.
4858         (emit_push_insn): When pushing partial args to the stack would
4859         clobber the register part load the overlapping part into a pseudo
4860         and put it into the hard reg after pushing.  Change return type
4861         to bool.  Add bool argument.
4862         * expr.h (emit_push_insn): Change return type to bool.
4863         Add bool argument.
4864         * calls.c (expand_call): Cancel sibcall optimization when encountering
4865         partial argument on targets with ARGS_GROW_DOWNWARD and
4866         !STACK_GROWS_DOWNWARD.
4867         (emit_library_call_value_1): Update callsite of emit_push_insn.
4868         (store_one_arg): Likewise.
4869
4870 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
4871
4872         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
4873
4874 2015-05-27  Martin Liska  <mliska@suse.cz>
4875
4876         * Makefile.in: Add additional dependencies related to memory report
4877         enhancement.
4878         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
4879         * bitmap.c (struct bitmap_descriptor_d): Remove.
4880         (struct loc): Likewise.
4881         (struct bitmap_desc_hasher): Likewise.
4882         (bitmap_desc_hasher::hash): Likewise.
4883         (bitmap_desc_hasher::equal): Likewise.
4884         (get_bitmap_descriptor): Likewise.
4885         (bitmap_register): User new memory descriptor API.
4886         (register_overhead): Likewise.
4887         (bitmap_find_bit): Register nsearches and search_iter statistics.
4888         (struct bitmap_output_info): Remove.
4889         (print_statistics): Likewise.
4890         (dump_bitmap_statistics): Use new memory descriptor.
4891         * bitmap.h (struct bitmap_usage): New class.
4892         * genmatch.c: Extend header file inclusion.
4893         * genpreds.c: Likewise.
4894         * ggc-common.c (struct ggc_usage): New class.
4895         (struct ggc_loc_desc_hasher): Remove.
4896         (ggc_loc_desc_hasher::hash): Likewise.
4897         (ggc_loc_desc_hasher::equal): Likewise.
4898         (struct ggc_ptr_hash_entry): Likewise.
4899         (struct ptr_hash_hasher): Likewise.
4900         (ptr_hash_hasher::hash): Likewise.
4901         (ptr_hash_hasher::equal): Likewise.
4902         (make_loc_descriptor): Likewise.
4903         (ggc_prune_ptr): Likewise.
4904         (dump_ggc_loc_statistics): Use new memory descriptor.
4905         (ggc_record_overhead): Likewise.
4906         (ggc_free_overhead): Likewise.
4907         (final_cmp_statistic): Remove.
4908         (cmp_statistic): Likewise.
4909         (ggc_add_statistics): Liekwise.
4910         (ggc_prune_overhead_list): Likewise.
4911         * hash-map-traits.h: New file.
4912         * hash-map.h (struct default_hashmap_traits): Move the traits to a
4913         separate header file.
4914         * hash-set.h: Pass memory statistics info to ctor.
4915         * hash-table.c (void dump_hash_table_loc_statistics): New function.
4916         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
4917         (hash_table::~hash_table): Register memory release operation.
4918         (hash_table::alloc_entries): Handle memory allocation operation.
4919         (hash_table::expand): Likewise.
4920         * inchash.c (iterative_hash_hashval_t): Move implementation to header
4921         file.
4922         (iterative_hash_host_wide_int): Likewise.
4923         * inchash.h (class hash): Likewise.
4924         * mem-stats-traits.h: New file.
4925         * mem-stats.h: New file.
4926         (mem_location): Add new class.
4927         (mem_usage): Likewise.
4928         (mem_alloc_description): Likewise.
4929         * sese.c: Add new header file inclusision.
4930         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
4931         and hash_set.
4932         * tree-sra.c: Add new header file inclusision.
4933         * vec.c (struct vec_descriptor): Remove.
4934         (hash_descriptor): Likewise.
4935         (struct vec_usage): Likewise.
4936         (struct ptr_hash_entry): Likewise.
4937         (hash_ptr): Likewise.
4938         (eq_ptr): Likewise.
4939         (vec_prefix::register_overhead): Use new memory descriptor API.
4940         (vec_prefix::release_overhead): Likewise.
4941         (add_statistics): Remove.
4942         (dump_vec_loc_statistics): Use new memory descriptor API.
4943         * vec.h (struct vec_prefix): Likewise.
4944         (va_heap::reserve): Likewise.
4945         (va_heap::release): Likewise.
4946         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
4947
4948 2015-05-27  Richard Biener  <rguenther@suse.de>
4949
4950         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
4951         earlier and remove ??? comment.
4952         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
4953         and got called from loop analysis bail out.  Always pass the SLP
4954         node to the vectorizable_* functions.
4955         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
4956         the premature SLP check here.
4957         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
4958         detected SLP stmts.
4959         (vect_detect_hybrid_slp_1): Likewise.
4960
4961 2015-05-26  Jeff Law  <law@redhat.com>
4962
4963         * combine.c (find_split_point): Verify that the shift count is a
4964         constant when choosing (plus (ashift ...)) as a split point.
4965
4966         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
4967         No functional changes.
4968
4969 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
4970
4971         * ipa-polymorphic-call.c
4972         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
4973         case when call target is already known.
4974
4975 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
4976
4977         PR target/65979
4978         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
4979         take into account the case that operands[1] and operands[2]
4980         are the same register.
4981
4982 2015-05-26  Michael Matz  <matz@suse.de>
4983
4984         PR middle-end/66251
4985
4986         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
4987         stores.
4988         (vect_create_vectorized_demotion_stmts): Always set
4989         STMT_VINFO_VEC_STMT, also with SLP.
4990         (vectorizable_store): Handle strided group stores.
4991
4992 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
4993
4994         PR target/66049
4995         * config/aarch64/aarch64.md
4996         (*adds_shift_imm_<mode>):  New pattern.
4997         (*subs_shift_imm_<mode>):  Likewise.
4998         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
4999         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
5000         (*add_uxt<mode>_shift2): Likewise.
5001         (*add_uxtsi_shift2_uxtw): Likewise.
5002         (*sub_uxt<mode>_shift2): Likewise.
5003         (*sub_uxtsi_shift2_uxtw): Likewise.
5004
5005 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
5006
5007         * config/rs6000/constraints.md (Y, U): Use match_test.
5008
5009 2015-05-26  Christian Bruel  <christian.bruel@st.com>
5010
5011         PR target/52144
5012         * config/arm/arm.c (arm_option_check_internal)
5013         (arm_option_params_internal): Check opts->target_flags to set macros.
5014         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
5015         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
5016         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
5017         (builtin_define): Replaced with def_or_undef_macro.
5018         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
5019         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
5020         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
5021         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
5022         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
5023         (TARGET_ARM_FEATURE_LDREX_P)
5024         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
5025         * config/arm/arm-c.c (def_or_undef_macro): New function.
5026         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
5027
5028 2015-05-26  Christian Bruel  <christian.bruel@st.com>
5029
5030         * c-common.h (builtin_define_with_int_value)
5031         (builtin_define_type_sizeof): Declare.
5032         * c-cppbuiltin.c (builtin_define_with_int_value)
5033         (builtin_define_type_sizeof): Externalize.
5034         (builtin_define_std): Cleanup declaration.
5035         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
5036         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
5037         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
5038         (builtin_define, builtin_assert): New macros.
5039
5040 2015-05-26  Richard Biener  <rguenther@suse.de>
5041
5042         PR tree-optimization/66142
5043         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
5044         MEM_REFs for the same base address.
5045
5046 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5047
5048         PR ipa/66181
5049         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
5050
5051 2015-05-26  Jason Merrill  <jason@redhat.com>
5052
5053         * configure.ac: Set CXXFLAGS for ISL test.
5054         * configure: Regenerate.
5055
5056         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
5057         strstr and basename.
5058         * configure: Regenerate.
5059
5060 2015-05-26  Richard Biener  <rguenther@suse.de>
5061
5062         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
5063         X % C -> X & (C - 1) for C being a power-of two to ...
5064         * match.pd: ... patterns.
5065
5066 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
5067
5068         * match.pd (swapped_tcc_comparison): New operator list.
5069         (-A CMP -B): New simplification.
5070         * fold-const.c (fold_comparison): Remove corresponding code.
5071
5072 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
5073
5074         * caller-save.c (init_caller_save): Base temporary register numbers
5075         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
5076         * cfgloopanal.c (init_set_costs): Likewise.
5077         * dojump.c (prefer_and_bit_test): Likewise.
5078         * expr.c (init_expr_target): Likewise.
5079         * ira.c (setup_prohibited_mode_move_regs): Likewise.
5080         * lower-subreg.c (init_lower_subreg): Likewise.
5081         * postreload.c (reload_cse_regs_1): Likewise.
5082
5083 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
5084
5085         * gensupport.h (compute_test_codes): Declare.
5086         * gensupport.c (compute_predicate_codes): Rename to...
5087         (compute_test_codes): ...this.  Generalize error message.
5088         (process_define_predicate): Update accordingly.
5089         * genpreds.c (compute_maybe_allows): Delete.
5090         (add_constraint): Use compute_test_codes to determine whether
5091         something can accept a SUBREG, REG or MEM.
5092
5093 2015-05-26  Torvald Riegel  <triegel@redhat.com>
5094
5095         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
5096         'memory model' to align with C++11; fix description of memory orders;
5097         fix a few typos.
5098
5099 2015-05-26  Richard Biener  <rguenther@suse.de>
5100
5101         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
5102         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
5103         detect whether we apply SLP.  Remove call to
5104         vect_update_slp_costs_according_to_vf.
5105         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
5106         vect_update_slp_costs_according_to_vf from here.  Dispatch
5107         to vect_slp_analyze_operations to analyze SLP stmts.
5108         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
5109         unused bb_vec_info parameter, adjust assert.
5110         (vect_slp_analyze_operations): Pass in the slp instance tree
5111         instead of bb_vec_info.
5112         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
5113         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
5114
5115 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
5116
5117         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
5118         Q_REGS.  Expand comment.
5119         (REG_CLASS_NAMES): Ditto.
5120         (REG_CLASS_CONTENTS): Ditto.
5121
5122 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
5123
5124         PR target/66274
5125         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
5126         when LEGACY_INT_REGNO_P is processed.
5127
5128 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
5129
5130         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
5131
5132 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5133
5134         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
5135         register if not marked dead/unused, before return.
5136
5137 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
5138
5139         PR lto/66180
5140         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
5141         is set; check for assembler name at LTO time.
5142         (type_in_anonymous_namespace): Remove hacks, check that all
5143         anonymous types are called "<anon>"
5144         (odr_type_p): Simplify; add check for "<anon>"
5145         (odr_subtypes_equivalent): Add odr_type_p check.
5146         * tree.c (need_assembler_name_p): Even anonymous namespace needs
5147         assembler name.
5148
5149 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
5150
5151         * ipa-utils.h (method_class_type): Remove.
5152         * cgraphunit.c (walk_polymorphic_call_targets): Use
5153         TYPE_METHOD_BASETYPE.
5154         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
5155         on main variants only.
5156         (method_class_type): Remove.
5157         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
5158         (build_type_inheritance_graph): Likewise.
5159         * ipa-icf.c (sem_function::equals_wpa): Likewise.
5160         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
5161         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
5162
5163 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
5164
5165         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
5166         is_typedef_decl, typedef_variant_p): Constify.
5167         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
5168         is_typedef_decl, typedef_variant_p): Constify.
5169
5170 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5171
5172         * defaults.h (gen_tablejump): New function.
5173         (HAVE_tablejump): Add default value.
5174         * expr.c: Adjust.
5175         * stmt.c: Likewise.
5176
5177 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5178
5179         * defaults.h (gen_store_multiple): New function.
5180         (HAVE_store_multiple): Add default value.
5181         * expr.c (move_block_from_reg): Adjust.
5182
5183 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5184
5185         * defaults.h (gen_load_multiple): New function.
5186         (HAVE_load_multiple): Add default value.
5187         * expr.c (move_block_to_reg): Adjust.
5188
5189 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5190
5191         * defaults.h (gen_mem_signal_fence): New function.
5192         (HAVE_mem_signal_fence): Add default value.
5193         * optabs.c: Adjust.
5194
5195 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5196
5197         * defaults.h (gen_memory_barrier): New function.
5198         (HAVE_memory_barrier): Add default value.
5199         * optabs.c: Adjust.
5200
5201 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5202
5203         * defaults.h (gen_mem_thread_fence): New function.
5204         (HAVE_mem_thread_fence): Add default definition.
5205         * optabs.c: Adjust.
5206
5207 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5208
5209         * combine.c (find_split_point): Check the value of HAVE_lo_sum
5210         instead of if it is defined.
5211         (combine_simplify_rtx): Likewise.
5212         * lra-constraints.c (process_address_1): Likewise.
5213         * config/darwin.c: Adjust.
5214         * genconfig.c (main): Always define HAVE_lo_sum.
5215
5216 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5217
5218         * genmatch.c (parser::parse_operation): Reject expanding
5219         operator-list inside 'for'.
5220
5221 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5222
5223         * genmatch.c (parser::parse_for): Reject iterator if used as
5224         operator-list.
5225
5226 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5227
5228         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
5229         after end of id-list.
5230
5231 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
5232
5233         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
5234         we do not try to compute canonical type for type that does not need
5235         alias set.
5236         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
5237         FUNCITON_TYPE.
5238         * tree.h (type_with_alias_set_p): New.
5239
5240 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
5241
5242         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
5243         function attributes.
5244         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
5245
5246 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
5247
5248         * Makefile.in (check_gcc_parallelize): Delete.
5249         (lang_checks_parallelized): Update comment.
5250
5251 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
5252
5253         PR rtl-optimization/66237
5254         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
5255         location of an "as_a" cast.
5256
5257 2015-05-22  Jeff Law  <law@redhat.com>
5258
5259         * config/pa/pa.md (non-canonical shift-add insns): Remove.
5260         (peepholes with non-canonical RTL sources): Remove.
5261         (peepholes for indexed stores of FP regs in integer modes): Match and
5262         generate canonical RTL.
5263
5264 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
5265
5266         PR tree-optimization/63387
5267         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
5268         ((x ord x) & (y ord y) -> (x ord y),
5269         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
5270         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
5271         vectors like scalars.
5272
5273 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
5274
5275         * convert.c (convert_to_integer, convert_to_vector): Include the
5276         types in the error message.
5277
5278 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
5279
5280         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
5281         simplifications.
5282
5283 2015-05-22  Jeff Law  <law@redhat.com>
5284
5285         * config/pa/pa.md (integer_indexed_store splitters): Use
5286         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
5287         insns -- adjusting the constant 2nd operand accordingly.
5288
5289         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
5290         (plus (ashift X log2) Y) if it is a split point.
5291
5292         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
5293         out of hppa_legitimize_address to handle both forms of a multiply
5294         by 2, 4 or 8.
5295         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
5296         Always generate the ASHIFT variant as the result is not directly
5297         used in a MEM.  Update comments and refactor slightly to improve
5298         readability.
5299
5300 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5301
5302         PR target/65491
5303         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
5304         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
5305         (aarch64_composite_type_p): Return false if given type and mode are
5306         for a short vector.
5307
5308 2015-05-22  Richard Biener  <rguenther@suse.de>
5309
5310         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
5311         member.
5312         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
5313         patterns when determining whether SLP is pure.
5314         (vect_is_slp_reduction): Remove check for pattern stmts.
5315         (vect_is_simple_reduction_1): Remove dead code.
5316         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
5317         (vect_get_and_check_slp_defs): Pass in the stmt number.
5318         Allow the first def in a reduction to be not a pattern stmt when
5319         the rest of the stmts def are patterns.
5320         (vect_build_slp_tree_1): Allow tcc_expression codes like
5321         SAD_EXPR and DOT_PROD_EXPR.
5322         (vect_build_slp_tree): Adjust.
5323         (vect_analyze_slp): Refactor and move BB vect error message ...
5324         (vect_slp_analyze_bb_1): ... here.
5325
5326 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
5327
5328         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
5329         for CSWTCH temporary.
5330
5331 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5332
5333         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
5334         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
5335         unknown unspecs.
5336
5337 2015-05-22  Richard Biener  <rguenther@suse.de>
5338
5339         PR tree-optimization/66251
5340         * tree-vect-stmts.c (vectorizable_conversion): Properly
5341         set STMT_VINFO_VEC_STMT even for the SLP case.
5342
5343 2015-05-22  Marek Polacek  <polacek@redhat.com>
5344
5345         * doc/extend.texi: Use @pxref instead of @xref.
5346
5347 2015-05-22  hiraditya  <hiraditya@msn.com>
5348
5349         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
5350         redundant if.
5351
5352 2015-05-22  Richard Biener  <rguenther@suse.de>
5353
5354         PR tree-optimization/65701
5355         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
5356         Move peeling cost models into one place.  Peel for alignment
5357         for single loads only if an aligned load is cheaper than
5358         an unaligned load.
5359
5360 2015-05-22  Marek Polacek  <polacek@redhat.com>
5361
5362         PR c/47043
5363         * doc/extend.texi (Enumerator Attributes): New section.
5364         Document syntax of enumerator attributes.
5365
5366 2015-05-22  Richard Biener  <rguenther@suse.de>
5367
5368         * tree-vect-loop.c (get_reduction_op): New function.
5369         (vect_model_reduction_cost): Use it, add reduc_index parameter.
5370         Make ready for BB reductions.
5371         (vect_create_epilog_for_reduction): Use get_reduction_op.
5372         (vectorizable_reduction): Init reduc_index to a valid value.
5373         Adjust vect_model_reduction_cost call.
5374         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
5375         operand for reduction defaults.  Add SAD_EXPR support.
5376         Assert we have a neutral op for SLP reductions.
5377         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
5378         walking pattern stmt ops only recurse to SSA names.
5379
5380 2015-05-22  Richard Biener  <rguenther@suse.de>
5381
5382         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
5383         assert with guard, remove check on detected reduction.
5384         (vect_recog_sad_pattern): Likewise.
5385         (vect_recog_widen_sum_pattern): Likewise.
5386
5387 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5388
5389         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
5390         __always_inline__ attribute.
5391         (vaesdq_u8): Likewise.
5392         (vaesmcq_u8): Likewise.
5393         (vaesimcq_u8): Likewise.
5394         (vsha1cq_u32): Likewise.
5395         (vsha1mq_u32): Likewise.
5396         (vsha1pq_u32): Likewise.
5397         (vsha1h_u32): Likewise.
5398         (vsha1su0q_u32): Likewise.
5399         (vsha1su1q_u32): Likewise.
5400         (vsha256hq_u32): Likewise.
5401         (vsha256h2q_u32): Likewise.
5402         (vsha256su0q_u32): Likewise.
5403         (vsha256su1q_u32): Likewise.
5404         (vmull_p64): Likewise.
5405         (vmull_high_p64): Likewise.
5406
5407 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5408
5409         * final.c (final_scan_insn): Don't check HAVE_peephole with the
5410         preprocessor.
5411         * output.h: Likewise.
5412         * genconfig.c (main): Alwways define HAVE_peephole.
5413         * genpeep.c: Don't emit checks of HAVE_peephole.
5414
5415 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5416
5417         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
5418         check HAVE_conditional_move with the preprocessor.
5419
5420 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5421
5422         * genconfig.c (main): Always define HAVE_conditional_move.
5423         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
5424         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
5425         is defined.
5426
5427 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5428
5429         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
5430         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
5431         and FRAME_POINTER_REGNUM with the preprocessor.
5432
5433 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5434
5435         * defaults.h: Add default for STACK_PUSH_CODE.
5436         * expr.c: Don't redefine STACK_PUSH_CODE.
5437         * recog.c: Likewise.
5438
5439 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5440
5441         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
5442         sched-deps.c: Use if instead of preprocessor checks with
5443         STACK_GROWS_DOWNWARD.
5444
5445 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5446
5447         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
5448         is defined.
5449         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
5450         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
5451         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
5452         * doc/tm.texi: Regenerate.
5453
5454 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
5455
5456         PR target/66232
5457         * config/i386/constraints.md (Bg): New constraint for GOT memory
5458         operand.
5459         * config/i386/i386.md (*call_got_x32): New pattern.
5460         (*call_value_got_x32): Likewise.
5461         * config/i386/predicates.md (GOT_memory_operand): New predicate.
5462
5463 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
5464
5465         PR tree-optimization/66233
5466         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
5467         Simplify.
5468
5469 2015-05-21  Jeff Law  <law@redhat.com>
5470
5471         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
5472         than MULT for shadd sequences.
5473
5474 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
5475
5476         * alias.c (alias_stats): New static var.
5477         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
5478         (dump_alias_stats_in_alias_c): New function.
5479         * alias.h (dump_alias_stats_in_alias_c): Declare.
5480         * tree-ssa-alias.c (dump_alias_stats): Call it.
5481
5482 2015-05-08  Michael Matz  <matz@suse.de>
5483
5484         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
5485         to strided_p.
5486         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
5487         (STMT_VINFO_STRIDED_P): ... this.
5488         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
5489         (vect_verify_datarefs_alignment): Likewise.
5490         (vect_enhance_data_refs_alignment): Likewise.
5491         (vect_analyze_data_ref_access): Likewise.
5492         (vect_analyze_data_refs): Accept strided stores.
5493         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
5494         (vect_model_load_cost): Adjust for macro rename.
5495         (vectorizable_mask_load_store): Likewise.
5496         (vectorizable_load): Likewise.
5497         (vectorizable_store): Open code strided stores.
5498
5499 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5500
5501         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
5502         Document sqrt_insn.
5503
5504 2015-05-21  Richard Biener  <rguenther@suse.de>
5505
5506         PR c++/66211
5507         * match.pd: Guard pattern optimzing (int)(float)int
5508         conversions to apply only on GIMPLE.
5509
5510 2015-05-21  Jeff Law  <law@redhat.com>
5511
5512         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
5513         multiply-accumulate/shift-add insn generation.
5514
5515 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
5516
5517         PR target/54236
5518         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
5519         operands[1] are the same.
5520
5521 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
5522
5523         PR middle-end/66221
5524         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
5525         build_distinct_type_copy to copy bounds.
5526
5527 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
5528
5529         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
5530         Change to unsigned int.
5531
5532 2015-05-20  Jeff Law  <law@redhat.com>
5533
5534         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
5535         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
5536         (pa_shadd_constant_p): Allow constants for shadd insns rather
5537         than valid scaling constants for memory addresses.
5538         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
5539         * config/pa/predicates.md (mem_shadd_operand): New predicate.
5540         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
5541         (shift-add insns using ASHIFT): New patterns.
5542
5543 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
5544
5545         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
5546         feasible.
5547         (fix_up_fall_thru_edges): Likewise.
5548         (fix_crossing_conditional_branches): Likewise. Promote jump targets
5549         from to rtx_insn to rtx_code_label where feasible.
5550         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
5551         gen_move_insn (returned type changed to rtx_insn).
5552         * builtins.c (expand_errno_check): Fix arguments of
5553         do_compare_rtx_and_jump (now expects rtx_code_label).
5554         (expand_builtin_acc_on_device): Likewise.
5555         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
5556         invert_jump (now exprects rtx_jump_insn).
5557         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
5558         (construct_init_block): Use rtx_code_label.
5559         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
5560         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
5561         calling redirect_jump.
5562         (patch_jump_insn): Likewise.
5563         (redirect_branch_edge): Likewise.
5564         (force_nonfallthru_and_redirect): Likewise.
5565         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
5566         when suitable.
5567         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
5568         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
5569         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
5570         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
5571         to store the value retured by gen_label_rtx.
5572         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
5573         rtx_jump_insn.
5574         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
5575         (split_branches): Fix calls of redirect_jump.
5576         * dojump.c (jumpifnot): Promote argument type from rtx to
5577         rtx_code_label.
5578         (jumpifnot_1): Likewise.
5579         (jumpif): Likewise.
5580         (jumpif_1): Likewise.
5581         (do_jump_1): Likewise.
5582         (do_jump): Likewise. Use rtx_code_label when feasible.
5583         (do_jump_by_parts_greater_rtx): Likewise.
5584         (do_jump_by_parts_zero_rtx): Likewise.
5585         (do_jump_by_parts_equality_rtx): Likewise.
5586         (do_compare_rtx_and_jump): Likewise.
5587         * dojump.h: Update function prototypes.
5588         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
5589         returns rtx_insn).
5590         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
5591         rtx_jump_insn.
5592         (emit_label_before): Likewise.
5593         (emit_jump_insn_after_noloc): Likewise.
5594         (emit_jump_insn_after_setloc): Likewise.
5595         (emit_jump_insn_after): Likewise
5596         (emit_jump_insn_before_setloc): Likewise.
5597         (emit_jump_insn_before): Likewise.
5598         (emit_label_before): Promote return type to rtx_code_label.
5599         (emit_label): Likewise.
5600         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
5601         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
5602         gen_move_insn.
5603         (emit_stack_restore): Likewise.
5604         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
5605         (do_cmp_and_jump): Likewise.
5606         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
5607         from rtx to rtx_code_label.
5608         (gen_move_insn_uncast): New function.
5609         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
5610         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
5611         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
5612         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
5613         invert_jump_1 and redirect_jump_1.
5614         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
5615         do_compare_rtx_and_jump.
5616         (expand_addsub_overflow): Likewise.
5617         (expand_neg_overflow): Likewise.
5618         (expand_mul_overflow): Likewise.
5619         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
5620         return value of gen_move_insn.
5621         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
5622         * loop-doloop.c (add_test): Use rtx_code_label.
5623         (doloop_modify): Likewise.
5624         (doloop_optimize): Likewise.
5625         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
5626         * lra-constraints.c (emit_spill_move): Remove cast of value returned
5627         by gen_move_insn.
5628         (inherit_reload_reg): Add cast when calling dump_insn_slim.
5629         (split_reg): Likewise.
5630         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
5631         gen_move_insn.
5632         * optabs.c (expand_binop_directly): Remove casts of values returned by
5633         maybe_gen_insn.
5634         (expand_unop_direct): Likewise.
5635         (expand_abs): Likewise.
5636         (maybe_emit_unop_insn): Likewise.
5637         (maybe_gen_insn): Promote return type to rtx_insn.
5638         * optabs.h: Update prototype of maybe_gen_insn.
5639         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
5640         redundant cast.
5641         * recog.c (struct peep2_insn_data): Promote type of insn field to
5642         rtx_insn.
5643         (peep2_reinit_state): Use NULL instead of NULL_RTX.
5644         (peep2_attempt): Remove casts of insn in peep2_insn_data.
5645         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
5646         * recog.h (struct insn_gen_fn): Promote return types of function
5647         pointers and operator ().from rtx to rtx_insn.
5648         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
5649         (fill_eager_delay_slots): Likewise.
5650         (relax_delay_slots): Likewise.
5651         (make_return_insns): Likewise.
5652         (dbr_schedule): Likewise.
5653         (optimize_skips): Likewise.
5654         (reorg_redirect_jump): Likewise.
5655         (fill_slots_from_thread): Likewise.
5656         * reorg.h: Update prototypes.
5657         * resource.c (find_dead_or_set_registers): Use dyn_cast to
5658         rtx_jump_insn instead of check.  Use it's jump_target method.
5659         * rtl.h (rtx_jump_insn::jump_label): Define new method.
5660         (rtx_jump_insn::jump_target): Define new method.
5661         (rtx_jump_insn::set_jump_target): Define new method.
5662         * rtlanal.c (tablejump_p): Promote type of one local variable.
5663         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
5664         (sched_analyze_insn): Likewise.
5665         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
5666         (print_insn): Likewise.
5667         * stmt.c (label_rtx): Promote return type to rtx_insn.
5668         (force_label_rtx): Likewise.
5669         (jump_target_rtx): Define new function.
5670         (expand_label): Use it, get rid of one cast.
5671         (expand_naked_return): Promote rtx to rtx_code_label.
5672         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
5673         (expand_case): Use rtx_code_label instread of rtx where feasible.
5674         (expand_sjlj_dispatch_table): Likewise.
5675         (emit_case_nodes): Likewise.
5676         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
5677         * store-motion.c (insert_store): Make use of new return type of
5678         gen_move_insn and remove a cast.
5679         (replace_store_insn): Likewise.
5680
5681 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
5682
5683         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
5684         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
5685
5686 2015-05-20  Jeff Law  <law@redhat.com>
5687
5688         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
5689         dispose of the jump thread path when the jump threading
5690         opportunity is cancelled.
5691
5692 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
5693
5694         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
5695         when printing the caret character.
5696
5697 2015-05-20  Marek Polacek  <polacek@redhat.com>
5698
5699         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
5700
5701 2015-05-20  Marek Polacek  <polacek@redhat.com>
5702
5703         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
5704         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
5705         * gimple-fold.c (canonicalize_bool): Likewise.
5706         (same_bool_result_p): Likewise.
5707         * tree-if-conv.c (parse_predicate): Likewise.
5708
5709 2015-05-20  Marek Polacek  <polacek@redhat.com>
5710
5711         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
5712         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
5713
5714 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5715
5716         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
5717         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
5718         values.
5719
5720 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
5721
5722         * config/mips/mips.h (micromips_globals): Declare.
5723
5724 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
5725
5726         * timevar.def (TV_INITIALIZE_RTL): New.
5727         * toplev.c (initialize_rtl): Use an auto_timevar to account this
5728         function's time to TV_INITIALIZE_RTL.
5729
5730 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
5731
5732         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
5733         gimple_build_nop calls.
5734         (chkp_find_bounds_for_elem): Likewise.
5735         (chkp_get_zero_bounds): Likewise.
5736         (chkp_get_none_bounds): Likewise.
5737         (chkp_get_bounds_by_definition): Likewise.
5738         (chkp_generate_extern_var_bounds): Likewise.
5739         (chkp_get_bounds_for_decl_addr): Likewise.
5740         (chkp_get_bounds_for_string_cst): Likewise.
5741
5742 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
5743
5744         PR tree-optimization/65447
5745         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
5746         (dump_use, dump_uses): Support to dump sub use.
5747         (record_use): New parameters to support sub use.  Remove call to
5748         dump_use.
5749         (record_sub_use, record_group_use): New functions.
5750         (compute_max_addr_offset, split_all_small_groups): New functions.
5751         (group_address_uses, rewrite_use_address): New functions.
5752         (strip_offset): New declaration.
5753         (find_interesting_uses_address): Call record_group_use.
5754         (add_candidate): New assertion.
5755         (infinite_cost_p): Move definition forward.
5756         (add_costs): Check INFTY cost and return immediately.
5757         (get_computation_cost_at): Clear setup cost and dependent bitmap
5758         for sub uses.
5759         (determine_use_iv_cost_address): Compute cost for sub uses.
5760         (rewrite_use_address_1): Rename from old rewrite_use_address.
5761         (free_loop_data): Free sub uses.
5762         (tree_ssa_iv_optimize_loop): Call group_address_uses.
5763
5764 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
5765             Jim Wilson  <jim.wilson@linaro.org>
5766
5767         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
5768         new  fields loadv and storev.
5769         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
5770         Initialize loadv and storev.
5771         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
5772         (cortexa53_extra_costs): Likewise.
5773         (cortexa57_extra_costs): Likewise.
5774         (xgene1_extra_costs): Likewise.
5775         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
5776         rtx_costs.
5777
5778 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
5779
5780         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
5781          storev.
5782         (cortexa8_extra_costs): Likewise.
5783         (cortexa5_extra_costs): Likewise.
5784         (cortexa7_extra_costs): Likewise.
5785         (cortexa12_extra_costs): Likewise.
5786         (cortexa15_extra_costs): Likewise.
5787         (v7m_extra_costs): Likewise.
5788
5789 2015-05-20  Jeff Law  <law@redhat.com>
5790
5791         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
5792         instead of open-coded version.  Also delete the jump thread created
5793         within this function.
5794
5795 2015-05-20  Alan Modra  <amodra@gmail.com>
5796
5797         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
5798         stack adjusting insn.  Formatting.
5799         (rs6000_emit_prologue): Track stack adjusting insn, and use of
5800         r12.  If possible, emit first -fsplit-stack arg pointer insn
5801         before stack adjust.  Don't use r12 to save cr if split-stack.
5802
5803 2015-05-20  Alan Modra  <amodra@gmail.com>
5804
5805         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
5806         Define.
5807         (rs6000_supports_split_stack): New function.
5808         * gcc/config/rs6000/rs6000.c (machine_function): Add
5809         split_stack_arg_pointer.
5810         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
5811         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
5812         rather than virtual_incoming_args_rtx.
5813         (rs6000_va_start): Likewise.
5814         (split_stack_arg_pointer_used_p): New function.
5815         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
5816         (morestack_ref): New var.
5817         (gen_add3_const, rs6000_expand_split_stack_prologue,
5818         rs6000_internal_arg_pointer, rs6000_live_on_entry,
5819         rs6000_split_stack_space_check): New functions.
5820         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
5821         * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
5822         (UNSPECV_SPLIT_STACK_RETURN): Define.
5823         (split_stack_prologue, load_split_stack_limit,
5824         load_split_stack_limit_di, load_split_stack_limit_si,
5825         split_stack_return, split_stack_space_check): New expands and insns.
5826         * gcc/config/rs6000/rs6000-protos.h
5827         (rs6000_expand_split_stack_prologue): Declare.
5828         (rs6000_split_stack_space_check): Declare.
5829
5830 2015-05-20  Alan Modra  <amodra@gmail.com>
5831
5832         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
5833         (rs6000_stack_info): Don't zero offsets when not saving registers.
5834         (debug_stack_info): Adjust to omit printing unused offsets,
5835         as before.
5836         (direct_return): Test vrsave_size rather than vrsave_mask.
5837         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
5838         (rs6000_emit_epilogue): Likewise.
5839
5840 2015-05-20  Alan Modra  <amodra@gmail.com>
5841
5842         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
5843         when not saving registers.
5844         (debug_stack_info): Adjust to omit printing unused offsets,
5845         as before.
5846         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
5847         expression.
5848
5849 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5850
5851         PR c++/65835
5852         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
5853         value_type to const char *.
5854
5855 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
5856
5857         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
5858         to build a biarch toolchain again.
5859
5860 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
5861
5862         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
5863         or implicit declarations.
5864         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
5865         into it.
5866         (get_odr_type): Check type has linkage before adding bases.
5867         (register_odr_type): Check that type has linkage before adding it.
5868         (type_known_to_have_no_deriavations_p): Rename to ..
5869         (type_known_to_have_no_derivations_p): This one.
5870         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
5871         (type_known_to_have_no_derivations_p): This one.
5872         * ipa-polymorphic-call.c
5873         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
5874         type has linkage.
5875
5876 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
5877
5878         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
5879         (layout_type): Use RECORD_OR_UNION_TYPE_P.
5880
5881 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5882
5883         * config/s390/s390.c (s390_vector_bool_type_p): New function.
5884         (s390_invalid_binary_op): New function.
5885         (TARGET_INVALID_BINARY_OP): Define macro.
5886
5887 2015-05-19  David Sherwood  <david.sherwood@arm.com>
5888
5889         * loop-invariant.c (create_new_invariant): Don't calculate address cost
5890         if mode is not a scalar integer.
5891         (get_inv_cost): Increase computational cost for unused invariants.
5892
5893 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5894
5895         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
5896         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
5897         * config/s390/s390-builtin-types.def: New file.
5898         * config/s390/s390-builtins.def: New file.
5899         * config/s390/s390-builtins.h: New file.
5900         * config/s390/s390-c.c: New file.
5901         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
5902         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
5903         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
5904         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
5905         prototypes.
5906         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
5907         Include.
5908         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
5909         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
5910         variable definitions.
5911         (s390_const_operand_ok): New function.
5912         (s390_expand_builtin): Rewrite.
5913         (s390_init_builtins): New function.
5914         (s390_handle_vectorbool_attribute): New function.
5915         (s390_attribute_table): Add s390_vector_bool attribute.
5916         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
5917         (s390_branch_condition_mask): Generate masks for new modes.
5918         (s390_expand_vec_compare_cc): New function.
5919         (s390_mangle_type): Add mangling for vector bool types.
5920         (enum s390_builtin): Remove.
5921         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
5922         efpc builtins.
5923         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
5924         s390_cpu_cpp_builtins.
5925         (REGISTER_TARGET_PRAGMAS): New macro.
5926         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
5927         (insn_cmp mode attribute): Add new CC modes.
5928         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
5929         (lcbb): New pattern definition.
5930         * config/s390/s390intrin.h: Include vecintrin.h.
5931         * config/s390/t-s390: New file.
5932         * config/s390/vecintrin.h: New file.
5933         * config/s390/vector.md: Include vx-builtins.md.
5934         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
5935         support.
5936
5937 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5938
5939         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
5940         CCVFHE.
5941         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
5942         (s390_select_ccmode): Likewise.
5943         (s390_canonicalize_comparison): Swap operands if necessary.
5944         (s390_expand_vec_compare_scalar): Expand DFmode compare using
5945         single element vector instructions.
5946         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
5947         (s390_branch_condition_mask): Generate CC masks for the new modes.
5948         * config/s390/s390.md (v0, vf, vd): New mode attributes.
5949         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
5950         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
5951         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
5952         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
5953         (*extend<DSF:mode><BFP:mode>2): New insn definition.
5954         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
5955         (extend<DSF:mode><BFP:mode>2): Turn into expander.
5956         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
5957         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
5958         (sqrt<mode>2): Add vector instruction.
5959
5960 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5961
5962         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
5963         constraints.
5964         * config/s390/predicates.md (const0_operand, constm1_operand)
5965         (constable_operand): Accept vector operands.
5966         * config/s390/s390-modes.def: Add supported vector modes.
5967         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
5968         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
5969         (s390_bytemask_vector_p, s390_expand_vec_strlen)
5970         (s390_expand_vec_compare, s390_expand_vcond)
5971         (s390_expand_vec_init): Add prototypes.
5972         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
5973         (s390_vector_mode_supported_p): New function.
5974         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
5975         (s390_contiguous_bitmask_vector_p): New function.
5976         (s390_bytemask_vector_p): New function.
5977         (s390_split_ok_p): Vector regs don't work either.
5978         (regclass_map): Add VEC_REGS.
5979         (s390_legitimate_constant_p): Handle vector constants.
5980         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
5981         (legitimate_reload_vector_constant_p): New function.
5982         (s390_preferred_reload_class): Handle CONST_VECTOR.
5983         (s390_reload_symref_address):  Likewise.
5984         (s390_secondary_reload): Vector memory instructions only support
5985         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
5986         (s390_emit_ccraw_jump): New function.
5987         (s390_expand_vec_strlen): New function.
5988         (s390_expand_vec_compare): New function.
5989         (s390_expand_vcond): New function.
5990         (s390_expand_vec_init): New function.
5991         (s390_dwarf_frame_reg_mode): New function.
5992         (print_operand): Handle addresses with 'O' and 'R' constraints.
5993         (NR_C_MODES, constant_modes): Add vector modes.
5994         (s390_output_pool_entry): Handle vector constants.
5995         (s390_hard_regno_mode_ok): Handle vector registers.
5996         (s390_class_max_nregs): Likewise.
5997         (s390_cannot_change_mode_class): New function.
5998         (s390_invalid_arg_for_unprototyped_fn): New function.
5999         (s390_function_arg_vector): New function.
6000         (s390_function_arg_float): Remove size variable.
6001         (s390_pass_by_reference): Handle vector arguments.
6002         (s390_function_arg_advance): Likewise.
6003         (s390_function_arg): Likewise.
6004         (s390_return_in_memory): Vector values are returned in a VR if
6005         possible.
6006         (s390_function_and_libcall_value): Handle vector arguments.
6007         (s390_gimplify_va_arg): Likewise.
6008         (s390_call_saved_register_used): Consider the arguments named.
6009         (s390_conditional_register_usage): Disable v16-v31 for non-vec
6010         targets.
6011         (s390_preferred_simd_mode): New function.
6012         (s390_support_vector_misalignment): New function.
6013         (s390_vector_alignment): New function.
6014         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
6015         (TARGET_VECTOR_MODE_SUPPORTED_P)
6016         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
6017         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
6018         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
6019         (TARGET_VECTOR_ALIGNMENT): Define target macro.
6020         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
6021         (FIRST_PSEUDO_REGISTER): Increase value.
6022         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
6023         (VECTOR_REG_P): Define macros.
6024         (FIXED_REGISTERS, CALL_USED_REGISTERS)
6025         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
6026         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
6027         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
6028         Add vector registers.
6029         (CANNOT_CHANGE_MODE_CLASS): Call C function.
6030         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
6031         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
6032         memory.
6033         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
6034         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
6035         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
6036         (VR*_REGNUM): New constants.
6037         (ALL): New mode iterator.
6038         (INTALL): Remove mode iterator.
6039         Include vector.md.
6040         (movti): Implement TImode moves for VRs.
6041         Disable TImode splitter for VR targets.
6042         Implement splitting TImode GPR<->VR moves.
6043         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
6044         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
6045         reload<mode>_la_in, reload<mode>_la_out.
6046         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
6047         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
6048         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
6049         (mov<mode> SF SD): Prefer lder, lde for loading.
6050         Add lrl and strl instructions.
6051         Add vector instructions.
6052         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
6053         Call s390_expand_vec_strlen on z13.
6054         (*cc_to_int): Change predicate to nonimmediate_operand.
6055         (addti3): Rename to *addti3.  New expander.
6056         (subti3): Rename to *subti3.  New expander.
6057         * config/s390/vector.md: New file.
6058
6059 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6060
6061         * common/config/s390/s390-common.c (processor_flags_table): Add
6062         z13.
6063         * config.gcc: Add z13.
6064         * config/s390/s390-opts.h (enum processor_type): Add
6065         PROCESSOR_2964_Z13.
6066         * config/s390/s390.c (s390_adjust_priority): Check for
6067         PROCESSOR_2964_Z13.
6068         (s390_reorg): Likewise.
6069         (s390_sched_reorder): Likewise.
6070         (s390_sched_variable_issue): Likewise.
6071         (s390_loop_unroll_adjust): Likewise.
6072         (s390_option_override): Likewise. Default to -mvx when available.
6073         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
6074         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
6075         (TARGET_VX_ABI): Define macros.
6076         macros.
6077         (TARGET_DEFAULT): Add MASK_OPT_VX.
6078         * config/s390/s390.md ("cpu" attribute): Add z13.
6079         ("cpu_facility" attribute): Add vec.
6080         * config/s390/s390.opt (processor_type): Add z13.
6081         (mvx): New options.
6082         * doc/invoke.texi: Add z13 option for -march.
6083
6084 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6085
6086         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
6087         mode check to make sure that only scalar integer values are
6088         accepted.
6089
6090 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
6091
6092         * tree.c (verify_type_variant): Fix #undef.
6093         (gimple_canonical_types_compatible_p): Move here from lto.c
6094         (verify_type): Verify TYPE_CANONICAL compatibility.
6095         * tree.h (gimple_canonical_types_compatible_p): Declare.
6096
6097 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
6098
6099         PR middle-end/66199
6100         * tree.h (OMP_TEAMS_COMBINED): Define.
6101         * gimplify.c (enum gimplify_omp_var_data): Add
6102         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
6103         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
6104         (omp_notice_variable): Accept both ORT_TEAMS
6105         and ORT_COMBINED_TEAMS.  Don't recurse if
6106         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
6107         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
6108         GOVD_FIRSTPRIVATE.
6109         (omp_no_lastprivate): New function.
6110         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
6111         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
6112         notice_outer and set appropriate bits, otherwise make
6113         sure default(none) combined constructs won't complain.
6114         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
6115         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
6116         omp_no_lastprivate either remove the clause or turn it
6117         into OMP_CLAUSE_PRIVATE.
6118         (gimplify_omp_for): Fix up handling of implicit
6119         lastprivate or linear iterators.
6120         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
6121         ORT_COMBINED_TEAMS.
6122         * omp-low.c (lower_omp_for_lastprivate): For combined
6123         for simd use fd.loop.n2 from the for rather than simd.
6124
6125 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6126
6127         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
6128         instead of gen_rtx_raw_REG.
6129         (cris_expand_epilogue): Likewise.
6130         * config/microblaze/microblaze.c (microblaze_classify_address):
6131         Likewise.
6132         * config/sparc/sparc.md: Likewise.
6133
6134 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
6135
6136         * config/alpha/alpha.c (alpha_legitimize_reload_address)
6137         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
6138         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
6139         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
6140         Use CASE_CONST_SCALAR_INT.
6141         (print_operand) <case 'M'>: Use mode_width_operand to check the
6142         value of the constant.
6143         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
6144         * config/alpha/predicates.md (input_operand): Use general_operand
6145         instead of match_code as operand check.
6146         (symbolic_operand): Use match_code with subexpression digits.
6147         * config/alpha/constraints.md (Q): Ditto.
6148
6149 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6150
6151         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
6152
6153 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6154
6155         * config/s390/s390.c (s390_secondary_reload): Fix check for
6156         load/store relative.
6157
6158 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6159
6160         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
6161         alternative_mask to uint64_t.
6162
6163 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
6164
6165         PR tree-optimization/66187
6166         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
6167         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
6168         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
6169
6170 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
6171
6172         * diagnostic.c (diagnostic_report_current_module): Strengthen
6173         local "new_map" from const line_map * to
6174         const line_map_ordinary *.
6175         * genmatch.c (error_cb): Likewise for local "map".
6176         (output_line_directive): Likewise for local "map".
6177         * input.c (expand_location_1): Likewise for local "map".
6178         Pass NULL rather than &map to
6179         linemap_unwind_to_first_non_reserved_loc, since the value is never
6180         read from there, and the value written back not read from here.
6181         (is_location_from_builtin_token): Strengthen local "map" from
6182         const line_map * to const line_map_ordinary *.
6183         (dump_location_info): Strengthen locals "map" from
6184         line_map *, one to const line_map_ordinary *, the other
6185         to const line_map_macro *.
6186         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
6187         const line_map * to const line_map_macro *.
6188         (maybe_unwind_expanded_macro_loc): Add a call to
6189         linemap_check_macro when writing to the "map" field of the
6190         loc_map_pair.
6191         Introduce local const line_map_ordinary * "ord_map", using it in
6192         place of "map" in the part of the function where we know we have
6193         an ordinary map.  Strengthen local "m" from const line_map * to
6194         const line_map_ordinary *.
6195
6196 2015-05-19  Nick Clifton  <nickc@redhat.com>
6197
6198         PR target/66156
6199         * config/msp430/msp430.md (zero_extendhisi2): Add support for
6200         separate source and destination registers.
6201
6202 2015-05-19  Richard Biener  <rguenther@suse.de>
6203
6204         PR tree-optimization/66165
6205         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
6206         for no load permutation.
6207
6208         PR tree-optimization/66185
6209         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
6210         when building the SLP node from scalars.
6211
6212 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
6213             Tristan Gingold  <gingold@adacore.com>
6214
6215         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
6216         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
6217         (expand_stack_restore): Call record_new_stack_level.
6218         (expand_stack_save): Do not call do_pending_stack_adjust.
6219         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
6220         * calls.c (expand_call): Call record_new_stack_level for alloca.
6221         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
6222         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
6223         (update_sjlj_context): New global function.
6224         * except.h (update_sjlj_context): Declare.
6225         * explow.c (record_new_stack_level): New global function.
6226         (allocate_dynamic_stack_space): Call record_new_stack_level.
6227         * explow.h (record_new_stack_level): Declare.
6228         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
6229         * cfgrtl.c (duplicate_insn_chain): Likewise.
6230
6231 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6232
6233         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
6234         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
6235         STACK_GROWS_DOWNWARD as normal if.
6236         (expand_call): Likewise.
6237
6238 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
6239
6240         PR target/54236
6241         * config/sh/sh.md (*round_int_even): New insn_and_split and
6242         accompanying new unnamed split.
6243
6244 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6245
6246         * bitmap.c (bitmap_set_range): Handle count==1 specially.
6247         (bitmap_clear_range): Likewise.
6248         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
6249         bitmap_set_range unconditionally.
6250         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
6251         * df-scan.c (df_mark_reg): Likewise.
6252         * haifa-sched.c (setup_ref_regs): Likewise.
6253         * sched-rgn.c (update_live_1): Likewise.
6254
6255 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6256
6257         * regs.h (END_HARD_REGNO): Delete.
6258         (END_REGNO): Move to...
6259         * rtl.h: ...here.
6260         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
6261         * caller-save.c (mark_set_regs): Likewise.
6262         * combine.c (move_deaths, distribute_notes): Likewise.
6263         * cse.c (invalidate, invalidate_for_call): Likewise.
6264         * df-scan.c (df_ref_record): Likewise.
6265         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
6266         (record_last_reg_set_info): Likewise.
6267         * reg-stack.c (convert_regs_exit): Likewise.
6268         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
6269         * resource.c (update_live_status): Likewise.
6270         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
6271
6272 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6273
6274         * rtl.h (reg_info): Add an nregs field.
6275         (REG_NREGS): Use it.
6276         (SET_REGNO_RAW): Delete.
6277         (set_regno_raw): New function.
6278         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
6279         (END_REGNO): Redefine in terms of REG_NREGS.
6280         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
6281         SET_REGNO_RAW.
6282         * emit-rtl.c (set_mode_and_regno): Likewise.
6283         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
6284         instead of SET_REGNO_RAW.
6285
6286 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6287
6288         * rtl.h (PUT_MODE_RAW): New macro.
6289         (PUT_REG_NOTE_KIND): Use it.
6290         (set_mode_and_regno): Declare.
6291         (gen_raw_REG): Change regno to "unsigned int".
6292         (gen_rtx_REG): Change "unsigned" to "unsigned int".
6293         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
6294         use set_mode_and_regno to change the mode of registers.
6295         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
6296         * emit-rtl.c (set_mode_and_regno): New function.
6297         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
6298         * caller-save.c (reg_save_code): Use set_mode_and_regno.
6299         * expr.c (init_expr_target): Likewise.
6300         * ira.c (setup_prohibited_mode_move_regs): Likewise.
6301         * postreload.c (reload_cse_simplify_operands): Likewise.
6302
6303 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6304
6305         * caller-save.c (init_caller_save): Use word_mode and
6306         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
6307         * expr.c (init_expr_target): Likewise.
6308         * ira.c (setup_prohibited_mode_move_regs): Likewise.
6309         * postreload.c (reload_cse_regs_1): Likewise.
6310
6311 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6312
6313         * rtl.def (REG): Change format to "r".
6314         * rtl.h (rtunion): Remove rt_reg.
6315         (reg_info): New structure.
6316         (rtx_def): Add reg field to main union.
6317         (X0REGATTR): Delete.
6318         (REG_CHECK): New macro.
6319         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
6320         * rtl.c (rtx_format): Document "r".
6321         (rtx_code_size): Handle REG specially.
6322         * gengenrtl.c (special_format): Return true for formats
6323         that include 'r'.
6324         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
6325         Deal with REG_ATTRS after the field loop.
6326         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
6327         * expmed.c (init_expmed): Call gen_raw_REG instead of
6328         gen_rtx_raw_REG.
6329         * expr.c (init_expr_target): Likewise.
6330         * regcprop.c (maybe_mode_change): Likewise.
6331         * varasm.c (make_decl_rtl): Likewise.
6332         * final.c (leaf_renumber_regs_insn): Return early after
6333         handling REGs.
6334         * genemit.c (gen_exp): Handle 'r' fields.
6335         * genpeep.c (match_rtx): Likewise.
6336         * gensupport.c (subst_pattern_match): Likewise.
6337         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
6338         (alter_constraints, subst_dup): Likewise.
6339         * read-rtl.c (read_rtx_code): Likewise.
6340         * print-rtl.c (print_rtx): Likewise.
6341         * genrecog.c (find_operand, find_matching_operand): Likewise.
6342         (validate_pattern, match_pattern_2): Likewise.
6343         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
6344         (rtx_test::regno_field): New function.
6345         (operator ==, safe_to_hoist_p, transition_parameter_type)
6346         (parameter_type_string, print_parameter_value)
6347         (print_nonbool_test, print_test): Handle new enum values.
6348         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
6349         * lra-constraints.c (operands_match_p): Likewise.
6350
6351 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6352
6353         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
6354         Change type of new_regno to unsigned int.
6355         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
6356         new_regno to unsigned int.
6357         (df_ref_change_reg_with_loc): Remove old_regno parameter.
6358         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
6359         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
6360         (SET_REGNO_RAW): Add space after ",".
6361
6362 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6363
6364         * rtl.h (REG_NREGS): New macro
6365         * alias.c (record_set): Use it.
6366         * cfgcleanup.c (mark_effect): Likewise.
6367         * combine.c (likely_spilled_retval_1): Likewise.
6368         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
6369         (move_deaths, distribute_notes): Likewise.
6370         * cselib.c (cselib_record_set): Likewise.
6371         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
6372         * df-scan.c (df_mark_reg): Likewise.
6373         * dse.c (look_for_hardregs): Likewise.
6374         * dwarf2out.c (reg_loc_descriptor): Likewise.
6375         (multiple_reg_loc_descriptor): Likewise.
6376         * expr.c (write_complex_part, read_complex_part): Likewise.
6377         (emit_move_complex): Likewise.
6378         * haifa-sched.c (setup_ref_regs): Likewise.
6379         * ira-lives.c (mark_hard_reg_live): Likewise.
6380         * lra.c (lra_set_insn_recog_data): Likewise.
6381         * mode-switching.c (create_pre_exit): Likewise.
6382         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
6383         (reload_combine_recognize_pattern): Likewise.
6384         (reload_combine_note_use, move2add_record_mode): Likewise.
6385         (reload_cse_move2add): Likewise.
6386         * reg-stack.c (subst_stack_regs_pat): Likewise.
6387         * regcprop.c (kill_value, copy_value): Likewise.
6388         (copyprop_hardreg_forward_1): Likewise.
6389         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
6390         (build_def_use): Likewise.
6391         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
6392         (deps_analyze_insn): Likewise.
6393         * sched-rgn.c (check_live_1, update_live_1): Likewise.
6394         * sel-sched.c (count_occurrences_equiv): Likewise.
6395         * valtrack.c (dead_debug_insert_temp): Likewise.
6396
6397 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
6398
6399         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
6400         * dse.c (note_add_store): Likewise.
6401         * ira-lives.c (mark_hard_reg_dead): Likewise.
6402         * loop-invariant.c (mark_reg_store): Likewise.
6403         (mark_reg_death): Likewise.
6404         * postreload.c (reload_combine): Likewise.
6405         (reload_combine_note_store): Likewise.
6406         (reload_combine_note_use): Likewise.
6407         * recog.c (peep2_reg_dead_p): Likewise.
6408
6409 2015-05-19  Alan Modra  <amodra@gmail.com>
6410
6411         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
6412         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
6413         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
6414         unused predicates.
6415         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
6416         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
6417         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
6418         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
6419
6420 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
6421
6422         * config/mips/mips.md (JOIN_MODE): New mode iterator.
6423         (join2_load_Store<JOIN_MODE:mode>): New pattern.
6424         (join2_loadhi): Likewise.
6425         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
6426         load-load and store-stores.
6427         * config/mips/mips.opt (mload-store-pairs): New option.
6428         (TARGET_LOAD_STORE_PAIRS): New macro.
6429         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
6430         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
6431         * config/mips/mips.c (mips_load_store_bonding_p): New function.
6432
6433 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
6434
6435         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
6436         explicit swaps.
6437         * dojump.c (do_compare_rtx_and_jump): Likewise.
6438         * expmed.c (emit_store_flag_1): Likewise.
6439         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
6440         * final.c (sprint_ul): Use std::reverse for reversing a string.
6441         * fold-const.c (extract_muldiv_1): Use std::swap.
6442         * genmodes.c (emit_mode_int_n): Likewise.
6443         * ifcvt.c (dead_or_predicable): Likewise.
6444         * ira-build.c (ira_merge_live_ranges): Likewise.
6445         (swap_allocno_copy_ends_if_necessary): Likewise.
6446         * ira.c (ira_setup_alts): Likewise.
6447         * loop-iv.c (iv_analyze_expr): Likewise.
6448         (implies_p): Likewise.
6449         (canon_condition): Likewise.
6450         * lra-constraints.c (swap_operands): Likewise.
6451         * lra-lives.c (lra_merge_live_ranges): Likewise.
6452         * omega.c (swap): Remove.
6453         (bswap): Remove.
6454         (omega_unprotect_1): Use std::swap.
6455         (omega_solve_geq): Likewise.
6456         * optabs.c (expand_binop_directly): Likewise.
6457         (expand_binop): Likewise.
6458         (emit_conditional_move): Likewise.
6459         (emit_conditional_add): Likewise.
6460         * postreload.c (reload_cse_simplify_operands): Likewise.
6461         * reg-stack.c (emit_swap_insn): Likewise.
6462         (swap_to_top): Likewise.
6463         (compare_for_stack_reg): Likewise.
6464         (subst_asm_stack_regs): Likewise.
6465         * reload.c (find_reloads): Likewise.
6466         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
6467         * sel-sched.c (invoke_reorder_hooks): Likewise.
6468         (create_block_for_bookkeeping): Likewise.
6469         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
6470         (lambda_matrix_right_hermite): Use std::swap.
6471         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
6472         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
6473         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
6474         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
6475         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
6476         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
6477         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
6478         * tree-vrp.c (compare_ranges): Likewise.
6479         * var-tracking.c (add_with_sets): Likewise.
6480         (vt_find_locations): Likewise.
6481
6482 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
6483
6484         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
6485         pie executables.
6486         (FBSD_ENDFILE_SPEC): Likewise.
6487         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
6488         config/freebsd-spec.h.
6489         (ENDFILE_SPEC): Likewise.
6490
6491 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
6492             Richard Henderson  <rth@redhat.com>
6493
6494         PR target/57032
6495         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
6496         Check for a memory location that is not a reference (using an AND)
6497         to an unaligned location here.
6498         * config/alpha/predicates.md (normal_memory_operand): Remove.
6499
6500 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
6501
6502         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
6503         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
6504
6505 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
6506
6507         * config/mips/mips.c (micromips_globals): New variable.
6508         (mips_set_compression_mode): Save and reinitialize target-dependent
6509         state for microMIPS.
6510
6511 2015-05-18  Martin Liska  <mliska@suse.cz>
6512
6513         * dbgcnt.def: Add new counter.
6514         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
6515
6516 2015-05-18  Martin Liska  <mliska@suse.cz>
6517
6518         * dbgcnt.def: Sort counters.
6519         * opts.c (common_handle_option): Do not compile if
6520         -fdbg-cnt-list is enabled.
6521
6522 2015-05-18  Tom de Vries  <tom@codesourcery.com>
6523
6524         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
6525         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
6526         address operator to va_list operand.
6527         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
6528         unconditionally.
6529         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
6530         operand.
6531         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
6532         * config/s390/s390.c (s390_gimplify_va_arg): Same.
6533         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
6534
6535 2015-05-18  Tom de Vries  <tom@codesourcery.com>
6536
6537         * tree-ssa-tail-merge.c: Fix whitespace.
6538
6539 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
6540
6541         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
6542         cortex-a17, and cortex-a17.cortex-a7.
6543
6544 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
6545
6546         PR target/54236
6547         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
6548
6549 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
6550
6551         PR target/66174
6552         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
6553         QImode inner modes for TARGET_AVX512BW.  Force mask operand
6554         to a register for AVX512F modes.
6555
6556 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
6557
6558         * toplev.c (emit_debug_global_declarations): Do not output debug info
6559         when doing slim LTO objects.
6560
6561 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
6562
6563         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
6564         odr_types_equivalent_p): Declare.
6565         (odr_type_p): Use gcc_checking_assert.
6566         (type_in_anonymous_namespace_p) Declare.
6567         (type_with_linkage_p): Declare.
6568         * common.opt (Wlto-type-mismatch): New warning.
6569         * ipa-devirt.c (compound_type_base): New function.
6570         (odr_or_derived_type_p): New function.
6571         (odr_types_equivalent_p): New function.
6572         (add_type_duplicate): Simplify.
6573         (type_with_linkage_p): Add hack to prevent false positives on C types
6574         (type_in_anonymous_namespace_p): Likewise.
6575         * tree.c (need_assembler_name_p): Use type_with_linkage.
6576         * tree.h (type_in_anonymous_namespace_p): Remove.
6577         * doc/invoke.texi (-Wlto-type-mismatch): Document
6578
6579 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
6580
6581         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
6582         (verify_type): Verify STRING_FLAG.
6583
6584 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6585
6586         PR fortran/44054
6587         * tree-pretty-print.c (percent_K_format): Replace locus pointer
6588         with accessor function.
6589         * tree-diagnostic.c (diagnostic_report_current_function): Use
6590         diagnostic_location function.
6591         (maybe_unwind_expanded_macro_loc): Likewise.
6592         (virt_loc_aware_diagnostic_finalizer): Likewise.
6593         (default_tree_printer): Replace locus pointer with accessor function.
6594         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
6595         (diagnostic_set_info_translated): Initialize second location.
6596         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
6597         (diagnostic_show_locus): Handle two locations. Call
6598         diagnostic_print_caret_line.
6599         (diagnostic_print_caret_line): New.
6600         (default_diagnostic_starter): Use diagnostic_location function.
6601         (diagnostic_report_diagnostic): Use diagnostic_location function.
6602         (verbatim): Do not set text.locus.
6603         * diagnostic.h (struct diagnostic_info): Remove location field.
6604         (struct diagnostic_context): Make caret_chars an array of two.
6605         (diagnostic_location): New inline.
6606         (diagnostic_expand_location): Handle two locations.
6607         (diagnostic_same_line): New inline.
6608         (diagnostic_print_caret_line): Declare.
6609         (CARET_LINE_MARGIN): New constant.
6610         * pretty-print.c (pp_printf): Do not set text.locus.
6611         (pp_verbatim): Do not set text.locus.
6612         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
6613         (struct text_info): Replace locus pointer with locations
6614         array. Add accessor functions.
6615
6616 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
6617             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
6618
6619         PR target/65768
6620         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
6621         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
6622          large constants in register instead of splitting them.
6623
6624 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
6625
6626         PR target/66140
6627         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
6628         replacements in memory addresses.
6629         (get_unaligned_address): Ditto.
6630
6631 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
6632
6633         * config/ft32/*: New files for FT32 port.
6634         * doc/install.texi: Add FT32 information.
6635         * doc/invoke.texi: Add FT32 information.
6636         * doc/md.texi: Add FT32 information.
6637         * doc/contrib.texi: Self added.
6638
6639 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
6640
6641         PR tree-optimization/64454
6642         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
6643         (-1 - A -> ~A): Remove unnecessary condition.
6644
6645 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
6646
6647         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
6648         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
6649         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
6650
6651 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
6652
6653         * ipa-chkp.h (chkp_wrap_function): New.
6654         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
6655         (chkp_wrap_function_name): New.
6656         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
6657         to get wrapper name.
6658         * lto-cgraph.c: Include ipa-chkp.h.
6659         (input_cgraph_1): Avoid alias chain for wrappers.
6660
6661 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
6662
6663         PR middle-end/66134
6664         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
6665         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
6666
6667 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6668
6669         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
6670         (AARCH64_FL_SLOWMUL): Delete.
6671         (AARCH64_FL_CRC): Redefine to 1<<3.
6672         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
6673
6674 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6675
6676         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
6677         casting.
6678
6679 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
6680
6681         * config/alpha/alpha.md (extendqidi2): Use general_operand
6682         instead of some_operand for operand[1] predicate.
6683         (extendhidi2): Ditto.
6684         (cbranchdi4): Use general_operand instead of some_operand
6685         for operand[1] and operands[2] predicates.
6686         (cstoredi4): Ditto.
6687         * config/alpha/predicates.md (some_operand): Remove unused predicate.
6688         (some_ni_operand): Ditto.
6689
6690 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
6691
6692         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
6693         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
6694         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
6695         low part of the constant using alpha_emit_set_const_1.
6696         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
6697
6698 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
6699
6700         * varasm.c (output_constant_pool_1): Pass down alignment from
6701         constant pool entry's descriptor to output_constant_pool_2.
6702         (output_object_block): Add comment prior to call to
6703         output_constant_pool_1.
6704
6705 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
6706
6707         PR rtl-optimization/65862
6708         * target.def (ira_change_pseudo_allocno_class): New hook.
6709         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
6710         value of the hook.
6711         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
6712         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
6713         hook.
6714         * ira-costs.c (find_costs_and_classes): Call the hook and change
6715         classes when it is necessary.
6716         * doc/tm.texi: Update.
6717
6718 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
6719
6720         * config/i386/i386.md (sibcall_memory): Check that register with
6721         callee address is not also used as one of the arguments, instead
6722         of checking that it is not live after the sibcall.
6723         (sibcall_pop_memory): Ditto.
6724         (sibcall_value_memory): Ditto.
6725         (sibcall_value_pop_memory): Ditto.
6726
6727 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
6728
6729         * generic-match-head.c (types_match): Handle non-types.
6730         * gimple-match-head.c (types_match): Likewise.
6731         * match.pd: Remove unnecessary TREE_TYPE for types_match.
6732
6733 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
6734
6735         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
6736         (csneg3<mode>_insn): Enable expansion of pattern.
6737
6738 2015-05-14  Nick Clifton  <nickc@redhat.com>
6739
6740         * config/rl78/rl78.c (rl78_select_section): Select the correct
6741         default section based upon the category of the decl.
6742
6743 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
6744
6745         PR rtl-optimization/30967
6746         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
6747         destination mode for the cost of scc patterns.
6748
6749 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
6750
6751         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
6752         using SWIM248 mode iterator.
6753         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
6754         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
6755         for operand[2] constraint.
6756         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
6757
6758 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
6759
6760         PR middle-end/66133
6761         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
6762         make sure it is never noreturn, even when the task body does not
6763         return.
6764         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
6765         right before GIMPLE_OMP_RETURN.
6766         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
6767         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
6768         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
6769
6770 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6771
6772         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
6773         * tree-ssa-math-opts.c: Include params.h
6774         (pow_synth_sqrt_info): New struct.
6775         (representable_as_half_series_p): New function.
6776         (get_fn_chain): Likewise.
6777         (print_nested_fn): Likewise.
6778         (dump_fractional_sqrt_sequence): Likewise.
6779         (dump_integer_part): Likewise.
6780         (expand_pow_as_sqrts): Likewise.
6781         (gimple_expand_builtin_pow): Use above to attempt to expand
6782         pow as series of square roots.  Removed now unused variables.
6783
6784 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
6785
6786         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
6787         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
6788         Remove *p0 and *p1 arguments.  Rewrite function.
6789         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
6790         (alpha_split_const_mov): Update calls to alpha_extract_integer and
6791         alpha_emit_set_long_const.
6792         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
6793         (alpha_output_mi_thunk_osf): Ditto.
6794         * config/alpha/alpha.md (movti): Do not check operands[1]
6795         for CONST_DOUBLE.
6796
6797 2015-05-13  Richard Biener  <rguenther@suse.de>
6798
6799         PR tree-optimization/66129
6800         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
6801         commutative.
6802         (vect_schedule_slp_instance): Fix typo.
6803
6804 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
6805
6806         * common.opt (fdump-internal-locations): New option.
6807         * input.c: Include diagnostic-core.h.
6808         (get_end_location): New function.
6809         (write_digit): New function.
6810         (write_digit_row): New function.
6811         (dump_location_range): New function.
6812         (dump_labelled_location_range): New function.
6813         (dump_location_info): New function.
6814         * input.h (dump_location_info): New prototype.
6815         * toplev.c (compile_file): Handle flag_dump_locations.
6816
6817 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
6818
6819         * gimple-expr.h (is_gimple_constant): Reorder.
6820         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
6821
6822 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
6823
6824         * combine.c (simplify_set): When generating a CC set, if the
6825         source already is in the correct mode, do not wrap it in a
6826         compare.  Simplify the rest of that code.
6827
6828 2015-05-13  Richard Biener  <rguenther@suse.de>
6829
6830         PR tree-optimization/66123
6831         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
6832         a taken edge.
6833
6834 2015-05-13  Richard Biener  <rguenther@suse.de>
6835
6836         PR middle-end/66110
6837         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
6838         specially.
6839         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
6840
6841 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
6842
6843         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
6844         * aclocal.m4: Regenerated with automake-1.11.6.
6845
6846 2015-05-13  Tom de Vries  <tom@codesourcery.com>
6847
6848         PR tree-optimization/66010
6849         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
6850         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
6851         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
6852         and rval based on do_deref.
6853
6854 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6855
6856         PR target/65103
6857         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
6858         link time constants into adress expressions and therefore set
6859         their cost to 0.
6860
6861 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
6862
6863         PR target/66112
6864         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
6865         Use SWI248 iterator instead of SWI.
6866         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
6867         Use eq_attr "alternative" "0" instead of match_test in
6868         length_immediate attribute computation.
6869         (*mulvhi4, *mulvhi4_1): New define_insns.
6870
6871         PR target/66112
6872         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
6873         SIGNED to get precision of non-negative value.
6874
6875 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
6876
6877         PR target/66048
6878         * function.c (diddle_return_value_1): Process bounds first.
6879         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
6880         register.
6881
6882 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6883
6884         PR rtl-optimization/64616
6885         * loop-invariant.c (can_move_invariant_reg): New.
6886         (move_invariant_reg): Call above new function to decide whether
6887         instruction can just be moved, skipping creation of temporary
6888         register.
6889
6890 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
6891
6892         PR target/pr66047.c
6893         * i386.c (ix86_function_sseregparm): Only return -1 if local function
6894         with implied regparm is called from -mno-sse function.
6895         (init_cumulative_args): Output error if ix86_function_sseregparm
6896         return -1 and SSE register would be needed.
6897         (function_arg_advance_32): Likewise.
6898         (function_arg_32): Likewise.
6899         * i386.h (ix86_args): Add decl field.
6900
6901 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
6902
6903         PR ipa/65873
6904         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
6905         inlines across optimization boundary.
6906
6907 2015-05-12  Jason Merrill  <jason@redhat.com>
6908
6909         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
6910         string literal and macro name.
6911
6912 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
6913
6914         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
6915         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
6916         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
6917
6918 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
6919
6920         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
6921         (-Wmisleading-indentation): New option.
6922         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
6923
6924 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
6925
6926         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
6927         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
6928         (alpha_extract_integer): Ditto.
6929         (alpha_legitimate_constant_p): Ditto.
6930         (alpha_split_tmode_pair): Ditto.
6931         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
6932         (alpha_expand_mov): Ditto.
6933         (print_operand): Remove handling of 'H' modifier.
6934         <case 'm'>: Remove CONST_DOUBLE handling.
6935         (summarize_insn): Handle CONST_WIDE_INT.
6936         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
6937         (anddi3): Ditto.
6938         (movti): Handle CONST_WIDE_INT.
6939         * config/alpha/constraints.md ('H'): Remove constraint definition.
6940         ('G'): Do not match MODE_FLOAT class.
6941         * config/alpha/predicates.md (const0_operand): Also match
6942         const_wide_int.
6943         (non_add_const_operand): Ditto.
6944         (non_zero_const_operand): Ditto.
6945         (some_operand): Ditto.
6946         (input_operand): Ditto.  Handle CONST_WIDE_INT.
6947         (and_operand): Do not match const_double.
6948         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
6949
6950 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
6951
6952         PR target/65697
6953         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
6954         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
6955         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
6956         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
6957         is_mm_seq_cst, is_mm_sync): New accessor functions.
6958         * builtins.c (expand_builtin_sync_operation,
6959         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
6960         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
6961         (get_memmodel,  expand_builtin_atomic_compare_exchange,
6962         expand_builtin_atomic_load, expand_builtin_atomic_store,
6963         expand_builtin_atomic_clear): Use new accessor routines.
6964         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
6965         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
6966         (maybe_emit_sync_lock_test_and_set): Use new accessors and
6967         MEMMODEL_SYNC_ACQUIRE.
6968         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
6969         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
6970         expand_atomic_store): Use new accessors.
6971         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
6972         * tsan.c (instrument_builtin_call): Update check for memory model beyond
6973         final enum to use MEMMODEL_LAST.
6974         * c-family/c-common.c: Use new accessor for memmodel_base.
6975         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
6976         accessors.
6977         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
6978         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
6979         mem_thread_fence, *dmb): Likewise.
6980         * config/alpha/alpha.c (alpha_split_compare_and_swap,
6981         alpha_split_compare_and_swap_12): Likewise.
6982         * config/arm/arm.c (arm_expand_compare_and_swap,
6983         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
6984         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
6985         atomic_loaddi): Likewise.
6986         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
6987         Likewise.
6988         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
6989         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
6990         use new accessors.
6991         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
6992         atomic_store<mode>, atomic_compare_and_swap<mode>,
6993         atomic_exchange<mode>): Use new accessors.
6994         * config/mips/mips.c (mips_process_sync_loop): Likewise.
6995         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
6996         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
6997         rs6000_post_atomic_barrier): Add new cases.
6998         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
6999         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
7000         (atomic_load<mode>): Add new cases and use new accessors.
7001         (store_quadpti): Add new cases.
7002         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
7003         accessors.
7004         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
7005         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
7006         model, not 8.
7007
7008 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
7009
7010         * ipa-devirt.c (type_with_linkage_p): New function.
7011         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
7012         type has linkage.
7013         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
7014         (can_be_name_hashed_p): Simplify.
7015         (hash_odr_name): Check that type has linkage before checking if it is
7016         anonymous.
7017         (types_same_for_odr): Likewise.
7018         (odr_name_hasher::equal): Likewise.
7019         (odr_subtypes_equivalent_p): Likewise.
7020         (warn_types_mismatch): Likewise.
7021         (get_odr_type): Likewise.
7022         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
7023         * ipa-utils.h (odr_type_p): Move offline.
7024         * tree.c (need_assembler_name_p): Fix handling of types
7025         without linkages.
7026         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
7027
7028 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
7029
7030         * timevar.c (timevar_enable): Delete in favor of...
7031         (g_timer): New global.
7032         (struct timevar_def): Move to timevar.h inside class timer.
7033         (struct timevar_stack_def): Likewise.
7034         (timevars): Delete global in favor of field "m_timevars" within
7035         class timer in timevar.h
7036         (stack): Likewise, in favor of field "m_stack".
7037         (unused_stack_instances): Likewise, in favor of field
7038         "m_unused_stack_instances".
7039         (start_time): Likewise, in favor of field "m_start_time".
7040         (get_time): Eliminate check for timevar_enable.
7041         (timer::timer): New function, built from part of timevar_init.
7042         (timevar_init): Rewrite idempotency test from using
7043         "timevar_enable" bool to using dynamic allocation of "g_timer".
7044         Move rest of implementation into timer's constructor.
7045         (timevar_push_1): Rename to...
7046         (timer::push): ...this, adding "m_" prefixes to variables that
7047         are now fields of timer.
7048         (timevar_pop_1): Likewise, rename to...
7049         (timer::pop): ...this, and add "m_" prefixes.
7050         (timevar_start): Replace test for "timevar_enable" with one for
7051         "g_timer", and move bulk of implementation to...
7052         (timer::start): ...here, adding "m_" prefixes.
7053         (timevar_stop): Likewise, from here...
7054         (timer::stop): ...to here.
7055         (timevar_cond_start): Likewise, from here...
7056         (timer::cond_start): ...to here.
7057         (timevar_cond_stop): Likewise, from here...
7058         (timer::cond_stop): ...to here.
7059         (validate_phases): Rename to...
7060         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
7061         locals "total" and "tv" const.
7062         (timevar_print): Rename to...
7063         (timer::print): ...this, and add "m_" prefixes.  Make locals
7064         "total" and "tv" const.  Eliminate test for timevar_enable.
7065         * timevar.h (timevar_enable): Eliminate.
7066         (g_timer): New declaration.
7067         (timevar_push_1): Eliminate.
7068         (timevar_pop_1): Eliminate.
7069         (timevar_print): Eliminate.
7070         (class timer): New class.
7071         (timevar_push): Rewrite to use g_timer.
7072         (timevar_pop): Likewise.
7073         * toplev.c (toplev::~toplev): Likewise.
7074
7075 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
7076
7077         * arm-protos.h (arm_sched_autopref): Delete.
7078         (tune_params): Re-organize, use enums for flag values.
7079         (FUSE_OPS): New macro.
7080         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
7081         (ARM_PREFETCH_BENEFICIAL): Likewise.
7082         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
7083         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
7084         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
7085         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
7086         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
7087         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
7088         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
7089         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
7090         format.
7091         (arm_option_override, thumb2_reorg, arm_print_tune_info)
7092         (aarch_macro_fusion_pair_p): Update uses of current_tune.
7093         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
7094
7095 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
7096
7097         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
7098         "break".
7099
7100 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
7101             Sandra Loosemore <sandra@codesourcery.com>
7102
7103         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
7104         value.
7105         (REG_CLASS_NAMES): Add "IJMP_REGS".
7106         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
7107         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
7108         use new "c" register constraint.
7109         * config/nios2/constraint.md (c): New register constraint
7110         corresponding to IJMP_REGS.
7111
7112 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
7113
7114         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
7115         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
7116         define_splits): Delete, revamp, transmogrify into ...
7117         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
7118         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
7119         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
7120         New.
7121
7122 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
7123
7124         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
7125         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
7126
7127 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
7128
7129         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
7130         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
7131         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
7132         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
7133         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
7134         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
7135         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
7136         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
7137         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
7138         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
7139         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
7140         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
7141         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
7142         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
7143         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
7144         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
7145         and 30 corresponding splitters): Delete.
7146
7147 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
7148
7149         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
7150         zero_extract.
7151
7152 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
7153
7154         * combine.c (recog_for_combine_1): New function, factored out
7155         from recog_for_combine.
7156         (change_zero_ext): New function.
7157         (recog_for_combine): If recog fails, try again with the pattern
7158         modified by change_zero_ext; if that still fails, restore the
7159         pattern.
7160
7161 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
7162
7163         * combine.c (get_undo_marker): New function.
7164         (undo_to_marker): New function, largely factored out from ...
7165         (undo_all): ... this.  Adjust.
7166
7167 2015-05-12  Richard Biener  <rguenther@suse.de>
7168
7169         PR tree-optimization/66101
7170         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
7171         fixup if we turn a loop exit edge to a fallthru edge.
7172
7173 2015-05-12  Richard Biener  <rguenther@suse.de>
7174
7175         PR tree-optimization/37021
7176         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
7177         (SLP_TREE_TWO_OPERATORS): New define.
7178         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
7179         SLP_TREE_TWO_OPERATORS.
7180         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
7181         SLP node.
7182         (vect_build_slp_tree): Adjust.
7183         (vect_analyze_slp_cost_1): Likewise.
7184         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
7185         emitting two vector stmts and mixing the results.
7186
7187 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7188
7189         * call.c (print_z_candidates): Remove dead code.
7190
7191 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7192
7193         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
7194         and zEC12_simple_fp.
7195         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
7196         to 1.
7197
7198 2015-05-12  Tom de Vries  <tom@codesourcery.com>
7199
7200         PR tree-optimization/66010
7201         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
7202         ifn_va_arg.
7203         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
7204         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
7205         va_lists are passed, and remove corresponding handling.
7206         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
7207         do_deref argument to ifn_va_arg.
7208         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
7209         ifn_va_arg.
7210
7211 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7212
7213         PR target/65955
7214         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
7215         REG before taking its REGNO.
7216
7217 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7218
7219         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
7220         rsp->sign_bit_copies and rsp->nonzero_bits into ...
7221         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
7222         present to get more accurate information about the number of sign bit
7223         copies and non zero bits.
7224
7225 2015-05-12  Richard Biener  <rguenther@suse.de>
7226
7227         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
7228         do not allow unrolling.
7229
7230 2015-05-11  Richard Henderson  <rth@redhat.com>
7231
7232         * config/i386/i386-modes.def (CCP): New.
7233         * config/i386/i386.c (put_condition_code): Handle it.
7234         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
7235
7236 2015-05-11  Richard Henderson  <rth@redhat.com>
7237
7238         * target.def (md_asm_clobbers): Replace with...
7239         (md_asm_adjust): this.
7240         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
7241         (TARGET_MD_ASM_ADJUST): New.
7242         * tm.texi: Rebuild.
7243         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
7244         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
7245         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
7246
7247         * cfgexpand.c (check_operand_nalternatives): Accept vector of
7248         constraints instead of lists of outputs and inputs.
7249         (expand_asm_stmt): Save and restore input_location around the
7250         body of the function.  Move asm data into vectors instead of
7251         building tree lists.  Generate cleanup sequences as needed,
7252         rather than waiting til the end.  Use new md_asm_adjust hook.
7253
7254         * config/vxworks.c: Include vec.h before target.h.
7255         * gimple.c: Likewise.
7256         * incpath.c: Likewise.
7257         * mode-switching.c: Likewise.
7258
7259         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
7260         (cris_md_asm_adjust): this.
7261         (TARGET_MD_ASM_CLOBBERS): Remove.
7262         (TARGET_MD_ASM_ADJUST): New.
7263         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
7264         (ix86_md_asm_adjust): this.
7265         (TARGET_MD_ASM_CLOBBERS): Remove.
7266         (TARGET_MD_ASM_ADJUST): New.
7267         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
7268         (mn10300_md_asm_adjust): this.
7269         (TARGET_MD_ASM_CLOBBERS): Remove.
7270         (TARGET_MD_ASM_ADJUST): New.
7271         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
7272         (rs6000_md_asm_adjust): this.
7273         (TARGET_MD_ASM_CLOBBERS): Remove.
7274         (TARGET_MD_ASM_ADJUST): New.
7275         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
7276         (visium_md_asm_adjust): this.
7277         (TARGET_MD_ASM_CLOBBERS): Remove.
7278         (TARGET_MD_ASM_ADJUST): New.
7279
7280 2015-05-11  Richard Henderson  <rth@redhat.com>
7281
7282         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
7283         if noutputs is zero.
7284         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
7285
7286         * cfgexpand.c (expand_asm_operands): Merge into...
7287         (expand_asm_stmt): ... here.
7288
7289         * cfgexpand.c (expand_asm_operands): Don't call
7290         resolve_asm_operand_names.
7291         * stmt.c (resolve_asm_operand_names): Clarify block comment.
7292
7293 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
7294
7295         * dwarf2out.c (gen_member_die): Sanity check that we access
7296         TYPE_MAIN_VARIANT for TYPE_METHODS.
7297         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
7298         checking TYPE_METHODS.
7299         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
7300         if non-null.
7301         (build_distinct_type_copy): Clear TYPE_METHODS.
7302         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
7303         (verify_type): Allow TYPE_METHODS to be error_mark_node.
7304         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
7305
7306 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
7307
7308         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
7309         (emit_pattern_before_setloc): Likewise.
7310
7311 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
7312
7313         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
7314         for define_peephole2s.
7315         (get_peephole2_pattern): New function.
7316         (main): Use it.  Call validate_pattern.
7317
7318 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
7319
7320         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
7321         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
7322         (Last callee saved reg is different for AVR_TINY architecture)
7323
7324 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
7325
7326         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
7327         when looking for memory references.
7328
7329 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
7330
7331         PR target/65753
7332         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
7333         via function pointers.
7334
7335 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
7336
7337         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
7338         indirect call by forcing address into a pseudo with -fno-plt.
7339         * common.opt (flag_plt): New option.
7340         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
7341         ([-fno-plt]): Document.
7342
7343 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
7344
7345         PR bootstrap/66105
7346         * config/rs6000/option-defaults.h: Add space between string literal
7347         and macro name.
7348
7349 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7350
7351         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
7352         accross ARM targets.
7353
7354 2015-05-11  Christian Bruel  <christian.bruel@st.com>
7355
7356         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
7357         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
7358
7359 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
7360
7361         PR rtl-optimization/66076
7362         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
7363         Don't grow the heap array if it is already big enough from a
7364         previous iteration.
7365
7366 2015-05-11  Christian Bruel  <christian.bruel@st.com>
7367
7368         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
7369         (is_called_in_ARM_mode): Remove.
7370         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
7371         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
7372         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
7373          arm_declare_function_name.
7374
7375 2015-05-11  Christian Bruel  <christian.bruel@st.com>
7376
7377         * config/arm/arm.c (arm_option_override): Reoganized and split into :
7378         (arm_option_params_internal); New function.
7379         (arm_option_check_internal): New function.
7380         (arm_option_override_internal): New function.
7381         (thumb_code, thumb1_code): Remove.
7382         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
7383         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
7384         (thumb_code, thumb1_code): Remove.
7385         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
7386
7387 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
7388
7389         * config/alpha/alpha.c (alpha_emit_set_const_1)
7390         (alpha_emit_set_long_const, alpha_extract_integer)
7391         (alpha_legitimate_constant_p, alpha_split_const_mov)
7392         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
7393         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
7394         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
7395         HOST_WIDE_INT_1U.
7396         * config/alpha/predicates.md (mode_mask_operand): Do not match
7397         const_double RTX.
7398         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
7399         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
7400         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
7401         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
7402         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
7403
7404 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
7405
7406         PR target/65780
7407         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
7408         default_binds_local_p_2.
7409         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
7410         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
7411
7412 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
7413
7414         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
7415
7416 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
7417
7418         Patch by Richard Biener
7419         * coverage.c (coverage_obj_init): Delay building of type variant
7420         until the type is finished.
7421
7422 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
7423
7424         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
7425         mismatch between C and C++ type; compoare correctly ARG_TYPES
7426         for non-prototypes and output correctly parameter index for METHOD_TYPE.
7427         (odr_types_equivalent_p): Fix wording of warning about attributes;
7428         it is OK to match prototype and non-prototype.
7429
7430 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
7431
7432         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
7433         TYPE_ARG_TYPES list.
7434         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
7435         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
7436
7437 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
7438
7439         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
7440         * tree.h (is_lang_specific): Constify.
7441
7442 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
7443
7444         PR tree-optimization/64454
7445         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
7446         Rewrite.
7447
7448 2015-05-08  Jason Merrill  <jason@redhat.com>
7449
7450         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
7451         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
7452         config/darwin.h, config/darwin9.h, config/elfos.h,
7453         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
7454         config/microblaze/microblaze.h, config/mips/mips.h,
7455         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
7456         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
7457         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
7458         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
7459         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
7460         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
7461         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
7462         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
7463         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
7464         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
7465         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
7466         between string literal and macro name.
7467
7468 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7469
7470         * jump.c: Change argument types to rtx_insn *.
7471         * rtl.h: Adjust.
7472
7473 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7474
7475         * lra-constraints.c: Change argument type to rtx_insn *.
7476
7477 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7478
7479         * df-problems.c: Change argument type to rtx_insn *.
7480
7481 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7482
7483         * combine.c: Change argument type to rtx_insn *.
7484
7485 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7486
7487         * rtl.h: Adjust.
7488         * rtlanal.c: Change argument type to rtx_insn *.
7489
7490 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7491
7492         * sched-deps.c: Change argument types to rtx_insn *.
7493         * sched-int.h: Adjust.
7494
7495 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7496
7497         * dwarf2cfi.c: Change argument type to rtx_insn *.
7498
7499 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7500
7501         * ira.c (decrease_live_ranges_number): Changetype of local
7502         variable to rtx_insn *.
7503         * recog.c: Change argument types to rtx_insn *.
7504         * recog.h: Adjust.
7505
7506 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7507
7508         * reorg.c: Change argument types to rtx_insn *.
7509
7510 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7511
7512         * ira-color.c: Change argument types to rtx_insn *.
7513         * lra-eliminations.c: Likewise.
7514         * ira.h: Adjust.
7515
7516 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7517
7518         * gcse.c: Change argument types to rtx_insn *.
7519
7520 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7521
7522         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
7523
7524 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7525
7526         * emit-rtl.c (emit_debug_insn_before): Change argument type to
7527         rtx_insn *.
7528         * rtl.h: Adjust.
7529
7530 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7531
7532         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
7533         * rtl.h: Adjust.
7534
7535 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7536
7537         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
7538         * rtl.h: Adjust.
7539
7540 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7541
7542         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
7543         * rtl.h: Adjust.
7544
7545 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7546
7547         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
7548         * rtl.h: Adjust.
7549
7550 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7551
7552         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
7553         to rtx_insn *.
7554         * rtl.h: Adjust.
7555
7556 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7557
7558         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
7559         to rtx_insn *.
7560         * rtl.h: Likewise.
7561
7562 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7563
7564         * except.c (can_nonlocal_goto): Change type of argument to
7565         rtx_insn *.
7566         * rtl.h: Adjust.
7567
7568 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7569
7570         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
7571         * rtl.h: Adjust.
7572
7573 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7574
7575         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
7576         * cfgrtl.c (can_delete_label_p): Adjust.
7577         * rtl.h: likewise.
7578
7579 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7580
7581         * reorg.c (stop_search_p): Change argument to rtx_insn *.
7582
7583 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7584
7585         * except.c (make_reg_eh_region_note): Change argument to
7586         rtx_insn *.
7587         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
7588         * except.h: Adjust.
7589
7590 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7591
7592         * mode-switching.c (commit_mode_sets): Change type of local
7593         variable from rtx to rtx_insn *.
7594
7595 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
7596
7597         * doc/install.texi (--enable-languages): Add missing jit and lto info.
7598         Add ^ to grep command.
7599         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
7600         arg to last gimple_simplify declaration.  Add missing gimple_build
7601         declaration for built-in function case with four tree args.
7602
7603 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
7604             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7605
7606         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
7607         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
7608         (GNU_USER_DYNAMIC_LINKERN32): Update.
7609
7610 2015-05-08  Richard Biener  <rguenther@suse.de>
7611
7612         PR tree-optimization/66036
7613         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
7614         Handle strided group loads.
7615         (vect_verify_datarefs_alignment): Likewise.
7616         (vect_enhance_data_refs_alignment): Likewise.
7617         (vect_analyze_group_access): Likewise.
7618         (vect_analyze_data_ref_access): Likewise.
7619         (vect_analyze_data_ref_accesses): Likewise.
7620         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
7621         (vectorizable_load): Likewise.
7622
7623 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
7624
7625         * config/rs6000/rs6000.md: Require operand inequality in one
7626         of the peepholes.
7627
7628 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
7629             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7630
7631         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
7632         from (set ...).
7633         * config/rx/rx.md (movdi, movdf): Likewise.
7634         Likewise for define_peephole2s.
7635
7636 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
7637
7638         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
7639         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
7640         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
7641         vtst_u64): Rewrite using gcc vector extensions.
7642
7643 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
7644
7645         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
7646         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
7647
7648 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
7649
7650         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
7651
7652 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7653
7654         * config/glibc-stdint.h (OPTION_MUSL): Define.
7655         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
7656         Change the definition based on OPTION_MUSL for 64 bit targets.
7657         * config/linux.h (OPTION_MUSL): Redefine.
7658         * config/alpha/linux.h (OPTION_MUSL): Redefine.
7659         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
7660         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
7661
7662 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
7663             Szabolcs Nagy  <szabolcs.nagy@arm.com>
7664
7665         * config.gcc (LIBC_MUSL): New tm_defines macro.
7666         * config/linux.h (OPTION_MUSL): Define.
7667         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
7668         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
7669         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
7670         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
7671         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
7672         * config/linux.opt (mmusl): New option.
7673         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
7674         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
7675         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
7676         * configure: Regenerate.
7677
7678 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
7679             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
7680
7681         PR target/48904
7682         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
7683         * config/i386/knetbsd-gnu64.h: New file.
7684
7685 2015-05-08  Marek Polacek  <polacek@redhat.com>
7686
7687         PR c/64918
7688         * doc/invoke.texi: Document -Woverride-init-side-effects.
7689
7690 2015-05-07  Marek Polacek  <polacek@redhat.com>
7691
7692         PR c/65179
7693         * doc/invoke.texi: Document -Wshift-negative-value.
7694
7695 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
7696
7697         * gcov-tool.c (do_merge): Refactore to remove int ret.
7698         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
7699         !type == FUNC to type != FUNC.
7700         * reload.h (struct target_reload): Changee to type of
7701         x_spill_indirect_levels from bool to unsigned char.
7702
7703 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
7704
7705         * rtl.h (always_void_p): New function.
7706         * gengenrtl.c (always_void_p): Likewise.
7707         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
7708         with code foo are always VOIDmode.
7709         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
7710         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
7711         compare-elim.c, config/aarch64/aarch64.c,
7712         config/aarch64/aarch64.md, config/alpha/alpha.c,
7713         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
7714         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
7715         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
7716         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
7717         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
7718         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
7719         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
7720         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
7721         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
7722         config/ia64/vect.md, config/iq2000/iq2000.c,
7723         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
7724         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
7725         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
7726         config/mep/mep.c, config/microblaze/microblaze.c,
7727         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
7728         config/mn10300/mn10300.c, config/msp430/msp430.c,
7729         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
7730         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
7731         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
7732         config/rs6000/altivec.md, config/rs6000/rs6000.c,
7733         config/rs6000/rs6000.md, config/rs6000/vector.md,
7734         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
7735         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
7736         config/sh/sh.md, config/sh/sh_treg_combine.cc,
7737         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
7738         config/spu/spu.md, config/stormy16/stormy16.c,
7739         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
7740         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
7741         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
7742         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
7743         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
7744         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
7745         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
7746         var-tracking.c: Update calls accordingly.
7747
7748 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
7749
7750         PR middle-end/192
7751         PR middle-end/54303
7752         * varasm.c (function_mergeable_rodata_prefix): New function.
7753         (mergeable_string_section): Use it.
7754         (mergeable_constant_section): Use it.
7755
7756 2015-05-07  Jeff Law  <law@redhat.com>
7757
7758         PR target/39726
7759         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
7760         simplifier to narrow arithmetic.
7761         * generic-match-head.c: (types_match, single_use): New functions.
7762         * gimple-match-head.c: (types_match, single_use): New functions.
7763
7764 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
7765
7766         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
7767         rtx type.
7768
7769 2015-05-07  Richard Biener  <rguenther@suse.de>
7770
7771         PR tree-optimization/66002
7772         * passes.def: Schedule another pass_merge_phi after ifcombine, right
7773         before phiopt.
7774
7775 2015-05-07  Marek Polacek  <polacek@redhat.com>
7776             Martin Uecker  <uecker@eecs.berkeley.edu>
7777
7778         * doc/invoke.texi: Document -fsanitize=bounds-strict.
7779         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
7780         into SANITIZE_NONDEFAULT.
7781         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
7782
7783 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
7784
7785         PR target/66015
7786         * config/alpha/alpha.c (alpha_override_options_after_change): New.
7787         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
7788         (alpha_override_options): Move align_loops, align_jumps and
7789         align_functions handling into alpha_override_options_after_change.
7790
7791 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
7792             Chris Jones  <chrisj@nvidia.com>
7793             Joshua Conner  <jconner@nvidia.com>
7794
7795         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
7796         linking of crtfastmath.o.
7797         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
7798
7799 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
7800
7801         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
7802         (cstore<mode>4_unsigned_imm): New expander.
7803         (cstore<mode>4): Remove empty constraint strings.  Use the new
7804         expanders.
7805
7806 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
7807
7808         PR target/64208
7809         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
7810         alternatives.
7811
7812 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7813
7814         * config/aarch64/geniterators.sh: Use standard BRE in sed.
7815
7816 2015-05-06  Alan Modra  <amodra@gmail.com>
7817
7818         PR target/66033
7819         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
7820         (UNSPEC_NOP): Define.
7821         (reload_vsx_from_gpr<mode>): Add missing DONE.
7822         (reload_gpr_from_vsx<mode>): Likewise.
7823         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
7824         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
7825
7826 2015-05-06  Christian Bruel  <christian.bruel@st.com>
7827
7828         PR target/66015
7829         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
7830         align_jumps, align_functions into aarch64_override_options_after_change.
7831
7832 2015-05-06  Richard Biener  <rguenther@suse.de>
7833
7834         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
7835         vect_transform_slp_perm_load to check if we support a permutation
7836         for basic-block vectorization.
7837
7838 2015-05-06  Nick Clifton  <nickc@redhat.com>
7839
7840         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
7841         used, even if it is not being used as a frame pointer.
7842
7843 2015-05-05  Jason Merrill  <jason@redhat.com>
7844
7845         * dwarf2out.c (gen_member_die): Don't emit anything for an
7846         anonymous class constructor.
7847
7848 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
7849
7850         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
7851         that it reflects the block structure.
7852         (afdo_propagate_edge): Likewise.
7853         (afdo_calculate_branch_prob): Likewise.
7854         (afdo_annotate_cfg): Likewise.
7855         * cfgcleanup.c (equal_different_set_p): Likewise.
7856         (try_crossjump_to_edge): Likewise.
7857         * cgraph.c (cgraph_node::verify_node): Likewise.
7858         * cgraphunit.c (expand_all_functions): Likewise.
7859         * config/i386/i386.c (ix86_expand_copysign): Likewise.
7860         (exact_dependency_1): Likewise.
7861         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
7862         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
7863         * gensupport.c (process_define_subst): Likewise.
7864         * lto-wrapper.c (merge_and_complain): Likewise.
7865         * tree-if-conv.c (if_convertible_bb_p): Likewise.
7866         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
7867         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
7868         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
7869         * tree-vect-loop.c (vectorizable_reduction): Likewise.
7870         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
7871         * tree-vect-stmts.c (vectorizable_shift): Likewise.
7872         * tree-vrp.c (vrp_finalize): Likewise.
7873         * tree.c (variably_modified_type_p): Likewise.
7874
7875 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
7876
7877         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
7878         on darwin12 and later.
7879         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
7880         file to pass -rdynamic on darwin12 and later.
7881         * config/darwin.opt (rdynamic): Add.
7882
7883 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
7884
7885         * doc/extend.texi (C Extensions): Update menu for moved Variable
7886         Attributes and Type Attributes sections.
7887
7888 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
7889
7890         PR target/65990
7891         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
7892         if rep_8byte stringop strategy was specified for 32-bit target.
7893
7894 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
7895
7896         PR target/65915
7897         * config/i386/i386.md (vector convert to float spltiter): Check for
7898         xmm16+, when splitting scalar float conversion.
7899         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
7900
7901 2015-05-05  Nick Clifton  <nickc@redhat.com>
7902
7903         * config/msp430/msp430-opts.h (enum msp430_regions): New.
7904         * config/msp430/msp430.c (msp430_override_options): Complain if
7905         -mcode-region or -mdata-region is used on a non MSP430X.
7906         (msp430_section_attr): New function.  Checks lower, upper and
7907         either attributes.
7908         (msp430_attribute_table): Add lower, upper and either.
7909         (gen_prefix): New function.  Generates a prefix for a section
7910         name.
7911         (msp430_select_section): New function - handles the choice of
7912         section for an object.  Takes into account memory region
7913         attributes and options.
7914         (msp430_function_section): Use gen_prefix.
7915         (TARGET_SECTION_TYPE_FLAGS): Define.
7916         (msp430_section_type_flags): New function.
7917         (TARGET_ASM_UNIQUE_SECTION): Define.
7918         (msp430_unique_section): New function.
7919         (msp430_output_aligned_decl_common): New function.
7920         (msp430_do_not_relax_short_jumps): New function.
7921         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
7922         Define.
7923         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
7924         * config/msp430/msp430-protos.h
7925         (msp430_do_not_relax_short_jumps): New prototype.
7926         (msp430_output_aligned_decl_common): New prototype.
7927         * config/msp430/msp430.md (length): New attribute.
7928         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
7929         then use a long code sequence for short jumps.
7930         * config/msp430/msp430.opt (mcode-region): New.
7931         (mdata-region): New.
7932         * doc/invoke.texi: Document new options.
7933         * doc/extend.texi: Document new attributes.
7934
7935 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
7936
7937         * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
7938         (tune_params): Add field branch_costs.
7939         (aarch64_branch_cost): Declare.
7940         * gcc/config/aarch64.c (generic_branch_cost): New.
7941         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
7942         (cortexa53_tunings): Likewise.
7943         (cortexa57_tunings): Likewise.
7944         (thunderx_tunings): Likewise.
7945         (xgene1_tunings): Likewise.
7946         (aarch64_branch_cost): Define.
7947         * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
7948
7949 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
7950
7951         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
7952         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
7953         * config/i386/i386.md: Ditto.
7954         * config/i386/winnt.c: Ditto.
7955
7956 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
7957
7958         * doc/extend.texi (__atomic Builtins): Move implementation details
7959         to the end of the description, rewrite opening paragraphs, state
7960         difference with __sync builtins, state C11/C++11 assumptions,
7961         weaken itemized descriptions, add explanation of memory model
7962         behaviour, expand description of compare-exchange, simplify text.
7963
7964 2015-05-05  Renlin Li  <renlin.li@arm.com>
7965
7966         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
7967
7968 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
7969
7970         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
7971         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
7972         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
7973         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
7974         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
7975         * configure: Regenerate.
7976         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
7977         * doc/install.texi (aarch64*-*-*): Document new
7978         --enable-fix-cortex-a53-843419 option.
7979         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
7980         and -mno-fix-cortex-a53-843419 options.
7981
7982 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
7983
7984         PR target/65871
7985         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
7986
7987 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
7988
7989         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
7990         fix overactive TYPE_MIN_VALUE check and add FIXME for type
7991         compatibility problems.
7992
7993 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
7994
7995         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
7996         constraints.
7997         (cbranchsi4_reg): New.
7998         * config/microblaze/microblaze.c
7999         (microblaze_expand_conditional_branch_reg): New.
8000         * config/microblaze/microblaze-protos.h
8001         (microblaze_expand_conditional_branch_reg): New prototype.
8002
8003 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
8004
8005         * config/microblaze/microblaze.md (peephole2): New.
8006
8007 2015-05-04  Jeff Law  <law@redhat.com>
8008
8009         Revert:
8010         2015-05-04  Jeff Law  <law@redhat.com>
8011
8012         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
8013         simplifier to narrow arithmetic.
8014         * generic-match-head.c: (types_match, single_use): New functions.
8015         * gimple-match-head.c: (types_match, single_use): New functions.
8016
8017 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
8018
8019         PR target/65987
8020         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
8021         (split_branches): Likewise.
8022
8023 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
8024
8025         * common.opt (fdelete-null-pointer-checks): Init to -1.
8026         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
8027         override flag_delete_null_pointer_checks default.
8028         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
8029         behavior re address zero.  Better document target-specific behavior.
8030         (-fisolate-errneous-paths-dereference): Mention relationship to
8031         -fdelete-null-pointer-checks.
8032
8033 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
8034
8035         PR tree-optimization/65984
8036         * ubsan.c: Include tree-cfg.h.
8037         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
8038         stmt_could_throw_p test, rename can_throw variable to ends_bb.
8039
8040 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
8041
8042         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
8043         to CONST_DOUBLE_P predicate.
8044         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
8045         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
8046         allow only operands that satisfy standard_sse_constant_p predicate.
8047         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
8048         to CONST_DOUBLE_P predicate.
8049
8050 2015-05-04  Jeff Law  <law@redhat.com>
8051
8052         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
8053         simplifier to narrow arithmetic.
8054         * generic-match-head.c: (types_match, single_use): New functions.
8055         * gimple-match-head.c: (types_match, single_use): New functions.
8056
8057 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
8058
8059         * config/arm/arm.c: Restore bootstrap.
8060
8061 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
8062
8063         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
8064         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
8065         as CONST_WIDE_INT, not CONST_DOUBLE.
8066         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
8067         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
8068         (ix86_find_base_term): Do not check for CONST_DOUBLE.
8069         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
8070         (ix86_build_signbit_mask): Rewrite using wide ints.
8071         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
8072         (ix86_rtx_costs): Handle CONST_WIDE_INT.
8073         (find_constant): Ditto.
8074         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
8075         using gen_int_mode.
8076         * config/i386/predicates.md (x86_64_immediate_operand)
8077         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
8078         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
8079         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
8080         (const0_operand): Also match const_wide_int.
8081         (constm1_operand): Ditto.
8082         (const1_operand): Ditto.
8083
8084 2015-05-04  Richard Biener  <rguenther@suse.de>
8085
8086         PR tree-optimization/65965
8087         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
8088         store groups at gaps.
8089
8090 2015-05-04  Richard Biener  <rguenther@suse.de>
8091
8092         PR tree-optimization/65935
8093         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
8094         then make sure to apply that swapping to the IL.
8095
8096 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
8097
8098         * Makefile.in (PATCHLEVEL_c): New variable.
8099         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
8100         expand the same way as if DEVPHASE_c was non-empty.
8101
8102 2015-05-04  Kai Tietz  <ktietz@redhat.com>
8103
8104         PR target/65559
8105         * lto-wrapper.c (run_gcc): Open filename
8106         in binary-mode.
8107
8108 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
8109
8110         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
8111         sections up in file, to immediately after the Function Attributes
8112         section.
8113
8114 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
8115
8116         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
8117
8118 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8119
8120         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
8121         (insert_partition_copy_on_edge): Adjust.
8122         (insert_rtx_to_part_on_edge): Likewise.
8123         (insert_part_to_rtx_on_edge): Likewise.
8124
8125 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8126
8127         * function.c (set_return_jump_label): Change type of argument to
8128         rtx_insn *.
8129         * function.h (set_return_jump_label): Adjust.
8130
8131 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8132
8133         * reload.h (struct reg_equivs_t): Change type of init to
8134         rtx_insn *.
8135         * ira.c (fix_reg_equiv_init): Adjust.
8136         * reload1.c (eliminate_regs_1): Likewise.
8137         (init_eliminable_invariants): Likewise.
8138
8139 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8140
8141         * cselib.c (fp_setter_insn): Take a rtx_insn *.
8142         * cselib.h (fp_setter_insn): Adjust.
8143
8144 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8145
8146         * recog.c (struct validate_replace_src_data): Change type of
8147         insn field to rtx_insn *.
8148         (validate_replace_src_group): Change type of argument to rtx_insn *.
8149         * recog.h (validate_replace_src_group): Adjust.
8150
8151 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8152
8153         * haifa-sched.c: Change the type of some variables to rtx_insn *.
8154         * sched-deps.c: Likewise.
8155         * sched-int.h: Likewise.
8156         * sched-rgn.c: Likewise.
8157         * sel-sched.c: Likewise.
8158
8159 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8160
8161         to rtx_insn *.
8162         * config/i386/i386.c: Change the type of some arguments to
8163         rtx_insn *.
8164         * config/arm/arm.c: Likewise.
8165
8166 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8167
8168         * lra-constraints.c: Change type of some arguments to rtx_insn *.
8169
8170 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8171
8172         * regcprop.c (kill_autoinc_value): Change type of argument to
8173         rtx_insn *.
8174
8175 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8176
8177         * genrecog.c (print_subroutine): Adjust.
8178         * recog.c (get_bool_attr_mask_uncached): Likewise.
8179         * recog.h (struct recog_data_d): Change the type of insn to
8180         rtx_insn *.
8181
8182 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8183
8184         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
8185
8186 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8187
8188         * df-problems.c (df_set_note): Change type of argument to
8189         rtx_insn *.
8190
8191 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8192
8193         * builtins.c (expand_builtin_trap): Change type of local
8194         variable to rtx_insn *.
8195         (add_sched_insns_for_speculation): Likewise.
8196         (ix86_emit_save_regs): Likewise.
8197         (get_scratch_register_on_entry): Likewise.
8198         (ix86_emit_restore_reg_using_pop): Likewise.
8199         (ix86_emit_leave): Likewise.
8200         (ix86_emit_restore_regs_using_mov): Likewise.
8201         (ix86_expand_epilogue): Likewise.
8202         Likewise.
8203         (rl78_alloc_physical_registers_umul): Likewise.
8204         * cselib.c (discard_useless_locs): Likewise.
8205         (cselib_invalidate_regno): Likewise.
8206         (cselib_invalidate_mem): Likewise.
8207         * function.c (expand_function_start): Likewise.
8208         (emit_use_return_register_into_block): Likewise.
8209         * gcse.c: Likewise.
8210         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
8211         * ifcvt.c (noce_get_alt_condition): Likewise.
8212         * loop-doloop.c (doloop_condition_get): Likewise.
8213         * lra-constraints.c (inherit_in_ebb): Likewise.
8214         * modulo-sched.c (sms_schedule_by_order): Likewise.
8215         * recog.c (next_insn_tests_no_inequality): Likewise.
8216         * reorg.c (emit_delay_sequence): Likewise.
8217         (update_reg_dead_notes): Likewise.
8218         (fix_reg_dead_note): Likewise.
8219         (fill_slots_from_thread): Likewise.
8220         (delete_computation): Likewise.
8221
8222 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
8223
8224         * doc/extend.texi (Variable Attributes): Add menu and proper
8225         @nodes to subsections.  Move Microsoft Windows attributes to
8226         their own subsection.
8227         (Type Attributes): Reorganize introduction to remove duplicate
8228         list of attributes.  Add menu and proper @nodes to subsections.
8229         Alphabetize the main table of common attributes.
8230
8231 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
8232
8233         * match.pd: New simplification patterns.
8234         (x + (x & 1))  -> ((x + 1) & ~1)
8235         (x & ~(x & y)) -> ((x & ~y))
8236         (x | ~(x | y)) -> ((x | ~y))
8237
8238 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8239
8240         * target.def (attribute_table): Mention that struct attribute_spec
8241         is defined in tree-core.h rather than tree.h
8242         * doc/tm.texi: Regenerate.
8243
8244 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
8245
8246         * genrecog.c (test): Rename to rtx_test.  Update rest of file
8247         accordingly.
8248
8249 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
8250
8251         PR translation/65959
8252         * params.h (DEFPARAM): Rename msgid to nocmsgid.
8253
8254 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
8255
8256         * gcc/config/aarch64/aarch64-protos.h (tune_params):
8257         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
8258         * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
8259         Return value depending on target.
8260         (generic_tunings): Initialize new target settings.
8261         (cortexa53_tunings): Likewise.
8262         (cortexa57_tunings): Likewise.
8263         (thunderx_tunings): Likewise.
8264         (xgene1_tunings): Likewise.
8265
8266 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
8267
8268         * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
8269         Make Cortex-A53 shift costs more accurate.
8270
8271 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8272
8273         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
8274         UNSIGNED_FLOAT.
8275
8276 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
8277
8278         * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
8279         Calculate cost of op0 and op1 in PLUS and MINUS cases.
8280
8281 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8282
8283         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
8284         Add cost of op0 in the compare-with-fpzero case.
8285
8286 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
8287
8288         * builtins.c (fold_builtin_1): Remove spurious second
8289         semicolon.
8290         * cgraph.h (symtab_node::get_availability): Likewise.
8291         * opts.c (common_handle_option): Remove spurious second semicolon.
8292         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
8293         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
8294
8295 2015-04-30  Caroline Tice  <cmtice@google.com>
8296
8297         PR gcov-profile/65929
8298         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
8299         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
8300         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
8301         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
8302         * doc/tm.texi: Regenerate.
8303         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
8304         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
8305         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
8306         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
8307
8308 2015-04-30  Marek Polacek  <polacek@redhat.com>
8309
8310         * varasm.c (handle_cache_entry): Fix logic.
8311
8312 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8313
8314         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
8315         (*extrsi5_insn_uxtw_alt): Likewise.
8316         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
8317         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
8318         operations.
8319
8320 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8321
8322         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
8323         fabd in ABS case.
8324
8325 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8326
8327         * config/aarch64/aarch64.md
8328         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
8329         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
8330         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
8331         appropriately.  Handle alternative EON form.
8332
8333 2015-04-30  Renlin Li  <renlin.li@arm.com>
8334
8335         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
8336         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
8337
8338 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
8339
8340         PR ipa/65873
8341         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
8342         -fstrict-aliasing boundaries.
8343
8344 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8345
8346         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
8347         and [SU]MNEGL patterns.
8348
8349 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8350
8351         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
8352         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
8353         combined arithmetic-shift ops.  Properly handle all shift and extend
8354         operations that can occur in combination with PLUS/MINUS.
8355         Rename maybe_fma to compound_p.
8356         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
8357         arithmetic and shift operations.
8358
8359 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8360
8361         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
8362         rather than arith_shift cost when costing ADD/MINUS of an
8363         extended value.
8364
8365 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
8366
8367         PR lto/65948
8368         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
8369         to itself.
8370
8371 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
8372
8373         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
8374         are for the same position.
8375
8376 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
8377
8378         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
8379         vectorize_loops.
8380         (vectorize_loops): Use it.
8381
8382 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
8383
8384         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
8385         for aggregate types.
8386         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
8387         type to be non_ODR.
8388         * tree.c (need_assembler_name_p): Compute mangled name for
8389         non-fundamental types and integer types.
8390
8391 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
8392
8393         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
8394         manual swaps.
8395         * expr.c (expand_expr_real_2): Likewise.
8396
8397 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
8398
8399         * tree.c (build_common_builtin_nodes): Do not build
8400         __builtin_alloca_with_align as equivalent of library alloca.
8401
8402 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
8403
8404         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
8405         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
8406         bugus variants.
8407         * tree.c: Include print-tree.h and ipa-utils.h
8408         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
8409         (free_lang_data_in_cgraph): Call verify_type.
8410         (verify_type_variant): New function.
8411         (verify_type): New function.
8412         * tree.h (verify_type): Declare.
8413
8414 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
8415
8416         * config/mips/mips-cpus.def: (mips4): Change default processor
8417         from PROCESSOR_R8000 to PROCESSOR_R10000.
8418
8419 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
8420
8421         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
8422         la/jalr instead of jal.
8423
8424 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
8425
8426         PR target/65871
8427         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
8428         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
8429         (setcc+movzbl peephole2): Check also clobbered reg.
8430         (setcc+andl peephole2): Ditto.
8431
8432 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
8433
8434         PR libgomp/65099
8435         * config/nvptx/mkoffload.c (target_ilp32): New variable.
8436         (main): Set it depending on "-foffload-abi=[...]".
8437         (compile_native, main): Use it to pass "-m32" or "-m64" to the
8438         compiler.
8439
8440 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
8441
8442         PR target/65770
8443         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
8444         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
8445         Flip lane index back at assembly time for bigendian.
8446
8447 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
8448
8449         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
8450         * gimplify.c (gimplify_omp_workshare): Use it.
8451
8452 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
8453
8454         * Makefile.in (build/genrecog.o): Depend on inchash.h.
8455         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
8456         build/inchash.o
8457         * genrecog.c: Rewrite most of the code except for the third page.
8458
8459 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
8460
8461         * inchash.h, inchash.c: Include bconfig.h for build objects.
8462         * Makefile.in (build/inchash.o): New rule.
8463
8464 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
8465
8466         PR target/65924
8467         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
8468         number in type attribute expression.
8469
8470 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
8471
8472         * loop-iv.c (canon_condition): Generalize to all types of integer
8473         constant.
8474
8475 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
8476
8477         * gimple-walk.c: Prune duplicate or unneeded includes.
8478         (walk_gimple_asm): Only call parse_input_constraint or
8479         parse_output_constraint if their findings are used.
8480         Honour parse_input_constraint and parse_output_constraint
8481         result.
8482
8483 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
8484
8485         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
8486
8487 2015-04-29  Tom de Vries  <tom@codesourcery.com>
8488
8489         PR tree-optimization/65893
8490         * passes.def (pass_all_optimizations): Move pass_stdarg to after
8491         pass_dce.
8492
8493 2015-04-29  Richard Biener  <rguenther@suse.de>
8494
8495         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
8496         compute GROUP_SIZE for basic-block SLP.
8497         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
8498         take into account gaps.
8499         (vect_get_mask_element): Properly reject references to previous
8500         vectors.
8501         (vect_transform_slp_perm_load): Likewise.
8502
8503 2015-04-29  Christian Bruel  <christian.bruel@st.com>
8504
8505         PR target/64835
8506         * config/i386/i386.c (ix86_default_align): New function.
8507         (ix86_override_options_after_change): Call ix86_default_align.
8508         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
8509         (ix86_override_options_after_change): New function.
8510
8511 2015-04-28  Jeff Law  <law@redhat.com>
8512
8513         * tree-ssa-dom.c (record_equality); Fix comment typos.
8514
8515 2015-04-28  Tom de Vries  <tom@codesourcery.com>
8516
8517         PR tree-optimization/65887
8518         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
8519
8520 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
8521
8522         * doc/extend.texi (Declaring Attributes of Functions): Split into
8523         subsections by target.  Alphabetize the table of common attributes.
8524         Rewrite some of the introductory text to reflect the new structure.
8525         Update some cross-references to point to the new subsections.
8526         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
8527         duplicate copies in the discussion of function, label, and type
8528         attributes.
8529
8530 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
8531
8532         PR bootstrap/65910
8533         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
8534
8535 2015-04-28  Jason Merrill  <jason@redhat.com>
8536
8537         PR c++/65734
8538         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
8539         (finalize_type_size): Respect TYPE_USER_ALIGN.
8540         (layout_type) [ARRAY_TYPE]: Likewise.
8541
8542 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
8543
8544         * config/arm/arm.md (*arm_movt): Fix type attribute.
8545         (*cmpsi_shiftsi): Likewise.
8546         (*cmpsi_shiftsi_swp): Likewise.
8547         (*movsicc_insn): Likewise.
8548         (*cond_move): Likewise.
8549         (*if_plus_move): Likewise.
8550         (*if_move_plus): Likewise.
8551         (*if_arith_move): Likewise.
8552         (*if_move_arith): Likewise.
8553         (*if_shift_move): Likewise.
8554         (*if_move_shift): Likewise.
8555         (*arm_movtas_ze): Likewise.
8556         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
8557         redundancy and type attribute.
8558         (*thumb2_movsi_insn): Fix type attribute.
8559         (*thumb2_addsi_short): Likewise.
8560         (thumb2_addsi3_compare0): Likewise.
8561         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
8562         attributes accordingly.
8563
8564 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
8565
8566         PR other/65911
8567         * function.c (pad_to_arg_alignment): Add parentheses.
8568
8569 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
8570
8571         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
8572         libgcc/config/frv/elf-lib.h.
8573
8574 2015-04-28  Tom de Vries  <tom@codesourcery.com>
8575
8576         * tree-call-cdce.c: Fix example in header comment.
8577
8578 2015-04-28  Richard Biener  <rguenther@suse.de>
8579
8580         PR tree-optimization/62283
8581         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
8582         fails fatally and we are vectorizing a basic-block simply
8583         cause the child to be constructed piecewise.
8584         (vect_analyze_slp_cost_1): Adjust.
8585         (vect_detect_hybrid_slp_stmts): Likewise.
8586         (vect_bb_slp_scalar_cost): Likewise.
8587         (vect_get_constant_vectors): For piecewise constructed
8588         constants place them after the last def.
8589         (vect_get_slp_defs): Adjust.
8590         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
8591         externals for basic-block vectorization.
8592
8593 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8594
8595         PR target/63503
8596         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
8597         aarch64-*-*.
8598         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
8599         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
8600         (AARCH64_TUNE_FMA_STEERING): Likewise.
8601         * config/aarch64/aarch64-cores.def: Set
8602         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
8603         FMUL/FMADD instructions.
8604         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
8605         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
8606         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
8607         * config/aarch64/cortex-a57-fma-steering.h: New file.
8608         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8609
8610 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
8611
8612         * gensupport.c (std_preds): Add missing codes to address_operand entry.
8613
8614 2015-04-28  Richard Biener  <rguenther@suse.de>
8615
8616         PR tree-optimization/65851
8617         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
8618         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
8619         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
8620         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
8621         (ccp_visit_phi_node): Adjust.
8622         (evaluate_stmt): For simplifications to SSA names return its
8623         lattice value if that isn't VARYING.  Return immediately when
8624         simplified to a constant.
8625         (visit_assignment): Adjust.
8626         (ccp_visit_stmt): Likewise.
8627
8628 2015-04-28  Tom de Vries  <tom@codesourcery.com>
8629
8630         PR tree-optimization/65818
8631         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
8632         evaluated.
8633
8634 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8635
8636         * calls.c (save_fixed_argument_area): Don't check
8637         ARGS_GROW_DOWNWARD with the preprocessor.
8638         (restore_fixed_argument_area): Likewise.
8639         (mem_overlaps_already_clobbered_arg_p): Likewise.
8640         (check_sibcall_argument_overlap): Likewise.
8641         (expand_call): Likewise.
8642         (emit_library_call_value_1): Likewise.
8643         (store_one_arg): Likewise.
8644         * function.c (assign_parms): Likewise.
8645         (locate_and_pad_parm): Likewise.
8646         (pad_to_arg_alignment): Likewise.
8647         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
8648
8649 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8650
8651         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
8652         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
8653         * calls.c (save_fixed_argument_area): Don't chekc if
8654         ARGS_GROW_DOWNWARD is defined.
8655         (restore_fixed_argument_area): Likewise.
8656         (mem_overlaps_already_clobbered_arg_p): Likewise.
8657         (check_sibcall_argument_overlap): Likewise.
8658         (expand_call): Likewise.
8659         (emit_library_call_value_1): Likewise.
8660         (store_one_arg): Likewise.
8661         * function.c (assign_parms): Likewise.
8662         (locate_and_pad_parm): Likewise.
8663         (pad_to_arg_alignment): Likewise.
8664         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
8665
8666 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8667
8668         * defaults.h (gen_epilogue): New function.
8669         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
8670         defined.
8671         * cfgrtl.c (cfg_layout_finalize): Likewise.
8672         * df-scan.c: Likewise.
8673         * function.c (thread_prologue_and_epilogue_insns): Likewise.
8674         (reposition_prologue_and_epilogue_notes): Likewise.
8675         * reorg.c (find_end_label): Likewise.
8676         * toplev.c: Likewise.
8677
8678 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8679
8680         * bb-reorder.c (HAVE_return): Don't check if its undefined.
8681         * defaults.h (gen_simple_return): New function.
8682         (gen_simple_return): Likewise.
8683         (HAVE_return): Add default definition to false.
8684         (HAVE_simple_return): Likewise.
8685         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
8686         HAVE_return and HAVE_simple_return are defined.
8687         * function.c (gen_return_pattern): Likewise.
8688         (convert_jumps_to_returns): Likewise.
8689         (thread_prologue_and_epilogue_insns): Likewise.
8690         * reorg.c (find_end_label): Likewise.
8691         (dbr_schedule): Likewise.
8692         * shrink-wrap.c: Likewise.
8693         * shrink-wrap.h: Likewise.
8694
8695 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8696
8697         * defaults.h (EPILOGUE_USES): Add default definition of false.
8698         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
8699         * resource.c (init_resource_info): Likewise.
8700
8701 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8702
8703         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
8704         to false.
8705         * dwarf2out.c (field_byte_offset): REmove check if
8706         PCC_BITFIELD_TYPE_MATTERS is defined.
8707         * stor-layout.c (layout_decl): Likewise.
8708         (update_alignment_for_field): Likewise.
8709         (place_field): Likewise.
8710
8711 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8712
8713         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
8714         true.
8715         * regrename.c (check_new_reg_p): Remove check if
8716         HARD_REGNO_RENAME_OK is defined.
8717         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
8718
8719 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8720
8721         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
8722         * cse.c (fold_rtx): Likewise.
8723         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
8724         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
8725         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
8726         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
8727         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
8728         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
8729         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
8730         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
8731         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
8732         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
8733         * Likewise.
8734         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
8735         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
8736         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
8737         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
8738         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
8739         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
8740         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
8741         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
8742         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
8743         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
8744         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
8745         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
8746         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
8747         * doc/tm.texi: Regenerate.
8748         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
8749         either true or false.
8750
8751 2015-04-27  Jeff Law  <law@redhat.com>
8752
8753         PR tree-optimization/65217
8754         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
8755         of them has a single use, make sure it is the LHS of the implied
8756         copy.
8757
8758 2015-04-28  Alan Modra  <amodra@gmail.com>
8759
8760         PR target/65810
8761         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
8762         (offsettable_ok_by_alignment): Use minimum of decl and toc
8763         pointer alignment.  Replace dead code with assertion.
8764         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
8765         case if size exceeds toc pointer alignment.
8766         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
8767         (rs6000_emit_move): Likewise.
8768         * configure.ac: Add linker toc pointer alignment check.
8769         * configure: Regenerate.
8770         * config.in: Regenerate.
8771
8772 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
8773
8774         * config.gcc: Add h8300-*-linux.
8775         * config/h8300/linux.h: New.
8776         * config/h8300/t-linux: New.
8777         * config/h8300/h8300.c (h8300_option_override): Normal mode
8778         is not supported for h8300-*-linux.
8779         (h8300_file_start): Target priority change.
8780         (get_shift_alg): Likewise.
8781         (h8300_shift_need_scratch_p): Likewise.
8782         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
8783         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
8784
8785 2015-04-27  Caroline Tice  <cmtice@google.com>
8786
8787         * final.c (final_scan_insn):  Output cold_function_name as function
8788         type.
8789         * varasm.c (cold_function_name):  Make global.
8790         (assemble_start_function):  Re-set cold_function_name.
8791         (assemble_end_function): Output cold partition size.
8792         * varasm.h (cold_function_name):  Declare global.
8793
8794 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
8795
8796         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
8797         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
8798         constraint.
8799         (*movxi_internal_avx512f): Ditto.
8800         (define_split): Check for xmm16+, when splitting scalar float_extend.
8801         (*extendsfdf2_mixed): Use "v" constraint.
8802         (define_split): Check for xmm16+, when splitting scalar float_truncate.
8803         (*truncdfsf_fast_sse): Use "v" constraint.
8804         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
8805         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
8806         (define_peephole2): Check for xmm16+, when converting scalar
8807         float_truncate.
8808         (define_peephole2): Check for xmm16+, when converting scalar
8809         float_extend.
8810         (*fop_<mode>_comm_mixed): Use "v" constraint.
8811         (*fop_<mode>_comm_sse): Ditto.
8812         (*fop_<mode>_1_mixed): Ditto.
8813         (*sqrt<mode>2_sse): Ditto.
8814         (*ieee_s<ieee_maxmin><mode>3): Ditto.
8815
8816 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8817
8818         * combine.c (simplify_if_then_else): Use std::swap instead
8819         of manually swapping.
8820         (known_cond): Likewise.
8821         (simplify_comparison): Likewise.
8822
8823 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
8824
8825         PR target/64579
8826         * config/rs6000/htm.md: Remove all define_expands.
8827         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
8828         UNSPECV_HTM_TABORTWCI): Remove.
8829         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
8830         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
8831         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
8832         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
8833         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
8834         tabortwci_internal): Remove define_insns.
8835         (tabort<wd>c, tabort<wd>ci): New define_insns.
8836         (tabort): Use gpc_reg_operand.
8837         (tcheck): Remove operand.
8838         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
8839         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
8840         expected value.
8841         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
8842         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
8843         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
8844         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
8845         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
8846         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
8847         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
8848         (tcheck): Remove builtin argument.
8849         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
8850         not TARGET_64BIT.
8851         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
8852         tabortdc and tabortdci builtins when not in 64-bit mode.
8853         Modify code to handle the loss of the HTM define_expands.
8854         Emit code to copy the CR register to TARGET.
8855         (htm_init_builtins): Modify code to handle the loss of the HTM
8856         define_expands.
8857         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
8858         (RS6000_BTC_64BIT): Likewise.
8859         (RS6000_BTC_CR): New macro.
8860         * doc/extend.texi: Update documentation for htm builtins.
8861
8862 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8863
8864         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
8865         of manually swapping.
8866         (simplify_associative_operation): Likewise.
8867         (simplify_binary_operation): Likewise.
8868         (simplify_plus_minus): Likewise.
8869         (simplify_relational_operation): Likewise.
8870         (simplify_ternary_operation): Likewise.
8871
8872 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8873
8874         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
8875         (xs_hi_nonmemory_operand): Remove error.
8876         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
8877         general_operand rather than xs_hi_general_operand.
8878
8879 2015-04-27  Richard Biener  <rguenther@suse.de>
8880
8881         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
8882         (record_equivalences_from_stmt): Valueize rhs.
8883         (record_equality): Canonicalize x and y order via
8884         tree_swap_operands_p.  Do not swap operands for same loop depth.
8885
8886 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
8887
8888         PR target/65296
8889         PR target/65895
8890         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
8891         Add hint how to use own spec file.
8892
8893 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
8894
8895         PR tree-optimization/65875
8896         * tree-vrp.c (update_value_range): If in is_new case setting
8897         old_vr to VR_VARYING, also set new_vr to it.  Remove
8898         old_vr->type == VR_VARYING test.
8899         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
8900         SSA_PROP_INTERESTING if update_value_range returned true,
8901         but new range is VR_VARYING.
8902
8903 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
8904
8905         * combine.c (sign_extend_short_imm): New.
8906         (set_nonzero_bits_and_sign_copies): Use above new function for sign
8907         extension of src short immediate.
8908         (reg_nonzero_bits_for_combine): Likewise for tem.
8909
8910 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8911
8912         * stor-layout.c (self_referential_component_ref_p): New predicate.
8913         (copy_self_referential_tree_r): Use it.
8914         (self_referential_size): Punt for simple operations directly involving
8915         self-referential component references.
8916         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
8917
8918 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8919
8920         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
8921
8922 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
8923
8924         * vec.h (vec): Make splice arguments const.  Update definitions
8925         accordingly.
8926
8927 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
8928
8929         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
8930         alternatives.
8931
8932 2015-04-26  Tom de Vries  <tom@codesourcery.com>
8933
8934         PR tree-optimization/65826
8935         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
8936
8937 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
8938
8939         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
8940         (*madd3<mode>): Ditto.
8941         (*msub4<mode>): Ditto.
8942         (*msub3<mode>): Ditto.
8943         (*nmadd4<mode>): Ditto.
8944         (*nmadd3<mode>): Ditto.
8945         (*nmadd4<mode>_fastmath): Ditto.
8946         (*nmadd3<mode>_fastmath): Ditto.
8947         (*nmsub4<mode>): Ditto.
8948         (*nmsub3<mode>): Ditto.
8949         (*nmsub4<mode>_fastmath): Ditto.
8950         (*nmsub3<mode>_fastmath): Ditto.
8951
8952 2015-04-24  Jason Merrill  <jason@redhat.com>
8953
8954         PR c++/50800
8955         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
8956         down when building TYPE_CANONICAL.
8957         (build_pointer_type_for_mode): Likewise.
8958
8959 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
8960
8961         * genrecog.c (validate_pattern): Check matching constraint refers
8962         to a lower numbered operand.
8963
8964 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
8965
8966         PR target/65849
8967         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
8968         save to independent variables use the Save attribute.  This will
8969         allow these options to be modified with the #pragma/attribute
8970         target support.
8971         (-mallow-movmisalign): Likewise.
8972         (-mallow-df-permute): Likewise.
8973         (-msched-groups): Likewise.
8974         (-malways-hint): Likewise.
8975         (-malign-branch-targets): Likewise.
8976         (-mvectorize-builtins): Likewise.
8977         (-msave-toc-indirect): Likewise.
8978
8979         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
8980         can be set via the #pragma/attribute target support.
8981         (rs6000_opt_vars): Likewise.
8982         (rs6000_inner_target_options): If VSX was set, also set
8983         -mno-avoid-indexed-addresses.
8984
8985 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8986
8987         * config/arm/iterators.md (shiftable_ops): Rename to...
8988         (SHIFTABLE_OPS): ... This.  Update use in comments.
8989         (ior_xor): Rename to...
8990         (IOR_XOR): ... This.
8991         (vqh_ops): Rename to...
8992         (VQH_OPS): ... This.
8993         (vqhs_ops): Rename to...
8994         (VQHS_OPS): ... This.
8995         (rshifts): Rename to...
8996         (RSHIFTS): ... This.
8997         (returns): Rename to...
8998         (RETURNS): ... This.
8999         * config/arm/arm.md: Update uses of the above.
9000         * config/arm/neon.md: Likewise.
9001
9002 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9003
9004         * config.host (case ${host}): Add aarch64*-*-linux case.
9005         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
9006         fields to all the cores.
9007         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
9008         Add MCPU_MTUNE_NATIVE_SPECS.
9009         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
9010         field to all extensions.
9011         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
9012         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
9013         Adjust definition of AARCH64_OPT_EXTENSION.
9014         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
9015         (MCPU_MTUNE_NATIVE_SPECS): Define.
9016         * config/aarch64/driver-aarch64.c: New file.
9017         * config/aarch64/x-arch64: New file.
9018         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
9019         -mtune and -march.
9020
9021 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
9022             Wei Mi  <wmi@google.com>
9023
9024         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
9025         * config/i386/i386.c (extract_base_offset_in_addr): New function.
9026         (ix86_operands_ok_for_move_multiple): Ditto.
9027         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
9028         (movlpd/movhpd to movupd peephole2): Ditto.
9029
9030 2015-04-24  Marek Polacek  <polacek@redhat.com>
9031
9032         PR c/61534
9033         * input.h (from_macro_expansion_at): Define.
9034
9035         PR c/63357
9036         * doc/invoke.texi: Update description of -Wlogical-op.
9037
9038 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9039
9040         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
9041         ternary operator in fprintf and harmonize spacing.
9042
9043 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
9044
9045         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
9046         Mark operand1 commutative.
9047
9048 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
9049
9050         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
9051         input operands in memory.
9052         (*vec_concatv2si_sse4_1): Ditto.
9053         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
9054         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
9055         register_operand.
9056         (vec_extract_hi_v32hi): Ditto.
9057         (vec_extract_hi_v64hi): Ditto.
9058         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
9059
9060 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9061             Steven Bosscher <steven@gcc.gnu.org>
9062
9063         PR rtl-optimization/34503
9064         * cprop.c (cprop_reg_p): New.
9065         (hash_scan_set): Use above function to check if register can be
9066         propagated.
9067         (find_avail_set): Return up to two sets, one whose source is a
9068         register and one whose source is a constant.  Sets are returned in an
9069         array passed as parameter rather than as a return value.
9070         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
9071         sets returned by find_avail_set, starting with the one whose source is
9072         a constant. Use cprop_reg_p to check if register can be propagated.
9073         (do_local_cprop): Use cprop_reg_p to check if register can be
9074         propagated.
9075         (implicit_set_cond_p): Likewise.
9076
9077 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
9078
9079         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
9080         (sem_function::equals): IGNORED_NODES parameter is now unused;
9081         update call of equals_private.
9082         (sem_function::equals_private): Do not call equals_wpa; skip
9083         gimple body matching if there is no body.
9084         (sem_function::init): Add logic to hash tthunk info.
9085         (sem_function::parse): Also parse thunks.
9086         * ipa-icf.h (equals_private): Update declaration.
9087
9088 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9089
9090         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
9091         asterisk from name so this can be generated directly.
9092         (*altivec_stvx_<mode>_internal): Likewise.
9093         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
9094         that this is never called during or after reload/lra.
9095         (rs6000_frame_related): Remove split_reg
9096         argument and logic that references it.
9097         (emit_frame_save): Remove last parameter from call to
9098         rs6000_frame_related.
9099         (rs6000_emit_prologue): Remove last parameter from eight calls to
9100         rs6000_frame_related.  Force generation of stvx instruction for
9101         Altivec register saves.  Remove split_reg handling, which is no
9102         longer needed.
9103         (rs6000_emit_epilogue):  Force generation of lvx instruction for
9104         Altivec register restores.
9105
9106 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9107
9108         * config/rs6000/rs6000.opt (mcrypto): Change option description to
9109         match category changes in ISA 2.07B.
9110
9111 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9112
9113         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
9114         iterators.
9115         (cmp_op, cmp_type): New code attributes.
9116         (NEON_VCMP, NEON_VACMP): New int iterators.
9117         (cmp_op_unsp): New int attribute.
9118         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
9119         (neon_vceq<mode>): Delete.
9120         (neon_vc<cmp_op><mode>_insn): New pattern.
9121         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
9122         (neon_vcgeu<mode>): Delete.
9123         (neon_vcle<mode>): Likewise.
9124         (neon_vclt<mode>: Likewise.
9125         (neon_vcage<mode>): Likewise.
9126         (neon_vcagt<mode>): Likewise.
9127         (neon_vca<cmp_op><mode>): New define_expand.
9128         (neon_vca<cmp_op><mode>_insn): New pattern.
9129         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
9130
9131 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
9132
9133         * tree.h (attribute_value_equal): Declare.
9134         * tree.c (attribute_value_equal): Export.
9135
9136 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
9137
9138         * ipa-icf.c (sem_item::compare_attributes): New function.
9139         (sem_item::compare_referenced_symbol_properties): Compare variable
9140         attributes.
9141         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
9142         (sem_function::param_used_p): New function.
9143         (sem_function::equals_wpa): Fix attribute comparsion; match
9144         parameter type codes; do not compare paremter flags when
9145         they are not used; compare edge flags; compare indirect calls.
9146         (sem_item::update_hash_by_addr_refs): Hash reference type.
9147         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
9148         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
9149         reference use type.
9150         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
9151         * ipa-icf.h (compare_attributes, param_used_p): Declare.
9152
9153 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
9154
9155         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
9156         cleanup.
9157         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
9158         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
9159         (sem_item::compare_referenced_symbol_properties): New.
9160         (sem_item::hash_referenced_symbol_properties): New.
9161         (sem_item::compare_cgraph_references): Rename to ...
9162         (sem_item::compare_symbol_references): ... this one; use
9163         compare_referenced_symbol_properties.
9164         (sem_function::equals_wpa): Do not compare
9165         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
9166         DECL_IS_OPERATOR_NEW; compare pointer sizes.
9167         (sem_item::update_hash_by_addr_refs): Call
9168         hash_referenced_symbol_properties.
9169         (sem_item::update_hash_by_local_refs): Cleanup.
9170         (sem_function::merge): Do not mix up symbol properties.
9171         (sem_variable::equals_wpa): Use compare_symbol_references.
9172         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
9173         (sem_item::hash_referenced_symbol_properties): New.
9174         (sem_item::compare_symbol_references): New.
9175         (sem_item::compare_cgraph_references): Remove.
9176
9177 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
9178
9179         PR target/26702
9180         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
9181         Emit size of local.
9182
9183 2015-04-23  Nick Clifton  <nickc@redhat.com>
9184
9185         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
9186         ATTRIBUTE_UNUSED to x parameter.
9187         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
9188
9189 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9190
9191         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
9192         TARGET_CRYPTO to TARGET_P8_VECTOR>
9193         (crypto_vpermxor_<mode>): Likewise.
9194         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
9195         (BU_CRYPTO_3A): Likewise.
9196         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
9197         (BU_CRYPTO_OVERLOAD_3A): New #define.
9198         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
9199         (VPMSUMH): Likewise.
9200         (VPMSUMW): Likewise.
9201         (VPMSUMD): Likewise.
9202         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
9203         (VPERMXOR_V4SI): Likewise.
9204         (VPERMXOR_V8HI): Likewise.
9205         (VPERMXOR_V16QI): Likewise.
9206         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
9207         BU_CRYPTO_OVERLOAD_2A.
9208         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
9209         BU_CRYPTO_OVERLOAD_3A.
9210         * config/rs6000/rs6000.opt (mcrypto): Change description of
9211         option.
9212
9213 2015-04-23  Richard Biener  <rguenther@suse.de>
9214
9215         * passes.def: Remove copy propagation passes run directly after CCP.
9216         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
9217         SSA names.
9218         (ccp_visit_phi_node): Rework to handle first executable edge
9219         specially.
9220
9221 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
9222
9223         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
9224         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
9225         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
9226         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
9227         (thumb_legimitimize_reload_address): Remove.
9228         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
9229         Remove.
9230         (thumb_legimitimize_reload_address): Remove.
9231
9232 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9233
9234         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
9235
9236 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9237
9238         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
9239         MAX_LDM_STM_OPS.
9240         (store_multiple): Likewise.
9241
9242 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9243
9244         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
9245         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
9246         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
9247         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
9248         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
9249         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
9250         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
9251         Specify issue_rate value.
9252         (arm_issue_rate): Look up issue rate from tuning structs. Remove
9253         large switch statement.
9254         (arm_marvell_pj4_tune): New struct.
9255         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
9256         struct.
9257
9258 2015-04-23  Richard Biener  <rguenther@suse.de>
9259
9260         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
9261         (vect_find_last_store_in_slp_instance): Rename to ...
9262         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
9263         (vect_analyze_slp_cost_1): Use vector_load for constant defs
9264         and vec_construct for external defs when estimating prologue cost.
9265         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
9266         Compute costs here only when vectorizing loops.
9267         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
9268         have been determined.
9269         (vect_schedule_slp_instance): Simplify vectorized code placement
9270         and prepare for in-BB external defs.
9271         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
9272         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
9273         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
9274         guard.
9275         (vect_model_load_cost): Likewise.
9276         (vectorizable_store): Instead add it here.
9277         (vectorizable_load): Likewise.
9278         (vect_is_simple_use): Dump def type textually.
9279
9280 2015-04-23  Richard Biener  <rguenther@suse.de>
9281
9282         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
9283         * cfgloop.c (verify_loop_structure): Verify the root loop node.
9284         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
9285         instead of get_eh_region_from_lp_number.
9286         * loop-init.c (fix_loop_structure): If we removed a loop, reset
9287         the SCEV cache.
9288
9289 2015-04-23  Anton Blanchard  <anton@samba.org>
9290
9291         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
9292         need for -mprofile-kernel to save LR to stack.
9293
9294 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9295
9296         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
9297         adjustments.
9298         (insn_is_swappable_p): Return 1 for a convert from double to
9299         single precision when all of its uses are splats of BE element
9300         zero.
9301
9302 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
9303
9304         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
9305
9306 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9307
9308         PR target/65456
9309         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
9310         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
9311         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
9312         option.
9313         (rs6000_builtin_mask_for_load): Return 0 for targets with
9314         efficient unaligned VSX accesses so that the vectorizer will use
9315         direct unaligned loads.
9316         (rs6000_builtin_support_vector_misalignment): Always return true
9317         for targets with efficient unaligned VSX accesses.
9318         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
9319         stores on targets with efficient unaligned VSX accesses is almost
9320         always the same as the cost of an aligned load or store, so model
9321         it that way.
9322         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
9323         unaligned vectors if we have efficient unaligned VSX accesses.
9324         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
9325         undocumented option.
9326
9327 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9328
9329         Revert:
9330         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
9331
9332         * config.gcc (LIBC_MUSL): New tm_defines macro.
9333         * config/linux.h (OPTION_MUSL): Define.
9334         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
9335         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
9336         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
9337
9338         * config/linux.opt (mmusl): New option.
9339         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
9340         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
9341
9342         * configure: Regenerate.
9343
9344 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
9345
9346         * config.gcc (LIBC_MUSL): New tm_defines macro.
9347         * config/linux.h (OPTION_MUSL): Define.
9348         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
9349         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
9350         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
9351
9352         * config/linux.opt (mmusl): New option.
9353         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
9354         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
9355
9356         * configure: Regenerate.
9357
9358 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
9359
9360         * doc/invoke.texi (-fsanitize-sections): Update description.
9361         * asan.c (set_sanitized_sections): Parse incoming arg.
9362         (section_sanitized_p): Support wildcards.
9363
9364 2015-04-22  Tom de Vries  <tom@codesourcery.com>
9365
9366         PR tree-optimization/65823
9367         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
9368         equality between ap_copy and ap.
9369
9370 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9371
9372         PR target/47098
9373         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
9374
9375 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9376
9377         PR target/47122
9378         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
9379
9380 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9381
9382         PR target/55144
9383         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
9384         remove already contained t-files.
9385
9386 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9387
9388         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
9389         Remove unneeded forward declarations.
9390         (suitable_for_tail_call_opt_p): Commentary typo fix.
9391
9392 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9393
9394         * varasm.c (emit_bss): Remove redundant guard.
9395
9396 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9397
9398         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
9399
9400 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9401
9402         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
9403
9404 2015-04-22  Hale Wang  <hale.wang@arm.com>
9405             Terry Guo  <terry.guo@arm.com>
9406
9407         PR rtl-optimization/64818
9408         * combine.c (can_combine_p): Don't combine user-specified
9409         register if it is in an asm input.
9410
9411 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
9412
9413         PR ipa/65076
9414         * passes.def (early_optimizations): Add pass_dse.
9415
9416 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9417
9418         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
9419         * reorg.c (redundant_insn): Remove ifdef
9420         INSN_REFERENCES_ARE_DELAYED.
9421         * resource.c (mark_referenced_resources): Likewise.
9422
9423 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9424
9425         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
9426         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
9427         * resource.c (mark_set_resources): Likewise.
9428
9429 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9430
9431         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
9432         * cfgcleanup.c (flow_find_cross_jump): Likewise.
9433         (flow_find_head_matching_sequence): Likewise.
9434         (try_head_merge_bb): Likewise.
9435         * combine.c (can_combine_p): Likewise.
9436         (try_combine): Likewise.
9437         (distribute_notes): Likewise.
9438         * df-problems.c (can_move_insns_across): Likewise.
9439         * final.c (final): Likewise.
9440         * gcse.c (insert_insn_end_basic_block): Likewise.
9441         * ira.c (find_moveable_pseudos): Likewise.
9442         * reorg.c (try_merge_delay_insns): Likewise.
9443         (fill_simple_delay_slots): Likewise.
9444         (fill_slots_from_thread): Likewise.
9445         * sched-deps.c (sched_analyze_2): Likewise.
9446
9447 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9448
9449         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
9450         PIC_OFFSET_TABLE_REGNUM.
9451
9452 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9453
9454         * alias.c (init_alias_target): Remove ifdef
9455         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
9456         * df-scan.c (df_insn_refs_collect): Likewise.
9457         (df_get_regular_block_artificial_uses): Likewise.
9458         (df_get_eh_block_artificial_uses): Likewise.
9459         (df_get_entry_block_def_set): Likewise.
9460         (df_get_exit_block_use_set): Likewise.
9461         * emit-rtl.c (gen_rtx_REG): Likewise.
9462         * ira.c (ira_setup_eliminable_regset): Likewise.
9463         * reginfo.c (init_reg_sets_1): Likewise.
9464         * regrename.c (rename_chains): Likewise.
9465         * reload1.c (reload): Likewise.
9466         (eliminate_regs_in_insn): Likewise.
9467         * resource.c (mark_referenced_resources): Likewise.
9468         (init_resource_info): Likewise.
9469
9470 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9471
9472         * defaults.h (MASK_RETURN_ADDR): New definition.
9473         * except.c (expand_builtin_extract_return_addr): Remove ifdef
9474         MASK_RETURN_ADDR.
9475
9476 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9477
9478         * defaults.h (RETURN_ADDR_OFFSET): New definition.
9479         * except.c (expand_builtin_extract_return_addr): Remove ifdef
9480         RETURN_ADDR_OFFSET.
9481         (expand_builtin_frob_return_addr): Likewise.
9482
9483 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9484
9485         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
9486         (try_redirect_by_replacing_jump): Likewise.
9487         (rtl_tidy_fallthru_edge): Likewise.
9488         * combine.c (insn_a_feeds_b): Likewise.
9489         (find_split_point): Likewise.
9490         (simplify_set): Likewise.
9491         * cprop.c (cprop_jump): Likewise.
9492         * cse.c (cse_extended_basic_block): Likewise.
9493         * df-problems.c (can_move_insns_across): Likewise.
9494         * function.c (emit_use_return_register_into_block): Likewise.
9495         * haifa-sched.c (sched_init): Likewise.
9496         * ira.c (find_moveable_pseudos): Likewise.
9497         * loop-invariant.c (find_invariant_insn): Likewise.
9498         * lra-constraints.c (curr_insn_transform): Likewise.
9499         * postreload.c (reload_combine_recognize_const_pattern):
9500         * Likewise.
9501         * reload.c (find_reloads): Likewise.
9502         * reorg.c (delete_scheduled_jump): Likewise.
9503         (steal_delay_list_from_target): Likewise.
9504         (steal_delay_list_from_fallthrough): Likewise.
9505         (redundant_insn): Likewise.
9506         (fill_simple_delay_slots): Likewise.
9507         (fill_slots_from_thread): Likewise.
9508         (delete_computation): Likewise.
9509         * sched-rgn.c (add_branch_dependences): Likewise.
9510
9511 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9512
9513         * genconfig.c (main): Always define HAVE_cc0.
9514         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
9515         HAVE_cc0.
9516         * cfgcleanup.c (flow_find_cross_jump): Likewise.
9517         (flow_find_head_matching_sequence): Likewise.
9518         (try_head_merge_bb): Likewise.
9519         * cfgrtl.c (rtl_merge_blocks): Likewise.
9520         (try_redirect_by_replacing_jump): Likewise.
9521         (rtl_tidy_fallthru_edge): Likewise.
9522         * combine.c (do_SUBST_MODE): Likewise.
9523         (insn_a_feeds_b): Likewise.
9524         (combine_instructions): Likewise.
9525         (can_combine_p): Likewise.
9526         (try_combine): Likewise.
9527         (find_split_point): Likewise.
9528         (subst): Likewise.
9529         (simplify_set): Likewise.
9530         (distribute_notes): Likewise.
9531         * cprop.c (cprop_jump): Likewise.
9532         * cse.c (cse_extended_basic_block): Likewise.
9533         * df-problems.c (can_move_insns_across): Likewise.
9534         * final.c (final): Likewise.
9535         (final_scan_insn): Likewise.
9536         * function.c (emit_use_return_register_into_block): Likewise.
9537         * gcse.c (insert_insn_end_basic_block): Likewise.
9538         * haifa-sched.c (sched_init): Likewise.
9539         * ira.c (find_moveable_pseudos): Likewise.
9540         * loop-invariant.c (find_invariant_insn): Likewise.
9541         * lra-constraints.c (curr_insn_transform): Likewise.
9542         * optabs.c (prepare_cmp_insn): Likewise.
9543         * postreload.c (reload_combine_recognize_const_pattern):
9544         * Likewise.
9545         * reload.c (find_reloads): Likewise.
9546         (find_reloads_address_1): Likewise.
9547         * reorg.c (delete_scheduled_jump): Likewise.
9548         (steal_delay_list_from_target): Likewise.
9549         (steal_delay_list_from_fallthrough): Likewise.
9550         (try_merge_delay_insns): Likewise.
9551         (redundant_insn): Likewise.
9552         (fill_simple_delay_slots): Likewise.
9553         (fill_slots_from_thread): Likewise.
9554         (delete_computation): Likewise.
9555         (relax_delay_slots): Likewise.
9556         * sched-deps.c (sched_analyze_2): Likewise.
9557         * sched-rgn.c (add_branch_dependences): Likewise.
9558
9559 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9560
9561         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
9562         that is trivially ded on non cc0 targets.
9563         (simplify_set): Likewise.
9564         (mark_used_regs_combine): Likewise.
9565         * cse.c (new_basic_block): Likewise.
9566         (fold_rtx): Likewise.
9567         (cse_insn): Likewise.
9568         (cse_extended_basic_block): Likewise.
9569         (set_live_p): Likewise.
9570         * rtlanal.c (canonicalize_condition): Likewise.
9571         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
9572
9573 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9574
9575         * conditions.h: Define macros even if HAVE_cc0 is undefined.
9576         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
9577         * final.c: Likewise.
9578         * jump.c: Likewise.
9579         * recog.c: Likewise.
9580         * recog.h: Declare functions even when HAVE_cc0 is undefined.
9581         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
9582
9583 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
9584
9585         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
9586         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
9587         * builtins.c (expand_builtin): Remove check if
9588         EH_RETURN_DATA_REGNO is defined.
9589         * df-scan.c (df_bb_refs_collect): Likewise.
9590         (df_get_exit_block_use_set): Likewise.
9591         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
9592         * ira-lives.c (process_bb_node_lives): Likewise.
9593         * lra-lives.c (process_bb_lives): Likewise.
9594
9595 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
9596
9597         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
9598         FIRST_PSEUDO_REG): New.
9599         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
9600         (ARG_POINTER_REGNUM): Define to ARGP_REG.
9601         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
9602         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
9603         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
9604         (FIRST_INT_REG): New.
9605         (LAST_INT_REG): New.
9606         (FIRST_*_REG): Define using *_REG.
9607         (LAST_*_REG): Ditto.
9608         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
9609         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
9610         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
9611
9612 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9613
9614         * expmed.c: (synth_mult): Only assume overlapping
9615         shift with previous steps in alg_sub_t_m2 case.
9616
9617 2015-04-21  Richard Biener  <rguenther@suse.de>
9618
9619         PR tree-optimization/65650
9620         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
9621         transitions involving copies.
9622         (set_lattice_value): Adjust for copy lattice state.
9623         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
9624         if that doesn't dominate the merge point.
9625         (bit_value_unop): Adjust what we treat as varying mask.
9626         (bit_value_binop): Likewise.
9627         (bit_value_assume_aligned): Likewise.
9628         (evaluate_stmt): When we simplified to a SSA name record a copy
9629         instead of dropping to varying.
9630         (visit_assignment): Simplify.
9631
9632         * gimple-match.h (gimple_simplify): Add another callback.
9633         * gimple-fold.c (fold_stmt_1): Adjust caller.
9634         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
9635         for the 2nd callback.
9636         * gimple-match-head.c (gimple_simplify): Add a callback that is
9637         used to valueize the stmt operands and use it that way.
9638
9639 2015-04-21  Richard Biener  <rguenther@suse.de>
9640
9641         PR tree-optimization/65788
9642         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
9643
9644 2015-04-21  Richard Biener  <rguenther@suse.de>
9645
9646         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
9647         vec_construct cost by vec_stmt_cost.
9648
9649 2015-04-21  Richard Biener  <rguenther@suse.de>
9650
9651         * cfghooks.h (create_basic_block): Replace with two overloads
9652         for RTL and GIMPLE.
9653         (split_block): Likewise.
9654         * cfghooks.c (split_block): Rename to ...
9655         (split_block_1): ... this.
9656         (split_block): Add two type-safe overloads for RTL and GIMPLE.
9657         (split_block_after_labels): Call split_block_1.
9658         (create_basic_block): Rename to ...
9659         (create_basic_block_1): ... this.
9660         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
9661         (create_empty_bb): Call create_basic_block_1.
9662         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
9663         split_block_after_labels.
9664         * omp-low.c (expand_parallel_call): Likewise.
9665         (expand_omp_target): Likewise.
9666         (simd_clone_adjust): Likewise.
9667         * tree-chkp.c (chkp_get_entry_block): Likewise.
9668         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
9669         create_basic_block overload.
9670         (cgraph_node::expand_thunk): Likewise.
9671         * tree-cfg.c (make_blocks): Likewise.
9672         (handle_abnormal_edges): Likewise.
9673         * tree-inline.c (copy_bb): Likewise.
9674
9675 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9676
9677         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
9678         New pattern.
9679         (*xor_one_cmplsidi3_ze): Likewise.
9680
9681 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
9682
9683         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
9684         use df_remove_problem rather than manually removing problems, leaving
9685         holes in df->problems_in_order[].
9686
9687 2015-04-21  Tom de Vries  <tom@codesourcery.com>
9688
9689         PR tree-optimization/65802
9690         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
9691
9692 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9693
9694         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
9695         Increase to 128.
9696         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
9697         at '.'.  Assert that there's enough space for everything.
9698
9699 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
9700
9701         PR tree-optimization/64950
9702         Revert:
9703         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
9704
9705         PR target/41089
9706         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
9707         as volatile.
9708
9709 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
9710
9711         PR rtl-optimization/64916
9712         * cfgcleanup.c (values_equal_p): New function.
9713         (can_replace_by): Use it.
9714
9715 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
9716
9717         PR c++/65801
9718         * doc/invoke.texi ([-Wnarrowing]): Update.
9719
9720 2015-04-20  Jeff Law  <law@redhat.com>
9721
9722         PR tree-optimization/65658
9723         * tree-ssa-threadupdate.c (redirection_block_p): Remove
9724         redundant test for GIMPLE_ASSIGN in last change.
9725
9726 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
9727
9728         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
9729         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
9730         (legitimize_tls_address): Ditto.
9731         (ix86_expand_move): Ditto.
9732         (ix86_expand_binary_operator): Remove reload_in_progress checks.
9733         (ix86_expand_unary_operator): Ditto.
9734         * config/i386/predicates.md (index_register_operand): Ditto.
9735
9736 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
9737
9738         * reorg.c (try_merge_delay_insns): Improve correctness checking
9739         for targets with multiple delay slots.
9740
9741 2015-04-20  Jeff Law  <law@redhat.com>
9742
9743         PR tree-optimization/65658
9744         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
9745         statements too.
9746
9747 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
9748
9749         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
9750         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
9751         Delete.
9752
9753 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
9754
9755         PR debug/65807
9756         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
9757
9758 2015-04-20  Richard Biener  <rguenther@suse.de>
9759
9760         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
9761         * gimple-fold.c (gimple_build_valueize): New function.
9762         (gimple_build): Always use gimple_build_valueize as valueize hook.
9763
9764 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
9765
9766         PR target/64134
9767         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
9768         and overwrite variable parts if <= 1/2 the elements are variable.
9769
9770 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
9771
9772         PR rtl-optimization/65805
9773         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
9774         Don't use difference of offset and previous offset if
9775         update_sp_offset is non-zero.
9776         (eliminate_regs_in_insn): Ditto.
9777         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
9778         lra_eliminate_regs_1 call.
9779         * lra-constraints.c (get_equiv_with_elimination): Ditto.
9780
9781 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
9782
9783         * hash-table.h: Remove version of hash_table that stored value_type *.
9784         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
9785         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
9786         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
9787         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
9788         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
9789         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
9790         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
9791         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
9792         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
9793         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
9794         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
9795         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
9796         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
9797         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
9798         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
9799         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
9800
9801 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9802             Jakub Jelinek  <jakub@redhat.com>
9803
9804         PR target/65787
9805         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
9806         subsequent SH_NONE operand does not overwrite an existing *special
9807         value.
9808         (adjust_extract): Handle case where a vec_extract operation is
9809         wrapped in a PARALLEL.
9810
9811 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9812
9813         PR target/65780
9814         * config/i386/i386.c (ix86_binds_local_p): Define only if
9815         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
9816
9817 2015-04-17  Jeff Law  <law@redhat.com>
9818
9819         PR tree-optimization/47679
9820         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
9821         * tree-ssa-scopedtables.c: New file.
9822         * tree-ssa-scopedtables.h: New file.
9823         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
9824         (const_and_copies): Change name/type.
9825         (record_const_or_copy): Move into tree-ssa-scopedtables.c
9826         (record_const_or_copy_1): Similarly.
9827         (restore_vars_to_original_value): Similarly.
9828         (pass_dominator::execute): Create and destroy const_and_copies table.
9829         (thread_across_edge): Update passing of const_and_copies.
9830         (record_temporary_equivalence): Use method calls rather than
9831         manipulating const_and_copies directly.
9832         (record_equality, cprop_into_successor_phis): Similarly.
9833         (dom_opt_dom_walker::before_dom_children): Similarly.
9834         (dom_opt_dom_walker::after_dom_children): Similarly.
9835         (eliminate_redundant_computations): Similarly.
9836         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
9837         (record_temporary_equivalence): Likewise.
9838         (invalidate_equivalences): Likewise.
9839         (record_temporary_equivalences_from_phis): Update due to type
9840         change of const_and_copies.  Use method calls rather than
9841         manipulating the stack directly.
9842         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
9843         (thread_through_normal_block, thread_across_edge): Likewise.
9844         (thread_across_edge): Likewise.
9845         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
9846         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
9847         of equiv_stack.
9848         (identify_jump_threads): Update due to type change of equiv_stack.
9849         (finalize_jump_threads): Delete the equiv_stack when complete.
9850
9851 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
9852
9853         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
9854         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
9855         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
9856
9857 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
9858
9859         PR target/65535
9860         * config.gcc: Exit with a comment when we do not have a major version
9861         number for the FreeBSD target.
9862
9863 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
9864
9865         PR target/65689
9866         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
9867         maybe_allows_mem bitfields.
9868         (maybe_allows_none_start, maybe_allows_none_end,
9869         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
9870         maybe_allows_mem_end): New variables.
9871         (compute_maybe_allows): New function.
9872         (add_constraint): Use it to initialize maybe_allows_reg and
9873         maybe_allows_mem fields.
9874         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
9875         is_address constraints such that those that allow neither mem nor
9876         reg come first, then those that only allow reg but not mem, then
9877         those that only allow mem but not reg, then the rest.
9878         (write_allows_reg_mem_function): New function.
9879         (write_tm_preds_h): Call it.
9880         * stmt.c (parse_output_constraint, parse_input_constraint): Use
9881         the generated insn_extra_constraint_allows_reg_mem function
9882         instead of always setting *allows_reg = true; *allows_mem = true;
9883         for unknown extra constraints.
9884
9885 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
9886
9887         PR target/65780
9888         * output.h (default_binds_local_p_3): New.
9889         * varasm.c (default_binds_local_p_3): Make it public.  Take an
9890         argument to indicate if common symbol may be local.  If common
9891         symbol may be local, treat non-external variable as defined
9892         locally.
9893         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
9894         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
9895         * config/i386/i386.c (ix86_binds_local_p): New.
9896         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
9897         ix86_binds_local_p.
9898
9899 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
9900
9901         PR debug/65771
9902         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
9903         trying mem_loc_descriptor on XEXP (rtl, 0).
9904
9905 2015-04-17  Martin Liska  <mliska@suse.cz>
9906
9907         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
9908         Release symbol_compare_collection.
9909         * ipa-reference.c: Add TODO that a vector should be released.
9910
9911 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
9912
9913         PR target/65296
9914         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
9915         to new AVR-LibC file layout (bug #44574).
9916         (*avrlibc_devicelib): Same.
9917         * config/avr/avr-mcus.def: Adjust comments.
9918         * config/avr/avr.opt (nodevicelib): Adjust help.
9919
9920 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
9921
9922         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
9923
9924 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
9925
9926         PR c++/64527
9927         * gimplify.c (gimplify_init_constructor): Always emit a
9928         side-effecting constructor.
9929
9930 2015-04-17  Tom de Vries  <tom@codesourcery.com>
9931
9932         PR tree-optimization/64950
9933         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
9934         in cfun->curr_properties.
9935         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
9936         if we generate an IFN_VA_ARG.
9937         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
9938         function if PROP_gimple_lva is not set in src function.
9939
9940 2015-04-17  Tom de Vries  <tom@codesourcery.com>
9941             Michael Matz  <matz@suse.de>
9942
9943         PR tree-optimization/64950
9944         * gimple-iterator.c (update_modified_stmts): Remove static.
9945         * gimple-iterator.h (update_modified_stmts): Declare.
9946         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
9947         (gimplify_va_arg_internal): New function.
9948         (gimplify_va_arg_expr): Use IFN_VA_ARG.
9949         * gimplify.h (gimplify_va_arg_internal): Declare.
9950         * internal-fn.c (expand_VA_ARG): New unreachable function.
9951         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
9952         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
9953         (expand_ifn_va_arg): New function.
9954         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
9955         (pass_stdarg::execute): Call expand_ifn_va_arg.
9956         (pass_data_lower_vaarg): New pass_data.
9957         (pass_lower_vaarg): New gimple_opt_pass.
9958         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
9959         (make_pass_lower_vaarg): New function.
9960         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
9961         properties_required field.
9962         * passes.def (all_passes): Add pass_lower_vaarg.
9963         * tree-pass.h (PROP_gimple_lva): Add define.
9964         (make_pass_lower_vaarg): Declare.
9965
9966 2015-04-17  Tom de Vries  <tom@codesourcery.com>
9967
9968         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
9969         * calls.c (call_expr_flags): Same.
9970
9971 2015-04-17  Tom de Vries  <tom@codesourcery.com>
9972
9973         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
9974         (pass_stdarg::execute): ... here.
9975
9976 2015-04-17  Tom de Vries  <tom@codesourcery.com>
9977             Michael Matz  <matz@suse.de>
9978
9979         * tree-cfg.c (make_blocks_1): Factor out of ...
9980         (make_blocks): ... here.
9981         (make_edges_bb): Factor out of ...
9982         (make_edges): ... here.
9983         (gimple_find_sub_bbs): New function.
9984         * tree-cfg.h (gimple_find_sub_bbs): Declare.
9985
9986 2015-04-17  Tom de Vries  <tom@codesourcery.com>
9987
9988         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
9989
9990 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
9991
9992         * asan.c (set_sanitized_sections): New function.
9993         (section_sanitized_p): Ditto.
9994         (asan_protect_global): Optionally sanitize user-defined
9995         sections.
9996         * asan.h (set_sanitized_sections): Declare new function.
9997         * common.opt (fsanitize-sections): New option.
9998         * doc/invoke.texi (-fsanitize-sections): Document new option.
9999         * opts-global.c (handle_common_deferred_options): Handle new
10000         option.
10001
10002 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
10003
10004         PR debug/65771
10005         * dwarf2out.c (loc_list_from_tree): Return NULL
10006         for DEBUG_EXPR_DECL.
10007
10008 2015-04-17  Christian Bruel  <christian.bruel@st.com>
10009
10010         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
10011         same attributes.
10012
10013 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
10014
10015         * ira-color.c (setup_left_conflict_sizes_p): Do not process
10016         node itself when computing left conflict subnode size.
10017
10018 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
10019
10020         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
10021         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
10022         *fop_<mode>_1_sse using enabled attribute.  Use
10023         register_mixssei387nonimm_operand operand 1 predicate. Change
10024         alternative 3 constraints from "x" to "v".
10025
10026 2015-04-16  Richard Biener  <rguenther@suse.de>
10027
10028         PR tree-optimization/65774
10029         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
10030         bit-value tracking on.
10031
10032 2015-04-16  Richard Biener  <rguenther@suse.de>
10033
10034         PR tree-optimization/64277
10035         * tree-vrp.c (check_array_ref): Fix anti-range handling,
10036         simplify upper bound handling.
10037         (search_for_addr_array): Simplify.
10038         (check_array_bounds): Handle ADDR_EXPRs here.
10039         (check_all_array_refs): Simplify.
10040
10041 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
10042
10043         * config/i386/i386.c (print_reg): Rewrite function.
10044
10045 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
10046
10047         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
10048         Invert the condition.
10049
10050 2015-04-16  Renlin Li  <renlin.li@arm.com>
10051
10052         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
10053         simplifications for UNSIGNED_FLOAT.
10054
10055 2015-04-16  Nick Clifton  <nickc@redhat.com>
10056
10057         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
10058         MUL_UNINIT.
10059         (enum rl78_cpu_type): New.
10060         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
10061         (umulhi3_shift_virt): Remove m constraint from operand 1.
10062         (umulqihi3_virt): Likewise.
10063         * config/rl78/rl78.c (rl78_option_override): Add code to process
10064         -mcpu and -mmul options.
10065         (rl78_alloc_physical_registers): Add code to handle divhi and
10066         divsi valloc attributes.
10067         (set_origin): Likewise.
10068         * config/rl78/rl78.h (RL78_MUL_G14): Define.
10069         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
10070         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
10071         __RL78_Gxx__.
10072         (ASM_SPEC): Pass -mcpu on to assembler.
10073         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
10074         (mulqi3_rl78): Likewise.
10075         (mulhi3_g13): Likewise.
10076         (mulhi3): Generate the G13 or G14 versions of the insn directly.
10077         (mulsi3): Likewise.
10078         (mulhi3_g14): Add clobbers of AX and BC.
10079         (mulsi3_g14): Likewise.
10080         (mulsi3_g13): Likewise.
10081         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
10082         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
10083         * config/rl78/rl78.opt (mmul): Initialise value to
10084         RL78_MUL_UNINIT.
10085         (mcpu): New option.
10086         (m13, m14, mrl78): New option aliases.
10087         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
10088         (MULTILIB_DIRNAMES): Add g13 and g14.
10089         * doc/invoke.texi: Document -mcpu and -mmul options.
10090
10091 2015-04-16  Richard Biener  <rguenther@suse.de>
10092
10093         * tree-ssa-ccp.c (likely_value): See if we have operands that
10094         are marked as never simulate again and return CONSTANT in this
10095         case.
10096         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
10097         not have any operands that will be simulated again as
10098         not being simulated again.
10099
10100 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
10101
10102         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
10103         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
10104         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
10105         attribute.
10106         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
10107         enabled attribute.
10108         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
10109         *float<SWI48:mode><MODEF:mode>2_sse.
10110         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
10111         enabled attribute.
10112         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
10113         enabled attribute.
10114
10115 2015-04-15  Tom de Vries  <tom@codesourcery.com>
10116
10117         PR other/65487
10118         * function.c (push_dummy_function): New function.
10119         (init_dummy_function_start): Use push_dummy_function.
10120         (pop_dummy_function): New function.  Factored out of ...
10121         (expand_dummy_function_end): ... here.
10122         * function.h (push_dummy_function, pop_dummy_function): Declare.
10123         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
10124         pop_dummy_function.
10125         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
10126
10127 2015-04-15  Jeff Law  <law@redhat.com>
10128
10129         PR tree-optimization/47679
10130         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
10131         need for forward declaration in upcoming changes.
10132         (record_conditions, record_edge_info): Likewise.
10133
10134         PR rtl-optimization/42522
10135         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
10136         SIGN_EXTRACT as a whole object rather than simplifying
10137         its operand.
10138
10139 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
10140
10141         PR ipa/65765
10142         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
10143         and GIMPLE_PREDICT use break instead of return true. For
10144         GIMPLE_EH_DISPATCH, compare dispatch region.
10145
10146 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
10147
10148         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
10149         details about the implementation.  Make clear preference for
10150         __atomic builtins.  Reduce possibility of future change.
10151
10152 2015-04-15  Nick Clifton  <nickc@redhat.com>
10153
10154         * config/rx/rx.opt (mallow-string-insns): New option.
10155         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
10156         builtin if string instructions are denied.
10157         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
10158         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
10159         appropriate.
10160         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
10161         * config/rx/rx.md (movstr): Enable pattern only if string
10162         instructions are allowed.
10163         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
10164         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
10165         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
10166         (MULTILIB_DIRNAMES): Add no-strings.
10167         * doc/invoke.texi: Document -mno-allow-string-insns.
10168
10169 2015-04-15  Alan Modra  <amodra@gmail.com>
10170
10171         PR target/65408
10172         PR target/58744
10173         PR middle-end/36043
10174         * calls.c (load_register_parameters): Don't load past end of
10175         mem unless suitably aligned.
10176
10177 2015-04-15  Nick Clifton  <nickc@redhat.com>
10178
10179         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
10180         decrement instruction as being frame related.
10181         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
10182         based addresses.
10183         If zero extending a function address enclose the operation in
10184         %code(...).
10185         (rl78_preferred_reload_class): New function.
10186         (TARGET_PREFERRED_RELOAD_CLASS): Define.
10187         * config/rl78/rl78.md: Remove useless constraints in expanders.
10188         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
10189         (mulhi3_rl78): Likewise.
10190         (mulhi3_g13): Likewise.
10191         (mulsi3_rl78): Likewise.
10192         (es_addr): Move to before the multiply patterns.
10193
10194 2015-04-15  Alan Modra  <amodra@gmail.com>
10195
10196         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
10197         and sequence_stack.  Add seq.
10198         (seq_stack): Delete.
10199         * function.c (prepare_function_start): Don't access x_last_insn.
10200         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
10201         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
10202         * emit_rtl.c (start_sequence, push_topmost_sequence,
10203         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
10204         sequence accessors.
10205         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
10206         remove_insn): Likewise.  Simplify.
10207         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
10208         and pop_topmost_sequence.
10209         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
10210         debug insns.
10211         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
10212
10213 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
10214
10215         PR target/65729
10216         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
10217         the assertiion.
10218
10219 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
10220
10221         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
10222         (LEGACY_INT_REGNO_P): Ditto.
10223         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
10224         (ANY_MASK_REG_P): Remove.
10225         (BND_REG_P): Rename from ANY_BND_REG_P.
10226         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
10227         legacy integer registers.  Do not handle MMX_REG_P in a special way.
10228         Merge 64byte and 32byte SSE handling.
10229
10230 2015-04-14  Nick Clifton  <nickc@redhat.com>
10231
10232         * expr.c (expand_assignment): Force an address offset computation
10233         into a register before changing its mode.
10234         (expand_expr_real_1): Likewise.
10235
10236 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
10237
10238         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
10239         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
10240         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
10241         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
10242         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
10243         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
10244         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
10245         and __aarch64_vget_lane_any.
10246
10247 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
10248
10249         PR rtl-optimization/65761
10250         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
10251         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
10252
10253 2015-04-14  Richard Biener  <rguenther@suse.de>
10254
10255         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
10256         (graphite_can_represent_scev): Use POINTER_TYPE_P.
10257
10258 2015-04-14  Richard Biener  <rguenther@suse.de>
10259
10260         PR tree-optimization/65758
10261         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
10262         against -1.
10263         (ccp_lattice_meet): Likewise.
10264         (bit_value_unop): Likewise.
10265         (bit_value_binop): Likewise.
10266         (bit_value_assume_aligned): Likewise.
10267
10268 2015-04-14  Christian Bruel  <christian.bruel@st.com>
10269
10270         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
10271         function.
10272
10273 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
10274
10275         PR tree-optimization/63387
10276         * match.pd ((x unord x) | (y unord y) -> (x unord y),
10277         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
10278
10279 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
10280
10281         * config/i386/predicates.md (any_QIreg_operand): Rename from
10282         q_regs_operand.  Do not process subregs.
10283         (QIreg_operand): Use QI_REGNO_P predicate.
10284         (ext_QIreg_operand): Ditto.
10285         (ext_register_operand): Ditto.
10286         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
10287         (AND splitters): Ditto.
10288         (AND with -65536 splitter): Add SWI48 mode for operand 0.
10289         (AND with -256 splitter): Use any_QIreg_operand predicate and
10290         SWI248 mode for operand 0.
10291         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
10292         mode for operand 0.
10293         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
10294
10295 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
10296
10297         * doc/plugins.texi: Rewrite first introductory paragraph.
10298
10299 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
10300
10301         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
10302         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
10303
10304 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
10305
10306         * ipa-profie.c (ipa_profile): Check number of parameters
10307         and possible polymorphic call targets before
10308         devirtualizing.
10309
10310 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
10311
10312         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
10313         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
10314
10315 2015-04-13  Richard Biener  <rguenther@suse.de>
10316
10317         PR tree-optimization/65204
10318         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
10319         takens for bit-CCP.
10320
10321 2015-04-13  Richard Biener  <rguenther@suse.de>
10322
10323         PR target/65660
10324         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
10325         and cond_not_taken_branch_cost to 4 and 2.
10326         (bdver2_cost): Likewise.
10327         (bdver3_cost): Likewise.
10328         (bdver4_cost): Likewise.
10329
10330 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
10331
10332         * hash-table.h (hash_table constructor): Add mem stats.
10333         (alloc_entries): Likewise.
10334
10335 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
10336
10337         * ipa-cp.c (ipcp_driver): Relase prev_edge.
10338         * passes.c (execute_one_pass): Only add transform if pass has one.
10339
10340 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
10341
10342         * config/i386/i386.c (ix86_option_override_internal): Don't set
10343         -fprefetch-loop-arrays if optimizing for size.
10344
10345 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
10346             Gerald Pfeifer  <gerald@pfeifer.com>
10347
10348         * doc/contrib.texi (Contributors): Add Martin Jambor and
10349         Michael Matz.
10350
10351 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
10352
10353         * BASE-VER: Set to 6.0.0.
10354
10355         PR tree-optimization/65747
10356         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
10357         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
10358
10359 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
10360
10361         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
10362         sentence.  Improve grammar.
10363
10364 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
10365
10366         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
10367
10368 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
10369
10370         PR ipa/65743
10371         * ipa-inline-transform.c (speculation_removed): Remove static var.
10372         (check_speculations): New function.
10373         (clone_inlined_nodes): Do not check spculations.
10374         (inline_call): Call check_speculations.
10375         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
10376         consider non-invariants.
10377
10378 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
10379             Martin Liska  <mliska@suse.cz>
10380
10381         PR ipa/65722
10382         * ipa-icf.c (sem_item::compare_cgraph_references): function and
10383         variable can not match.
10384         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
10385         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
10386
10387 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
10388
10389         PR tree-optimization/65735
10390         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
10391         Remove visited_phis argument, add visited_bbs, avoid recursing into the
10392         same bb rather than just into the same phi node.
10393         (thread_through_normal_block): Adjust caller.
10394
10395 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
10396
10397         * doc/contrib.texi (Contributors): Add Ira Rosen.
10398
10399 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
10400
10401         * gcov.c (find_source): Fix miswording in error message.
10402         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
10403         (ix86_expand_sse_comi_round): Fix typo in error message.
10404
10405 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
10406
10407         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
10408
10409 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
10410
10411         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
10412
10413 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
10414
10415         PR target/65710
10416         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
10417         Print bad_spills_num and insn_pseudos_num.
10418
10419 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10420
10421         PR target/65694
10422         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
10423         when creating +1 values for SImode.
10424
10425 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
10426
10427         PR target/65729
10428         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
10429         assert.
10430
10431 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
10432             Iain Sandoe  <iain@codesourcery.com>
10433
10434         PR target/65351
10435         * configure: Regenerate.
10436
10437 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
10438
10439         PR target/65671
10440         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
10441
10442 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
10443
10444         * doc/contrib.texi (Contributors): Add John Marino.
10445
10446 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
10447
10448         PR tree-optimization/65709
10449         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
10450         TREE_TYPE (TREE_TYPE (t)).
10451
10452 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
10453
10454         PR target/65710
10455         * lra-int.h (lra_bad_spill_regno_start): New.
10456         * lra.c (lra_bad_spill_regno_start): New.
10457         (lra): Set up lra_bad_spill_regno_start.  Set up
10458         lra_constraint_new_regno_start unconditionally.
10459         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
10460         spill preferences.
10461
10462 2015-04-09  Marek Polacek  <polacek@redhat.com>
10463             Jakub Jelinek  <jakub@redhat.com>
10464
10465         PR middle-end/65554
10466         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
10467         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
10468         of STRIP_NOPS.
10469
10470 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
10471
10472         PR rtl-optimization/65693
10473         * combine.c (is_parallel_of_n_reg_sets): Move outside of
10474         #ifndef HAVE_cc0.
10475
10476 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
10477
10478         PR target/65296
10479         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
10480         device specs file if "device-specs%s" didn't resolve to a path.
10481
10482 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
10483
10484         PR target/65676
10485         * config/i386/i386.c (fixup_modeless_constant): New.
10486         (ix86_expand_args_builtin): Fixup modeless constant operand.
10487         (ix86_expand_round_builtin): Ditto.
10488         (ix86_expand_special_args_builtin): Ditto.
10489         (ix86_expand_builtin): Ditto.
10490
10491 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
10492
10493         PR target/65693
10494         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
10495         any pow2 integer in between 2 and 0x80000000U inclusive.
10496
10497 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
10498
10499         PR rtl-optimization/65693
10500         * combine.c (is_parallel_of_n_reg_sets): Change first argument
10501         from an rtx_insn * to an rtx.
10502         (try_combine): Adjust both callers.  Use it once more.
10503
10504 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
10505
10506         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
10507         (chkp_make_static_const_bounds): Search existing
10508         symbol by assembler name.  Use make_decl_one_only.
10509         (chkp_get_zero_bounds_var): Remove node search which
10510         is now performed in chkp_make_static_const_bounds.
10511         (chkp_get_none_bounds_var): Likewise.
10512
10513 2015-04-08  Michael Witten  <mfwitten@gmail.com>
10514
10515         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
10516         to an example.
10517
10518 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10519
10520         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
10521
10522 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
10523
10524         * doc/extend.texi (__sync Builtins): Fix grammar.
10525
10526 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10527
10528         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
10529
10530 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
10531
10532         * varasm.c (emit_local): Move definition of align.
10533
10534 2015-04-08  Julian Brown  <julian@codesourcery.com>
10535
10536         * config/nvptx/mkoffload.c (process): Support variable mapping.
10537
10538 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
10539
10540         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
10541         alpha_links **.
10542         (alpha_write_one_linkage): Correct typo.
10543
10544 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
10545
10546         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
10547
10548 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
10549
10550         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
10551
10552 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
10553
10554         * tree-chkp.h (chkp_insert_retbnd_call): New.
10555         * tree-chkp.c (chkp_insert_retbnd_call): New.
10556         * ipa-split.c (insert_bndret_call_after): Remove.
10557         (split_function): Use chkp_insert_retbnd_call.
10558         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
10559         bounds for instrumented functions.
10560
10561 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
10562
10563         PR ipa/65540
10564         * calls.c (initialize_argument_information): When producing tail
10565         call also turn SSA_NAMES passed by references to original PARM_DECLs
10566
10567 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
10568
10569         PR target/65648
10570         * lra-remat.c (do_remat): Process input and non-input insn
10571         registers separately.
10572
10573 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
10574
10575         PR debug/65678
10576         * valtrack.c (debug_lowpart_subreg): New function.
10577         (dead_debug_insert_temp): Use it.
10578
10579         PR middle-end/65680
10580         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
10581         into signed HOST_WIDE_INT the same as negative bit_offset.
10582
10583 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
10584
10585         * ipa-comdats.c (ipa_comdats): Visit all thunks
10586         to set proper comdat group.
10587
10588 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10589
10590         PR target/65489
10591         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
10592         on constants for NEON VSTRUCT modes.
10593
10594 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
10595             Iain Sandoe  <iain@codesourcery.com>
10596
10597         PR target/65351
10598         * configure: Regenerate.
10599
10600 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
10601
10602         PR target/65614
10603         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
10604         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
10605         that LFD is used to load double constants instead of LFS.  Add
10606         defaults for all costs structures.  Add comments for missing
10607         initialization fields.
10608         (size32_cost): Likewise.
10609         (size64_cost): Likewise.
10610         (rs64a_cost): Likewise.
10611         (mpccore_cost): Likewise.
10612         (ppc403_cost): Likewise.
10613         (ppc405_cost): Likewise.
10614         (ppc440_cost): Likewise.
10615         (ppc476_cost): Likewise.
10616         (ppc601_cost): Likewise.
10617         (ppc603_cost): Likewise.
10618         (ppc604_cost): Likewise.
10619         (ppc604e_cost): Likewise.
10620         (ppc620_cost): Likewise.
10621         (ppc630_cost): Likewise.
10622         (ppccell_cost): Likewise.
10623         (ppc750_cost): Likewise.
10624         (ppc7450_cost): Likewise.
10625         (ppc8540_cost): Likewise.
10626         (ppce300c2c3_cost): Likewise.
10627         (ppce500mc_cost): Likewise.
10628         (ppce500mc64_cost): Likewise.
10629         (ppce5500_cost): Likewise.
10630         (ppce6500_cost): Likewise.
10631         (titan_cost): Likewise.
10632         (power4_cost): Likewise.
10633         (power6_cost): Likewise.
10634         (power7_cost): Likewise.
10635         (power8_cost): Likewise.
10636         (ppca2_cost): Likewise.
10637         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
10638
10639         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
10640         instead of XXLOR to copy SFmode to clear out dirty bits created
10641         when SFmode denormals are generated.
10642         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
10643         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
10644
10645 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
10646
10647         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
10648         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
10649         * config/aarch64/aarch64-tune.md: Regenerate.
10650
10651 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
10652
10653         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
10654         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
10655         * config/arm/arm-cores.def (exynos-m1): New core.
10656         * config/arm/arm-tune.md: Regenerate.
10657         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
10658         * config/arm/bpabi.h: Likewise.
10659
10660 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
10661
10662         * ipa-cp (set_single_call_flag): Remove too
10663         restrictive assert.
10664
10665 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
10666
10667         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
10668         GOMP_offload_unregister from the destructor.
10669
10670 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
10671
10672         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
10673         flags for instrumentation thunk.
10674         (chkp_produce_thunks): Likewise.
10675
10676 2015-04-05  Martin Liska  <mliska@suse.cz>
10677
10678         PR ipa/65665
10679         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
10680         has computed data structure.
10681         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
10682
10683 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
10684
10685         * invoke.texi (inline-unit-growth): Increase growth to 20%
10686         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
10687
10688 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
10689
10690         PR target/65647
10691         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
10692         value checking.
10693         (lra_rematerialization_iter): New.
10694         * lra.c (lra): Initialize lra_rematerialization_iter.
10695         Stop updating lra_constraint_new_regno_start after switching of
10696         inheritance and rematerialization.
10697         * lra-remat.c (lra_rematerialization_iter): New.
10698         (lra_remat): Add printing pass iteration.  Do rematerialization
10699         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
10700
10701 2015-04-04  Richard Biener  <rguenther@suse.de>
10702
10703         PR tree-optimization/64909
10704         PR tree-optimization/65660
10705         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
10706         to take a cost vector for scalar iteration cost.
10707         (vect_get_single_scalar_iteration_cost): Likewise.
10708         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
10709         Compute the scalar iteration cost into a cost vector.
10710         (vect_get_known_peeling_cost): Use the scalar cost vector to
10711         account for the cost of the peeled iterations.
10712         (vect_estimate_min_profitable_iters): Likewise.
10713         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
10714         Likewise.
10715
10716 2015-04-04  Alan Modra  <amodra@gmail.com>
10717
10718         PR target/65576
10719         PR target/65240
10720         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
10721         0.0 constant unless TARGET_VSX.
10722         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
10723         alternative.
10724
10725 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
10726
10727         PR ipa/65654
10728         * ipa-inline-transform.c (inline_call): Skip sanity check to work
10729         around the ICE
10730
10731 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
10732
10733         PR ipa/65655
10734         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
10735         speculative indirect edges to avoid ordering issue.
10736
10737 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
10738
10739         PR ipa/65076
10740         * ipa-inline.c (edge_badness): Add combined size to the denominator.
10741
10742 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
10743
10744         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
10745         TYPE_ARTIFICIAL on the .omp_data* types.
10746
10747 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
10748
10749         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
10750         instrumentation thunks.
10751
10752 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
10753
10754         * config/i386/i386.c (ix86_expand_call): Avoid nested
10755         PARALLEL in returned call value.
10756
10757 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
10758
10759         * lto-cgraph.c (input_cgraph_1): Always link instrumented
10760         assembler name with original one.
10761
10762 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
10763
10764         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
10765
10766 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
10767
10768         Revert parts of r216820.
10769         * config/i386/i386.md (movqi_internal): Correct type calculation
10770         for alternatives 3 and 5.
10771
10772 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
10773
10774         PR preprocessor/61977
10775         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
10776         predefine __vector/__bool/__pixel macros nor context sensitive
10777         macros for CLK_ASM.
10778         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
10779
10780 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
10781
10782         * config/pa/pa.c (pa_output_move_double): Directly handle register
10783         indexed memory operand.  Simplify handling of scaled register indexed
10784         memory operands.
10785
10786 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
10787
10788         PR driver/65444
10789         * config/i386/linux-common.h (MPX_SPEC): New.
10790         (CHKP_SPEC): Add MPX_SPEC.
10791         * doc/invoke.texi (-fcheck-pointer-boudns): Document
10792         possible issues with '-z bndplt' support in linker.
10793
10794 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
10795
10796         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
10797         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
10798         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
10799         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
10800         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
10801
10802 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
10803
10804         * config/i386/sync.md (UNSPEC_MOVA): Remove.
10805         (atomic_load<mode>): Change operand 0 predicate to
10806         nonimmediate_operand and fix up the destination when needed.
10807         Use UNSPEC_LDA.
10808         (atomic_loaddi_fpu): Use UNSPEC_LDA.
10809         (atomic_store<mode>): Change operand 1 predicate to
10810         nonimmendate_operand and move the source to register when needed.
10811         Use UNSPEC_STA.
10812         (atomic_store<mode>_1): Use UNSPEC_STA.
10813         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
10814         Fix moves from memory operand.  Use UNSPEC_STA.
10815
10816 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10817
10818         * expmed.c (strict_volatile_bitfield_p): Check that the access will
10819         not cross a MODESIZE boundary.
10820         (store_bit_field, extract_bit_field): Added assertions in the
10821         strict volatile bitfields code path.
10822
10823 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
10824
10825         PR target/65624
10826         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
10827         Increase args array size by one to avoid buffer overflow.
10828
10829 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
10830
10831         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
10832         split_part.
10833         * ipa-inline.c (edge_badness): Add wrapper penalty.
10834         (sum_callers): Move up.
10835         (inline_small_functions): Set single_caller.
10836         * ipa-inline.h (inline_summary): Add single_caller.
10837         * ipa-split.c (split_function): Set split_part.
10838         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
10839         * cgraph.h (cgraph_node): Add split_part.
10840
10841 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
10842
10843         PR target/58945
10844         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
10845         Do not split operands 0 and operands 2 to halfmode.
10846         (atomic_compare_and_swap<mode>): Update for
10847         atomic_compare_and_swap<dwi>_doubleword changes.
10848
10849 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
10850
10851         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
10852         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
10853         no caching is done.
10854
10855 2015-03-31  Martin Liska  <mliska@suse.cz>
10856
10857         PR ipa/65557
10858         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
10859         has already filled up function summary.
10860         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
10861
10862 2015-03-31  Richard Biener  <rguenther@suse.de>
10863
10864         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
10865         of types.
10866
10867 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10868
10869         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
10870         nested functions.
10871         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
10872         (s390_asm_output_function_label): Adapt to new signature of
10873         s390_function_num_hotpatch_hw
10874         Optimise the code generating assembler output.
10875         Add comments to assembler file.
10876
10877 2015-03-31  Richard Biener  <rguenther@suse.de>
10878
10879         PR middle-end/65626
10880         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
10881         of the noreturn call so it is last and cleanup_control_flow_bb
10882         can do the CFG part.
10883
10884 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
10885
10886         PR target/65531
10887         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
10888         same_comdat_group for external symbols.
10889         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
10890         infinite same_comdat_group traversal loop.
10891
10892 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
10893
10894         PR plugins/61176
10895         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
10896         automatically to $headers.
10897
10898 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
10899
10900         PR ipa/65610
10901         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
10902         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
10903         function.
10904         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
10905         Use it.
10906         * ipa-prop.c (param_type_may_change_p): Likewise.
10907         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
10908         (remove_unused_scope_block_p): Add in_ctor_dtor_block
10909         argument.  Before inlining, preserve
10910         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
10911         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
10912         recursive calls.
10913         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
10914
10915 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
10916
10917         PR ipa/65076
10918         * ipa-inline.c (edge_badness): Base denominator on callee's
10919         grwoth squared.
10920
10921 2015-03-27  Martin Jambor  <mjambor@suse.cz>
10922
10923         PR ipa/65478
10924         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
10925         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
10926         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
10927         node_calling_single_call.
10928         * ipa-cp.c (count_callers): New function.
10929         (set_single_call_flag): Likewise.
10930         (initialize_node_lattices): Count callers and set single_flag_call if
10931         necessary.
10932         (incorporate_penalties): New function.
10933         (good_cloning_opportunity_p): Use it, dump new flags.
10934         (propagate_constants_topo): Set node_within_scc flag if appropriate.
10935         * doc/invoke.texi (ipa-cp-recursion-penalty,
10936         ipa-cp-single-call-pentalty): Document.
10937
10938 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
10939
10940         PR ipa/65588
10941         * symtab.c (symtab_node::get_partitioning_class): Register vars
10942         are duplicated.
10943         * varpool.c (symbol_table::output_variables) Do not assemble unefined
10944         decls for non-symbols.
10945
10946 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
10947
10948         PR target/65248
10949         * output.h (default_binds_local_p_2): New.
10950         * varasm.c (default_binds_local_p_2): Renamed to ...
10951         (default_binds_local_p_3): This.  Don't return true on protected
10952         data symbol if protected data may be external.
10953         (default_binds_local_p): Use default_binds_local_p_3.
10954         (default_binds_local_p_1): Likewise.
10955         (default_binds_local_p_2): New.
10956         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
10957         default_binds_local_p_2 if TARGET_MACHO is undefined.
10958
10959 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
10960
10961         PR target/65593
10962         * config/i386/i386.c (legitimize_pic_address): If base
10963         is SYMBOL_REF or LABEL_REF using %rip addressing, force
10964         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
10965
10966 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
10967
10968         PR target/65531
10969         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
10970         comdat groups.
10971
10972 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
10973
10974         PR ipa/65600
10975         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
10976         of optimized out indirect call.
10977         (redirect_to_unreachable): Always build symbol table node for
10978         BUILT_IN_UNREACHABLE
10979
10980 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
10981
10982         PR target/65407
10983         * ira-costs.c (record_reg_classes): Process all constraint string
10984         containing 0-9.
10985
10986 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
10987
10988         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
10989         memory_operand.
10990
10991         PR target/65052
10992         * config/c6x/constraints.md (S3): New constraint.
10993         * config/c6x/c6x.md (real_jump): Use it.
10994
10995 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
10996
10997         PR middle-end/65595
10998         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
10999         do redirection if the call is not optimized out.
11000
11001 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
11002
11003         PR target/65495
11004         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
11005         (fchkp-check-incomplete-type): Add LTO.
11006         (fchkp-zero-input-bounds-for-main): Likewise.
11007         (fchkp-first-field-has-own-bounds): Likewise.
11008         (fchkp-narrow-bounds): Likewise.
11009         (fchkp-narrow-to-innermost-array): Likewise.
11010         (fchkp-use-static-bounds): Likewise.
11011         (fchkp-use-static-const-bounds): Likewise.
11012         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
11013
11014 2015-03-27  Marek Polacek  <polacek@redhat.com>
11015
11016         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
11017
11018 2015-03-27  Marek Polacek  <polacek@redhat.com>
11019
11020         PR sanitizer/65583
11021         * ubsan.c (ubsan_create_edge): New function.
11022         (instrument_bool_enum_load): Call it.
11023         (instrument_nonnull_arg): Likewise.
11024         (instrument_nonnull_return): Likewise.
11025         (instrument_object_size): Likewise.
11026
11027 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11028
11029         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
11030         auto_vec.
11031
11032 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11033
11034         PR lto/65536
11035         * lto-streamer.h (class lto_location_cache): New.
11036         (struct data_in): Add location_cache.
11037         (lto_input_location): Update prototype.
11038         (stream_input_location_now): New.
11039         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
11040         pointer to location.
11041         (stream_input_location): Update.
11042         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
11043         (warn_odr): Apply location cache before warning.
11044         (lto_input_location): Update prototype.
11045         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
11046         Use stream_input_location_now.
11047         * lto-streamer-in.c (lto_location_cache::current_cache): New static
11048         variable.
11049         (lto_location_cache::cmp_loc): New function.
11050         (lto_location_cache::apply_location_cache): New function.
11051         (lto_location_cache::accept_location_cache): New function.
11052         (lto_location_cache::revert_location_cache): New function.
11053         (lto_location_cache::input_location): New function.
11054         (lto_input_location): Do location caching.
11055         (stream_input_location_now): New function.
11056         (input_eh_region, input_struct_function_base): Use
11057         stream_input_location_now.
11058         (lto_data_in_create): use new.
11059         (lto_data_in_delete): Use delete.
11060         * tree-streamer-in.c (unpack_ts_block_value_fields,
11061         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
11062         lto_input_ts_exp_tree_pointers): Update for cached location api.
11063
11064 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11065
11066         PR ipa/65076
11067         * passes.def: Add pass_nothrow.
11068         * ipa-pure-const.c: (pass_data_nothrow): New.
11069         (pass_nothrow): New.
11070         (pass_nothrow::execute): New.
11071         (make_pass_nothrow): New.
11072         * tree-pass.h (make_pass_nothrow): Declare.
11073
11074 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11075
11076         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
11077         edge to change by speculation resolution or redirection.
11078         (edge_set_predicate): Likewise.
11079         (inline_summary_t::duplicate): Likewise.
11080         (remap_edge_summaries): Likewise.
11081
11082 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11083
11084         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
11085         New macros.
11086         (can_inline_edge_p): Relax option matching for always inline functions.
11087
11088 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
11089
11090         PR target/65561
11091         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
11092         Check operand 4 and operand 0 for equality.
11093         (avx512f_vextract<shuffletype>32x4_1_maskm):
11094         Check operand 6 and operand 0 for equality.
11095         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
11096         for equality.
11097         (vec_extract_hi_<mode>_maskm): Ditto.
11098
11099 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11100
11101         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
11102         dead calls back to live.
11103         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
11104         cross check to ...
11105         (cgraph_node::verify_node): ... here; verify only callee edges,
11106         not caller.
11107         * cif-code.def (CILK_SPAWN): New code.
11108
11109 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
11110
11111         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
11112         (edge_set_predicate): Use it to mark unreachable edges.
11113         (inline_summary_t::duplicate): Remove unnecesary code.
11114         (remap_edge_summaries): Likewise.
11115         (dump_inline_summary): Report contains_cilk_spawn.
11116         (compute_inline_parameters): Compute contains_cilk_spawn.
11117         (inline_read_section, inline_write_summary): Stream
11118         contains_cilk_spawn.
11119         * ipa-inline.c (can_inline_edge_p): Do not touch
11120         DECL_STRUCT_FUNCTION that may not be available;
11121         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
11122         remove check for callee_fun->can_throw_non_call_exceptions and
11123         replace it by optimization attribute check; check for flag_exceptions.
11124         * ipa-inline-transform.c (inline_call): Maintain
11125         DECL_FUNCTION_PERSONALITY
11126         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
11127
11128 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
11129
11130         PR tree-optimization/65551
11131         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
11132         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
11133
11134 2015-03-26  Richard Biener  <rguenther@suse.de>
11135
11136         PR middle-end/65555
11137         * tree-cfg.c (verify_gimple_call): Do not require a call to
11138         have no LHS if it wasn't recognized as control altering yet.
11139
11140 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
11141
11142         PR tree-optimization/64715
11143         * passes.def: Add another instance of pass_object_sizes before ccp1.
11144         * tree-object-size.c (pass_object_sizes::execute): In
11145         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
11146         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
11147         __bos result and the computed constant.  Remove redundant
11148         checks, obsoleted by gimple_call_builtin_p test.
11149
11150         * var-tracking.c (variable_tracking_main_1): Don't track
11151         variables for targetm.no_register_allocation targets.
11152
11153 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
11154
11155         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
11156         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
11157
11158 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
11159
11160         PR target/65569
11161         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
11162         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
11163         0.0 is correctly setup.
11164         (extenddftf2_internal): Likewise.
11165
11166 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
11167
11168         PR tree-optimization/65177
11169         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
11170         (bb_in_bbs): New.
11171         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
11172         edges not adjacent on the path to the original code.
11173
11174 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
11175
11176         PR bootstrap/65537
11177         * doc/install.texi (Building a native compiler): Document new
11178         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
11179         configuration assumes that the host supports the linker plugin.
11180
11181 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
11182
11183         PR target/65508
11184         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
11185         chain for generated call.
11186
11187 2015-03-25  Richard Biener  <rguenther@suse.de>
11188
11189         * passes.c (pass_manager::execute_early_local_passes): Guard
11190         execution of pass_chkp_instrumentation_passes with
11191         flag_check_pointer_bounds.
11192         (pass_chkp_instrumentation_passes::gate): Likewise.
11193
11194 2015-03-25  Martin Liska  <mliska@suse.cz>
11195
11196         PR tree-optimization/65538
11197         * symbol-summary.h (function_summary::~function_summary):
11198         Relese memory for allocated summaries.
11199         (function_summary::release): New function.
11200
11201 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
11202
11203         PR lto/65515
11204         * lto-streamer-out.c (DFS::worklist): New struct.
11205         (DFS::worklist_vec): New data member.
11206         (DFS::next_dfs_num): Remove.
11207         (DFS::DFS): Rewritten using worklist instead of recursion,
11208         using most of code from DFS::DFS_write_tree.
11209         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
11210         pass it to DFS_write_tree calls.
11211         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
11212         quick initial checks push it into worklist_vec and return.
11213
11214 2015-03-25  Richard Biener  <rguenther@suse.de>
11215
11216         PR middle-end/65519
11217         * genmatch.c (expr::gen_transform): Re-write to avoid
11218         using gimple_build.
11219
11220 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
11221
11222         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
11223
11224 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
11225
11226         * config/arm/arm.opt (print_tune_info): New option.
11227         * config/arm/arm.c (arm_print_tune_info): New function.
11228         (arm_file_start): Call arm_print_tune_info.
11229         * config/arm/arm-protos.h (struct tune_params): Add comment.
11230         * doc/invoke.texi (@item -mprint-tune-info): New item.
11231         (-mtune): mention it in ARM Option Summary.
11232
11233 2015-03-25  DJ Delorie  <dj@redhat.com>
11234
11235         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
11236         correct clause.
11237
11238 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
11239             Martin Liska  <mliska@suse.cz>
11240
11241         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
11242         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
11243         (sem_item::add_type): New function.
11244         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
11245         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
11246         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
11247         (sem_function::equals_wpa): Fix typo.
11248         * ipa-icf.h (sem_item::add_type): New function.
11249         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
11250         order.
11251
11252 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
11253
11254         PR tree-optimization/65533
11255         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
11256         with swapped operands, call vect_free_slp_tree on
11257         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
11258         vector.
11259
11260 2015-03-24  Richard Biener  <rguenther@suse.de>
11261
11262         PR middle-end/65517
11263         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
11264         for fixup if necessary.
11265
11266 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
11267
11268         * doc/extend.texi (Function Attributes): Add @cindex entries
11269         for all attributes and regularize their format.  Delete text
11270         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
11271         information about "eightbit_data", "tiny_data", and "model"
11272         variable attributes to the Variable Attributes section.  Fix
11273         some obvious typos and copy-editing issues.
11274         (Variable Attributes, Type Attributes): Likewise add/fix
11275         @cindex entries for all attributes.
11276
11277 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
11278
11279         PR target/65523
11280         * tree-chkp.c (chkp_build_returned_bound): Ignore
11281         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
11282
11283 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
11284
11285         PR target/65505
11286         * config/sh/predicates.md (simple_mem_operand,
11287         displacement_mem_operand): Add test for reg.
11288         (short_displacement_mem_operand): Test for displacement_mem_operand
11289         before invoking sh_disp_addr_displacement.
11290         * config/sh/constraints.md (Sdd, Sra): Simplify.
11291         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
11292         Remove redundant displacement_mem_operand tests.
11293
11294 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
11295
11296         PR target/65296
11297         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
11298         the same -mmcu=MCU more than once.
11299
11300 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
11301
11302         PR bootstrap/65522
11303         * ipa-devirt.c: Remove duplicate demangle.h include.
11304
11305         PR target/65504
11306         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
11307         on the pseudo.
11308         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
11309         REG_POINTER on *destptr after adjusting it for prologue size.
11310
11311         PR ipa/65521
11312         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
11313         ultimate_alias_target ()->order ints instead of
11314         ultimate_alias_target () pointers.
11315
11316 2015-03-23  Richard Biener  <rguenther@suse.de>
11317
11318         PR tree-optimization/65518
11319         * tree-vect-stmts.c (vectorizable_load): Reject single-element
11320         interleaving cases we generate absymal code for.
11321
11322 2015-03-23  Richard Biener  <rguenther@suse.de>
11323
11324         PR tree-optimization/65494
11325         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
11326         matches here.
11327         (vect_analyze_slp_instance): But do that here, always and once.
11328
11329 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11330
11331         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
11332         adding T or multiplying by T+1 and subracting T.
11333
11334 2015-03-22  Jeff Law  <law@redhat.com>
11335
11336         PR rtl-optimization/64317
11337         * Makefile.in (OBJS): Add gcse-common.c
11338         * gcse.c: Include gcse-common.h
11339         (struct modify_pair_s): Move structure definition to gcse-common.h
11340         (compute_transp): Move function to gcse-common.c.
11341         (canon_list_insert): Similarly.
11342         (record_last_mem_set_info): Break out some code and put it into
11343         gcse-common.c.  Call into the new common code.
11344         (compute_local_properties): Pass additional arguments to compute_transp.
11345         * postreload-gcse.c: Include gcse-common.h and df.h
11346         (modify_mem_list_set, blocks_with_calls): New variables.
11347         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
11348         (get_bb_avail_insn): Pass in the expression index too.
11349         (alloc_mem): Allocate memory for the new bitmaps and lists.
11350         (free_mem): Free memory for the new bitmaps and lists.
11351         (insert_expr_in_table): Record a bitmap index for each entry we
11352         add to the table.
11353         (record_last_mem_set_info): Call into common code in gcse-common.c.
11354         (get_bb_avail_insn): If no available insn was found in the requested
11355         BB.  If BB has a single predecessor, see if the expression is
11356         transparent in BB and available in that single predecessor.
11357         (compute_expr_transp): New wrapper for compute_transp.
11358         (eliminate_partially_redundant_load): Pass expression's bitmap_index
11359         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
11360         (gcse_after_reload_main): If there are elements in the hash table,
11361         then compute transparency for all the elements in the hash table.
11362         * gcse-common.h: New file.
11363         * gcse-common.c: New file.
11364
11365 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
11366
11367         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
11368         as an adjective.
11369         (System Headers): Likewise.
11370         (Ifdef): Likewise.
11371         (Traditional macros): Likewise.
11372         (Invocation): Likewise.
11373         (Option Index): Likewise.
11374         * doc/cppopts.texi (-M): Likewise.
11375         (-finput-charset): Likewise.
11376         (--help): Likewise.
11377         * doc.invoke.texi (AVR Options): Likewise.
11378         (V850 Options): Likewise.
11379
11380 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
11381
11382         PR ipa/65475
11383         * ipa-devirt.c: Include demangle.h
11384         (odr_type_d): Add field rtti_broken.
11385         (odr_subtypes_equivalent_p): Do not require name to match.
11386         (compare_virtual_tables): Fix typo; if type already has ODR violation,
11387         bypass the tests; be ready for function referneces in vtables that are
11388         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
11389         (warn_odr): Give up for nameless types.
11390         (warn_types_mismatch): Report mismatch in mangled names;
11391         report mismatch in anonymous namespaces; look into component types to
11392         give useful error; report when mismatch is dragged in from other ODR
11393         type.
11394         (odr_types_equivalent_p): Match types for being polymorphic; avoid
11395         duplicated diagnostics.
11396         (add_type_duplicate): Reorder checks so more informative ones come
11397         first; fix typo; do not output "the extra base is defined here" when
11398         we did not warn.
11399         (BINFO_N_BASE_BINFOS): Relax sanity check.
11400
11401 2015-03-22  Martin Liska  <mliska@suse.cz>
11402             Jakub Jelinek  <jakub@redhat.com>
11403
11404         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
11405         masks that can potentially include a builtin.
11406         (ix86_add_new_builtins): Introduce fast filter for isa values
11407         that cannot trigger builtin inclusion.
11408
11409 2015-03-22  Martin Liska  <mliska@suse.cz>
11410
11411         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
11412         (sem_item::update_hash_by_local_refs): Likewise.
11413         (sem_variable::get_hash): Empty line is fixed.
11414         (sem_item_optimizer::execute): Include adding of hash references.
11415         (sem_item_optimizer::update_hash_by_addr_refs): New function.
11416         (sem_item_optimizer::build_hash_based_classes): Use local hash.
11417         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
11418         (sem_item::update_hash_by_local_refs): Likewise.
11419
11420 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
11421
11422         PR ipa/65502
11423         * ipa-comdats.c (enqueue_references): Walk through thunks.
11424         (ipa_comdats): Likewise.
11425         (set_comdat_group_1): New function.
11426
11427 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
11428
11429         PR ipa/65475
11430         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
11431         non-polymorphic
11432
11433 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
11434             Gerald Pfeifer  <gerald@pfeifer.com>
11435
11436         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
11437
11438 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
11439             Sandra Loosemore  <sandra@codesourcery.com>
11440
11441         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
11442         function parameter declaration.
11443         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
11444         Update arguments to nios2_adjust_call_address().
11445         (sibcall_internal): Rename from *sibcall.
11446         (sibcall_value_internal): Rename from *sibcall_value.
11447         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
11448         (nios2_large_got_address): Add target temp reg parameter.
11449         (nios2_got_address): Adjust call to nios2_large_got_address, add
11450         force_reg around it.
11451         (nios2_load_pic_address): Add target temp reg parameter, replace call
11452         to nios2_got_address with corresponding code.
11453         (nios2_legitimize_constant_address): Update call to
11454         nios2_load_pic_address.
11455         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
11456         to use temp reg for PIC loading purposes.
11457         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
11458         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11459         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
11460
11461 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
11462
11463         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
11464         usage of "the @option{...}".
11465         (-Wopenmp-simd): Likewise.
11466         (-fsanitize-recover): Likewise.
11467         (-fsanitize-undefined-trap-on-error): Likewise.
11468         (-flto): Likewise.
11469         (tracer-dynamic-coverage-feedback): Likewise.
11470         (reorder-block-duplicate-feedback): Likewise.
11471         (loop-unroll-jam-size): Likewise.
11472         (-B): Likewise.
11473         (-I-): Likewise.
11474         (-mabs=legacy): Likewise.
11475         (-mupper-regs-df): Likewise.
11476         (-mupper-regs-sf): Likewise.
11477         (-mpointers-to-nested-functions): Likewise.
11478
11479 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
11480
11481         * doc/extend.texi (Cilk Plus Builtins): Add markup.
11482
11483 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
11484
11485         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
11486         additional index entries and cross-references.
11487         (-fchkp-check-incomplete-type): Likewise.
11488         (-fchkp-first-field-has-own-bounds): Likewise.
11489         (-fchkp-narrow-to-innermost-array): Likewise.
11490         (-fchkp-use-fast-string-functions): Likewise.
11491         (-fchkp-use-nochk-string-functions): Likewise.
11492         (-fchkp-use-static-const-bounds): Likewise.
11493         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
11494         (-fchkp-instrument-marked-only): Likewise.
11495         (-fchkp-use-wrappers): Likewise.
11496         (-static-libmpx): Likewise.
11497         (-static-libmpxwrappers): Likewise.
11498         * doc/extend.texi (bnd_legacy): Likewise.
11499         (bnd_instrument): Likewise.
11500         (bnd_variable_size): Likewise.
11501         (Pointer Bounds Checker builtins): Likewise.
11502
11503 2015-03-21  Tom de Vries  <tom@codesourcery.com>
11504
11505         PR tree-optimization/65458
11506         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
11507         * cgraph.h (cgraph_node): Add parallelized_function field.
11508         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
11509         (input_overwrite_node): Read parallelized_function field.
11510         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
11511         parallelized_function on cgraph_node for child_fn.
11512         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
11513         Remove include of gt-tree-parloops.h.
11514         (parallelized_functions): Remove static variable.
11515         (parallelized_function_p): Rewrite using parallelized_function field of
11516         cgraph_node.
11517         (create_loop_fn): Remove adding to parallelized_functions.
11518         * Makefile.in (GTFILES): Remove tree-parloops.c
11519
11520 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
11521
11522         PR rtl-optimization/64366
11523         * lra.c (lra_update_insn_regno_info): Consider regs in
11524         CALL_INSN_FUNCTION_USAGE memory.
11525
11526 2015-03-20  Richard Biener  <rguenther@suse.de>
11527
11528         PR middle-end/64715
11529         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
11530         for type comparison and gcc_checking_assert.
11531         (chrec_fold_plus_poly_poly): Likewise.
11532         (chrec_fold_multiply_poly_poly): Likewise.
11533         (chrec_convert_1): Likewise.
11534         * gimplify.c (gimplify_expr): Remove premature folding of
11535         &X + CST to &MEM[&X, CST].
11536
11537 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
11538
11539         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
11540         already is final.
11541         (ipa_inline): Recompute inline_failed codes.
11542         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
11543         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
11544         CIF_FINAL_ERROR.
11545
11546 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
11547
11548         PR rtl-optimization/60851
11549         * recog.c (constrain_operands): Accept a pseudo register before reload
11550         for LRA enabled targets.
11551
11552 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
11553
11554         PR target/65240
11555         * config/rs6000/predicates.md (easy_fp_constant): Remove special
11556         -ffast-math handling that kept non-0 constants live in the RTL
11557         until reload.  Remove logic testing the number of instructions it
11558         took to create a constant in a GPR that was never used, due to a
11559         test for soft-float earlier.
11560         (memory_fp_constant): Delete, no longer used.
11561
11562         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
11563         alternatives for loading non-0 constants into GPRs for hard
11564         floating point that is no longer needed due to changes in
11565         easy_fp_constant.  Add support for loading 0.0 into GPRs.
11566         (mov<mode>_hardfloat32): Likewise.
11567         (mov<mode>_hardfloat64): Likewise.
11568         (mov<mode>_64bit_dm): Likewise.
11569         (movtd_64bit_nodm): Likewise.
11570         (pre-reload move FP constant define_split): Delete define_split,
11571         since it is no longer used.
11572         (extenddftf2_internal): Remove GHF constraints that are not valid
11573         for extenddftf2.
11574
11575 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
11576
11577         PR rtl-optimization/63491
11578         * lra-constraints.c (check_and_process_move): Use src instead of
11579         sreg.  Remove some dead code.
11580
11581 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
11582
11583         PR ipa/65380
11584         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
11585         (sem_variable::merge): Likewise.
11586
11587 2015-03-19  Martin Liska  <mliska@suse.cz>
11588
11589         PR ipa/65465
11590         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
11591         all fields of cgraph_thunk_info.
11592
11593 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
11594
11595         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
11596         clone instrumented thunks.
11597
11598 2015-03-19  Richard Biener  <rguenther@suse.de>
11599
11600         Revert
11601         2015-03-10  Richard Biener  <rguenther@suse.de>
11602
11603         PR middle-end/63155
11604         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
11605         * tree-ssa-coalesce.c: Include timevar.h.
11606         (attempt_coalesce): Handle graph being NULL.
11607         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
11608         Split out abnormal coalescing to ...
11609         (perform_abnormal_coalescing): ... this function.
11610         (coalesce_ssa_name): Perform abnormal coalescing without computing
11611         live/conflict.
11612         (verify_ssa_coalescing_worker): New function.
11613         (verify_ssa_coalescing): Likewise.
11614
11615 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11616             Jakub Jelinek  <jakub@redhat.com>
11617
11618         PR sanitizer/65400
11619         * tsan.c (instrument_gimple): Clear tail call flag on
11620         calls.
11621
11622 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
11623
11624         PR sanitizer/65400
11625         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
11626         call in the return bb.
11627         (find_split_points): Add RETURN_BB argument, don't call
11628         find_return_bb.
11629         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
11630         if true append TSAN_FUNC_EXIT internal call after the call to
11631         the split off function.
11632         (execute_split_functions): Call find_return_bb here.
11633         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
11634         Adjust find_split_points and split_function calls.
11635
11636 2015-03-18  DJ Delorie  <dj@redhat.com>
11637
11638         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
11639         (iorqi3_virt): Likewise.
11640
11641 2015-03-18  Tom de Vries  <tom@codesourcery.com>
11642
11643         * tree-parloops.c (parallelize_loops): Make static.
11644         * tree-parloops.h (parallelize_loops): Remove extern declaration.
11645
11646 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
11647
11648         PR middle-end/64491
11649         Revert:
11650         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
11651
11652         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
11653         condition would be removed due to undefined behaviour.
11654
11655 2015-03-18  Martin Liska  <mliska@suse.cz>
11656
11657         PR ipa/65432
11658         * cgraph.c (cgraph_node::get_create): Remove unnecessary
11659         xstrdup_for_dump wrapper.
11660         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
11661         sem_item::name.
11662         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
11663         with xstrdup_for_dump.
11664         (sem_variable::equals): Likewise.
11665         (sem_item_optimizer::read_section): Use symtab_node::name instead of
11666         sem_item::name.
11667         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
11668         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
11669         symtab_node::asm_name with xstrdup_for_dump.
11670         (congruence_class::dump): Use symtab_node::name instead of
11671         sem_item::name.
11672         * ipa-icf.h (symtab_node::name): Remove.
11673         (symtab_node::asm_name): Likewise.
11674
11675 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
11676
11677         PR tree-optimization/65450
11678         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
11679         function.
11680         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
11681         it instead of duplicate_ssa_name_ptr_info.
11682
11683         PR target/65222
11684         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
11685
11686 2015-03-18  Richard Biener  <rguenther@suse.de>
11687
11688         * tree-data-ref.h (struct access_matrix): Remove.
11689         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
11690         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
11691         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
11692         (am_vector_index_for_loop): Likewise.
11693         (struct data_reference): Remove access_matrix member.
11694         (DR_ACCESS_MATRIX): Remove.
11695         (lambda_vector_new): Add comment.
11696         (lambda_matrix_new): Use XOBNEWVEC.
11697
11698 2015-03-18  Richard Biener  <rguenther@suse.de>
11699
11700         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
11701         (pass_ch::execute): Cleanup the CFG only if we did sth.
11702         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
11703
11704 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11705
11706         * expmed.c (synth_mult): Use std::swap instead of manually
11707         swapping algorithms.
11708
11709 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
11710
11711         PR target/65078
11712         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
11713
11714 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
11715
11716         PR target/65296
11717         * config/avr/avr.opt (-nodevicelib): New option.
11718         * doc/invoke.texi (AVR Options): Document it.
11719         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
11720         libgcc.a, libc.a, libm.a.
11721         * config/avr/specs.h: Same.
11722         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
11723         which don't (directly) depend on the device.  Print more help.
11724         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
11725         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
11726         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
11727         case of an error.
11728         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
11729         for specs file name.
11730         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
11731         * config/avr/avr-mcus.def: Adjust initializers and comments.
11732
11733 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
11734
11735         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
11736         DECL_ONE_ONLY to check if decl is one only.
11737         * ipa-split.c (consider_split): Limit splitt of one only functions.
11738
11739 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
11740
11741         PR tree-optimization/65427
11742         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
11743         functions.
11744         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
11745
11746 2015-03-16  Marek Polacek  <polacek@redhat.com>
11747
11748         * cgraph.h (add_new_static_var): Remove declaration.
11749         * varpool.c (add_new_static_var): Remove function.
11750
11751 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
11752
11753         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
11754         instead of vec<tree> * with vec_alloc and release for args.
11755         Adjust all users.
11756
11757         PR middle-end/65431
11758         * omp-low.c (delete_omp_context): Only splay_tree_delete
11759         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
11760         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
11761
11762 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
11763
11764         PR sanitizer/64820
11765         * cfgexpand.c (align_base): New function.
11766         (alloc_stack_frame_space): Call it.
11767         (expand_stack_vars): Align prev_frame to be sure
11768         data->asan_vec elements aligned properly.
11769
11770 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
11771
11772         PR middle-end/65409
11773         * expr.c (store_field): Do not do a direct block copy if the source is
11774         a PARALLEL with BLKmode.
11775
11776 2015-03-16  Tom de Vries  <tom@codesourcery.com>
11777
11778         PR middle-end/65414
11779         Revert:
11780         2015-03-12  Tom de Vries  <tom@codesourcery.com>
11781
11782         PR rtl-optimization/64895
11783         * lra-lives.c (check_pseudos_live_through_calls): Use
11784         actual_call_used_reg_set instead of call_used_reg_set, if available.
11785
11786 2015-03-16  Alan Modra  <amodra@gmail.com>
11787
11788         PR target/63150
11789         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
11790         Modify Z->r bswapdi splitter to use dest in place of scratch.
11791         In r->Z and Z->r bswapdi splitter rename word_high, word_low
11792         to word1, word2 and rearrange logic to suit.
11793         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
11794         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
11795         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
11796         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
11797         early clobber.
11798
11799 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
11800
11801         PR tree-optimization/65369
11802         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
11803         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
11804         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
11805
11806         PR tree-optimization/65418
11807         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
11808         are casts in the first PLUS_EXPR operand, ensure tbias and
11809         *totallowp are in the inner type.
11810
11811         PR rtl-optimization/65401
11812         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
11813         argument.  If true, adjust_address_nv of x with big-endian
11814         correction for the mode widening to GET_MODE (y).
11815         (make_field_assignment): Don't do MEM mode widening here.
11816         Use MEM_P instead of GET_CODE == MEM.
11817
11818 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
11819
11820         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
11821         the external decls.
11822
11823 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11824
11825         PR target/64600
11826         * config/arm/arm.c (arm_gen_constant, AND case): Use
11827         ARM_SIGN_EXTEND when constructing AND mask.
11828
11829 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11830
11831         * graph.c (print_graph_cfg): Make function names visible and append
11832         parenthesis to it.  Also make groups of basic blocks belonging to the
11833         same function visible.
11834
11835 2015-03-12  Richard Biener  <rguenther@suse.de>
11836
11837         PR middle-end/44563
11838         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
11839         to avoid quadratic behavior with inline expansion splitting blocks.
11840         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
11841         with the successor if the predecessor will be merged with it.
11842         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
11843         entry block with its successor.
11844
11845 2015-03-13  Richard Biener  <rguenther@suse.de>
11846
11847         PR middle-end/44563
11848         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
11849         (cleanup_tree_cfg_1): Do not call it.
11850         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
11851         (fixup_noreturn_call): Mark the stmt as control altering.
11852         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
11853         here.
11854         (pass_data_fixup_cfg): Produce a dump file.
11855         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
11856         (need_noreturn_fixup): New global.
11857         (pass_dominator::execute): Fixup queued noreturn calls.
11858         (optimize_stmt): Queue calls that became noreturn for fixup.
11859         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
11860         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
11861         (el_to_fixup): New global.
11862         (eliminate_dom_walker::before_dom_childre): Queue calls that
11863         became noreturn for fixup.
11864         (eliminate): Fixup queued noreturn calls.
11865         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
11866         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
11867         (substitute_and_fold_dom_walker::before_dom_children): Queue
11868         alls that became noreturn for fixup.
11869         (substitute_and_fold): Fixup queued noreturn calls.
11870
11871 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
11872
11873         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
11874         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
11875         are building; for methods check ODR type of class they belong to if
11876         they may lead to a polymorphic call.
11877         (sem_function::compare_polymorphic_p): Be bit smarter about testing
11878         when function may lead to a polymorphic call.
11879         (sem_function::compare_type_list): Remove.
11880         (sem_variable::equals): Update use of compatible_types_p.
11881         (sem_variable::parse_tree_refs): Remove.
11882         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
11883         cdtor.
11884         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
11885         matching here.
11886         (func_checker::compatible_polymorphic_types_p): Break out from ...
11887         (unc_checker::compatible_types_p): ... here.
11888         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
11889         Declare.
11890         (unc_checker::compatible_types_p): Update.
11891         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
11892         Remove.
11893
11894 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11895
11896         PR rtl-optimization/65235
11897         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
11898         When first element of vec_concat is const_int, calculate its size
11899         using second element.
11900
11901 2015-03-12  Richard Biener  <rguenther@suse.de>
11902
11903         PR middle-end/65270
11904         * fold-const.c (operand_equal_p): Fix ordering of resetting
11905         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
11906
11907 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11908
11909         * config/s390/s390.c (s390_reorg): Move code to output nops after label
11910         to s390_reorg ().
11911         (s390_asm_output_function_label): Likewise.
11912         * config/s390/s390.c (s390_asm_output_function_label):
11913         Fix function label alignment with -mhtopatch.
11914         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
11915         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
11916         ("nop_2_byte"): New define_insn.
11917         ("nop_4_byte"): Likewise.
11918         ("nop_6_byte"): Likewise.
11919         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
11920         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
11921
11922 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
11923
11924         PR target/65103
11925         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
11926         register.
11927
11928 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
11929
11930         PR target/65044
11931         * toplev.c (process_options): Restrict Pointer Bounds Checker
11932         usage with Address Sanitizer.
11933
11934 2015-03-12  Richard Biener  <rguenther@suse.de>
11935
11936         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
11937         to split on.
11938         * omp-low.c (expand_omp_taskreg): Split block before removing
11939         the stmt.
11940         (expand_omp_target): Likewise.
11941         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
11942         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
11943         stmt to split_block.
11944
11945 2015-03-12  Tom de Vries  <tom@codesourcery.com>
11946
11947         PR rtl-optimization/64895
11948         * lra-lives.c (check_pseudos_live_through_calls): Use
11949         actual_call_used_reg_set instead of call_used_reg_set, if available.
11950
11951 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
11952
11953         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
11954         (cgraph_node::remove): Likewise.
11955         (cgraph_node::get_untransformed_body): Likewise.
11956         * varpool.c (varpool_node::remove): Likewise.
11957         (varpool_node::get_constructor): Add sanity check.
11958
11959 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
11960
11961         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
11962         old GCC versions.
11963         (-fabi-compat-version): Likewise.
11964         (-ffriend-injection): Likewise.
11965         (-Wdeclaration-after-statement): Likewise.
11966         (-fomit-frame-pointer): Likewise.
11967         (-ftree-coalesce-inlined-vars): Likewise.
11968         (-fvisibility=): Likewise.
11969         * doc/extend.texi (Typeof): Likewise.
11970         (Zero Length): Likewise.
11971         (Escaped Newlines): Likewise.
11972         (Compound Literals): Likewise.
11973         (Function Attributes): Likewise.
11974         (Label Attributes): Likewise.
11975         (Type Attributes): Likewise.
11976         (Function Names): Likewise.
11977         (Other Builtins): Likewise.
11978         (Function Specific Option Pragmas): Likewise.
11979         (C++ Interface): Likewise.
11980
11981 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
11982
11983         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
11984
11985 2015-03-11  Marek Polacek  <polacek@redhat.com>
11986
11987         PR tree-optimization/65388
11988         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
11989
11990 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
11991
11992         PR target/65296
11993         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
11994         * configure: Regenerate.
11995         * config.in: Regenerate.
11996         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
11997         [-mn-flash]: Document it.
11998         [__AVR_ARCH__]: Document avrtiny.
11999
12000         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
12001         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
12002         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
12003
12004 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12005
12006         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
12007
12008 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
12009
12010         PR target/65242
12011         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
12012         allow reloads of PLUS in floating point/VSX registers.
12013
12014 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
12015
12016         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
12017         crypto_sha256_fast.
12018         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
12019
12020 2015-03-11  Richard Biener  <rguenther@suse.de>
12021
12022         PR tree-optimization/65310
12023         * tree-sra.c (build_ref_for_offset): Also preserve larger
12024         alignment.
12025
12026 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
12027
12028         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
12029
12030 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
12031
12032         PR target/65368
12033         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
12034         new define_expand.
12035         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
12036
12037 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
12038
12039         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
12040         (sem_function::equals_wpa): ... here.
12041
12042 2015-03-10  Marek Polacek  <polacek@redhat.com>
12043             Jakub Jelinek  <jakub@redhat.com>
12044
12045         PR sanitizer/65367
12046         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
12047         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
12048         separately.
12049
12050 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
12051
12052         PR target/65286
12053         * config/rs6000/t-linux: For powerpc64* target set
12054         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
12055
12056 2015-03-10  Richard Biener  <rguenther@suse.de>
12057
12058         PR middle-end/44563
12059         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
12060         for redirect_all_calls.
12061
12062 2015-03-10  Marek Polacek  <polacek@redhat.com>
12063
12064         * gdbinit.in (pcfun): Define and document.
12065
12066 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
12067
12068         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
12069         of libgomp-plugin.h.
12070         (find_target_compiler): Support a case when the path to gcc is
12071         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
12072         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
12073         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
12074         libgomp-plugin.h.
12075         (main): Use GCC_INSTALL_NAME as target_driver_name.
12076         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
12077         define.
12078         (mkoffload.o): Remove obsolete include path and defines.
12079         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
12080
12081 2015-03-10  Richard Biener  <rguenther@suse.de>
12082
12083         PR middle-end/63155
12084         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
12085         * tree-ssa-coalesce.c: Include timevar.h.
12086         (attempt_coalesce): Handle graph being NULL.
12087         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
12088         Split out abnormal coalescing to ...
12089         (perform_abnormal_coalescing): ... this function.
12090         (coalesce_ssa_name): Perform abnormal coalescing without computing
12091         live/conflict.
12092         (verify_ssa_coalescing_worker): New function.
12093         (verify_ssa_coalescing): Likewise.
12094
12095 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
12096
12097         PR target/65296
12098         * config.gcc (extra_options) [avr]: Remove.
12099         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
12100         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
12101         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
12102
12103         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
12104         (-mmcu=): Add Var and MissingArgError properties.
12105         (-march=): Remove.
12106         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
12107         * config/avr/t-multilib: Regenerate.
12108         * config/avr/specs.h: New file.
12109         * config/avr/driver-avr.c: New file.
12110         * config/avr/genopt.sh: Remove file.
12111         * config/avr/avr-tables.opt: Remove file.
12112         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
12113         * config/avr/avr-c.c: Same.
12114         * avr-arch.h: Same.
12115         (avr_current_device): Remove proto.
12116         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
12117         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
12118         (EXTRA_SPEC_FUNCTIONS): Define.
12119         (avr_devicespecs_file): New specs function proto.
12120         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
12121         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
12122         (avr_current_device): Remove definition and usage.
12123         (avr_set_core_architecture): New static function.
12124         (avr_option_override): Use it.
12125         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
12126         (mcu_name): New static array.
12127         (comparator, avr_archs_str, avr_mcus_str): New static functions.
12128         (avr_inform_devices, avr_inform_core_architectures): New functions.
12129         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
12130         (avrlibc.h) [WITH_AVRLIBC]: Include.
12131         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
12132         (print_mcu): Rewrite from scratch.
12133         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
12134         Forward to avr-specific specs defined in device-specs file.
12135         * config/avr/t-avr (driver-avr.o): New rule.
12136         (avr-devices.o): Depend on avr-arch.h.
12137         (avr-mcus): No more depend on avr-tables.opt.
12138         (avr-tables.opt): Remove rule.
12139         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
12140
12141 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
12142
12143         * c-family/c.opt (fchkp-use-wrappers): New.
12144         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
12145         (chkp_wrap_function): New.
12146         (chkp_build_instrumented_fndecl): Support wrapped
12147         functions.
12148         * doc/invoke.texi (-fcheck-pointer-bounds): New.
12149         (-fchkp-check-incomplete-type): New.
12150         (-fchkp-first-field-has-own-bounds): New.
12151         (-fchkp-narrow-bounds): New.
12152         (-fchkp-narrow-to-innermost-array): New.
12153         (-fchkp-optimize): New.
12154         (-fchkp-use-fast-string-functions): New.
12155         (-fchkp-use-nochk-string-functions): New.
12156         (-fchkp-use-static-bounds): New.
12157         (-fchkp-use-static-const-bounds): New.
12158         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
12159         (-fchkp-check-read): New.
12160         (-fchkp-check-write): New.
12161         (-fchkp-store-bounds): New.
12162         (-fchkp-instrument-calls): New.
12163         (-fchkp-instrument-marked-only): New.
12164         (-fchkp-use-wrappers): New.
12165         (-static-libmpx): New.
12166         (-static-libmpxwrappers): New.
12167
12168 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
12169
12170         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
12171         (CHKP_SPEC): Add wrappers library.
12172         * c-family/c.opt (static-libmpxwrappers): New.
12173
12174 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
12175
12176         * config/i386/linux-common.h (LIBMPX_LIBS): New.
12177         (LIBMPX_SPEC): New.
12178         (CHKP_SPEC): New.
12179         * gcc.c (CHKP_SPEC): New.
12180         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
12181         * c-family/c.opt (static-libmpx): New.
12182
12183 2015-03-10  Richard Biener  <rguenther@suse.de>
12184
12185         PR middle-end/44563
12186         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
12187         for compare_type.
12188         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
12189         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
12190         (cgraph_add_edge_to_call_site_hash): Likewise.
12191         (cgraph_node::get_edge): Likewise.
12192         (cgraph_edge::set_call_stmt): Likewise.
12193         (cgraph_edge::remove_caller): Likewise.
12194
12195 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
12196
12197         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
12198         (callee_saved_gpr_regs_size): ... this.
12199         (callee_saved_regs_first_regno): Rename to ...
12200         (callee_saved_first_gpr_regno): ... this.
12201         (callee_saved_regs_last_regno) Rename to ...
12202         (callee_saved_last_gpr_regno): ... this.
12203         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
12204         variables.
12205         (nds32_initial_elimination_offset): Likewise.
12206         (nds32_expand_prologue): Likewise.
12207         (nds32_expand_epilogue): Likewise.
12208         (nds32_expand_prologue_v3push): Likewise.
12209         (nds32_expand_epilogue_v3pop): Likewise.
12210         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
12211         Adjust renamed variables.
12212         (nds32_output_stack_pop): Likewise.
12213
12214 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12215
12216         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
12217         code in comment.
12218
12219 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
12220
12221         PR rtl-optimization/65321
12222         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
12223         than shift mode.
12224         * var-tracking.c (use_narrower_mode): Likewise.
12225
12226 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
12227
12228         PR tree-optimization/65355
12229         * varasm.c (notice_global_symbol): Do not produce RTL.
12230         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
12231         anchor.
12232         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
12233         check for section anchors.
12234
12235 2015-03-10  Alan Modra  <amodra@gmail.com>
12236
12237         PR target/65286
12238         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
12239         to be single-arch by default.  Set cpu_is_64bit for powerpc64
12240         given --with-cpu=native.
12241         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
12242         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
12243         and powerpc64le.
12244         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
12245         rs6000_isa_flags rather than TARGET_64BIT.
12246
12247 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
12248             Kaz Kojima  <kkojima@gcc.gnu.org>
12249
12250         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
12251
12252 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
12253
12254         PR lto/65361
12255         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
12256         on a TREE_BINFO, instead use BINFO_TYPE.
12257
12258 2015-03-09  Richard Biener  <rguenther@suse.de>
12259
12260         PR middle-end/65270
12261         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
12262         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
12263         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
12264         of that.  When comparing dereferences compare alignment.
12265         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
12266
12267 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
12268
12269         * ipa-inline-analysis.c (check_callers): Check
12270         node->can_remove_if_no_direct_calls_and_refs_p.
12271         (growth_likely_positive): Reorganize to call
12272         can_remove_if_no_direct_calls_p later.
12273         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
12274         will_be_removed_from_program_if_no_direct_calls_p): Add
12275         will_inline parameter.
12276         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
12277         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
12278         Handle inliner case correctly.
12279
12280 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
12281
12282         PR tree-optimization/63743
12283         * cfgexpand.c (reorder_operands): Also reorder if only second operand
12284         had its definition forwarded by TER.
12285
12286 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
12287
12288         PR lto/65316
12289         * ipa-utils.h (types_odr_comparable): Add strict argument.
12290         * ipa-devirt.c: Fix whitespace;
12291         (odr_hasher): Remove.
12292         (odr_name_hasher, odr_vtable_hasher): New hashers.
12293         (can_be_name_hashed_p): New predicate.
12294         (hash_type_name): remove.
12295         (hash_odr_name): New.
12296         (odr_name_hasher::hash): new.
12297         (can_be_vtable_hashed_p): New.
12298         (hash_odr_vtable): New.
12299         (odr_vtable_hasher::hash): New.
12300         (types_same_for_odr): Add strict parameter.
12301         (types_odr_comparable): Likewise.
12302         (odr_name_hasher::equal): New.
12303         (odr_vtable_hasher::equal): New.
12304         (odr_name_hasher::remove): New.
12305         (odr_hash_type): Change to hash_table<odr_name_hasher>.
12306         (odr_vtable_hash_type): New.
12307         (odr_vtable_hash): New.
12308         (odr_subtypes_equivalent_p): Do strict comparsion.
12309         (add_type_duplicate): Merge type names; cleanup; avoid type
12310         duplicates.
12311         (register_odr_type): Initialize vtable hash.
12312         (build_type_inheritance_graph): Likewise
12313         (get_odr_type): Reorg to use two hashes.
12314         (dump_possible_polymorphic_call_targets): Move sanity check after debug
12315         output.
12316         (ipa_devirt): Dump type_inheritance_graph.
12317         (types_same_for_odr): Add strict mode.
12318
12319 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
12320
12321         PR ipa/65334
12322         * cgraph.h (symtab_node): Add definition_alignment,
12323         can_increase_alignment_p and increase_alignment.
12324         * symtab.c (symtab_node::can_increase_alignment_p,
12325         increase_alignment_1, symtab_node::increase_alignment,
12326         symtab_node::definition_alignment): New.
12327         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
12328         can_increase_alignment_p.
12329         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
12330         * tree-vect-stmts.c (ensure_base_align): Likewise.
12331         * varasm.c (function_section_1): Use definition_alignment.
12332         (assemble_start_function): Likewise.
12333         (emit_local): likewise.
12334         (build_constant_desc): Likewsie.
12335         (output_constant_def_contents): Likewise.
12336         (place_block_symbol): Likewise.
12337         (output_object_block): Likewise.
12338
12339 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
12340
12341         PR ipa/65316
12342         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
12343         when outputting debug.
12344
12345 2015-03-07  Marek Polacek  <polacek@redhat.com>
12346             Martin Uecker  <uecker@eecs.berkeley.edu>
12347
12348         PR sanitizer/65280
12349         * doc/invoke.texi: Update description of -fsanitize=bounds.
12350
12351 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
12352
12353         * tree-ssa-phiopt.c (neg_replacement): Remove.
12354         (tree_ssa_phiopt_worker): Remove negate optimization.
12355
12356 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
12357
12358         PR ipa/65302
12359         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
12360
12361 2015-03-06  Richard Biener  <rguenther@suse.de>
12362
12363         PR middle-end/64928
12364         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
12365         and liveout_obstack members.
12366         (calculate_live_on_exit): Remove.
12367         (calculate_live_ranges): Change declaration.
12368         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
12369         (new_tree_live_info): Adjust.
12370         (calculate_live_ranges): Delete livein when not wanted.
12371         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
12372         Deal with partly deleted live info.
12373         (loe_visit_block): Remove temporary bitmap by using
12374         bitmap_ior_and_compl_into.
12375         (live_worklist): Adjust accordingly.
12376         (calculate_live_on_exit): Make static.
12377         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
12378         we do not need livein.
12379
12380 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
12381
12382         * real.c (real_from_string): Fix typo in assertion.
12383
12384 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
12385
12386         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
12387         the patch.
12388
12389 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
12390
12391         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
12392
12393 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
12394
12395         PR target/64342
12396         * lra-assigns.c (find_hard_regno_for): Rename to
12397         find_hard_regno_for_1.  Add a new parameter.
12398         (find_hard_regno_for): New function using find_hard_regno_for_1.
12399
12400 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12401
12402         PR rtl-optimization/65067
12403         * expmed.c (store_bit_field, extract_bit_field): Reworked the
12404         strict volatile bitfield handling.
12405
12406 2015-03-05  Martin Liska  <mliska@suse.cz>
12407
12408         PR ipa/65318
12409         * ipa-icf.c (sem_variable::equals): Compare variables types.
12410
12411 2015-03-05  Richard Henderson  <rth@redhat.com>
12412
12413         PR target/65121
12414         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
12415         correctly check weak symbol binding.
12416
12417 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
12418
12419         PR middle-end/65315
12420         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
12421         needed alignment.
12422
12423 2015-03-05  Martin Liska  <mliska@suse.cz>
12424
12425         * ipa-inline.c (inline_small_functions): Set default value to
12426         prevent warning during bootstrap.
12427         * tree.h: Add pragma guard that ignores false positives during
12428         bootstrap.
12429
12430 2015-03-05  Richard Biener  <rguenther@suse.de>
12431
12432         PR tree-optimization/65310
12433         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
12434         Properly preserve alignment of the base of the access.
12435
12436 2015-03-05  Richard Biener  <rguenther@suse.de>
12437
12438         PR ipa/65270
12439         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
12440         Compare dependence info.
12441
12442 2015-03-05  Richard Biener  <rguenther@suse.de>
12443
12444         PR middle-end/65233
12445         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
12446         tree-into-ssa.h.
12447         (walk_ssa_copies): Revert last chage.  Instead do not walk
12448         SSA names registered for SSA update.
12449
12450 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
12451
12452         PR ipa/65270
12453         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
12454         vtable references for their containing type.
12455         (sem_function::equals_wpa): Compare TYPE_RESTRICT
12456         and type attributes.
12457
12458 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
12459
12460         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
12461         before negating it.
12462         * stor-layout.c (finalize_record_size): Revert latest change.
12463
12464 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
12465
12466         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
12467
12468 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
12469
12470         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
12471         for correct comdat handling.
12472         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
12473         Likewise.
12474         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
12475         (used_from_object_file_p_worker): Remove.
12476         (cgraph_node::only_called_directly_or_alised): Add
12477         used_from_object_file_p.
12478         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
12479         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
12480         can_remove_if_no_direct_calls_and_refs_p.
12481
12482 2015-03-04  Nick Clifton  <nickc@redhat.com>
12483
12484         * config/rl78/rl78.h (enum reg_class): Remove real registers from
12485         General register class.
12486         * config/rl78/rl78-real.md: Replace general register constraints
12487         with real+virtual register constraints.
12488
12489 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12490
12491         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
12492         from checking for -mhtm option.
12493
12494 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
12495
12496         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
12497         (struct ipa_sra_check_caller_data): Add has_thunk field.
12498         (ipa_sra_check_caller): Check for thunk.
12499         (ipa_sra_preliminary_function_checks): Give up on function with
12500         thunks.
12501         (ipa_early_sra): Use call_for_symbol_and_aliases.
12502
12503 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
12504
12505         PR target/65249
12506         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
12507         called for __stack_chk_guard symbol.
12508
12509 2015-03-03  DJ Delorie  <dj@redhat.com>
12510
12511         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
12512         inc/dec.
12513         (*addhi3_real): Likewise.
12514         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
12515         pattern to match incrementing memory.
12516         * config/rl78/predicates.md (rl78_1_2_operand): New.
12517         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
12518         it's the same and only mem.
12519         (rl78_alloc_physical_registers_op2): If there's effectively only
12520         one MEM, transcode it into HL.
12521         (rl78_far_p): Reject addresses that aren't legitimate.
12522
12523 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
12524
12525         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
12526         negating it.
12527
12528         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
12529
12530 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
12531
12532         Implement call0 ABI for xtensa
12533         * config/xtensa/constraints.md ("a" constraint): Include stack
12534         pointer in case of call0 ABI.
12535         ("q" constraint): Make empty in case of call0 ABI.
12536         ("D" constraint): Include stack pointer in case of call0 ABI.
12537         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
12538         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
12539         prototypes.
12540         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
12541         variable.
12542         (xtensa_regno_to_class): Make it a local variable in the
12543         function xtensa_regno_to_class.
12544         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
12545         macro, function prototype and implementation.
12546         (reg_nonleaf_alloc_order): Make it a local variable in the
12547         function order_regs_for_local_alloc.
12548         (xtensa_conditional_register_usage): New function.
12549         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
12550         (xtensa_valid_move): Allow direct moves to stack pointer
12551         register in call0 ABI.
12552         (xtensa_setup_frame_addresses): Only spill register windows in
12553         windowed ABI.
12554         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
12555         call0 ABI respectively.
12556         (xtensa_function_arg_1): Only mark a7 register for copying in
12557         windowed ABI.
12558         (xtensa_call_save_reg): New function.
12559         (compute_frame_size): Add space for callee saved register
12560         storage to the frame size in call0 ABI.
12561         (xtensa_expand_prologue): Generate code to set up stack frame
12562         and save callee-saved registers in call0 ABI.
12563         (xtensa_expand_epilogue): New function.
12564         (xtensa_set_return_address): New function.
12565         (xtensa_return_addr): Calculate return address in call0 ABI.
12566         (xtensa_builtin_saveregs): Only mark a7 register for copying and
12567         emit copying code in windowed ABI.
12568         (order_regs_for_local_alloc): Add preferred register allocation
12569         order for non-leaf function in call0 ABI.
12570         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
12571         (xtensa_asm_trampoline_template): Add trampoline generation for
12572         call0 ABI.
12573         (xtensa_trampoline_init): Add trampoline initialization for
12574         call0 ABI.
12575         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
12576         functions.
12577         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
12578         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
12579         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
12580         ABI call-used registers.
12581         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
12582         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
12583         call0 ABI.
12584         (REG_CLASS_CONTENTS): Include all registers into the preferred
12585         reload registers set, adjust the set in the
12586         xtensa_conditional_register_usage.
12587         (xtensa_regno_to_class): Drop variable declaration.
12588         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
12589         function.
12590         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
12591         respectively.
12592         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
12593         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
12594         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
12595         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
12596         location in call0 ABI.
12597         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
12598         stack adjustment size when handling exception.
12599         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
12600         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
12601         definitions.
12602         ("return" pattern): Generate ret.n/ret in call0 ABI.
12603         ("epilogue" pattern): Expand epilogue.
12604         ("nonlocal_goto" pattern): Use default in call0 ABI.
12605         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
12606         emit eh_set_a0_* depending on ABI.
12607         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
12608         ("eh_set_a0_call0", "blockage"): New patterns.
12609
12610 2015-03-03  Martin Liska  <mliska@suse.cz>
12611
12612         PR ipa/65287
12613         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
12614
12615 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12616
12617         PR 65138/target
12618         * config/rs6000/rs6000-tables.opt: Regenerate table.
12619
12620 2015-03-03  Renlin Li  <renlin.li@arm.com>
12621
12622         * doc/md.texi (@item ^): Change ? into ^.
12623
12624 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
12625
12626         * doc/tm.texi: Regenerated.
12627
12628 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
12629
12630         * builtins.c (expand_builtin_return_addr): Add
12631         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
12632         surrounding #ifdef.
12633         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
12634         definition to 1.
12635         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
12636         Likewise.
12637         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
12638         undefined.
12639         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
12640         paragraph.
12641
12642 2015-03-03  Martin Jambor  <mjambor@suse.cz>
12643             Eric Botcazou  <ebotcazou@adacore.com>
12644
12645         * tree-sra.c (ipa_sra_check_caller_data): New type.
12646         (has_caller_p): Removed.
12647         (ipa_sra_check_caller): New function.
12648         (ipa_sra_preliminary_function_checks): Use it.
12649
12650 2015-03-03  Martin Liska  <mliska@suse.cz>
12651
12652         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
12653         instead of if branch.
12654
12655 2015-03-03  Martin Liska  <mliska@suse.cz>
12656
12657         PR ipa/65282
12658         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
12659
12660 2015-03-23  Jeff Law  <law@redhat.com>
12661
12662         PR tree-optimization/65241
12663         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
12664         hash table if INSERT is true.
12665
12666 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
12667
12668         PR target/65296
12669         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
12670
12671 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
12672
12673         PR target/64331
12674         * config/avr/avr.c (context.h, tree-pass.h): Include them.
12675         (avr_pass_data_recompute_notes): New static variable.
12676         (avr_pass_recompute_notes): New class.
12677         (avr_register_passes): New static function.
12678         (avr_option_override): Call it.
12679
12680 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
12681
12682         Fix various problems with specs file generation.
12683
12684         PR target/65296
12685         * config.gcc (extra_gcc_objs) [avr]: Remove.
12686         * config/avr/driver-avr.c: Remove file.
12687         * config/avr/t-avr (driver-avr.o): Remove rule.
12688         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
12689         INCLUDES to build.  Depend on TM_H.
12690         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
12691         build warnings.  Fix non-matching types and non-existing %-codes.
12692         (tm.h): Include.
12693         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
12694         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
12695         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
12696         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
12697         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
12698         (LIBGCC_SPEC): Remove definitions.
12699
12700 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
12701
12702         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
12703         to create a register in testing mode.
12704
12705 2015-03-03  Martin Liska  <mliska@suse.cz>
12706             Jan Hubicka  <hubicka@ucw.cz>
12707
12708         PR ipa/65263
12709         * cgraph.c (cgraph_node::has_thunk_p): New function.
12710         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
12711         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
12712         (sem_function::merge): Assert is changed.
12713
12714 2015-03-03  Martin Liska  <mliska@suse.cz>
12715             Martin Jambor  <mjambor@suse.cz>
12716
12717         PR ipa/65087
12718         * ipa-icf.c (sem_item_optimizer::execute): Change function
12719         return value to boolean.
12720         (sem_item_optimizer::merge_classes): Likewise.
12721         (ipa_icf_driver): Return TODO_remove_functions in case there's
12722         a merge operation processed.
12723         * ipa-icf.h: Change function return value to boolean.
12724
12725 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
12726
12727         PR 65138/target
12728         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
12729         processor type for 64-bit little endian PowerPC.
12730
12731         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
12732         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
12733         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
12734         printing built-in mask so it does not pass NULL pointers.
12735
12736         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
12737         -mcpu=powerpc64le.
12738
12739 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
12740
12741         PR target/58158
12742         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
12743         !ISA_HAS_FP_CONDMOVE.
12744
12745 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
12746
12747         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
12748         reload_completed.
12749
12750 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
12751
12752         * doc/invoke.texi (Options for Code Generation Conventions):
12753         Fix URL of DSO paper.
12754
12755 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
12756
12757         PR ipa/65130
12758         * ipa-inline.c (check_callers): Looks for recursion.
12759         (inline_to_all_callers): Give up on uninlinable or recursive edges.
12760         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
12761         summary of inline clones.
12762         (do_estimate_growth_1): Fix recursion check.
12763
12764 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
12765
12766         PR ipa/64988
12767         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
12768         comdat groups.
12769
12770 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
12771             Aldy Hernandez  <aldyh@redhat.com>
12772
12773         PR lto/65276
12774         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
12775         when checking TYPE_BINFO.
12776
12777 2015-03-02  Richard Biener  <rguenther@suse.de>
12778
12779         PR ipa/65270
12780         * ipa-icf-gimple.c: Include builtins.h.
12781         (func_checker::compare_memory_operand): Compare base alignment.
12782
12783 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
12784
12785         PR target/65184
12786         * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
12787         are never passed by reference.
12788
12789 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
12790
12791         PR target/65183
12792         * tree-chkp.c (chkp_check_lower): Don't check against
12793         zero bounds for already instrumented functions.
12794         (chkp_check_upper): Likewise.
12795         (chkp_fini): Clean pass local data to avoid wrong reusage.
12796
12797 2015-02-28  Martin Liska  <mliska@suse.cz>
12798             Jan Hubicka  <hubicka@ucw.cz>
12799
12800         * ipa-icf.c (sem_variable::equals): Improve debug output;
12801         get variable constructor.
12802         (sem_variable::parse): Do not filter out too early; give up on
12803         volatile and register vars.
12804         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
12805         variables.
12806         * ipa-icf.h (sem_variable::init): Do not set ctor.
12807         (sem_variable::ctor): Remove.
12808
12809 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
12810
12811         PR middle-end/65233
12812         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
12813
12814 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12815
12816         * ipa-icf.c: Include stor-layout.h
12817         (sem_function::compare_cgraph_references): Rename to ...
12818         (sem_item::compare_cgraph_references): ... this one.
12819         (sem_variable::equals_wpa): New function
12820         (sem_variable::equals): Do not check stuff already verified by
12821         equals_wpa.
12822         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
12823         * ipa-icf.h (sem_item): Add compare_cgraph_references.
12824         (sem_function): Remove compare_cgraph_references.
12825         (sem_variable): Turns equals_wpa into non-inline.
12826
12827 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12828
12829         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
12830         (sem_item::add_expr): New function.
12831         (sem_function::hash_stmt): Handle operands of most statements.
12832         (sem_variable::get_hash): Hash the actual constructor.
12833         * ipa-icf.h (sem_item): Add add_expr.
12834         (sem_function): Update prototype of hash_stmt
12835
12836 2015-02-28  Martin Liska  <mliska@suse.cz>
12837             Jan Hubicka  <hubicka@ucw.cz>
12838
12839         PR ipa/65245
12840         * ipa-icf-gimple.c (func_checker::compare_function_decl):
12841         Remove.
12842         (func_checker::compare_variable_decl): Skip symtab vars.
12843         (func_checker::compare_cst_or_decl): Update.
12844         * ipa-icf.c (sem_function::parse): Do not consider aliases.
12845         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
12846         use correct symtab predicates.
12847         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
12848         (sem_variable::parse):  Update comment.
12849         (sem_item_optimizer::build_graph): Consider ultimate aliases
12850         for references.
12851
12852 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12853
12854         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
12855         of OBJ_TYPE_REF.
12856
12857 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12858
12859         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
12860         (sem_variable::merge) Likewise.
12861
12862 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12863
12864         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
12865         target; also match flag_ipa_devirt.
12866
12867 2015-03-01  Martin Liska  <mliska@suse.cz>
12868             Jan Hubicka  <hubicka@ucw.cz>
12869
12870         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
12871         Validate variable alignment.
12872         * ipa-icf.c (sem_function::equals_private): Be more precise
12873         about non-common function attributes.
12874         (sem_variable::equals): Likewise.
12875
12876 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12877
12878         PR ipa/65237
12879         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
12880         across COMDAT group boundary.
12881
12882 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12883
12884         PR ipa/65232
12885         * ipa-icf.c (clear_decl_rtl): New function.
12886         (sem_function::merge): Clear RTL before forming alias.
12887         (sem_variable::merge): Clear RTL before forming alias.
12888
12889 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
12890
12891         PR ipa/65236
12892         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
12893
12894 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
12895
12896         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
12897         to neon_to_gp<q>.
12898
12899 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
12900
12901         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
12902         a typo in the description.
12903
12904 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
12905
12906         PR target/64317
12907         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
12908         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
12909         * lra-constraints.c: Include "params.h".
12910         (EBB_PROBABILITY_CUTOFF): Use
12911         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
12912         (lra_inheritance): Use '<' instead of '<=' for
12913         EBB_PROBABILITY_CUTOFF.
12914         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
12915         Document change.
12916
12917 2015-02-27  Martin Liska  <mliska@suse.cz>
12918
12919         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
12920         vector length condition.
12921
12922 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
12923
12924         * doc/extend.texi (x86 transactional memory intrinsics):
12925         Reorganize discussion of _xbegin.  Clarify that the return
12926         value is a bit mask.  Expand example and move to end of section.
12927
12928 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
12929             Aldy Hernandez  <aldyh@redhat.com>
12930
12931         PR rtl-optimization/65220
12932         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
12933
12934 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
12935
12936         PR target/65032
12937         * lra-remat.c (update_scratch_ops): New.
12938         (do_remat): Call it.
12939         * lra.c (lra_register_new_scratch_op): New. Take code from ...
12940         (remove_scratches): ... here.
12941         * lra-int.h (lra_register_new_scratch_op): New prototype.
12942
12943 2015-02-27  Marek Polacek  <polacek@redhat.com>
12944
12945         PR c/65040
12946         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
12947         -Wformat-signedness anymore.
12948
12949 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12950
12951         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
12952         function.
12953         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
12954
12955 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12956
12957         * config/s390/s390.c (enum s390_builtin):
12958         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
12959         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
12960         (s390_init_builtins): Generate new builtin functions.
12961         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
12962         (s390_sfpc, s390_efpc): New pattern definitions.
12963
12964 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
12965
12966         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
12967         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
12968         (s390_builtin_decls): New array.
12969         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
12970         (s390_builtin_decl): New function.
12971         (TARGET_BUILTIN_DECL): Define macro.
12972
12973 2015-02-27  Richard Biener  <rguenther@suse.de>
12974
12975         PR middle-end/63175
12976         * builtins.c (get_object_alignment_2): Make sure to re-apply
12977         the ANDed mask after recursing to its operand gets us a new
12978         misalignment bit position.
12979
12980 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
12981             Martin Liska  <mliska@suse.cz>
12982
12983         PR bootstrap/65150
12984         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
12985         Use address_matters_p.
12986         (redirect_all_callers, set_addressable): New functions.
12987         (sem_function::merge): Reorganize and fix merging issues.
12988         (sem_variable::merge): Likewise.
12989         (sem_variable::compare_sections): Remove.
12990         * common.opt (fmerge-all-constants, fmerge-constants): Remove
12991         Optimization flag.
12992         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
12993         redirect them.
12994         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
12995         decl is used.
12996         (address_matters_1): New function.
12997         (symtab_node::address_matters_p): New function.
12998         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
12999         check for merged flag.
13000         * cgraph.h (address_matters_p): Declare.
13001         (symtab_node::address_taken_from_non_vtable_p): Remove.
13002         (symtab_node::address_can_be_compared_p): New method.
13003         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
13004         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
13005         Remove.
13006         (comdat_can_be_unshared_p_1) Use address_matters_p.
13007         (update_vtable_references): Fix formating.
13008         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
13009         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
13010         * cgraphclones.c: Preserve merged and icf_merged flags.
13011
13012 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
13013
13014         * doc/extend.texi (Function Attributes): Fix spelling and typos.
13015         (Label Attributes): Likewise.
13016         (Cilk Plus Builtins): Likewise.
13017         (ARC SIMD Built-in Functions): Likewise.
13018         (ARM C Language Extensions (ACLE)): Likewise.
13019         (PowerPC Built-in Functions): Likewise.
13020         (PowerPC Hardware Transactional Memory Built-in Functions):
13021         Likewise.
13022
13023 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
13024
13025         PR tree-optimization/65216
13026         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
13027         new stmt and new SSA_NAME for lhs whenever the arguments have
13028         changed and weren't just swapped.  Fix comment typo.
13029
13030         PR tree-optimization/65215
13031         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
13032         for PDP endian targets.
13033         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
13034         Fix up formatting issues.
13035         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
13036         size is smaller than the original, adjust MEM_REF offset by the
13037         difference of sizes.  Use is_gimple_mem_ref_addr instead of
13038         is_gimple_min_invariant test to avoid adding address temporaries.
13039
13040 2015-02-26  Martin Liska  <mliska@suse.cz>
13041             Jan Hubicka  <hubicka@ucw.cz>
13042
13043         PR ipa/64693
13044         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
13045         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
13046         (sem_item_optimizer::process_cong_reduction): Include division by
13047         sensitive references.
13048         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
13049         * ipa-ref.c (ipa_ref::address_matters_p): New function.
13050         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
13051
13052 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
13053
13054         PR target/65192
13055         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
13056         Remove.
13057         * config/avr/avr.c: Same.
13058         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
13059         Refuse any constant address not in 0..0xbf.
13060         * config/avr/avr.md (*mov<mode>, *movsf): Remove
13061         tiny_valid_direct_memory_access_range from insn conditions.
13062         (mov<mode>): Don't special-case expansion of avrtiny addresses.
13063
13064 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
13065
13066         PR target/61142
13067         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
13068         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
13069         * config/sh/predicates.md (const_logical_operand): New predicate.
13070         * config/sh/sh.md: Add new peephole2 patterns.
13071
13072 2015-02-26  Marek Polacek  <polacek@redhat.com>
13073
13074         PR ipa/65008
13075         * ipa-inline.c (early_inliner): Recompute inline parameters.
13076
13077 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13078
13079         PR target/65171
13080         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
13081         instructions with TImode operands are included in the analysis.
13082
13083 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
13084
13085         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
13086         of an EDGE_FSM_THREAD.
13087
13088 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
13089
13090         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
13091
13092 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
13093
13094         PR debug/46102
13095         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
13096
13097 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
13098
13099         PR tree-optimization/65048
13100         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
13101         (thread_through_all_blocks): Call valid_jump_thread_path.
13102         Remove invalid FSM jump-thread paths.
13103
13104 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
13105
13106         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
13107         (ipa_write_optimization_summaries): Likewise.
13108         * tree-streamer.h: Include data-streamer.h.
13109         (streamer_mode_table): Declare extern variable.
13110         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
13111         * lto-streamer-out.c (lto_output_init_mode_table,
13112         lto_write_mode_table): New functions.
13113         (produce_asm_for_decls): Call lto_write_mode_table when streaming
13114         offloading LTO.
13115         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
13116         (lto_create_simple_input_block): Add mode_table argument to the
13117         lto_input_block constructors.
13118         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
13119         Likewise.
13120         * data-streamer-in.c (string_for_index): Likewise.
13121         * ipa-inline-analysis.c (inline_read_section): Likewise.
13122         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
13123         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
13124         * lto-streamer-in.c (lto_read_body_or_constructor,
13125         lto_input_toplevel_asms): Likewise.
13126         (lto_input_mode_table): New function.
13127         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
13128         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
13129         Use bp_pack_machine_mode.
13130         * real.h (struct real_format): Add name field.
13131         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
13132         (class lto_input_block): Add mode_table member.
13133         (lto_input_block::lto_input_block): Add mode_table_ argument,
13134         initialize mode_table.
13135         (struct lto_file_decl_data): Add mode_table field.
13136         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
13137         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
13138         unpack_ts_decl_common_value_fields,
13139         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
13140         * tree-streamer.c (streamer_mode_table): New variable.
13141         * real.c (ieee_single_format, mips_single_format,
13142         motorola_single_format, spu_single_format, ieee_double_format,
13143         mips_double_format, motorola_double_format,
13144         ieee_extended_motorola_format, ieee_extended_intel_96_format,
13145         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
13146         ibm_extended_format, mips_extended_format, ieee_quad_format,
13147         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
13148         decimal_single_format, decimal_double_format, decimal_quad_format,
13149         ieee_half_format, arm_half_format, real_internal_format): Add name
13150         field.
13151         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
13152
13153 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
13154
13155         PR target/65161
13156         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
13157         reordering for selective scheduling.
13158
13159 2015-02-26  Terry Guo  <terry.guo@arm.com>
13160
13161         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
13162         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
13163         (arm_arch_no_volatile_ce): Declare new global variable.
13164         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
13165         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
13166         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
13167         (TARGET_NO_VOLATILE_CE): New macro.
13168         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
13169         volatile memory access in IT block
13170
13171 2015-02-25  Kai Tietz  <ktietz@redhat.com>
13172
13173         PR tree-optimization/61917
13174         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
13175         that reduc_def_stmt is null.
13176
13177 2015-02-25  Martin Liska  <mliska@suse.cz>
13178
13179         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
13180         hard register variables.
13181
13182 2015-02-25  Kai Tietz  <ktietz@redhat.com>
13183
13184         PR target/64212
13185         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
13186         (symtab::noninterposable_alias): Likewise.
13187
13188 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
13189
13190         PR target/65167
13191         * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
13192         bounds registers.
13193         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
13194
13195 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
13196
13197         PR target/64997
13198         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
13199         as split condition; force split via '#' in output pattern.
13200
13201 2015-02-25  Richard Biener  <rguenther@suse.de>
13202             Kai Tietz  <ktietz@redhat.com>
13203
13204         PR tree-optimization/61917
13205         * tree-vect-loop.c (vectorizable_reduction): Allow
13206         vect_internal_def without reduction to exit graceful.
13207
13208 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
13209
13210         PR target/65196
13211         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
13212         only with NONDEBUG_INSN_P.
13213
13214 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
13215
13216         Use variadic macros with avr-log.c.
13217
13218         * config/avr/avr-protos.h (avr_vdump): New prototype.
13219         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
13220         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
13221         * config/avr/avr-log.c: Adjust comments.
13222         (avr_vdump): New function.
13223         (avr_vadump): Pass caller as 2nd argument instead of format string.
13224         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
13225         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
13226
13227 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
13228
13229         PR lto/64374
13230         * target.def (target_option_stream_in): New target hook.
13231         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
13232         targetm.target_option.post_stream_in if non-NULL.
13233         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
13234         * doc/tm.texi: Updated.
13235         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
13236         function.
13237         (TARGET_OPTION_POST_STREAM_IN): Redefine.
13238
13239 2015-02-24  Jeff Law  <law@redhat.com>
13240
13241         PR target/65117
13242         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
13243         of operand 0 and operand 2.
13244         (zero_cost_loop_end, loop_end): Similarly.
13245
13246 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
13247
13248         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
13249         CXX_MEM_STAT_INFO.
13250
13251 2015-02-24  DJ Delorie  <dj@redhat.com>
13252
13253         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
13254         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
13255         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
13256         instead of hardcoding SImode.
13257
13258 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
13259
13260         * omp-low.c (create_omp_child_function): Tag entrypoint
13261         functions with a special attribute.
13262
13263 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
13264
13265         PR target/65058
13266         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
13267
13268 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
13269
13270         PR rtl-optimization/65123
13271         * lra-remat.c (operand_to_remat): Check hard regs in insn
13272         definition too.
13273
13274 2015-02-24  Nick Clifton  <nickc@redhat.com>
13275
13276         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
13277         to the assembler.
13278
13279 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
13280
13281         PR libgomp/64625
13282         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
13283         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
13284         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
13285         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
13286         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
13287         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
13288         (BUILT_IN_GOACC_PARALLEL): Specify as
13289         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
13290         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
13291         * builtin-types.def
13292         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
13293         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
13294         Remove function types.
13295         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
13296         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
13297         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
13298         New function types.
13299
13300 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
13301
13302         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
13303
13304 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
13305
13306         PR tree-optimization/65170
13307         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
13308         if val[1] < 0, clear also val[2] and return 3.
13309
13310 2015-02-24  Alan Modra  <amodra@gmail.com>
13311
13312         PR target/65172
13313         * config/rs6000/rs6000.c (get_memref_parts): Only return true
13314         when *base is a reg.  Handle nested plus addresses.  Simplify
13315         pre_modify test.
13316
13317 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
13318
13319         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
13320         use natural alignment when optimizing for size.
13321
13322 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
13323
13324         PR target/65153
13325         * config/sh/sh.md (movsicc_true+3): Remove peephole.
13326         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
13327         * config/sh/sh.c (replace_n_hard_rtx): Remove.
13328
13329 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
13330
13331         PR fortran/63427
13332         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
13333         too big for a wide_int.  Implement missing wrapping operation.
13334
13335 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
13336
13337         PR target/65163
13338         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
13339         instead of const_int 4294901760.
13340
13341 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
13342
13343         * config/avr/t-avr: Fix typo in comment.
13344
13345 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
13346
13347         * doc/rtl.texi (fma): Clarify documentation.
13348
13349 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
13350
13351         PR debug/58123
13352         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
13353         over input_location.
13354
13355 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
13356
13357         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
13358         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
13359         restrict alignments to absolute_biggest_alignment.
13360         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
13361         Define.
13362         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
13363         * doc/tm.texi: Regenerate.
13364         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
13365
13366 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
13367
13368         PR target/64172
13369         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
13370
13371 2015-02-20  Richard Biener  <rguenther@suse.de>
13372
13373         PR tree-optimization/65136
13374         * tree-ssa-propagate.c: Include cfgloop.h.
13375         (replace_phi_args_in): Avoid replacing loop latch edge PHI
13376         arguments with constants.
13377
13378 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
13379             Martin Liska  <mliska@suse.cz>
13380
13381         PR target/63892
13382         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
13383         don't try to create_thunk if stdarg_p.  If
13384         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
13385         redirect_callers if possible.
13386         (sem_item_optimizer::execute): Call unregister_hooks here...
13387         (ipa_icf_driver): ... instead of here.
13388
13389 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13390
13391         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
13392         Mark operand 0 as earlyclobber in 2nd alternative.
13393         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
13394         Write negated shift amount into QI lowpart operand 0 and use it
13395         in the shift step.
13396         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
13397
13398 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
13399
13400         * cgraph.h (clone_function_name_1): Declare.
13401         * cgraphclones.c (clone_function_name_1): New function.
13402         (clone_function_name): Use it.
13403         * lto-partition.c: Include "stringpool.h".
13404         (must_not_rename, maybe_rewrite_identifier)
13405         (validize_symbol_for_target): New static functions.
13406         (privatize_symbol_name): Use must_not_rename.
13407         (promote_symbol): Call validize_symbol_for_target.
13408         (lto_promote_cross_file_statics): Likewise.
13409         (lto_promote_statics_nonwpa): Likewise.
13410
13411 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
13412
13413         PR target/64452
13414         * config/avr/avr.md (pushhi_insn): New insn.
13415         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
13416
13417 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
13418             Jakub Jelinek  <jakub@redhat.com>
13419
13420         * tree-streamer.c (preload_common_nodes): Don't preload
13421         TI_VA_LIST* for offloading.
13422         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
13423         in_lto_p.
13424
13425 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
13426
13427         * config/pa/pa.c (pa_emit_move_sequence): Always force
13428         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
13429         note on insn.
13430
13431         * config/pa/pa.c (pa_reloc_rw_mask): New function.
13432         (TARGET_ASM_RELOC_RW_MASK): Define.
13433         (pa_cannot_force_const_mem): Revert previous change.
13434
13435 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
13436             Jan Hubicka  <hubicka@ucw.cz>
13437
13438         PR ipa/65028
13439         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
13440         across jump functions.
13441
13442 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
13443
13444         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
13445
13446 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
13447
13448         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
13449
13450 2015-02-19  Richard Henderson  <rth@redhat.com>
13451
13452         PR middle-end/65074
13453         * varasm.c (default_binds_local_p_2): Don't test node->definition;
13454         test DECL_EXTERNAL independent of symtab_node.
13455
13456 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
13457
13458         PR lto/65012
13459         * varpool.c (varpool_node::get_constructor): Return early
13460         if this->lto_file_data is NULL.
13461
13462 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
13463
13464         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
13465         (rank_for_schedule_debug): Update.
13466         (ready_sort): Make static.  Move sorting logic to ...
13467         (ready_sort_debug, ready_sort_real): New static functions.
13468         (schedule_block): Sort both debug insns and real insns in preparation
13469         for ready list trimming.  Improve debug output.
13470         * sched-int.h (ready_sort): Remove global declaration.
13471
13472 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
13473
13474         * ipa-icf.c (sem_function::equals_private): Adjust.
13475         (sem_function::bb_dict_test): Take a vec<int> * instead of
13476         auto_vec<int>.
13477         * ipa-icf.h (bb_dict_test): Likewise.
13478
13479 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
13480
13481         PR gcov-profile/64634
13482         * tree-eh.c (frob_into_branch_around): Fix up typos
13483         in function comment.
13484         (lower_catch): Put eh_seq resulting from EH lowering of
13485         the cleanup sequence after the cleanup rather than before it.
13486
13487 2015-02-18  Tom de Vries  <tom@codesourcery.com>
13488
13489         * common.opt (fstdarg-opt): New option.
13490         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
13491         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
13492         (@item -fstdarg-opt): New item.
13493
13494 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
13495
13496         PR target/65064
13497         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
13498         for common symbols.
13499
13500 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
13501
13502         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
13503         insn-modes.h.
13504         (ALL_HOST_OBJS): Add mkoffload.o.
13505         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
13506
13507 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
13508
13509         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
13510         (compare_virtual_tables): Be smarter about skipping typeinfos;
13511         do sane output on virtual table table mismatch.
13512         (warn_odr): Be ready for forward declarations of enums;
13513         output sane info on base mismatch and virtual table mismatch.
13514         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
13515         when only one type is polymorphic.
13516         (get_odr_type): Fix hashtable corruption.
13517         (dump_odr_type): Dump mangled names.
13518
13519 2015-02-18  Richard Biener  <rguenther@suse.de>
13520
13521         PR tree-optimization/65063
13522         * tree-predcom.c (determine_unroll_factor): Return 1 if we
13523         have replaced looparound PHIs.
13524
13525 2015-02-18  Martin Liska  <mliska@suse.cz>
13526
13527         * lto-streamer.c (lto_streamer_init): Encapsulate
13528         streamer_check_handled_ts_structures with checking macro.
13529
13530 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
13531
13532         PR ipa/65087
13533         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
13534         section if !implicit_section.
13535         (cgraph_node::create_version_clone_with_body): Likewise.
13536         * trans-mem.c (ipa_tm_create_version): Likewise.
13537
13538 2015-02-18  Richard Biener  <rguenther@suse.de>
13539
13540         PR tree-optimization/62217
13541         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
13542         into BIVs.
13543
13544 2015-02-18  Marek Polacek  <polacek@redhat.com>
13545
13546         PR sanitizer/65081
13547         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
13548         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
13549         is in range [-16K, -1].  Don't issue run-time error if
13550         (ptr > ptr + offset).
13551
13552 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
13553
13554         * doc/install.texi (nvptx-*-none): New section.
13555         * doc/invoke.texi (Nvidia PTX Options): Likewise.
13556         * config/nvptx/nvptx.opt: Update.
13557
13558         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
13559         (access_check): New functions, copied from
13560         config/i386/intelmic-mkoffload.c.
13561         (main): For non-installed testing, look in all COMPILER_PATHs for
13562         GCC_INSTALL_NAME.
13563
13564         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
13565
13566 2015-02-18  Andrew Pinski  <apinski@cavium.com>
13567             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13568
13569         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
13570         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
13571
13572 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
13573
13574         * ipa-visibility.c (function_and_variable_visibility): Only
13575         check locality if node is not already local.
13576         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
13577         call_for_symbol_and_aliases instead of
13578         call_for_symbol_thunks_and_aliases.
13579         (ipa_inline): Likewise.
13580         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
13581         first walk aliases.
13582         * ipa.c (symbol_table::remove_unreachable_nodes): Use
13583         call_for_symbol_and_aliases.
13584         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
13585         (ipa_propagate_frequency_1): Use it; use opt_for_fn
13586         (ipa_propagate_frequency): Update.
13587         (ipa_profile): Add opt_for_fn gueards.
13588
13589 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
13590
13591         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
13592         * doc/invoke.texi (SH options): Document it.
13593         * config/sh/sh.c (sh_insn_length_adjustment): Check
13594         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
13595
13596 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
13597
13598         * common.opt (fipa-cp-alignment): New.
13599         * ipa-cp.c (ipcp_store_alignment_results): Check
13600         flag_ipa_cp_alignment.
13601         * opts.c (default_options_table): Enable -fipa-cp-alignment for
13602         -O2.
13603         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
13604         * doc/invoke.texi: Document -fipa-cp-alignment.
13605
13606 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
13607
13608         PR target/64793
13609         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
13610         to nil.  Adjust comments.
13611
13612 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
13613
13614         * ipa-visibility.c (function_and_variable_visibility): Only
13615         check locality if node is not already local.
13616         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
13617         call_for_symbol_and_aliases instead of
13618         call_for_symbol_thunks_and_aliases.
13619         (ipa_inline): Likewise.
13620         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
13621         first walk aliases.
13622         * ipa.c (symbol_table::remove_unreachable_nodes): Use
13623         call_for_symbol_and_aliases.
13624         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
13625         (ipa_propagate_frequency_1): Use it; use opt_for_fn
13626         (ipa_propagate_frequency): Update.
13627         (ipa_profile): Add opt_for_fn guards.
13628
13629 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
13630
13631         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
13632         skipping of "strange" tokens.
13633
13634 2015-02-17  Jeff Law  <law@redhat.com>
13635
13636         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
13637         obsolete comment.
13638
13639 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
13640
13641         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
13642         as forcing a HARD_DEP between instructions, thereby
13643         disallowing rewriting to break dependencies.
13644
13645 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
13646
13647         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
13648         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
13649         variables in boundary that have no inlitalizer encoded and are
13650         not aliases.
13651         * varasm.c (default_binds_local_p_2): External definitions do not
13652         count as definitions here.
13653
13654 2015-02-16  Jeff Law  <law@redhat.com>
13655
13656         PR tree-optimization/64823
13657         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
13658         statements.
13659         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
13660         threading through blocks with PHIs, but no statements.
13661         (thread_through_normal_block): Distinguish between blocks where
13662         we did not process all the statements and blocks with no statements.
13663
13664 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
13665             James Greenhalgh  <james.greenhalgh@arm.com>
13666
13667         PR ipa/64963
13668         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
13669         section if not linkonce.  Fix up formatting.
13670         (cgraph_node::create_version_clone_with_body): Copy section.
13671         * trans-mem.c (ipa_tm_create_version): Likewise.
13672
13673 2015-02-16  Richard Biener  <rguenther@suse.de>
13674
13675         PR tree-optimization/65077
13676         * tree-ssa-structalias.c (get_constraint_for_1): Handle
13677         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
13678         (find_func_aliases): Allow float values to carry pointers again.
13679
13680 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
13681
13682         * doc/install.texi (Specific): Reorder targets list to put
13683         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
13684         from the top menu.
13685
13686 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
13687             David Edelsohn  <dje.gcc@gmail.com>
13688
13689         PR target/65058
13690         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
13691         mapping class to external variable or function reference.
13692         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
13693         mapping class.
13694
13695 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
13696
13697         PR target/53348
13698         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
13699         ASM_WEAKEN_DECL if defined.
13700
13701 2015-02-16  Richard Biener  <rguenther@suse.de>
13702
13703         PR lto/65015
13704         * varasm.c (default_file_start): For LTO produced units
13705         emit <artificial> as file directive.
13706
13707 2015-02-16  Richard Biener  <rguenther@suse.de>
13708
13709         PR tree-optimization/63593
13710         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
13711         stmts and releasing SSA names until...
13712         (execute_pred_commoning): ... after processing all chains.
13713
13714 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
13715
13716         PR ipa/65059
13717         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
13718         external functions.
13719
13720 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
13721
13722         * doc/bugreport.texi: Adjust section titles throughout the file
13723         to use "Title Case".
13724         * doc/extend.texi: Likewise.
13725         * doc/gcov.texi: Likewise.
13726         * doc/implement-c.texi: Likewise.
13727         * doc/implement-cxx.texi: Likewise.
13728         * doc/invoke.texi: Likewise.
13729         * doc/objc.texi: Likewise.
13730         * doc/standards.texi: Likewise.
13731         * doc/trouble.texi: Likewise.
13732
13733 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
13734
13735         * cgraph.h (symtab_node::has_aliases_p): Simplify.
13736         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
13737         * tree.c (lookup_binfo_at_offset): Make static.
13738         (get_binfo_at_offset): Do not shadow offset; add explanatory
13739         comment.
13740
13741 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
13742
13743         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
13744         for all floading point loads and stores except those using a register
13745         index address.
13746         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
13747         to a register.
13748
13749 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
13750
13751         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
13752         (do_estimate_growth_1): Record if any uninlinable edge was seen.
13753         (estimate_growth): Handle uninlinable edges correctly.
13754         (check_callers): New.
13755         (growth_likely_positive): Handle aliases correctly.
13756
13757 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
13758
13759         * ipa-chkp.c: Use iterate_direct_aliases.
13760         * symtab.c (resolution_used_from_other_file_p): Move inline.
13761         (symtab_node::create_reference): Fix formating.
13762         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
13763         (symtab_node::iterate_reference): Move inline.
13764         (symtab_node::iterate_referring): Move inline.
13765         (symtab_node::iterate_direct_aliases): Move inline.
13766         (symtab_node::used_from_object_file_p_worker): Inline into ...
13767         (symtab_node::used_from_object_file_p): ... this one; move inline.
13768         (symtab_node::call_for_symbol_and_aliases): Move inline;
13769         use iterate_direct_aliases.
13770         (symtab_node::call_for_symbol_and_aliases_1): New method.
13771         (cgraph_node::call_for_symbol_and_aliases): Move inline;
13772         use iterate_direct_aliases.
13773         (cgraph_node::call_for_symbol_and_aliases_1): New method.
13774         (varpool_node::call_for_node_and_aliases): Rename to ...
13775         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
13776         use iterate_direct_aliases.
13777         (varpool_node::call_for_symbol_and_aliases_1): New method.
13778         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
13779         (ipa_discover_readonly_nonaddressable_var): Update.
13780         * ipa-devirt.c: Fix formating.
13781         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
13782         Move inline.
13783         (cgraph_node::call_for_symbol_and_aliases): Move inline.
13784         (cgraph_node::call_for_symbol_and_aliases_1): New function..
13785         * cgraph.h (used_from_object_file_p_worker): Remove.
13786         (resolution_used_from_other_file_p): Move inline.
13787         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
13788         (symtab_node::iterate_reference): Move inline.
13789         (symtab_node::iterate_referring): Move inline.
13790         (symtab_node::iterate_direct_aliases): Move inline.
13791         (symtab_node::used_from_object_file_p_worker): Inline into ...
13792         (symtab_node::used_from_object_file_p): Move inline.
13793         * tree-emutls.c (ipa_lower_emutls): Update.
13794         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
13795         (varpool_node::call_for_node_and_aliases): Remove.
13796
13797 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
13798
13799         PR tree-optimization/62209
13800         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
13801         op == range->exp, insert seq and gimplified code after labels
13802         instead of after the phi.
13803
13804 2015-02-13  Jeff Law  <law@redhat.com>
13805
13806         PR bootstrap/65060
13807         Revert my change for tree-optimization/64823.
13808
13809 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
13810
13811         PR tree-optimization/65053
13812         * tree-ssa-phiopt.c (value_replacement): When moving assign before
13813         cond, either reset VR on lhs or set it to phi result VR.
13814
13815 2015-02-13  Jeff Law  <law@redhat.com>
13816
13817         PR tree-optimization/64823
13818         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
13819         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
13820         threading through blocks with PHIs, but no statements.
13821         (thread_through_normal_block): Distinguish between blocks where
13822         we did not process all the statements and blocks with no statements.
13823
13824         PR rtl-optimization/47477
13825         * match.pd (convert (plus/minus (convert @0) (convert @1): New
13826         simplifier to narrow arithmetic.
13827
13828 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
13829
13830         PR ipa/65028
13831         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
13832         polymorphic call info when type is not known to be preserved.
13833
13834 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
13835
13836         PR ipa/65028
13837         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
13838         (inline_call): Use it.
13839
13840 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
13841
13842         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
13843         GOMP_DEVICE_NVIDIA_PTX.
13844
13845 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
13846
13847         PR ipa/65034
13848         * stmt.c (emit_case_nodes): Use void_type_node instead of
13849         NULL_TREE as LABEL_DECL type.
13850
13851 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
13852
13853         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
13854         constraints.
13855         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
13856         symbolic references to data to be forced to constant memory on the
13857         SOM target.
13858
13859 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
13860
13861         PR tree-optimization/65002
13862         * tree-cfg.c (pass_data_fixup_cfg): Don't update
13863         SSA on start.
13864         * tree-sra.c (some_callers_have_no_vuse_p): New.
13865         (ipa_early_sra): Reject functions whose callers
13866         assume function is read only.
13867
13868 2015-02-13  Richard Biener  <rguenther@suse.de>
13869
13870         PR lto/65015
13871         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
13872         for LTO produced CUs.
13873
13874 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
13875
13876         PR tree-optimization/64705
13877         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
13878         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
13879         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
13880         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
13881         expand_simple_operations.
13882
13883 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
13884             Richard Henderson  <rth@redhat.com>
13885
13886         PR rtl/32219
13887         * cgraphunit.c (cgraph_node::finalize_function): Set definition
13888         before notice_global_symbol.
13889         (varpool_node::finalize_decl): Likewise.
13890         * varasm.c (default_binds_local_p_2): Rename from
13891         default_binds_local_p_1, add weak_dominate argument.  Use direct
13892         returns instead of assigning to local variable.  Unify varpool and
13893         cgraph paths via symtab_node.  Reject undef weak variables before
13894         testing visibility.  Reorder tests for simplicity.
13895         (default_binds_local_p): Use default_binds_local_p_2.
13896         (default_binds_local_p_1): Likewise.
13897         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
13898         via symtab_node.
13899         (default_elf_asm_output_external): Emit visibility when specified.
13900
13901 2015-02-13  Alan Modra  <amodra@gmail.com>
13902
13903         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
13904         code setting up r11 for out-of-line fp restore.
13905
13906 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
13907
13908         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
13909         (muser-mode): Likewise.
13910
13911 2015-02-13  Alan Modra  <amodra@gmail.com>
13912
13913         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
13914         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
13915
13916 2015-02-12  David Howells  <dhowells@redhat.com>
13917
13918         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
13919         warning.
13920         * tree-ssa-uninit.c (dump_predicates): Likewise.
13921         * opts.c (print_filtered_help): Likewise.
13922
13923 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
13924
13925         * dwarf2out.c (output_die): Use "%s", name instead of name to
13926         avoid -Wformat-security warning.
13927
13928         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
13929         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
13930         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
13931         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
13932
13933 2015-02-12  Jason Merrill  <jason@redhat.com>
13934
13935         * common.opt (-flifetime-dse): New.
13936
13937 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
13938
13939         PR sanitizer/65019
13940         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
13941
13942         PR tree-optimization/65014
13943         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
13944         use original second operand of arg0 or arg1 instead of
13945         that adjusted by STRIP_NOPS.
13946
13947 2015-02-11  Jeff Law  <law@redhat.com>
13948
13949         PR target/63347
13950         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
13951         that needs to be queued, just queue it for a single cycle.
13952
13953 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
13954
13955         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
13956         bodies of thunks; comment on why.
13957         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
13958         symbols are extern.
13959
13960 2015-02-11  Richard Henderson  <rth@redhat.com>
13961
13962         PR sanitize/65000
13963         * tree-eh.c (mark_reachable_handlers): Mark source and destination
13964         regions of __builtin_eh_copy_values.
13965
13966 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
13967
13968         PR middle-end/65003
13969         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
13970         ultimate alias is MEM with SYMBOL_REF satisfying
13971         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
13972         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
13973
13974 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
13975
13976         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
13977         "diagnostic-core.h".
13978         (main): Initialize progname, and call diagnostic_initialize.
13979
13980         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
13981         instead of __OPENMP_TARGET__.
13982
13983         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
13984         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
13985         hard-coding PTX_ID.
13986
13987 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
13988
13989         * doc/sourcebuild.texi (pie_enabled): Document.
13990
13991 2015-02-11  Martin Liska  <mliska@suse.cz>
13992
13993         PR ipa/64813
13994         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
13995         a return value for call to a function that is noreturn.
13996
13997 2015-02-11  Richard Biener  <rguenther@suse.de>
13998
13999         PR lto/65015
14000         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
14001         and -fresolution.
14002
14003 2015-02-11  Andrew Pinski  <apinski@cavium.com>
14004
14005         PR target/64893
14006         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
14007         Change the first argument type to size_type_node and add another
14008         size_type_node.
14009         (aarch64_simd_expand_builtin): Handle the new argument to
14010         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
14011         print an out when the first two arguments are not
14012         nonzero integer constants.
14013         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
14014         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
14015
14016 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
14017
14018         PR target/61925
14019         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
14020         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
14021         (ix86_set_current_function): Rewritten.
14022         (ix86_add_new_builtins): Temporarily clear current_target_pragma
14023         when creating builtin fndecls.
14024
14025 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
14026
14027         PR ipa/65005
14028         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
14029         function.
14030         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
14031         have no comdat group.
14032         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
14033         (lto_output_varpool_node): Always output alias info.
14034         (output_refs): Output refs of boundary aliases, too.
14035         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
14036         (output_symtab): Output call eges in thunks in boundary.
14037         (get_alias_symbol): Remove.
14038         (input_node, input_varpool_node): Do not special case weakrefs.
14039         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
14040         alias and thunks targets in the boundary; do not take removed symbols
14041         from their comdat groups.
14042         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
14043         (cgraph_node::global_info): Remove.
14044         (cgraph_node::rtl_info): Look through aliases and thunks.
14045         * cgrpah.h (global_info): Remove.
14046         (non_local_p): Remove.
14047
14048 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
14049             Sandra Loosemore  <sandra@codesourcery.com>
14050
14051         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
14052         to inline asm.  List dialects in proper order.
14053
14054 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
14055             Sandra Loosemore  <sandra@codesourcery.com>
14056
14057         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
14058
14059 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
14060
14061         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
14062         modified) reference to Solaris.
14063
14064 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
14065
14066         * doc/extend.texi (Extended Asm): Fix typos.
14067
14068 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
14069
14070         PR sanitizer/65004
14071         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
14072
14073 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
14074
14075         PR target/64661
14076         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
14077         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
14078         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
14079         * config/sh/constraints.md (Ara, Add): New constraints.
14080         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
14081         predicates.
14082         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
14083         atomic_mem_operand_0.  Don't use force_reg on the memory address.
14084         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
14085         Sra constraint.  Convert to insn_and_split.  Add workaround for
14086         PR 64974.
14087         (atomic_compare_and_swap<mode>_hard): Copy to
14088         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
14089         Use atomic_mem_operand_0 predicate.
14090         (atomic_compare_and_swap<mode>_soft_gusa,
14091         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
14092         AraAdd constraints.
14093         (atomic_compare_and_swap<mode>_soft_tcb,
14094         atomic_compare_and_swap<mode>_soft_imask,
14095         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
14096         atomic_mem_operand_0 predicate and SraSdd constraints.
14097         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
14098         constraint.
14099         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
14100         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
14101         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
14102         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
14103         force_reg on the memory address.
14104         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
14105         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
14106         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
14107         atomic_mem_operand_1 predicate and Sra constraint.
14108         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
14109         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
14110         Use atomic_mem_operand_1 predicate.
14111         (atomic_<fetchop_name><mode>_hard): Copy to
14112         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
14113         Use atomic_mem_operand_1 predicate.
14114         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
14115         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
14116         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
14117         insn_and_split.  Use atomic_mem_operand_1 predicate.
14118         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
14119         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
14120         Use atomic_mem_operand_1 predicate.
14121         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
14122         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
14123         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
14124         in generated insn with original mem operand before emitting the insn.
14125         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
14126         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
14127         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
14128         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
14129         Use atomic_mem_operand_1 predicate and AraAdd constraints.
14130         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
14131         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
14132         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
14133         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
14134         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
14135         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
14136         atomic_not_fetch<mode>_soft_tcb,
14137         atomic_<fetchop_name>_fetch<mode>_soft_imask,
14138         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
14139         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
14140         Use atomic_mem_operand_1 predicate and SraSdd constraints.
14141
14142 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
14143
14144         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
14145         and 3 earlyclobber operands.
14146
14147 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
14148
14149         * common.opt (fstack-reuse): Mark as optimization.
14150
14151 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
14152
14153         PR ipa/64982
14154         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
14155
14156 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
14157
14158         PR tree-optimization/64326
14159         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
14160
14161 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
14162
14163         PR gcov-profile/61889
14164         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
14165
14166 2015-02-10  Richard Biener  <rguenther@suse.de>
14167
14168         PR tree-optimization/64995
14169         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
14170         value we use is final.
14171         (visit_reference_op_store): Always valueize op.
14172         (visit_use): Properly valueize vuses.
14173
14174 2015-02-10  Richard Biener  <rguenther@suse.de>
14175
14176         PR tree-optimization/64909
14177         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
14178         pass a scalar-stmt count estimate to the cost model.
14179         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
14180
14181 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
14182
14183         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
14184         enabled by default together with var-tracking.
14185
14186 2015-02-10  Nick Clifton  <nickc@redhat.com>
14187
14188         * config/rl78/rl78.c: Remove DIV attribute code accidentally
14189         included in previous rl78 commit.
14190
14191 2015-02-10  Richard Biener  <rguenther@suse.de>
14192
14193         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
14194         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
14195         return the bitpack.
14196
14197 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
14198
14199         PR gcov-profile/61889
14200         * config.in: regenerate.
14201         * configure.in: Likewise.
14202         * configure.ac: Check for ftw.h.
14203         * gcov-tool.c: Check for ftw.h before using nftw.
14204
14205 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
14206
14207         PR lto/64076
14208         * ipa-visibility.c (update_visibility_by_resolution_info): Only
14209         assert when not in lto mode.
14210
14211 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
14212
14213         * ira-color.c (setup_left_conflict_sizes_p): Simplify
14214         initialization/assignment of conflict_size.
14215
14216 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
14217
14218         PR ipa/64978
14219         * ipa-cp.c (gather_caller_stats): Skip thunks.
14220         (propagate_constants_topo): Skip aliases.
14221
14222 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
14223
14224         PR target/64761
14225         * config/sh/sh.c (sh_option_override): Don't change
14226         -freorder-blocks-and-partition to -freorder-blocks even when
14227         unwinding is enabled.
14228         (sh_can_follow_jump): Return false if the followee jump is
14229         a crossing jump when -freorder-blocks-and-partition is specified.
14230         * config/sh/sh.md (*jump_compact_crossing): New insn.
14231
14232 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
14233             Kaz Kojima  <kkojima@gcc.gnu.org>
14234
14235         PR target/64761
14236         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
14237         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
14238         (sh_can_redirect_branch): Rename to ...
14239         (sh_can_follow_jump): ... this.  Constify argument types.
14240         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
14241         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
14242         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
14243         * doc/tm.texi: Regenerate.
14244
14245 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
14246
14247         PR sanitizer/64981
14248         * builtins.c (expand_builtin): Call targetm.expand_builtin
14249         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
14250
14251 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14252
14253         PR ipa/61548
14254         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
14255
14256 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14257
14258         PR ipa/63566
14259         * ipa-icf.c (set_local): New function.
14260         (sem_function::merge): Use it.
14261
14262 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14263
14264         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
14265         (add_type_duplicate): Fix comparison of BINFOs.
14266
14267 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14268
14269         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
14270         on getting VOID pointer.
14271
14272 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
14273
14274         PR target/64979
14275         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
14276         va_list escapes.
14277
14278 2015-02-09  Richard Biener  <rguenther@suse.de>
14279
14280         * genmatch.c (replace_id): Copy expr_type.
14281
14282 2015-02-09  Richard Biener  <rguenther@suse.de>
14283
14284         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
14285         (streamer_write_tree_bitfields): Declare.
14286         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
14287         properly unpack padding.
14288         (unpack_value_fields): Inline ...
14289         (streamer_read_tree_bitfields): ... here.
14290         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
14291         and properly add padding bits.
14292         (streamer_pack_tree_bitfields): Fold into ...
14293         (streamer_write_tree_bitfields): ... this new function,
14294         exposing the bitpack object.
14295         * lto-streamer-out.c (lto_write_tree_1): Call
14296         streamer_write_tree_bitfields.
14297
14298 2015-02-09  Richard Biener  <rguenther@suse.de>
14299
14300         PR tree-optimization/54000
14301         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
14302         (struct ivopts_data): Add loop_loc member.
14303         (tree_ssa_iv_optimize_loop): Dump loop location.
14304         (create_new_ivs): Likewise, also dump number of IVs generated.
14305
14306 2015-02-09  Martin Liska  <mliska@suse.cz>
14307
14308         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
14309         just if not yet registered.
14310         (ipa_icf_generate_summary): Register callgraph hooks.
14311
14312 2015-02-08  Andrew Pinski  <apinski@cavium.com>
14313
14314         * config/aarch64/aarch64.c (gty_dummy): Delete.
14315
14316 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14317
14318         PR ipa/63566
14319         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
14320         (cgraph_node::local_p): Remove thunk related FIXME.
14321
14322 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14323
14324         PR ipa/63566
14325         * i386.c (ix86_function_regparm): Look through aliases to see if callee
14326         is local and optimized.
14327         (ix86_function_sseregparm): Likewise; also use target's SSE math
14328         settings; error out instead of silently generating wrong code
14329         on mismatches.
14330         (init_cumulative_args): Look through aliases.
14331
14332 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14333
14334         PR ipa/63566
14335         * ipa-split.c (execute_split_functions): Split if function has aliases.
14336
14337 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
14338
14339         PR ipa/63566
14340         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
14341         aliases before trying to expand it.
14342         (cgraph_node::expand_thunk): Fix formating.
14343
14344 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
14345
14346         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
14347         (Using Assembly Language with C): Expand introduction.
14348         (Basic Asm): Copy-edit.  Add more information about uses of
14349         basic asm.
14350         (Extended Asm): Copy-edit.  Document new escape syntax and
14351         %l[label] syntax.
14352         (Global Reg Vars): Copy-edit.
14353         (Local Reg Vars): Likewise.
14354
14355 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
14356
14357         PR debug/2714
14358         PR bootstrap/64256
14359         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
14360         (DBX_CONTIN_CHAR): Define.
14361
14362 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
14363             Brian Rzycki  <b.rzycki@samsung.com>
14364
14365         PR tree-optimization/64878
14366         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
14367         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
14368         Stop recursion at loop phi nodes after having visited a loop phi node.
14369
14370 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
14371
14372         * toplev.c (process_options): Change flag_ipa_ra before creating
14373         optimization_{default,current}_node.
14374
14375         PR ipa/64896
14376         * cgraphunit.c (cgraph_node::expand_thunk): If
14377         restype is not is_gimple_reg_type nor the thunk_fndecl
14378         returns aggregate_value_p, set restmp to a temporary variable
14379         instead of resdecl.
14380
14381 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
14382
14383         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
14384
14385 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
14386
14387         PR target/64205
14388         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
14389         add a general secondary reload handler for SDmode, unless we have
14390         both read/write support for SDmode.
14391
14392 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
14393
14394         PR middle-end/64937
14395         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
14396         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
14397         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
14398         1 before, push it to abstract_vec.
14399         (dwarf2out_abstract_function): Adjust caller.  Don't call
14400         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
14401         DECL_ABSTRACT_P flags for all abstract_vec elts.
14402
14403 2015-02-06  Renlin Li  <renlin.li@arm.com>
14404
14405         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
14406         complex gimple.
14407         * tree-ssa.c (execute_update_addresses_taken): Likewise.
14408
14409 2015-02-06  Jeff Law  <law@redhat.com>
14410
14411         PR target/64889
14412         * config/h8300/h8300.c (push): New argument "in_prologue".
14413         Pass "in_prologue" along to "F".
14414         (h8300_push_pop): Corresponding changes.
14415         (h8300_expand_prologue): Likewise.
14416         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
14417
14418 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
14419
14420         PR rtl-optimization/64957
14421         PR debug/64817
14422         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
14423         IOR rather than for AND.
14424
14425 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
14426
14427         PR target/62631
14428         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
14429         of shift-add and (add + shift) operations.  Rename local variable.
14430
14431 2015-02-05  Jeff Law  <law@redhat.com>
14432
14433         PR target/17306
14434         * config/h8300/constraints.md (U): Correctly dectect
14435         "eightbit_data" memory addresses.
14436         * config/h8300/h8300.c (eightbit_constant_address_p): Also
14437         handle (const (plus (symbol_ref (x)))) where x is declared
14438         as an 8-bit data memory address.
14439         * config/h8300/h8300.md (call, call_value): Correctly detect
14440         "funcvec" functions.
14441
14442         PR target/43264
14443         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
14444         24 to 28 bits for the H8/300.
14445
14446 2015-02-06  Alan Modra  <amodra@gmail.com>
14447
14448         PR target/64876
14449         * config/rs6000/rs6000.c (chain_already_loaded): New function.
14450         (rs6000_call_aix): Use it.
14451
14452 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
14453
14454         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
14455         check.
14456
14457 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
14458
14459         * config/h8300/constraints.md ("U" constraint): Use strict
14460         variant of REG_OK_FOR_BASE_P after reload has started.
14461
14462 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
14463
14464         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
14465         define to zero if !TARGET_NEON.
14466         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
14467
14468 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14469             Trevor Saunders  <tsaunders@mozilla.com>
14470
14471         PR ipa/61548
14472         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
14473
14474 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14475
14476         PR ipa/61548
14477         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
14478         when removing varpool nodes.
14479
14480 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14481
14482         PR ipa/61548
14483         * varpool.c (varpool_node::remove): Fix order of variables.
14484
14485 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14486
14487         PR ipa/64686
14488         * ipa-inline.c (inline_small_functions): Fix ordering issue between
14489         speculation resolution and key updates.
14490
14491 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14492
14493         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
14494         about not letting any speculative edges unupdated.
14495
14496 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14497
14498         PR gcov/64123
14499         * gcov-io.c (gcov_var): Export.
14500
14501 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14502
14503         PR middle-end/64922
14504         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
14505         edges that become speculative.
14506
14507 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
14508
14509         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
14510         or DW_LANG_Fortran08.
14511         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
14512         DW_LANG_Fortran08.
14513         (gen_compile_unit_die): Handle "GNU Fortran2003" and
14514         "GNU Fortran2008" language strings.
14515         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
14516         * langhooks.h (lang_GNU_Fortran): New prototype.
14517         * langhooks.c (lang_GNU_Fortran): New function.
14518         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
14519         lang_GNU_Fortran.
14520
14521 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
14522
14523         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
14524         (RTX_OK_FOR_OLO10_P): Likewise.
14525
14526 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
14527
14528         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
14529
14530 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
14531
14532         PR middle-end/64922
14533         * gimple.c: Include gimple-ssa.h.
14534         (maybe_remove_unused_call_args): New function.
14535         * gimple.h (maybe_remove_unused_call_args): Declare.
14536         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
14537         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
14538         * gimple-fold.c (gimple_fold_call): Likewise.
14539
14540 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
14541
14542         PR rtl-optimization/64905
14543         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
14544         pointer alignment if it isn't needed.
14545
14546 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
14547
14548         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
14549         cortex-a72.cortex-a53.
14550         * config/aarch64/aarch64-tune.md: Regenerate.
14551         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
14552
14553 2015-02-04  Nick Clifton  <nickc@redhat.com>
14554
14555         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
14556         inside a MEM.
14557
14558 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
14559
14560         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
14561         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
14562         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
14563         of DEF_BUILTIN.
14564         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
14565         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
14566         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
14567         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
14568         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
14569         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
14570         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
14571         * tree-core.h (enum built_in_function): In between
14572         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
14573         for builtins that use DEF_BUILTIN_CHKP macro.
14574
14575 2015-02-04  Alexandre Oliva <aoliva@redhat.com>
14576
14577         PR debug/64817
14578         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
14579         operands for tcc_comparison exprs.  Fix typos.
14580
14581         PR debug/64817
14582         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
14583         of two XORs that have an intervening AND or IOR.
14584
14585         PR debug/64817
14586         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
14587         simplification of XOR of AND to not allocate new rtx before
14588         committing to a simplification.
14589
14590 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14591
14592         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
14593         manual swaps in all peepholes.
14594
14595 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14596
14597         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
14598         of manual swapping implementation.
14599         (aarch64_expand_vec_perm_const_1): Likewise.
14600
14601 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
14602
14603         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
14604         (generic_addrcost_table): Remove NAMED_PARAM.
14605         (cortexa57_addrcost_table): Likewise.
14606         (xgene1_addrcost_table): Likewise.
14607         (generic_regmove_table): Likewise.
14608         (cortexa53_regmove_table): Likewise.
14609         (xgene1_regmove_table): Likewise.
14610         (generic_vector_table): Likewise.
14611         (cortexa57_vector_table): Likewise.
14612         (xgene1_vector_table): Likewise.
14613         (generic_tunings): Likewise.
14614         (cortexa53_tunings): Likewise.
14615         (cortexa57_tunings): Likewise.
14616         (xgene1_tunings): Likewise.
14617
14618 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
14619
14620         * config/arm/arm-cores.def: Add cortex-a72 and
14621         cortex-a72.cortex-a53.
14622         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
14623         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
14624         * config/arm/arm-tune.md: Regenerate.
14625         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
14626         "cortex-a72.cortex-a53".
14627         * doc/invoke.texi (ARM Options/-mtune): Likewise.
14628
14629 2015-02-04  Nick Clifton  <nickc@redhat.com>
14630
14631         PR target/64408
14632         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
14633         of accepted codes.
14634         (nonimmediate_di_operand): Likewise.
14635
14636         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
14637         prefixes of known F5 using MSP430 MCUs.
14638
14639 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14640
14641         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
14642         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
14643         instead of __builtin_sqrt.
14644
14645 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
14646
14647         * varasm.c (do_assemble_alias): Follow transparent alias
14648         chain for target.
14649         (default_assemble_visibility): Follow transparent alias
14650         chain for decl name.
14651
14652 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14653
14654         PR middle-end/62103
14655         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
14656         to compute size of referenced value in the constant case.
14657
14658 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
14659
14660         PR rtl-optimization/64756
14661         * cse.c (invalidate_dest): New function.
14662         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
14663         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
14664         invalidate and do not record it.
14665
14666 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
14667
14668         PR target/64660
14669         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
14670         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
14671         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
14672         atomic_nand<mode>_soft_tcb): New insns.
14673         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
14674         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
14675         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
14676         Split into atomic_not_fetchsi_hard if operands[0] is unused.
14677         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
14678         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
14679         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
14680         atomic_not<mode>_hard if operands[0] is unused.
14681         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
14682         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
14683         if operands[0] is unused.
14684         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
14685         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
14686         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
14687         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
14688         unused.
14689         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
14690         into atomic_not<mode>_soft_tcb if operands[0] is unused.
14691         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
14692         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
14693         if operands[0] is unused.
14694         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
14695         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
14696         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
14697         atomic_nand_fetchsi_hard if operands[0] is unused.
14698         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
14699         atomic_nand<mode>_hard if operands[0] is unused.
14700         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
14701         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
14702         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
14703         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
14704         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
14705         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
14706         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
14707         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
14708         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
14709         atomic_not<mode>_hard if operands[0] is unused.
14710         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
14711         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
14712         unused.
14713         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
14714         into atomic_not<mode>_soft_tcb if operands[0] is unused.
14715         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
14716         atomic_nand<mode>_hard if operands[0] is unused.
14717         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
14718         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
14719
14720 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
14721
14722         PR jit/64810
14723         * Makefile.in (GCC_OBJS): Add gcc-main.o.
14724         * gcc-main.c: New file, containing "main" taken from gcc.c.
14725         * gcc.c (do_self_spec): Free decoded_options.
14726         (class driver): Move declaration to gcc.h.
14727         (main): Move declaration and implementation to new file
14728         gcc-main.c.
14729         (driver_get_configure_time_options): New function.
14730         * gcc.h (class driver): Move this declaration here, from
14731         gcc.c.
14732         (driver_get_configure_time_options): New declaration.
14733
14734 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
14735
14736         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
14737         cross-module inlining.
14738         * cgraph.h (cgraph_node): Add flag merged.
14739         * ipa-icf.c (sem_function::merge): Maintain it.
14740
14741 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
14742
14743         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
14744         instead of OBJECT_P.
14745
14746 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
14747
14748         PR target/62631
14749         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
14750         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
14751         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
14752         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
14753
14754 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
14755
14756         PR other/63504
14757         * combine.c (reg_n_sets_max): New variable.
14758         (can_change_dest_mode, reg_nonzero_bits_for_combine,
14759         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
14760         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
14761         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
14762         (rest_of_handle_combine): Initialize reg_n_sets_max.
14763
14764 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
14765
14766         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
14767         if some always_inline was inlined, apply changes before inlining
14768         heuristically.
14769
14770 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
14771
14772         PR jit/64810
14773         * config/arm/arm.c (arm_option_override): Set
14774         arm_selected_arch/cpu/tune to NULL on entry.
14775
14776 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
14777             Andrew Pinski  <pinskia@gcc.gnu.org>
14778             Jakub Jelinek  <jakub@gcc.gnu.org>
14779
14780         PR target/64231
14781         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
14782         integer typing for small model. Use IN_RANGE.
14783
14784 2015-02-02  Richard Biener  <rguenther@suse.de>
14785
14786         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
14787         * tree-vrp.c (vrp_valueize_1): Likewise.
14788
14789 2015-02-02  Alan Modra  <amodra@gmail.com>
14790
14791         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
14792         than mem for toc_restore.
14793         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
14794         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
14795         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
14796
14797 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
14798
14799         PR target/64047
14800         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
14801         explicit default options.
14802
14803 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
14804
14805         PR ipa/64872
14806         * ipa-utils.c (ipa_merge_profiles): Add release argument.
14807         * ipa-icf.c (sem_function::merge): Do not release body when merging.
14808         * ipa-utils.h (ipa_merge_profiles): Update prototype.
14809
14810 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
14811
14812         PR debug/64817
14813         * cfgexpand.c (deep_ter_debug_map): New variable.
14814         (avoid_deep_ter_for_debug): New function.
14815         (expand_debug_expr): If TERed SSA_NAME is in
14816         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
14817         instead of trying to expand SSA_NAME's def stmt.
14818         (expand_debug_locations): When expanding debug bind
14819         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
14820         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
14821         value.
14822         (pass_expand::execute): Call avoid_deep_ter_for_debug on
14823         all debug bind stmts.  Delete deep_ter_debug_map after
14824         expand_debug_location if non-NULL and clear it.
14825
14826 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
14827
14828         PR target/64851
14829         * config/sh/sync.md (atomic_fetch_notsi_hard,
14830         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
14831         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
14832         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
14833         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
14834         atomic_not_fetch<mode>_soft_imask): New insns.
14835
14836 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
14837
14838         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
14839         (rank_for_schedule_debug): Split from ...
14840         (rank_for_schedule): ... this.
14841         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
14842         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
14843
14844 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
14845
14846         * doc/md.texi (Machine Constraints): Alphabetize table by target.
14847         * doc/extend.texi (x86 Variable Attributes): Move section to
14848         correct alphabetization after renaming.
14849         (x86 Type Attributes): Likewise.
14850         (Target Builtins): Re-alphabetize menu.
14851         (x86 Built-in Functions): Move section to correct alphabetization
14852         after renaming.
14853         (x86 transactional memory intrinsics): Likewise.
14854         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
14855         and x86 Windows Options in table and menu.
14856         (x86 Options): Move section to correct alphabetization after
14857         renaming.
14858         (x86 Windows Options): Likewise.
14859
14860 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
14861
14862         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
14863         preferred names of the architecture and its 32- and 64-bit
14864         variants.
14865         * doc/invoke.texi: Likewise.
14866         * doc/md.texi: Likewise.
14867
14868 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
14869
14870         PR target/64882
14871         * config/i386/predicates.md (address_no_seg_operand): Reject
14872         non-CONST_INT_P operands in invalid mode.
14873
14874 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
14875
14876         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
14877         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
14878         * config/i386/predicates.md (address_no_seg_operand): Call
14879         address_operand with VOIDmode.
14880         (vsib_address_operand): Ditto.
14881         (address_mpx_no_base_operand): Ditto.
14882         (address_mpx_no_index_operand): Ditto.
14883
14884 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
14885
14886         PR target/64688
14887         * lra-constraints.c (original_subreg_reg_mode): New.
14888         (simplify_operand_subreg): Try to simplify subreg of const.  Use
14889         original_subreg_reg_mode for it.
14890         (swap_operands): Update original_subreg_reg_mode.
14891         (curr_insn_transform): Set up original_subreg_reg_mode.
14892
14893 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
14894
14895         PR target/64617
14896         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
14897         function.
14898         (process_alt_operands): Use it.
14899         (curr_insn_transform): Check the optional reload pseudo class is
14900         ok for the mode.
14901
14902 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
14903
14904         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
14905         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
14906         prototype.
14907         * toplev.h (init_asm_output): Update comment on use of
14908         UNKNOWN_LOCATION with fatal_error.
14909         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
14910         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
14911         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
14912         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
14913         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
14914         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
14915         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
14916         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
14917         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
14918         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
14919         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
14920         fatal_error changed to pass input_location as first argument.
14921
14922 2015-01-30  Martin Liska  <mliska@suse.cz>
14923
14924         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
14925         in #pragma GCC diagnostic guards.
14926
14927 2015-01-30  Richard Biener  <rguenther@suse.de>
14928
14929         PR tree-optimization/64829
14930         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
14931         not add a widening conversion pattern but hand off extra
14932         widenings to callers.
14933         (vect_recog_widen_mult_pattern): Handle extra widening produced
14934         by vect_handle_widen_op_by_const.
14935         (vect_recog_widen_shift_pattern): Likewise.
14936         (vect_pattern_recog_1): Remove excess vertical space in dumping.
14937         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
14938         (vect_init_vector_1): Likewise.
14939         (vect_get_vec_def_for_operand): Likewise.
14940         (vect_finish_stmt_generation): Likewise.
14941         (vectorizable_load): Likewise.
14942         (vect_analyze_stmt): Likewise.
14943         (vect_is_simple_use): Likewise.
14944
14945 2015-01-29  Jeff Law  <law@redhat.com>
14946
14947         * combine.c (try_combine): Fix typo in comment.
14948
14949 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
14950
14951         PR target/64580
14952         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
14953         (rs6000_stack_info): Add assert.
14954         (rs6000_output_savres_externs): New function, split off from...
14955         (rs6000_output_function_prologue): ... here.  Do not call it for
14956         thunks.
14957
14958 2015-01-29  Jeff Law  <law@redhat.com>
14959
14960         PR target/15184
14961         * combine.c (try_combine): If I0 is a memory load and I3 a store
14962         to a related address, increase the "goodness" of doing a 4-insn
14963         combination with I0-I3.
14964         (make_field_assignment): Handle SUBREGs in the ior+and case.
14965
14966 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
14967
14968         PR tree-optimization/64746
14969         * tree-if-conv.c (mask_exists): New function.
14970         (predicate_mem_writes): Save created mask with given size for further
14971         use.
14972         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
14973         (ifcvt_repair_bool_pattern): Collect all statements that are root
14974         of bool pattern and use iterative algorithm to remove multiple uses
14975         of predicates, display number of required iterations.
14976
14977 2015-01-29  Richard Biener  <rguenther@suse.de>
14978
14979         PR tree-optimization/64853
14980         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
14981         stmt will get simulated again.
14982         * tree-ssa-ccp.c (valueize_op_1): Likewise.
14983
14984 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14985
14986         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
14987         return_in_pc.  Remove redundant assignments.
14988         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
14989         (arm_expand_epilogue): Don't compare boolean with true in if condition.
14990
14991 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
14992
14993         * config/i386/i386.c (ix86_mode_after): Make static.
14994
14995 2015-01-29  Richard Biener  <rguenther@suse.de>
14996
14997         PR tree-optimization/64844
14998         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
14999         dump cost model analysis.
15000         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15001         Do not register adjusted load/store costs here.
15002
15003 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
15004             Uros Bizjak  <ubizjak@gmail.com>
15005
15006         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
15007         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
15008         using x86_use_pseudo_pic_reg.
15009         * config/i386/i386.c (ix86_conditional_register_usage): Remove
15010         support for fixed PIC register.
15011         (ix86_use_pseudo_pic_reg): Not static any more.
15012
15013 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
15014
15015         PR middle-end/64805
15016         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
15017         to avoid error in cgraph node verification.
15018
15019 2015-01-29  Marek Polacek  <polacek@redhat.com>
15020
15021         * doc/standards.texi: Reflect that the default for C is gnu11.
15022
15023 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
15024
15025         PR target/64761
15026         * reorg.c (switch_text_sections_between_p): New function.
15027         (relax_delay_slots): Call it when testing if the jump insn
15028         is removable.  Use targetm.can_follow_jump when testing if
15029         the conditional branch can follow an unconditional jump.
15030
15031 2015-01-27  Caroline Tice  <cmtice@google.com>
15032
15033         Committing VTV Cywin/Ming patch for Patrick Wollgast
15034         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
15035         if -fvtable-verify=preinit/std is used.
15036         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
15037         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
15038         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
15039         if -fvtable-verify=preinit/std is used.
15040         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
15041         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
15042         if -fvtable-verify=preinit/std is used.
15043         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
15044         * config/i386/mingw32.h (LIB_SPEC): Likewise.
15045         * varasm.c (assemble_variable): Add code to properly set the comdat
15046         section and name for the .vtable_map_vars section in case the
15047         target is PE or COFF.
15048
15049 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
15050
15051         PR ipa/64801
15052         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
15053         make sane BB profile.
15054         (cgraph_node::expand_thunk): Make sane BB profile.
15055         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
15056         * cgraph.h (init_lowered_empty_function): Update prototype.
15057         * config/i386/i386.c (make_resolver_func): Update call.
15058         * predict.c (gate): Disable branch prediction pass if
15059         profile is already there.
15060
15061 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
15062
15063         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
15064         * opth-gen.awk: Likewise.
15065         * common.opt: Mark flag_fp_contract_mode as Optimization.
15066
15067 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15068
15069         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
15070         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
15071
15072 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
15073
15074         PR target/64659
15075         * config/sh/predicates.md (atomic_arith_operand,
15076         atomic_logical_operand): Remove.
15077         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
15078         (atomic_arith_operand_0): New predicate.
15079         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
15080         Use atomic_arith_operand_0 for input values.
15081         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
15082         atomic_compare_and_swap<mode>_soft_gusa,
15083         atomic_compare_and_swap<mode>_soft_tcb,
15084         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
15085         arith_reg_operand instead of register_operand.
15086         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
15087         atomic_arith_operand_0 for newval input.
15088         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
15089         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
15090         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
15091         arith_reg_operand instead of register_operand.
15092         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
15093         fetchop_predicate_1, fetchop_constraint_1_llcs,
15094         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
15095         fetchop_constraint_1_imask): New code iterator attributes.
15096         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
15097         register_operand.  Use fetchop_predicate_1.
15098         (atomic_fetch_<fetchop_name>si_hard,
15099         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
15100         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
15101         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
15102         and arith_reg_operand instead of register_operand.  Use
15103         fetchop_predicate_1, fetchop_constraint_1_gusa.
15104         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
15105         and arith_reg_operand instead of register_operand.  Use
15106         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
15107         to allow R0 usage.
15108         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
15109         and arith_reg_operand instead of register_operand.  Use
15110         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
15111         to allow R0 usage.
15112         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
15113         register_operand.  Use atomic_logical_operand_1.
15114         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
15115         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
15116         arith_reg_operand instead of register_operand.
15117         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
15118         Use arith_reg_dest and arith_reg_operand instead of register_operand.
15119         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
15120         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
15121         register_operand.  Use fetchop_predicate_1.
15122         (atomic_<fetchop_name>_fetchsi_hard,
15123         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
15124         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
15125         fetchop_constraint_1_llcs.
15126         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
15127         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
15128         fetchop_constraint_1_gusa.
15129         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
15130         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
15131         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
15132         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
15133         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
15134         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
15135         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
15136         register_operand.  Use atomic_logical_operand_1.
15137         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
15138         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
15139         arith_reg_operand instead of register_operand.
15140         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
15141         arith_reg_operand instead of register_operand.  Use logical_operand
15142         and K08.  Adjust asm sequence to allow R0 usage.
15143         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
15144         arith_reg_operand instead of register_operand.  Use logical_operand
15145         and K08.
15146
15147 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
15148
15149         PR other/63504
15150         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
15151         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
15152         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
15153         only get_full_len HOST_WIDE_INTs from get_val () array rather than
15154         all bits in *val_wide.
15155
15156 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
15157
15158         * varpool.c (tls_model_names): Fix names.
15159         (varpool_node::dump): Dump tls- prefix for tls models.
15160
15161 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
15162             Bernd Schmidt  <bernds@codesourcery.com>
15163             Nathan Sidwell  <nathan@codesourcery.com>
15164
15165         * config/nvptx/mkoffload.c: New file.
15166         * config/nvptx/t-nvptx: Add build rules for it.
15167         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
15168         (extra_programs): Add mkoffload.
15169         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
15170         function.
15171         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
15172
15173 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
15174
15175         PR middle-end/64809
15176         * cfgexpand.c (reorder_operands): Skip debug gimples.
15177
15178 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
15179
15180         PR tree-optimization/64277
15181         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
15182         range info when possible to refine estimation.
15183
15184 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15185
15186         PR tree-optimization/64718
15187         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
15188         be a 16bit unsigned integer when n->range is 16.
15189         (bswap_replace): Convert src to that type if necessary for all bswap
15190         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
15191         set in pass_optimize_bswap::execute ().
15192
15193 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
15194
15195         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
15196         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
15197         integer and floating point variants.
15198         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
15199
15200 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
15201
15202         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
15203         for all vector modes.
15204
15205 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
15206
15207         PR bootstrap/64612
15208         * doc/sourcebuild.texi (comdat_group): Document.
15209
15210 2015-01-28  Terry Guo  <terry.guo@arm.com>
15211
15212         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
15213
15214 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
15215
15216         * toplev.c (print_version): Add param "show_global_state", and
15217         only print GGC and plugin information if it is true.
15218         (init_asm_output): Pass in "true" for the new param when calling
15219         print_version.
15220         (process_options): Likewise.
15221         (toplev::main): Likewise.
15222         * toplev.h (print_version): Add new param to decl.
15223
15224 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
15225
15226         PR ipa/60871
15227         PR ipa/64139
15228         * tree.c (lookup_binfo_at_offset): New function.
15229         (get_binfo_at_offset): Use it.
15230
15231 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
15232
15233         PR ipa/64282
15234         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
15235         on vtable being vtable.
15236
15237 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15238
15239         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
15240         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
15241         -mhotpatch= option.
15242         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
15243         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
15244         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
15245         Renamed.
15246         (s390_hotpatch_trampoline_halfwords_max): Renamed.
15247         (s390_hotpatch_hw_max): New name.
15248         (s390_hotpatch_trampoline_halfwords): Renamed.
15249         (s390_hotpatch_hw_before_label): New name.
15250         (get_hotpatch_attribute): Removed.
15251         (s390_hotpatch_hw_after_label): New name.
15252         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
15253         attribute.
15254         (s390_attribute_table): Ditto.
15255         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
15256         (s390_function_num_hotpatch_hw): New name.
15257         Remove special handling of inline functions and hotpatching.
15258         Return number of nops before and after the function label.
15259         (s390_can_inline_p): Removed.
15260         (s390_asm_output_function_label): Emit a configurable number of nops
15261         after the function label.
15262         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
15263         (TARGET_CAN_INLINE_P) Removed.
15264         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
15265
15266 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
15267             Jiong Wang  <jiong.wang@arm.com>
15268
15269         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
15270         of scratch reg.
15271         (cb<optab><mode>1): Likewise.
15272         * config/aarch64/iterators.md (bcond): New define_code_attr.
15273
15274 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15275
15276         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
15277         memory accesses.
15278
15279 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15280
15281         * config/s390/s390.c (s390_register_move_cost): Increase costs for
15282         FPR->GPR moves.
15283
15284 2015-01-27  Richard Biener  <rguenther@suse.de>
15285
15286         * tree-vrp.c (update_value_range): Intersect the range with
15287         old recorded SSA name range information.
15288
15289 2015-01-27  Nick Clifton  <nickc@redhat.com>
15290
15291         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
15292         BC, DE and HL registers directly, not via AX.
15293         When decrementing the stack pointer by a large amount, transfer SP
15294         into AX and perform the subtraction there.
15295         (rl78_expand_epilogue): Perform the inverse of the above
15296         enhancements.
15297
15298 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15299
15300         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
15301
15302 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
15303             Yury Gribov  <y.gribov@samsung.com>
15304
15305         PR ubsan/64741
15306         * ubsan.c (ubsan_source_location): Refactor code.
15307         (ubsan_type_descriptor): Update type size. Refactor code.
15308
15309 2015-01-27  Richard Biener  <rguenther@suse.de>
15310
15311         PR tree-optimization/56273
15312         PR tree-optimization/59124
15313         PR tree-optimization/64277
15314         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
15315         from the first VRP pass.
15316
15317 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
15318
15319         PR ipa/64776
15320         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
15321         handle the first argument in the same loop as all the other arguments.
15322
15323         PR rtl-optimization/61058
15324         * jump.c (cleanup_barriers): Update basic block boundaries
15325         if BLOCK_FOR_INSN is non-NULL on PREV.
15326
15327 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
15328
15329         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
15330         bounds narrowing, already instrumented calls and calls to
15331         not instrumentable functions.
15332
15333 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
15334
15335         PR tree-optimization/64807
15336         * wide-int.cc (wi::divmod_internal): Clear
15337         b_dividend[dividend_blocks_needed].
15338
15339 2015-01-26  DJ Delorie  <dj@redhat.com>
15340
15341         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
15342         volatile memory references.
15343
15344 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
15345
15346         PR target/49263
15347         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
15348         remove_insn.
15349         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
15350         shifts if it already fits into K08.
15351
15352 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
15353
15354         PR ipa/64730
15355         * ipa-inline.c (inline_small_functions): Print "unknown" even
15356         if edge->call_stmt is non-NULL, but has builtins or unknown
15357         location.
15358
15359         PR middle-end/64421
15360         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
15361         with asterisk, skip the first character.
15362
15363 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
15364
15365         PR target/64806
15366         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
15367         order change.
15368
15369 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
15370
15371         PR target/64795
15372         * config/i386/i386.md (*movdi_internal): Also check operand 0
15373         to determine TYPE_LEA operand.
15374         (*movsi_internal): Ditto.
15375
15376 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
15377
15378         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
15379         OPTION_MASK_QUAD_MEMORY_ATOMIC.
15380
15381 2015-01-26  Renlin Li  <renlin.li@arm.com>
15382
15383         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
15384         the comment.
15385         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
15386         for higher part.
15387
15388 2015-01-26  Richard Biener  <rguenther@suse.de>
15389
15390         PR middle-end/64764
15391         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
15392         combining two BIT_AND_EXPR predicates.
15393
15394 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
15395
15396         PR bootstrap/64754
15397         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
15398
15399 2015-01-26  Terry Guo  <terry.guo@arm.com>
15400
15401         * config/arm/arm.c (arm_file_start): Update the assignment of
15402         Tag_ABI_HardFP_use.
15403
15404 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
15405
15406         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
15407         pipeline model.
15408         config/arm/arm.md: Include the new Cortex-A57 model.
15409         (generic_sched): Don't use generic_sched when tuning for
15410         Cortex-A57.
15411
15412 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
15413             Uros Bizjak  <ubizjak@gmail.com>
15414
15415         * config/i386/i386.c (get_builtin_code_for_version): Add
15416         support for BMI and BMI2 multiversion functions.
15417
15418 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15419
15420         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
15421         (extract_bit_field): Likewise.
15422         (extract_low_bits): Likewise.
15423         (expand_mult): Likewise.
15424         (expand_mult_highpart_adjust): Likewise.
15425
15426 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
15427
15428         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
15429         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
15430         * config/i386/i386.c (processor_model): Add
15431         M_INTEL_COREI7_BROADWELL.
15432         (arch_names_table): Add "broadwell".
15433
15434 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
15435
15436         PR target/49263
15437         PR target/53987
15438         PR target/64345
15439         PR target/59533
15440         PR target/52933
15441         PR target/54236
15442         PR target/51244
15443         * config/sh/sh-protos.h
15444         (sh_extending_set_of_reg::can_use_as_unextended_reg,
15445         sh_extending_set_of_reg::use_as_unextended_reg,
15446         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
15447         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
15448         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
15449         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
15450         (sh_treg_insns): New class.
15451         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
15452         (scope_counter): New class.
15453         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
15454         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
15455         sh_extending_set_of_reg::can_use_as_unextended_reg,
15456         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
15457         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
15458         sh_split_treg_set_expr): New functions.
15459         (addsubcosts): Handle treg_set_expr.
15460         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
15461         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
15462         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
15463         (sh_insn_operands_modified_between_p): Make non-static.
15464         * config/sh/predicates.md (zero_extend_movu_operand): Allow
15465         simple_mem_operand in addition to displacement_mem_operand.
15466         (zero_extend_operand): Don't allow zero_extend_movu_operand.
15467         (treg_set_expr, treg_set_expr_not_const01,
15468         arith_reg_or_treg_set_expr): New predicates.
15469         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
15470         arith_or_int_operand instead of logical_operand.  Convert to
15471         insn_and_split.  Try to optimize constant operand in splitter.
15472         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
15473         (*tstqi_t_zero): Delete.
15474         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
15475         (tstsi_t_and_not): Delete.
15476         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
15477         Convert to insn_and_split.
15478         (unnamed split, tstsi_t_zero_extract_xor,
15479         tstsi_t_zero_extract_subreg_xor_little,
15480         tstsi_t_zero_extract_subreg_xor_big): Delete.
15481         (*tstsi_t_shift_mask): New insn_and_split.
15482         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
15483         to recombine with surrounding insns when splitting.
15484         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
15485         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
15486         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
15487         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
15488         (*cbranch_div0s: Delete.
15489         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
15490         Try to recombine with surrounding insns when splitting.  Add operand
15491         order variants.
15492         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
15493         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
15494         *addc_r_r_msb, *addc_2r_msb): Delete.
15495         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
15496         order variant.
15497         (*addc_negreg_t): New insn_and_split.
15498         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
15499         Try to recombine with surrounding insns when splitting.
15500         Add operand order variants.
15501         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
15502         insn_and_split patterns.
15503         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
15504         surrounding insns when splitting.
15505         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
15506         (*rotcl): Likewise.  Add zero_extract variant.
15507         (*ashrsi2_31): New insn_and_split.
15508         (*negc): Convert to insn_and_split.  Use treg_set_expr.
15509         (*zero_extend<mode>si2_disp_mem): Update comment.
15510         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
15511         condition.
15512         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
15513         with surrounding insns when splitting.
15514         (any_treg_expr_to_reg): New insn_and_split.
15515         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
15516         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
15517         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
15518         *zero_extract_2): New single bit zero extract patterns.
15519         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
15520         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
15521         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
15522         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
15523         set destination.
15524         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
15525         register_operand for set source.
15526
15527 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
15528
15529         * i386.opt (prefetch_sse): New targetsave.
15530         * i386.c (ix86_function_specific_save): Save prefetch_sse.
15531         (ix86_function_specific_restore): Restore prefetch_sse and initialize
15532         ix86_cost/ix86_tune_cost.
15533
15534 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
15535
15536         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15537         Support the JIT by using 0 as the language type.
15538
15539 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
15540
15541         PR target/64317
15542         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
15543         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
15544         (mark_regno_live, process_bb_lives): Pass new parameter value to
15545         make_hard_regno_born.
15546
15547 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
15548
15549         PR rtl-optimization/63637
15550         PR rtl-optimization/60663
15551         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
15552         if elt->cost is MAX_COST for ASM_OPERANDS.
15553         (find_sets_in_insn): Fix up comment typo.
15554         (cse_insn): Don't set src_volatile for all non-volatile
15555         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
15556         or with "memory" clobber.  Set elt->cost to MAX_COST
15557         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
15558         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
15559
15560 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
15561
15562         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
15563         alternative 1.
15564
15565 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
15566
15567         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
15568         libgcc/config/i386/elf-lib.h.
15569
15570 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
15571
15572         PR driver/64737
15573         * gcc.c (print_configuration): Don't print a blank line at the end
15574         here...
15575         (run_attempt): ... but here unstead.
15576
15577         PR middle-end/64734
15578         * omp-low.c (scan_sharing_clauses): Don't ignore
15579         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
15580         on target data/update constructs.
15581
15582 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15583
15584         PR target/50928
15585         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
15586         (DEBUG_RELOAD): Removed define.
15587         (m32c_limit_reload_class): Enable traces with if DEBUG0.
15588         (m32c_function_arg): Added a type cast.
15589         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
15590         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
15591         * config/m32c/bitops.md (andqi3_16): Likewise.
15592         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
15593         (push_a01_l): Likewise.
15594
15595 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
15596
15597         PR jit/64721
15598         * main.c (main): Construct toplev instances with init_signals=true.
15599         * toplev.c (general_init): Add param "init_signals", and use it to
15600         conditionalize the calls to signal and host_hooks.extra_signals.
15601         (toplev::toplev): Add param "init_signals".
15602         (toplev::main): When invoking general_init, pass m_init_signals
15603         to control whether signal-handlers are installed.
15604         * toplev.h (toplev::toplev): Add param "init_signals".
15605         (toplev::m_init_signals): New field.
15606
15607 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
15608
15609         PR jit/64722
15610         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
15611         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
15612         latter may be affected by the former (e.g. on i686).
15613
15614 2015-01-23  Martin Liska  <mliska@suse.cz>
15615
15616         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
15617         false positive during profiledbootstrap.
15618
15619 2015-01-23  Tom de Vries  <tom@codesourcery.com>
15620
15621         PR libgomp/64672
15622         * lto-opts.c (lto_write_options): Output non-explicit conservative
15623         -fno-openacc.
15624         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
15625         (append_compiler_options): Pass -fopenacc through.
15626
15627 2015-01-23  Tom de Vries  <tom@codesourcery.com>
15628
15629         PR libgomp/64707
15630         * lto-opts.c (lto_write_options): Output non-explicit conservative
15631         -fno-openmp.
15632         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
15633         (append_compiler_options): Pass -fopenmp through.
15634
15635 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
15636
15637         PR debug/64511
15638         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
15639         GTY markup.
15640
15641         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
15642         * diagnostic.def (DK_ICE_NOBT): New kind.
15643         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
15644         like DK_ICE, but never print backtrace.
15645         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
15646         (internal_error_no_backtrace): New function.
15647         * gcc.c (execute): Use internal_error_no_backtrace instead of
15648         internal_error.
15649
15650 2015-01-22  Jeff Law  <law@redhat.com>
15651
15652         PR target/52076
15653         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
15654         improve code density for small immediate to memory case.
15655         (insv): Better handle bitfield assignments when the field is
15656         being set to all ones.
15657         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
15658         operand predicate.
15659
15660 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15661             Jakub Jelinek  <jakub@redhat.com>
15662
15663         PR middle-end/64729
15664         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
15665         for !TARGET_LIBC_PROVIDES_SSP version and
15666         -fstack-protector-{all,strong,explicit} otherwise.
15667         * config/freebsd.h (LINK_SSP_SPEC): Handle
15668         -fstack-protector-{strong,explicit}.
15669
15670 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
15671             H.J. Lu  <hongjiu.lu@intel.com>
15672
15673         PR ipa/64694
15674         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
15675         heap.
15676
15677 2015-01-22  Wei Mi  <wmi@google.com>
15678
15679         PR rtl-optimization/64557
15680         * dse.c (record_store): Call get_addr for mem_addr.
15681         (check_mem_read_rtx): Likewise.
15682
15683 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
15684
15685         * fold-const.c (const_binop): Add early return for non-tcc_binary.
15686
15687 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
15688
15689         * toplev.c (init_local_tick): Process the failure when read
15690         fails for random_seed.
15691
15692         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
15693         'pretty_name' to avoid memory overflow.
15694
15695 2015-01-22  Richard Biener  <rguenther@suse.de>
15696
15697         PR middle-end/64728
15698         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
15699         abnormal coalescing on undefined SSA names.
15700
15701 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
15702
15703         PR target/64688
15704         PR target/64477
15705         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
15706         for alternative 3.
15707         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
15708
15709 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
15710
15711         PR middle-end/63325
15712         * fold-const.c (fold_checksum_tree): Don't include value of
15713         expr->decl_with_vis.symtab_node in the checksum.
15714
15715 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
15716
15717         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
15718
15719 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
15720
15721         PR driver/64690
15722         * gcc.c (insert_comments): New function.
15723         (try_generate_repro): Call it.
15724         (append_text): Removed.
15725
15726 2015-01-22  Richard Biener  <rguenther@suse.de>
15727
15728         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
15729         with IL incompatible options.  Properly honor user optimize
15730         attributes.
15731
15732 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
15733
15734         PR rtl-optimization/64682
15735         * combine.c (distribute_notes): When moving a death note for
15736         a register that is set in the new I2, make sure to put it
15737         before that new I2.
15738
15739 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
15740
15741         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
15742         not TARGET_DEFAULT.
15743
15744 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
15745
15746         PR debug/64511
15747         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
15748         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
15749         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
15750
15751         PR sanitizer/64706
15752         * doc/invoke.texi (-fsanitize=vptr): Document.
15753
15754         PR rtl-optimization/62078
15755         * dse.c: Include cfgcleanup.h.
15756         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
15757         anything call purge_all_dead_edges and cleanup_cfg at the end
15758         of the pass.
15759
15760 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
15761
15762         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
15763         edges.
15764
15765 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15766
15767         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
15768         decl attribute.
15769
15770 2015-01-21  David Sherwood  <david.sherwood@arm.com>
15771             Tejas Belagod <Tejas.Belagod@arm.com>
15772
15773         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
15774         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
15775         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
15776         Removed.
15777
15778 2015-01-21  David Sherwood  <david.sherwood@arm.com>
15779             Tejas Belagod <Tejas.Belagod@arm.com>
15780
15781         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
15782         (aarch64_reverse_mask): New decls.
15783         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
15784         (insn_count): New mode_attr.
15785         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
15786         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
15787         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
15788         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
15789         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
15790         (aarch64_simd_st4): New patterns.
15791         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
15792         (aarch64_reverse_mask): New functions.
15793
15794 2015-01-21  Richard Sandiford  <richard.sandiford@arm.com>
15795
15796         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
15797         Declare.
15798         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
15799         addressing modes for BE.
15800         (aarch64_print_operand): Add 'R' specifier.
15801         (aarch64_simd_disambiguate_copy): Delete.
15802         (aarch64_simd_emit_reg_reg_move): New function.
15803         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
15804         in define_splits for structural moves.
15805         (mov<mode>): Use less restrictive predicates.
15806         (*aarch64_mov<mode>): Simplify and only allow for LE.
15807         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
15808
15809 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
15810
15811         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
15812
15813 2015-01-21  Richard Henderson  <rth@redhat.com>
15814
15815         PR target/64669
15816         * ccmp.c (used_in_cond_stmt_p): Remove.
15817         (expand_ccmp_expr): Don't use it.
15818
15819 2015-01-21  Nick Clifton  <nickc@redhat.com>
15820
15821         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
15822         PARALLELs.
15823
15824 2015-01-21  Richard Biener  <rguenther@suse.de>
15825
15826         PR middle-end/64313
15827         * tree-core.h (builtin_info, builtin_info_type): Turn from
15828         an object with two arrays into an array of an object with
15829         decl and two flags, implicit_p and declared_p.
15830         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
15831         set_builtin_decl, set_builtin_decl_implicit_p,
15832         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
15833         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
15834         * builtins.c (builtin_info): Adjust.
15835         * gimplify.c (gimplify_addr_expr): References to builtins
15836         that have been declared by the user makes them eligible for
15837         use by the compiler.  Call set_builtin_decl_implicit_p on them.
15838
15839 2015-01-20  Jeff Law  <law@redhat.com>
15840
15841         PR target/59946
15842         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
15843         allow pc-relative addresses in operand predicates or constraints.
15844
15845 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
15846
15847         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
15848         neon on aarch32 processors for stringops.
15849
15850 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15851
15852         PR ipa/63576
15853         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
15854
15855 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15856
15857         PR lto/45375
15858         * ipa-inline.c: Include lto-streamer.h
15859         (report_inline_failed_reason): Output source file differences and
15860         flags on optimization/target node mismatch.
15861         (can_inline_edge_p): Consider caller to be the outer inline function;
15862         be less restrictive about matching opimize and optimize_size attributes.
15863         (inline_account_function_p): Break out from ...
15864         (inline_small_functions): ... here.
15865         * ipa-inline-transform.c (clone_inlined_nodes): Use
15866         inline_account_function_p.
15867         (inline_call): Use optimize attribution; use inline_account_function_p.
15868         (inline_transform): Use opt_for_fn.
15869         * ipa-inline.h (inline_account_function_p): Declare.
15870
15871 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
15872
15873         PR debug/64663
15874         * dwarf2out.c (decl_piece_node): Don't put bitsize into
15875         mode if bitsize <= 0.
15876         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
15877         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
15878         sizes and positions.
15879
15880 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
15881
15882         * config/nios2/nios2.c (nios2_asm_file_end): Implement
15883         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
15884         needed.
15885         (TARGET_ASM_FILE_END): Define.
15886
15887 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
15888
15889         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
15890         (struct tune_params): Use the enum.
15891         * arm.c (arm_*_tune): Update.
15892         (arm_option_override): Update.
15893
15894 2015-01-20  Richard Biener  <rguenther@suse.de>
15895
15896         PR ipa/64684
15897         * ipa-reference.c (add_static_var): Inline ...
15898         (analyze_function): ... here after splitting out from ...
15899         (is_proper_for_analysis): ... this.
15900
15901 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
15902
15903         PR target/64149
15904         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
15905         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
15906         replace the conditional with it's true branch.
15907         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
15908         (arm_lra_p): Remove.
15909
15910 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
15911
15912         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
15913
15914 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
15915
15916         * config/tilegx/mul-tables.c: Move symtab.h include after
15917         coretypes.h include.
15918         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
15919         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
15920         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
15921         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
15922         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
15923
15924 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
15925
15926         PR bootstrap/64676
15927         Revert:
15928         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
15929
15930         PR rtl-optimization/64081
15931         * loop-iv.c (def_pred_latch_p): New function.
15932         (latch_dominating_def): Allow specific cases with non-single
15933         definitions.
15934         (iv_get_reaching_def): Likewise.
15935         (check_complex_exit_p): New function.
15936         (check_simple_exit): Use check_complex_exit_p to allow certain cases
15937         with exits not executing on any iteration.
15938
15939 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15940
15941         PR lto/45375
15942         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
15943         to set branch cost.
15944
15945 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15946
15947         PR lto/45375
15948         * i386.c (gate): Check flag_expensive_optimizations and
15949         optimize_size.
15950         (ix86_option_override_internal): Drop optimize_size condition
15951         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
15952         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
15953         MASK_PREFER_AVX128.
15954         (ix86_avx256_split_vector_move_misalign,
15955         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
15956         * sse.md (all uses of TARGET_PREFER_AVX128): Add
15957         optimize_insn_for_speed_p check.
15958
15959 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
15960
15961         * config/mips/mips.h (FP_ASM_SPEC): New define.
15962         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
15963         instead.
15964
15965 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
15966
15967         PR target/53988
15968         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
15969         nullptr for insn when reaching the first insn.
15970         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
15971         (sh_insn_operands_modified_between_p): Add nullptr check.
15972         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
15973         sign extending mem load if the insn contains any UNSPEC or
15974         UNSPEC_VOLATILE.
15975
15976 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15977
15978         * params.def (inline-unit-growth): Drop to 15%.
15979         * invoke.texi (inline-unit-growth): Document change.
15980
15981 2015-01-19  Martin Liska  <mliska@suse.cz>
15982
15983         PR ipa/64668
15984         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
15985         function for second argument of OBJ_TYPE_REF.
15986
15987 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15988
15989         PR ipa/64218
15990         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
15991         whether function is an alias.
15992
15993 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
15994
15995         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
15996         cases.
15997
15998 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
15999
16000         PR rtl-optimization/64671
16001         * lra-remat.c (operand_to_remat): Don't consider jump and call
16002         insns.
16003
16004 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
16005
16006         PR target/59828
16007         * config/rs6000/default64.h: Include rs6000-cpus.def.
16008         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
16009         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
16010         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
16011         and POWER8.
16012         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
16013         POWER8.
16014         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
16015         pseudo-op to specify assembler dialect.
16016
16017 2015-01-19  Martin Liska  <mliska@suse.cz>
16018
16019         PR ipa/64664
16020         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
16021         Handle safe potentially removed nodes during filtering.
16022
16023 2015-01-19  Martin Liska  <mliska@suse.cz>
16024
16025         * doc/extend.texi (no_icf): Add new attribute description.
16026         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
16027         where the pass attempts to merge a function with no_icf attribute.
16028
16029 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
16030
16031         PR target/64532
16032         * doc/md.texi (ARM Options): Document register constraints.
16033
16034 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
16035             Andrew Pinski  <apinski@cavium.com>
16036
16037         PR target/64304
16038         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
16039         (ashl<mode>3): Don't expand if operands[2] is not constant.
16040
16041 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16042
16043         PR target/64448
16044         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
16045         Match xor-and-xor RTL pattern.
16046
16047 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
16048
16049         PR rtl-optimization/64081
16050         * loop-iv.c (def_pred_latch_p): New function.
16051         (latch_dominating_def): Allow specific cases with non-single
16052         definitions.
16053         (iv_get_reaching_def): Likewise.
16054         (check_complex_exit_p): New function.
16055         (check_simple_exit): Use check_complex_exit_p to allow certain cases
16056         with exits not executing on any iteration.
16057
16058 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
16059
16060         * common.opt (fgraphite): Fix a typo.
16061
16062 2015-01-19  Felix Yang  <felix.yang@huawei.com>
16063
16064         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
16065         pattern.
16066         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
16067         uminp, smax_nanp, smin_nanp): New builtins.
16068         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
16069         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
16070         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
16071         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
16072         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
16073         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
16074         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
16075         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
16076         vpminnms_f32): Rewrite using builtin functions.
16077
16078 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
16079
16080         PR libgomp/64625
16081         * omp-low.c (offload_symbol_decl): Remove variable.
16082         (get_offload_symbol_decl): Remove function.
16083         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
16084         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
16085         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
16086         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
16087         BUILT_IN_GOACC_UPDATE don't pass it at all.
16088
16089 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
16090
16091         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
16092         callers.
16093
16094 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
16095
16096         * ipa-chkp.c (chkp_produce_thunks): Add early param
16097         to split thunks production into two passes.  Keep
16098         'always_inline' function bodies after the first pass.
16099         (pass_data_ipa_chkp_early_produce_thunks): New.
16100         (pass_ipa_chkp_early_produce_thunks): New.
16101         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
16102         chkp_produce_thunks signature.
16103         (make_pass_ipa_chkp_early_produce_thunks): New.
16104         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
16105         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
16106         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
16107
16108 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
16109
16110         * cgraph.c (cgraph_node::dump): Dump profile flags.
16111
16112 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
16113
16114         PR target/64652
16115         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
16116         reg appear first in the parallel.
16117
16118 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
16119
16120         * ipa-reference.c (set_reference_optimization_summary,
16121         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
16122         disabled.
16123         (ignore_module_statics): New static var.
16124         (propagate_bits): If ipa-reference is disabled, do not look into local
16125         properties.
16126         (analyze_function): Disable analysis when ipa_reference is disabled.
16127         (generate_summary): Do not dump when reference is disabled;
16128         collect vars accessed from functions with ipa-reference disabled.
16129         (get_read_write_all_from_node): When ipa-reference is disabled, use the
16130         node flags.
16131         (gate): Enable for LTO.
16132         (ignore_edge_p): New function.
16133         (propagate): Skip functions w/o ipa-reference analysis.
16134         * optc-save-gen.awk: Handle optimize_debug correctly.
16135         * opth-gen.awk: Likewise.
16136         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
16137         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
16138         fira-share-save-slots, fira-share-spill-slots,
16139         fmodulo-sched-allow-regmoves, fpartial-inlining,
16140         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
16141         ftracer, ftree-parallelize-loops, fassociative-math,
16142         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
16143         Optimization
16144         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
16145         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
16146         Optimization.
16147         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
16148         Fix for IPA.
16149
16150 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
16151
16152         PR ipa/64378
16153         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
16154         flag correctly.
16155         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
16156
16157 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
16158
16159         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
16160         Remove duplicate option listings.
16161
16162 2015-01-18  Felix Yang  <felix.yang@huawei.com>
16163
16164         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
16165         (autofdo_source_profile::get_callsite_total_count,
16166         function_instance::get_function_instance_by_decl,
16167         string_table::get_index, string_table::get_index_by_decl,
16168         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
16169         Fix comment typos. Reformatting and minor code rearrangement.
16170
16171 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
16172
16173         * config/rs6000/rs6000.md (probe_stack): Delete.
16174         (probe_stack_address): New.
16175
16176 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
16177
16178         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
16179         to test for 32-bit ABIs, not !TARGET_POWERPC64.
16180
16181 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
16182
16183         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
16184         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
16185         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
16186         snafu.
16187         (rs6000_libcall_value): Use the new function.
16188
16189 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
16190
16191         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
16192
16193 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
16194
16195         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
16196         implement a more precise life analysis for it during backward scan.
16197
16198 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
16199
16200         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
16201
16202 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
16203
16204         PR rtl-optimization/52773
16205         * calls.c (emit_library_call_value): When pushing arguments use
16206         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
16207         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
16208         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
16209
16210 2015-01-17  Jeff Law  <law@redhat.com>
16211
16212         PR rtl-optimization/32790
16213         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
16214         not ZERO_EXTEND in SET_DESTs.
16215
16216 2015-01-17  Alan Modra  <amodra@gmail.com>
16217
16218         * cprop.c (do_local_cprop): Revert last change.
16219
16220 2015-01-16  DJ Delorie  <dj@redhat.com>
16221             Nick Clifton  <nickc@redhat.com>
16222
16223         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
16224         (addhi3_real): Likewise.  Fix [HL+0] syntax.
16225         (subqi3_real): Likewise.
16226         (subhi3_real): Likewise.
16227         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
16228         (cbranchhi4_real): Likewise.
16229         (cbranchhi4_real_inverted): Likewise.
16230         (cbranchsi4_real_lt): Likewise.
16231         (cbranchsi4_real_ge): Likewise.
16232         (cbranchsi4_real_ge): Likewise.
16233         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
16234         (sub<mode>3_virt): Likewise.
16235         (cbranchqi4_virt): Likewise.
16236         (cbranchhi4_virt): Likewise.
16237         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
16238         always use '[reg+imm]' even when imm is zero.
16239         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
16240         (rl78_general_operand): New.
16241         (rl78_nonimmediate_operand): New.
16242         (rl78_nonfar_operand): Use them.
16243         (rl78_nonfar_nonimm_operand): Likewise.
16244         (rl78_stack_based_mem): Fix.
16245         * config/rl78/constraints.md (Ibqi): New.
16246         (IBqi): New.
16247         (Wsa): New.
16248         (Wsf): New.
16249         (Cs1): Fix.
16250         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
16251         (iorqi3): Likewise.
16252         (xorqi3): Likewise.
16253         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
16254
16255         * config/rl78/constrains (Qs8): New constraint.
16256         * config/rl78/rl78.c (rl78_flags_already_set): New function.
16257         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
16258         * config/rl78/rl78-real.md (update_Z): New attribute.
16259         Update patterns to set it.
16260         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
16261         shorter compare and branch sequence can be used.
16262         (cbranchhi4_real): Likewise.
16263         (cbranchhi4_real_inverted): Likewise.
16264
16265         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
16266         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
16267         address space.
16268         * config/rl78/rl78.c (rl78_get_name_encoding): New.
16269         (rl78_option_override): Allow -mes0 only if C.
16270         (characterize_address): Support subregs of symbol_refs.
16271         (rl78_addr_space_address_mode): Move.  Add __near.
16272         (rl78_far_p): Likewise.
16273         (rl78_addr_space_pointer_mode): Likewise.
16274         (rl78_as_legitimate_address): Likewise.
16275         (rl78_addr_space_subset_p): Likewise.
16276         (rl78_addr_space_convert): Likewise.
16277         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
16278         symbols with -mes0.
16279         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
16280         addressing.
16281         (rl78_alloc_physical_registers_op1): Change logic to prefer
16282         symbol[BC] addressing.
16283         (frodata_section): New.
16284         (rl78_asm_init_sections): Initialize it.
16285         (rl78_select_section): Put __far readonly symbols in .frodata.
16286         (rl78_make_type_far): New.
16287         (rl78_insert_attributes): Force all readonly symbols to be
16288         __far when -mes0.
16289         (rl78_asm_out_integer): New.
16290         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
16291         * config/rl78/rl78.opt (-mes0): New.
16292
16293         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
16294         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
16295         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
16296         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
16297         (rl78_saddr_p): New.
16298         (rl78_output_aligned_common): New.
16299         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
16300         (rl78_handle_saddr_attribute): New.
16301         (rl78_handle_naked_attribute): New.
16302         (rl78_attribute_table): Add saddr.
16303         (rl78_print_operand_1): Don't print '!' on saddr operands.
16304         (rl78_print_operand_1): Strip encodings.
16305         (rl78_sfr_p): New.
16306         (rl78_strip_name_encoding): New.
16307         (rl78_attrlist_to_encoding): New.
16308         (rl78_encode_section_info): New.
16309         (rl78_asm_init_sections): New.
16310         (rl78_select_section): New.
16311         (rl78_output_labelref): New.
16312         (rl78_output_aligned_common): New.
16313         (rl78_asm_out_integer): New.
16314         (rl78_asm_ctor_dtor): New.
16315         (rl78_asm_constructor): New.
16316         (rl78_asm_destructor): New.
16317
16318         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
16319         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
16320         (transcode_memory_rtx): Update.
16321         (rl78_expand_epilogue): Use A_REG instead of 0.
16322
16323 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16324
16325         * config/arm/arm-protos.h (struct tune_params): New field
16326         sched_autopref_queue_depth.
16327         * config/arm/arm.c (sched-int.h): Include header.
16328         (arm_first_cycle_multipass_dfa_lookahead_guard,)
16329         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
16330         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
16331         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
16332         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
16333         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
16334         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
16335         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
16336         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
16337         * config/arm/t-arm (arm.o): Update.
16338         * haifa-sched.c (update_insn_after_change): Update.
16339         (rank_for_schedule): Use auto-prefetcher model, if requested.
16340         (autopref_multipass_init): New static function.
16341         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
16342         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
16343         variable for debug dumps.
16344         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
16345         (autopref_multipass_dfa_lookahead_guard): New global function that
16346         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
16347         (init_h_i_d): Update.
16348         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
16349         * sched-int.h (enum autopref_multipass_data_status): New const enum.
16350         (autopref_multipass_data_): Structure for auto-prefetcher data.
16351         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
16352         (struct _haifa_insn_data:autopref_multipass_data): New field.
16353         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
16354         (autopref_multipass_dfa_lookahead_guard): Declare.
16355
16356 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16357
16358         * rtlanal.c (get_base_term): Handle SCRATCH.
16359
16360 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
16361
16362         * config/aarch64/aarch64.c
16363         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
16364         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
16365         * config/arm/arm.c
16366         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
16367         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
16368
16369 2015-01-17  Alan Modra  <amodra@gmail.com>
16370
16371         * cprop.c (do_local_cprop): Disallow replacement of fixed
16372         hard registers.
16373
16374 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16375
16376         PR target/62066
16377         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
16378         early return 0.
16379
16380 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16381
16382         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
16383         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
16384
16385 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16386
16387         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
16388         * config/arm/thumb1.md: ... Here.
16389
16390 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
16391
16392         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
16393         TImode for TARGET_32BIT.
16394
16395 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
16396
16397         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
16398         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
16399         as ...
16400         (rs6000_abi_word_mode): New function.
16401
16402 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
16403
16404         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
16405         instead of UNITS_PER_WORD to describe the size of stack slots.
16406
16407 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
16408
16409         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
16410         as rs6000_promote_function_mode.  Move comment to there.
16411         (rs6000_promote_function_mode): New function.
16412
16413 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
16414
16415         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
16416         -mpowerpc64 is active.
16417
16418 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
16419
16420         PR middle-end/64353
16421         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
16422         virtuals on start.
16423
16424 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
16425
16426         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
16427         introduced in revision 219724.
16428
16429 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16430             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16431
16432         PR target/64263
16433         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
16434         destination is not a GP reg.
16435         (*movdi_aarch64): Likewise.
16436
16437 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
16438
16439         PR target/64623
16440         * config/rs6000/default64.h: Revert ISA change.
16441
16442 2015-01-16  Richard Biener  <rguenther@suse.de>
16443
16444         PR middle-end/64614
16445         * tree-ssa-uninit.c: Include tree-cfg.h.
16446         (MAX_SWITCH_CASES): New define.
16447         (convert_control_dep_chain_into_preds): Handle switch statements.
16448         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
16449         (normalize_one_pred_1): Do not split bit-manipulations.
16450         Record (x & CST).
16451
16452 2015-01-16  Richard Biener  <rguenther@suse.de>
16453
16454         PR tree-optimization/64568
16455         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
16456         complex load rewriting for TARGET_MEM_REFs.
16457
16458 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
16459
16460         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
16461
16462 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
16463
16464         PR target/64149
16465         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
16466         variable.
16467         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
16468         (aarch64_lra_p): Remove.
16469
16470 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
16471
16472         PR target/64363
16473         * ipa-chkp.h (chkp_instrumentable_p): New.
16474         * ipa-chkp.c: Include tree-inline.h.
16475         (chkp_instrumentable_p): New.
16476         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
16477         Fix processing of not instrumentable functions.
16478         (chkp_versioning): Use chkp_instrumentable_p. Warn about
16479         not instrumentable functions.
16480         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
16481         chkp_instrumentable_p.
16482         * tree-inline.h (copy_forbidden): New.
16483         * tree-inline.c (copy_forbidden): Not static anymore.
16484
16485 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16486
16487         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
16488         ptr1, ptr2 unused.
16489
16490 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
16491
16492         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
16493         type OP_OUT to OP_INOUT.
16494
16495 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
16496
16497         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
16498         (high x) y) to y if x and y have the same base.
16499
16500 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
16501
16502         * config/arm/cortex-a57.md: New.
16503         * config/aarch64/aarch64.md: Include it.
16504         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
16505         * config/aarch64/aarch64-tune.md: Regenerate.
16506
16507 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
16508
16509         PR target/64015
16510         * ccmp.c (expand_ccmp_next): New function.
16511         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
16512         and compare insn sequence.
16513         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
16514         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
16515         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
16516         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
16517         (*ccmp_ior): Changed to ccmp_ior<mode>.
16518         (cmp<mode>): New pattern.
16519         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
16520         parameters.
16521         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
16522
16523 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
16524
16525         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
16526         _mm256_bsrli_epi128): New.
16527         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
16528
16529 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
16530
16531         * expmed.c (store_bit_field_using_insv): Improve warning message.
16532         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
16533
16534 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
16535
16536         PR rtl-optimization/64011
16537         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
16538         there is partial overflow.
16539
16540 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
16541
16542         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
16543         prototype.
16544         (nds32_expand_epilogue_v3pop): Likewise.
16545         * config/nds32/nds32.md (sibcall): Define this for sibling call
16546         optimization.
16547         (sibcall_register): Likewise.
16548         (sibcall_immediate): Likewise.
16549         (sibcall_value): Likewise.
16550         (sibcall_value_register): Likewise.
16551         (sibcall_value_immediate): Likewise.
16552         (sibcall_epilogue): Likewise.
16553         (epilogue): Pass false to indicate this is not a sibcall epilogue.
16554         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
16555         (nds32_expand_epilogue_v3pop): Likewise.
16556
16557 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
16558
16559         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
16560         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
16561         (return_internal): New.
16562         (return): Define this named pattern.
16563         (simple_return): Define this named pattern.
16564         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
16565         pattern instead of unspec_volatile_func_return.
16566         (nds32_expand_epilogue_v3pop): Likewise.
16567         (nds32_can_use_return_insn): New function.
16568
16569 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
16570
16571         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
16572         * config/nds32/nds32.md (pop25return): New.
16573         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
16574         pop25return pattern.
16575
16576 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
16577
16578         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
16579         -mforbid-fp-as-gp, and -mex9 options.
16580
16581 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
16582
16583         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
16584         remove -mgp-direct option.
16585
16586 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
16587
16588         * doc/invoke.texi (--param early-inlining-insns): Update default value.
16589         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
16590
16591 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
16592
16593         * ipa-inline.c (inline_small_functions): Work around hints
16594         cache issue.
16595
16596 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
16597
16598         PR target/59710
16599         * doc/invoke.texi (Option Summary): Document new Nios II
16600         -mgpopt= syntax.
16601         (Nios II Options): Likewise.
16602         * config/nios2/nios2.opt: Add -mgpopt= option support.
16603         Modify existing -mgpopt and -mno-gpopt options to be aliases.
16604         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
16605         * config/nios2/nios2.c (nios2_option_override): Adjust
16606         -mgpopt defaulting.
16607         (nios2_in_small_data_p): Return true for explicit small data
16608         sections even with -G0.
16609         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
16610         option choices.
16611
16612 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
16613
16614         PR ipa/64612
16615         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
16616         of comdat locals.
16617         (inline_call): Fix removal of aliases.
16618
16619 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
16620
16621         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
16622         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
16623         * opts.c (common_handle_option): Add -fsanitize=vptr.
16624         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
16625         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
16626         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
16627         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
16628         (ubsan_expand_vptr_ifn): New prototype.
16629         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
16630         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
16631         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
16632         expand_LOOP_VECTORIZED): Make argument nameless, remove
16633         ATTRIBUTE_UNUSED.
16634         (expand_UBSAN_VPTR): New function.
16635         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
16636         in fn spec.
16637         (UBSAN_VPTR): New internal function.
16638         * sanopt.c (tree_map_traits): Renamed to ...
16639         (sanopt_tree_map_traits): ... this.
16640         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
16641         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
16642         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
16643         (maybe_optimize_ubsan_vptr_ifn): New function.
16644         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
16645         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
16646         -fsanitize=vptr.
16647         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
16648         internal calls like pure functions for aliasing, even when they
16649         have other side-effects that prevent making them ECF_PURE.
16650         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
16651         (ubsan_expand_vptr_ifn): New function.
16652
16653 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
16654
16655         PR rtl-optimization/64110
16656         * stmt.c (parse_output_constraint): Process '^' and '$'.
16657         (parse_input_constraint): Ditto.
16658         * lra-constraints.c (process_alt_operands): Process the new
16659         constraints.
16660         * ira-costs.c (record_reg_classes): Process the new constraint
16661         '^'.
16662         * genoutput.c (indep_constraints): Add '^' and '$'.
16663         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
16664         * doc/md.texi: Add description of the new constraints.
16665
16666 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
16667             Bernd Schmidt  <bernds@codesourcery.com>
16668             Cesar Philippidis  <cesar@codesourcery.com>
16669             James Norris  <jnorris@codesourcery.com>
16670             Tom de Vries  <tom@codesourcery.com>
16671             Ilmir Usmanov  <i.usmanov@samsung.com>
16672             Dmitry Bocharnikov  <dmitry.b@samsung.com>
16673             Evgeny Gavrin  <e.gavrin@samsung.com>
16674             Jakub Jelinek  <jakub@redhat.com>
16675
16676         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
16677         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
16678         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
16679         New function types.
16680         * builtins.c: Include "gomp-constants.h".
16681         (expand_builtin_acc_on_device): New function.
16682         (expand_builtin, is_inexpensive_builtin): Handle
16683         BUILT_IN_ACC_ON_DEVICE.
16684         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
16685         New macros.
16686         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
16687         flag_openmp.
16688         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
16689         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
16690         i386/intelmic-offload.h.
16691         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
16692         to libgomp and its dependencies.
16693         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
16694         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
16695         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
16696         * config/ia64/hpux.h (LIB_SPEC): Likewise.
16697         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
16698         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
16699         * doc/generic.texi: Update for OpenACC changes.
16700         * doc/gimple.texi: Likewise.
16701         * doc/invoke.texi: Likewise.
16702         * doc/sourcebuild.texi: Likewise.
16703         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
16704         GF_OMP_FOR_KIND_OACC_LOOP.
16705         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
16706         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
16707         GF_OMP_TARGET_KIND_OACC_UPDATE,
16708         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
16709         Dump more data.
16710         * gimple.c: Update comments for OpenACC changes.
16711         * gimple.def: Likewise.
16712         * gimple.h: Likewise.
16713         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
16714         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
16715         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
16716         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
16717         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
16718         appropriate place.
16719         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
16720         * gimplify.c: Include "gomp-constants.h".
16721         Update comments for OpenACC changes.
16722         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
16723         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
16724         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
16725         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
16726         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
16727         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
16728         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
16729         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
16730         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
16731         OMP_CLAUSE_SEQ.
16732         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
16733         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
16734         OMP_CLAUSE_SET_MAP_KIND.
16735         (gimplify_oacc_cache): New function.
16736         (gimplify_omp_for): Handle OACC_LOOP.
16737         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
16738         OACC_DATA.
16739         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
16740         OACC_EXIT_DATA, OACC_UPDATE.
16741         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
16742         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
16743         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
16744         (gimplify_body): Consider flag_openacc next to flag_openmp.
16745         * lto-streamer-out.c: Include "gomp-constants.h".
16746         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
16747         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
16748         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
16749         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
16750         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
16751         (BUILT_IN_ACC_ON_DEVICE): New builtins.
16752         * omp-low.c: Include "gomp-constants.h".
16753         Update comments for OpenACC changes.
16754         (struct omp_context): Add reduction_map, gwv_below, gwv_this
16755         members.
16756         (extract_omp_for_data, use_pointer_for_field, install_var_field)
16757         (new_omp_context, delete_omp_context, scan_sharing_clauses)
16758         (create_omp_child_function, scan_omp_for, scan_omp_target)
16759         (check_omp_nesting_restrictions, lower_reduction_clauses)
16760         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
16761         Update for OpenACC changes.
16762         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
16763         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
16764         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
16765         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
16766         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
16767         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
16768         OMP_CLAUSE_MAP_*.
16769         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
16770         Handle GF_OMP_FOR_KIND_OACC_LOOP.
16771         (expand_omp_target, lower_omp_target): Handle
16772         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
16773         GF_OMP_TARGET_KIND_OACC_UPDATE,
16774         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
16775         GF_OMP_TARGET_KIND_OACC_DATA.
16776         (pass_expand_omp::execute, execute_lower_omp)
16777         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
16778         flag_openmp.
16779         (offload_symbol_decl): New variable.
16780         (oacc_get_reduction_array_id, oacc_max_threads)
16781         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
16782         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
16783         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
16784         (oacc_gimple_assign, oacc_initialize_reduction_data)
16785         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
16786         functions.
16787         (is_targetreg_ctx): Remove function.
16788         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
16789         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
16790         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
16791         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
16792         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
16793         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
16794         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
16795         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
16796         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
16797         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
16798         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
16799         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
16800         * tree-core.h: Update comments for OpenACC changes.
16801         (enum omp_clause_map_kind): Remove.
16802         (struct tree_omp_clause): Change type of map_kind member from enum
16803         omp_clause_map_kind to unsigned char.
16804         * tree-inline.c: Update comments for OpenACC changes.
16805         * tree-nested.c: Likewise.  Include "gomp-constants.h".
16806         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
16807         (convert_tramp_reference_stmt, convert_gimple_call): Update for
16808         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
16809         OMP_CLAUSE_SET_MAP_KIND.
16810         * tree-pretty-print.c: Include "gomp-constants.h".
16811         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
16812         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
16813         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
16814         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
16815         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
16816         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
16817         instead of OMP_CLAUSE_MAP_*.
16818         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
16819         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
16820         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
16821         * tree-streamer-in.c: Include "gomp-constants.h".
16822         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
16823         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
16824         * tree-streamer-out.c: Include "gomp-constants.h".
16825         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
16826         OMP_CLAUSE_MAP_*.
16827         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
16828         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
16829         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
16830         * tree.c (omp_clause_num_ops): Update accordingly.
16831         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
16832         Likewise.
16833         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
16834         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
16835         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
16836         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
16837         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
16838         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
16839         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
16840         (OMP_CLAUSE_SET_MAP_KIND): New macro.
16841         * varpool.c (varpool_node::get_create): Consider flag_openacc next
16842         to flag_openmp.
16843         * config/i386/intelmic-offload.h: New file.
16844         * config/nvptx/offload.h: Likewise.
16845
16846 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16847
16848         * explow.h: Remove duplicate contents.
16849         * dojump.h: Likewise.
16850
16851 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
16852
16853         * arm.c (arm_xgene_tune): Add default initializer for instruction
16854         fusion.
16855
16856 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
16857
16858         PR ipa/64068
16859         PR ipa/64559
16860         * ipa.c (symbol_table::remove_unreachable_nodes):
16861         Do not put abstract origins into boundary.
16862
16863 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
16864
16865         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
16866         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
16867
16868 2015-01-15  Steve Ellcey  <sellcey@mips.com>
16869
16870         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
16871         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
16872         builtins.def, and chkp-builtins.def.
16873
16874 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
16875
16876         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
16877         ISA 2.7 (POWER8).
16878
16879 2015-01-15  Richard Biener  <rguenther@suse.de>
16880
16881         PR tree-optimization/61743
16882         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
16883         information on PHIs for some simple cases.
16884
16885 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16886
16887         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
16888         Include xgene1.md.
16889         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
16890         * config/arm/arm-cores.def (xgene1): New entry.
16891         * config/arm/arm-tables.opt: Regenerate.
16892         * config/arm/arm-tune.md: Regenerate.
16893         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
16894
16895 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
16896
16897         * tree-if-conv.c: Include hash-map.h.
16898         (aggressive_if_conv): New variable.
16899         (fold_build_cond_expr): Add simplification of non-zero condition.
16900         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
16901         destination block is not always executed.
16902         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
16903         than two predecessors if AGGRESSIVE_IF_CONV is true.
16904         (if_convertible_stmt_p): Fix commentary.
16905         (all_preds_critical_p): New function.
16906         (has_pred_critical_p): New function.
16907         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
16908         BB can have more than two predecessors and all incoming edges can be
16909         critical.
16910         (predicate_bbs): Skip predication for loop exit block, use build2_loc
16911         to compute predicate for true edge.
16912         (find_phi_replacement_condition): Delete this function.
16913         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
16914         Allow interchange PHI arguments if EXTENDED is false.
16915         Change check that block containing reduction statement candidate
16916         is predecessor of phi-block since phi may have more than two arguments.
16917         (phi_args_hash_traits): New helper structure.
16918         (struct phi_args_hash_traits): New type.
16919         (phi_args_hash_traits::hash): New function.
16920         (phi_args_hash_traits::equal_keys): New function.
16921         (gen_phi_arg_condition): New function.
16922         (predicate_scalar_phi): Add handling of phi nodes with more than two
16923         arguments, delete COND and TRUE_BB arguments, insert body of
16924         find_phi_replacement_condition to predicate ordinary phi nodes.
16925         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
16926         delete call of find_phi_replacement_condition and invoke
16927         predicate_scalar_phi with two arguments.
16928         (insert_gimplified_predicates): Add assert that non-predicated block
16929         don't have statements to insert.
16930         (ifcvt_split_critical_edges): New function.
16931         (ifcvt_split_def_stmt): Likewise.
16932         (ifcvt_walk_pattern_tree): Likewise.
16933         (stmt_is_root_of_bool_pattern): Likewise.
16934         (ifcvt_repair_bool_pattern): Likewise.
16935         (ifcvt_local_dce): Likewise.
16936         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
16937         is copy of inner or outer loop force_vectorize field, invoke
16938         ifcvt_split_critical_edges, ifcvt_local_dce and
16939         ifcvt_repair_bool_pattern for aggressive if-conversion.
16940
16941 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
16942
16943         * config/aarch64/aarch64.md: Include xgene1.md.
16944         * config/aarch64/xgene1.md: New file.
16945
16946 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
16947
16948         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
16949         xgene1 (APM XGene-1) core definition.
16950         * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
16951         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
16952         * doc/invoke.texi: Document -mcpu=xgene1.
16953
16954 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16955
16956         * dojump.h: New header file.
16957         * explow.h: Likewise.
16958         * expr.h: Remove includes.
16959         Move expmed.c prototypes to expmed.h.
16960         Move dojump.c prototypes to dojump.h.
16961         Move alias.c prototypes to alias.h.
16962         Move explow.c prototypes to explow.h.
16963         Move calls.c prototypes to calls.h.
16964         Move emit-rtl.c prototypes to emit-rtl.h.
16965         Move varasm.c prototypes to varasm.h.
16966         Move stmt.c prototypes to stmt.h.
16967         (saved_pending_stack_adjust): Move to dojump.h.
16968         (adjust_address): Move to explow.h.
16969         (adjust_address_nv): Move to emit-rtl.h.
16970         (adjust_bitfield_address): Likewise.
16971         (adjust_bitfield_address_size): Likewise.
16972         (adjust_bitfield_address_nv): Likewise.
16973         (adjust_automodify_address_nv): Likewise.
16974         * explow.c (expr_size): Move to expr.c.
16975         (int_expr_size): Likewise.
16976         (tree_expr_size): Likewise.
16977         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
16978         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
16979         * genemit.c (main): Generate includes statistics.h, real.h,
16980         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
16981         stmt.h.
16982         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
16983         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
16984         explow.h, emit-rtl.h, stmt.h.
16985         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
16986         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
16987         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
16988         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
16989         emit-rtl.h, varasm.h, stmt.h.
16990         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
16991         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
16992         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
16993         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
16994         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
16995         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
16996         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
16997         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
16998         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
16999         tm.h tree.h varasm.h vec.h wide-int.h.
17000         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
17001         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
17002         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
17003         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
17004         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
17005         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
17006         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
17007         * loop-iv.c: Likewise.
17008         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
17009         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
17010         statistics.h stmt.h tree.h varasm.h wide-int.h.
17011         * lra-constraints.c: Likewise.
17012         * lra-eliminations.c: Likewise.
17013         * lra-lives.c: Likewise.
17014         * lra-remat.c: Likewise.
17015         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
17016         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
17017         statistics.h stmt.h tree.h varasm.h wide-int.h.
17018         * hw-doloop.c: Likewise.
17019         * ira-color.c: Likewise.
17020         * ira-emit.c: Likewise.
17021         * loop-doloop.c: Likewise.
17022         * loop-invariant.c: Likewise.
17023         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
17024         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
17025         statistics.h stmt.h tree.h varasm.h wide-int.h.
17026         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
17027         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
17028         statistics.h stmt.h tree.h varasm.h wide-int.h.
17029         * combine-stack-adj.c: Likewise.
17030         * cse.c: Likewise.
17031         * ddg.c: Likewise.
17032         * ifcvt.c: Likewise.
17033         * ira-costs.c: Likewise.
17034         * jump.c: Likewise.
17035         * lra-coalesce.c: Likewise.
17036         * lra-spills.c: Likewise.
17037         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
17038         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
17039         stmt.h varasm.h wide-int.h.
17040         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
17041         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
17042         varasm.h.
17043         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
17044         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
17045         statistics.h stmt.h varasm.h wide-int.h.
17046         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
17047         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
17048         varasm.h wide-int.h.
17049         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
17050         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
17051         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
17052         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
17053         statistics.h stmt.h.
17054         * config/tilepro/tilepro.c: Likewise.
17055         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
17056         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
17057         * config/pdp11/pdp11.c: Likewise.
17058         * config/xtensa/xtensa.c: Likewise.
17059         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
17060         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
17061         varasm.h.
17062         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17063         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
17064         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
17065         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17066         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
17067         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
17068         * rtl-chkp.c: Likewise.
17069         * tree-chkp-opt.c: Likewise.
17070         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
17071         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
17072         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
17073         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17074         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
17075         statistics.h stmt.h.
17076         * tree-vect-data-refs.c: Likewise.
17077         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
17078         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
17079         rtl.h statistics.h stmt.h varasm.h.
17080         * internal-fn.c: Likewise.
17081         * ipa-icf-gimple.c: Likewise.
17082         * lto-section-out.c: Likewise.
17083         * tree-data-ref.c: Likewise.
17084         * tree-nested.c: Likewise.
17085         * tree-outof-ssa.c: Likewise.
17086         * tree-predcom.c: Likewise.
17087         * tree-pretty-print.c: Likewise.
17088         * tree-scalar-evolution.c: Likewise.
17089         * tree-ssa-strlen.c: Likewise.
17090         * tree-vect-loop.c: Likewise.
17091         * tree-vect-patterns.c: Likewise.
17092         * tree-vect-slp.c: Likewise.
17093         * tree-vect-stmts.c: Likewise.
17094         * tsan.c: Likewise.
17095         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17096         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
17097         stmt.h.
17098         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
17099         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
17100         statistics.h stmt.h varasm.h.
17101         * loop-unroll.c: Likewise.
17102         * ubsan.c: Likewise.
17103         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
17104         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
17105         stmt.h varasm.h.
17106         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17107         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
17108         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
17109         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
17110         statistics.h stmt.h.
17111         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
17112         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
17113         statistics.h stmt.h varasm.h.
17114         * gimple-match-head.c: Likewise.
17115         * lto-cgraph.c: Likewise.
17116         * lto-section-in.c: Likewise.
17117         * lto-streamer-in.c: Likewise.
17118         * lto-streamer-out.c: Likewise.
17119         * tree-affine.c: Likewise.
17120         * tree-cfg.c: Likewise.
17121         * tree-cfgcleanup.c: Likewise.
17122         * tree-if-conv.c: Likewise.
17123         * tree-into-ssa.c: Likewise.
17124         * tree-ssa-alias.c: Likewise.
17125         * tree-ssa-copyrename.c: Likewise.
17126         * tree-ssa-dse.c: Likewise.
17127         * tree-ssa-forwprop.c: Likewise.
17128         * tree-ssa-live.c: Likewise.
17129         * tree-ssa-math-opts.c: Likewise.
17130         * tree-ssa-pre.c: Likewise.
17131         * tree-ssa-sccvn.c: Likewise.
17132         * tree-tailcall.c: Likewise.
17133         * tree-vect-generic.c: Likewise.
17134         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17135         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
17136         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17137         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
17138         * varasm.c: Likewise.
17139         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17140         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
17141         varasm.h.
17142         * init-regs.c: Likewise.
17143         * ira.c: Likewise.
17144         * omp-low.c: Likewise.
17145         * stack-ptr-mod.c: Likewise.
17146         * tree-ssa-reassoc.c: Likewise.
17147         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17148         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
17149         varasm.h.
17150         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17151         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
17152         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17153         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
17154         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17155         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
17156         * tree-ssa-phiopt.c: Likewise.
17157         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17158         fixed-value.h hashtab.h real.h statistics.h stmt.h.
17159         * config/fr30/fr30.c: Likewise.
17160         * config/frv/frv.c: Likewise.
17161         * expr.c: Likewise.
17162         * final.c: Likewise.
17163         * optabs.c: Likewise.
17164         * passes.c: Likewise.
17165         * simplify-rtx.c: Likewise.
17166         * stmt.c: Likewise.
17167         * toplev.c: Likewise.
17168         * var-tracking.c: Likewise.
17169         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17170         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
17171         * lower-subreg.c: Likewise.
17172         * postreload-gcse.c: Likewise.
17173         * ree.c: Likewise.
17174         * reginfo.c: Likewise.
17175         * store-motion.c: Likewise.
17176         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17177         fixed-value.h hashtab.h real.h stmt.h varasm.h.
17178         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17179         fixed-value.h hashtab.h statistics.h stmt.h.
17180         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17181         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
17182         * except.c: Likewise.
17183         * explow.c: Likewise.
17184         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17185         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
17186         varasm.h.
17187         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17188         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
17189         * tree-ssa-structalias.c: Likewise.
17190         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17191         fixed-value.h insn-config.h real.h statistics.h.
17192         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17193         fixed-value.h insn-config.h real.h statistics.h stmt.h.
17194         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17195         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
17196         * cfgbuild.c: Likewise.
17197         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17198         fixed-value.h real.h rtl.h statistics.h stmt.h.
17199         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17200         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
17201         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17202         fixed-value.h real.h statistics.h stmt.h.
17203         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
17204         fixed-value.h real.h statistics.h stmt.h varasm.h.
17205         * cprop.c: Likewise.
17206         * modulo-sched.c: Likewise.
17207         * postreload.c: Likewise.
17208         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
17209         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
17210         statistics.h stmt.h varasm.h.
17211         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
17212         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
17213         rtl.h statistics.h stmt.h varasm.h.
17214         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
17215         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
17216         varasm.h.
17217         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
17218         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
17219         varasm.h.
17220         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
17221         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
17222         varasm.h.
17223         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
17224         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
17225         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
17226         function.h real.h statistics.h stmt.h varasm.h.
17227         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
17228         insn-config.h real.h statistics.h stmt.h.
17229         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
17230         statistics.h stmt.h.
17231         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
17232         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
17233         statistics.h stmt.h varasm.h.
17234         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
17235         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
17236         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
17237         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
17238         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
17239         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
17240         statistics.h stmt.h varasm.h.
17241         * ipa-polymorphic-call.c: Likewise.
17242         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
17243         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
17244         statistics.h stmt.h.
17245         * config/c6x/c6x.c: Likewise.
17246         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
17247         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
17248         statistics.h stmt.h varasm.h.
17249         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
17250         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
17251         stmt.h varasm.h.
17252         * ipa-split.c: Likewise.
17253         * tree-eh.c: Likewise.
17254         * tree-ssa-dce.c: Likewise.
17255         * tree-ssa-loop-niter.c: Likewise.
17256         * tree-vrp.c: Likewise.
17257         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
17258         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
17259         stmt.h.
17260         * config/nds32/nds32-fp-as-gp.c: Likewise.
17261         * config/nds32/nds32-intrinsic.c: Likewise.
17262         * config/nds32/nds32-isr.c: Likewise.
17263         * config/nds32/nds32-md-auxiliary.c: Likewise.
17264         * config/nds32/nds32-memory-manipulation.c: Likewise.
17265         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
17266         * config/nds32/nds32-predicates.c: Likewise.
17267         * config/nds32/nds32.c: Likewise.
17268         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
17269         fixed-value.h hashtab.h real.h statistics.h.
17270         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
17271         fixed-value.h hashtab.h real.h statistics.h stmt.h.
17272         * config/arm/arm.c: Likewise.
17273         * config/avr/avr.c: Likewise.
17274         * config/bfin/bfin.c: Likewise.
17275         * config/h8300/h8300.c: Likewise.
17276         * config/i386/i386.c: Likewise.
17277         * config/ia64/ia64.c: Likewise.
17278         * config/iq2000/iq2000.c: Likewise.
17279         * config/m32c/m32c.c: Likewise.
17280         * config/m32r/m32r.c: Likewise.
17281         * config/m68k/m68k.c: Likewise.
17282         * config/mcore/mcore.c: Likewise.
17283         * config/mep/mep.c: Likewise.
17284         * config/mips/mips.c: Likewise.
17285         * config/mn10300/mn10300.c: Likewise.
17286         * config/moxie/moxie.c: Likewise.
17287         * config/pa/pa.c: Likewise.
17288         * config/rl78/rl78.c: Likewise.
17289         * config/rx/rx.c: Likewise.
17290         * config/s390/s390.c: Likewise.
17291         * config/sh/sh.c: Likewise.
17292         * config/sparc/sparc.c: Likewise.
17293         * config/spu/spu.c: Likewise.
17294         * config/stormy16/stormy16.c: Likewise.
17295         * config/v850/v850.c: Likewise.
17296         * config/vax/vax.c: Likewise.
17297         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
17298         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
17299         * config/msp430/msp430.c: Likewise.
17300         * predict.c: Likewise.
17301         * value-prof.c: Likewise.
17302         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
17303         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
17304         * config/microblaze/microblaze.c: Likewise.
17305         * config/nios2/nios2.c: Likewise.
17306         * config/rs6000/rs6000.c: Likewise.
17307         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
17308         insn-config.h real.h rtl.h statistics.h stmt.h.
17309         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
17310         insn-config.h real.h statistics.h stmt.h.
17311         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
17312         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
17313         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
17314         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
17315         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
17316         fixed-value.h real.h statistics.h stmt.h.
17317         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
17318         fixed-value.h statistics.h stmt.h.
17319         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
17320         stmt.h.
17321
17322 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
17323
17324         * gengtype.c (create_user_defined_type): Workaround
17325         -Wmaybe-uninitialized false positives.
17326         * cse.c (fold_rtx): Likewise.
17327         * loop-invariant.c (gain_for_invariant): Likewise.
17328
17329 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
17330
17331         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
17332         set the memory attributes in all cases but clear MEM_EXPR if need be.
17333
17334 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
17335
17336         PR tree-optimization/64434
17337         * cfgexpand.c (reorder_operands): New function.
17338         (expand_gimple_basic_block): Insert call of reorder_operands if
17339         optimized is true.
17340
17341 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
17342
17343         * config/mips/micromips.md (*swp): Remove explicit parallel.
17344         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
17345         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
17346         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
17347         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
17348         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
17349         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
17350         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
17351         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
17352         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
17353         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
17354         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
17355         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
17356         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
17357         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
17358         (mips_wrdsp): Likewise.
17359         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
17360         parallel.
17361         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
17362         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
17363         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
17364         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
17365         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
17366         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
17367         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
17368         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
17369         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
17370
17371 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
17372
17373         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
17374         (mips_print_operand): Support 'y' to print exact log2 in decimal
17375         of a const_int.
17376         * config/mips/mips.h (ISA_HAS_LSA): New define.
17377         (ISA_HAS_DLSA): Likewise.
17378         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
17379         * config/mips/predicates.md (const_immlsa_operand): New predicate.
17380
17381 2015-01-15  Martin Liska  <mliska@suse.cz>
17382
17383         PR target/64377
17384         * optc-save-gen.awk: Add support for array types.
17385
17386 2015-01-15  Richard Biener  <rguenther@suse.de>
17387
17388         PR middle-end/64365
17389         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
17390         for MEM_REF access functions with the same base can never partially
17391         overlap.
17392
17393 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
17394
17395         * common.opt: New option -fstack-protector-explicit.
17396         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
17397         (stack_protect_decl_phase): Handle stack_protect attribute for
17398         explicit stack protection requests.
17399         (expand_used_vars): Similarly.
17400         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
17401         * doc/extend.texi: Add documentation for "stack_protect" attribute.
17402         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
17403
17404 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
17405
17406         PR target/53988
17407         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
17408         reg-reg copies.
17409         (sh_extending_set_of_reg): New struct.
17410         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
17411         sh_remove_reg_dead_or_unused_notes): New Declarations.
17412         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
17413         sh_find_extending_set_of_reg, sh_split_tst_subregs,
17414         sh_extending_set_of_reg::use_as_extended_reg): New functions.
17415         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
17416         convert to insn_and_split and use new function sh_split_tst_subregs.
17417
17418 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
17419
17420         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
17421         option.
17422         (Optimization Options): Move -fuse-ld documentation to...
17423         (Link Options): ...here.
17424
17425 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
17426
17427         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
17428         offsets.
17429         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
17430         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
17431         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
17432         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
17433         instead of ZR for the memory operand of LL/SC.
17434         (compare_and_swap_12, sync_add<mode>): Likewise.
17435         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
17436         (sync_new_<optab>_12, sync_nand_12): Likewise.
17437         (sync_old_nand_12, sync_new_nand_12): Likewise.
17438         (sync_sub<mode>, sync_old_add<mode>): Likewise.
17439         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
17440         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
17441         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
17442         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
17443         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
17444         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
17445         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
17446         * doc/md.texi (ZC): Update description.
17447
17448 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
17449
17450         * builtins.c (expand_builtin_atomic_exchange): Remove error when
17451         memory model is CONSUME.
17452         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
17453         expand_builtin_atomic_store): Change invalid memory model errors to
17454         warnings.
17455         (expand_builtin_atomic_clear): Change invalid model errors to warnings
17456         and issue warning for CONSUME.
17457
17458 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
17459
17460         * lto-cgraph: Update function comments for
17461         lto_symtab_encoder_encode_*.
17462
17463 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
17464
17465         * Makefile.in (site.exp): Do not set ENABLE_LTO.
17466
17467 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
17468
17469         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
17470         * lto-cgraph.c (select_what_to_stream): Remove argument, use
17471         lto_stream_offload_p instead.
17472         * lto-streamer.h (select_what_to_stream): Remove argument.
17473         * passes.c (ipa_write_summaries): Likewise.
17474         * tree-pass.h (ipa_write_summaries): Likewise.
17475
17476 2015-01-14  Richard Biener  <rguenther@suse.de>
17477
17478         PR tree-optimization/59354
17479         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
17480         groups larger than the slp group size as having gaps.
17481
17482 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
17483
17484         PR middle-end/59448
17485         * builtins.c (get_memmodel): Promote consume to acquire always.
17486
17487 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
17488
17489         PR target/64386
17490         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
17491         V32HImode.
17492
17493 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
17494
17495         PR target/64393
17496         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
17497         Enable AVX512BW.
17498         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
17499         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
17500         AVX512VBMI, as it implies AVX512BW.
17501
17502 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
17503
17504         PR target/64387
17505         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
17506         (vec_unpacks_hi_v16sf): Ditto.
17507
17508 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17509
17510         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
17511         is not available.
17512
17513 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17514
17515         * doc/invoke.texi (mapcs): Mention deprecation.
17516         (mapcs-frame): Likewise.
17517
17518 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17519
17520         PR target/64453
17521         * config/arm/arm.c (callee_saved_reg_p): Define.
17522         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
17523         register is callee saved instead of !call_used_regs[reg].
17524         (thumb1_compute_save_reg_mask): Likewise.
17525
17526 2015-01-14  Hale Wang  <hale.wang@arm.com>
17527
17528         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
17529         Cortex-M7.
17530
17531 2015-01-14  Richard Biener  <rguenther@suse.de>
17532
17533         PR lto/64415
17534         * tree-inline.c (insert_debug_decl_map): Check destination
17535         function MAY_HAVE_DEBUG_STMTS.
17536         (insert_init_debug_bind): Likewise.
17537         (insert_init_stmt): Remove redundant check.
17538         (remap_gimple_stmt): Drop debug stmts if the destination
17539         function has var-tracking assignments disabled.
17540
17541 2015-01-14  Martin Liska  <mliska@suse.cz>
17542
17543         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
17544         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
17545
17546 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17547
17548         PR target/64460
17549         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
17550         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
17551
17552 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
17553
17554         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
17555         level from an ARCH; do not inject the default.
17556         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
17557         MIPS_ISA_LEVEL_SPEC.
17558         (MIPS_ISA_NAN2008_SPEC): Update comment.
17559         (BASE_DRIVER_SELF_SPECS): Likewise.
17560         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
17561         MIPS_DEFAULT_ISA_LEVEL_SPEC.
17562         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
17563         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
17564         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
17565
17566 2015-01-14  Richard Biener  <rguenther@suse.de>
17567
17568         PR tree-optimization/64493
17569         PR tree-optimization/64495
17570         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
17571         assign the proper vectorized PHI to the inner loop exit PHIs.
17572
17573 2015-01-14  Joey Ye  <joey.ye@arm.com>
17574
17575         * config/arm/arm.c (arm_compute_save_reg_mask):
17576         Do not save lr in case of tail call.
17577         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
17578
17579 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
17580
17581         * tree-vrp.c (check_array_ref): Emit more warnings
17582         for warn_array_bounds >= 2.
17583         * common.opt: New option -Warray-bounds=.
17584         * doc/invoke.texi: Document -Warray-bounds=.
17585
17586 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
17587
17588         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
17589         (mforbid-fp-as-gp): Remove.
17590         (mex9): Remove.
17591         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
17592         (nds32_symbol_load_store_p): Remove.
17593         (nds32_fp_as_gp_check_available): Clean up implementation.
17594         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
17595         cases.
17596         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
17597         fp-as-gp and ex9 cases.
17598
17599 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
17600
17601         * tree-profile.c (init_ic_make_global_vars): Drop workaround
17602         for bintuils bug 14342.
17603         (init_ic_make_global_vars): Likewise.
17604         (gimple_init_edge_profiler): Likewise.
17605         (gimple_gen_ic_func_profiler): Likewise.
17606
17607 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
17608
17609         * ipa-inline.c (inline_small_functions): Swap the operands in
17610         enum.
17611
17612 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
17613
17614         PR ipa/64481
17615         * ipa-inline-analysis.c (node_growth_cache): Remove.
17616         (initialize_growth_caches): Do not initialize it.
17617         (free_growth_caches): Do not free it.
17618         (do_estimate_growth): Rename to ...
17619         (estimate_growth): ... this one; drop growth cache code.
17620         (growth_likely_positive): Always go the heuristics way.
17621         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
17622         (reset_edge_caches): Do not reset node growth.
17623         (heap_edge_removal_hook): Do not maintain cache.
17624         (inline_small_functions): Likewise; strenghten sanity check.
17625         (ipa_inline): Do not maintain caches.
17626         * ipa-inline.h (node_growth_cache): Remove.
17627         (do_estimate_growth): Remove to ...
17628         (estimate_growth): this one; remove inline version.
17629         (reset_node_growth_cache): Remove.
17630
17631 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
17632
17633         PR ipa/64565
17634         * ipa-inline.c (inline_small_functions): Update callee keys after
17635         resolving speculation
17636         (inline_small_functions): Always check monotonicity of the queue.
17637
17638 2015-01-13  Marek Polacek  <polacek@redhat.com>
17639
17640         PR middle-end/64391
17641         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
17642
17643 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
17644
17645         PR rtl-optimization/64286
17646         * ree.c (combine_reaching_defs): Move part of comment earlier,
17647         remove !SCALAR_INT_MODE_P check.
17648         (add_removable_extension): Don't add vector mode
17649         extensions if all uses of the source register aren't the same
17650         vector extensions.
17651
17652 2015-01-13  Renlin Li  <renlin.li@arm.com>
17653
17654         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
17655         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
17656
17657 2015-01-13  Martin Liska  <mliska@suse.cz>
17658
17659         * ipa-icf.c (sem_function::equals_private): Call new functions
17660         cl_target_option_print_diff and cl_optimization_print_diff.
17661         * optc-save-gen.awk (cl_target_option_print_diff): New function.
17662         (cl_optimization_print_diff): Likewise.
17663         * opth-gen.awk: Likewise.
17664
17665 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
17666
17667         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
17668         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
17669         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
17670         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
17671         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
17672         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
17673
17674 2015-01-13  Andrew Pinski  <apinski@cavium.com>
17675
17676         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
17677         instead of src mode.
17678
17679 2015-01-13  Richard Biener  <rguenther@suse.de>
17680
17681         PR lto/64373
17682         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
17683         DECL_CONTEXT.
17684
17685 2015-01-13  Andrew Pinski  <apinski@cavium.com>
17686
17687         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
17688         volatile mems.
17689         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
17690
17691 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
17692
17693         PR middle-end/63974
17694         * cfgexpand.c (expand_computed_goto): Don't call
17695         convert_memory_address here.
17696
17697 2015-01-13  Richard Biener  <rguenther@suse.de>
17698
17699         PR tree-optimization/64406
17700         * tree-loop-distibution.c (pass_loop_distribution::execute):
17701         Reset the SCEV hashtable if we distributed anything.
17702
17703 2015-01-13  Richard Biener  <rguenther@suse.de>
17704
17705         PR tree-optimization/64404
17706         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
17707         SLP types for CSEd loads.
17708
17709 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
17710
17711         PR tree-optimization/64436
17712         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
17713         merge of two symbolic numbers for a bitwise OR to ...
17714         (perform_symbolic_merge): This. Also fix computation of the range and
17715         end of the symbolic number corresponding to the result of a bitwise OR.
17716
17717 2015-01-13  Richard Biener  <rguenther@suse.de>
17718
17719         PR tree-optimization/64568
17720         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
17721         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
17722
17723 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
17724
17725         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
17726         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
17727
17728 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
17729
17730         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
17731         target-specific symbol_ref flag.
17732         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
17733         resides in rodata section.
17734         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
17735         (nds32_encode_section_info): New function.
17736
17737 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
17738
17739         * config/nds32/nds32.md (call): Use pseudo instruction bal which
17740         clobbers TA_REGNUM if large code model is specified.
17741         (call_register): Likewise.
17742         (call_immediate): Likewise.
17743         (call_value): Likewise.
17744         (call_value_register): Likewise.
17745         (call_value_immediate): Likewise.
17746
17747 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
17748
17749         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
17750         (TARGET_CMODEL_MEDIUM): New macro.
17751         (TARGET_CMODEL_LARGE): New macro.
17752         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
17753         code model setting in assembly code.
17754
17755 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
17756
17757         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
17758         Remove MASK_GP_DIRECT flag.
17759         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
17760         one of the multilib default options.
17761         * config/nds32/nds32.opt (mgp-direct): Remove.
17762         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
17763         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
17764
17765 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
17766
17767         * config/nds32/nds32.opt (mcmodel): Add new option.
17768         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
17769         to describe code model.
17770
17771 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
17772
17773         PR target/64479
17774         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
17775
17776 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
17777
17778         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
17779         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
17780         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
17781         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
17782         __builtin_sh_set_fpscr.
17783
17784 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17785
17786         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
17787         after a funtion name just to indicate it is a function.
17788         ([-fsanitize-undefined-trap-on-error]): Likewise.
17789         ([-fdbg-cnt=]): Likewise.
17790         ([-mmemcpy]): Likewise.
17791         ([-mflush-func]): Likewise.
17792         ([-msynci]): Likewise.
17793
17794 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
17795
17796         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
17797         example.
17798
17799 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
17800
17801         PR tree-optimization/64563
17802         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
17803         instead of != VR_VARYING.
17804
17805         PR target/64513
17806         * config/i386/i386.c (ix86_expand_prologue): Add
17807         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
17808
17809         PR tree-optimization/64454
17810         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
17811         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
17812         for signed or [0, op1 - 1] for unsigned modulo.
17813         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
17814         even if op1 does not satisfy integer_pow2p.
17815
17816         PR other/64370
17817         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
17818
17819 2015-01-12  Jeff Law  <law@redhat.com>
17820
17821         PR target/64461
17822         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
17823         (trunchiqi2, truncsihi2): Similarly.
17824
17825         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
17826         rather than calling F.
17827
17828 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17829
17830         * tsan.c (instrument_expr): Use force_gimple_operand.
17831         Use may_be_nonaddressable_p instead of is_gimple_addressable.
17832
17833 2015-01-12  Richard Biener  <rguenther@suse.de>
17834
17835         PR tree-optimization/64530
17836         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
17837         back dr1.
17838
17839 2015-01-12  Richard Biener  <rguenther@suse.de>
17840
17841         PR middle-end/64357
17842         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
17843         latches properly.
17844
17845 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17846
17847         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
17848         Cortex-A17 tuning parameters.
17849         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
17850
17851 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17852
17853         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
17854         * config/arm/arm.c (arm_macro_fusion_p): New function.
17855         (arm_macro_fusion_pair_p): Likewise.
17856         (TARGET_SCHED_MACRO_FUSION_P): Define.
17857         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
17858         (ARM_FUSE_NOTHING): Likewise.
17859         (ARM_FUSE_MOVW_MOVT): Likewise.
17860         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
17861         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
17862         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
17863         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
17864         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
17865         arm_cortex_a5_tune): Specify fuseable_ops value.
17866
17867 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
17868
17869         PR bootstrap/64561
17870         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
17871         test for PIE with copy reloc.
17872         * configure: Regenerated.
17873
17874 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17875
17876         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
17877         in gen_rtx_REG.
17878         (arm_tls_descseq_addr): Likewise.
17879         (arm_gen_movmemqi): Likewise.
17880         (arm_expand_epilogue_apcs_frame): Likewise.
17881         (arm_expand_epilogue): Likewise.
17882         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
17883         in gen_rtx_REG.
17884
17885 2015-01-12  Martin Liska  <mliska@suse.cz>
17886
17887         PR ipa/64550
17888         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
17889         volatility for correct operands.
17890
17891 2015-01-12  Martin Liska  <mliska@suse.cz>
17892
17893         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
17894         indication that a function is not leaf.
17895         (sem_function::compare_polymorphic_p): Likewise.
17896
17897 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
17898
17899         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
17900         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
17901         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
17902         fold-const.h, tree-check.h.
17903
17904 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
17905
17906         PR ipa/63967
17907         PR ipa/64425
17908         * ipa-inline.c (compute_uninlined_call_time,
17909         compute_inlined_call_time): Use counts for extra precision when
17910         needed possible.
17911         (big_speedup_p): Fix formating.
17912         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
17913         (relative_time_benefit): Remove.
17914         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
17915         merge guessed and read profile paths.
17916         (inline_small_functions): Count only !optimize_size functions into
17917         initial size; be more lax about sanity check when profile is used;
17918         be sure to update inlined function profile when profile is read.
17919
17920 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
17921
17922         PR ipa/63470
17923         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
17924         cost when edge becomes direct.
17925         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
17926         is resolved or when introducing new speculation.
17927
17928 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
17929
17930         PR ipa/64551
17931         PR ipa/64552
17932         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
17933         '||' to fix typo issue.
17934
17935         * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
17936         accept and return NULL.
17937
17938 2015-01-12  Martin Liska  <mliska@suse.cz>
17939
17940         * cgraph.c (cgraph_edge::remove_callee): Move function to header
17941         file for being inlined.
17942         (cgraph_set_edge_callee): Delete.
17943         (cgraph_edge::redirect_callee): Move function to header file
17944         for being inlined.
17945         (cgraph_edge::make_direct): Use new function.
17946         (cgraph_edge::dump_edge_flags): New function created from
17947         static dump_edge_flags function.
17948         (cgraph_node::dump): Use new function.
17949         (cgraph_edge::verify_count_and_frequency): New function created
17950         from verify_edge_count_and_frequency.
17951         (cgraph_edge::verify_corresponds_to_fndecl): New function created
17952         from verify_edge_corresponds_to_fndecl.
17953         (verify_edge_corresponds_to_fndecl): Delete.
17954         (cgraph_node::verify_node): Use new function.
17955         * cgraph.h (cgraph_edge::set_callee): New function.
17956         (cgraph_edge::dump_edge_flags): Likewise.
17957         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
17958
17959 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
17960
17961         * ipa-utils.c (estimate_function_body_sizes): Do not
17962         free node params when called late with early=true.
17963
17964 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
17965
17966         * doc/md.texi (Instruction Patterns): Rewrite text for
17967         clarity.
17968         (Example): Likewise.
17969
17970 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
17971
17972         * doc/invoke.texi (Option Summary): Break long lines.
17973         [(-fdiagnostics-color)]: Put long literal in @smallexample
17974         instead of inline.
17975         [(-fsanitize-recover)]: Likewise.
17976         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
17977         [(-ffast-math)]: Likewise.
17978         [(--param max-inline-insns-recursive)]: Likewise.
17979         [(--param max-inline-recursive-depth)]: Likewise.
17980         [(-mno-text-section-literals)]: Likewise.
17981
17982 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
17983
17984         * doc/install.texi: Update for libgomp being renamed from "GNU
17985         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
17986         Runtime Library".
17987         * doc/sourcebuild.texi: Likewise.
17988
17989 2015-01-10  Anthony Green  <green@moxielogic.com>
17990
17991         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
17992         mul.x availability for moxiebox configuration.
17993
17994 2015-01-09  Anthony Green  <green@moxielogic.com>
17995
17996         * config/moxie/moxie.md: Tabify assembly output.
17997
17998 2015-01-09  Anthony Green  <green@moxielogic.com>
17999
18000         * config/moxie/moxie.md (CC_REG): Correct register definition.
18001
18002 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
18003
18004         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
18005         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
18006         of log files.
18007
18008 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
18009
18010         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
18011
18012 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
18013             Jakub Jelinek  <jakub@redhat.com>
18014
18015         PR middle-end/64412
18016         * lto-streamer.h (lto_stream_offload_p): New declaration.
18017         * lto-streamer.c (lto_stream_offload_p): New variable.
18018         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
18019         at the same time as section_name_prefix.
18020         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
18021         if lto_stream_offload_p.
18022         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
18023         stream TREE_TARGET_OPTION if lto_stream_offload_p.
18024         (write_ts_function_decl_tree_pointers): Don't
18025         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
18026         * tree-streamer-in.c (unpack_value_fields): Don't stream
18027         TREE_TARGET_OPTION in if ACCEL_COMPILER.
18028         (lto_input_ts_function_decl_tree_pointers): Don't stream
18029         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
18030         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
18031         instead of section_name_prefix string comparisons.
18032
18033 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
18034
18035         PR rtl-optimization/64536
18036         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
18037         tablejumps.
18038
18039 2015-01-09  Michael Collison  <michael.collison@linaro.org>
18040
18041         PR tree-optimization/64322
18042         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
18043         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
18044
18045 2015-01-09  Tom de Vries  <tom@codesourcery.com>
18046
18047         PR rtl-optimization/64539
18048         * regcprop.c (kill_clobbered_values): Factor out of ...
18049         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
18050         instead of note_stores with kill_clobbered_value.
18051
18052 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
18053
18054          * ginclude/unwind-arm-common.h: Revert previous commit.
18055
18056 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
18057
18058         * config.gcc (arm*-*-freebsd*): New configuration.
18059         * config/arm/freebsd.h: New file.
18060         * config.host: Add extra components for arm*-*-freebsd*.
18061         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
18062         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
18063
18064 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18065
18066         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
18067         for -mcpu=e6500.
18068         * config/rs6000/t-rtems: Add e6500 multilibs.
18069
18070 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18071
18072         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
18073         MPC8540.
18074
18075 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18076
18077         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
18078         MULTILIB_EXCEPTIONS.
18079
18080 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18081
18082         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
18083         MULTILIB_EXCEPTIONS.
18084
18085 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
18086
18087         * config/arm/t-rtems-eabi: Rename to...
18088         * config/arm/t-rtems: ...this.
18089         * config/arm/rtems-eabi.h: Rename to...
18090         * config/arm/rtems.h: ...this.
18091         * config.gcc (arm*-*-rtems*): Reflect changes above.
18092
18093 2015-01-09  Richard Biener  <rguenther@suse.de>
18094
18095         PR tree-optimization/64410
18096         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
18097         on the LHS.
18098         (execute_update_addresses_taken): Deal with that.
18099         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
18100         loads/stores for complex variables.
18101
18102 2015-01-09  Martin Liska  <mliska@suse.cz>
18103
18104         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
18105         name comparison.
18106         (func_checker::compare_memory_operand): New function.
18107         (func_checker::compare_operand): Split case to newly
18108         added functions.
18109         (func_checker::compare_cst_or_decl): New function.
18110         (func_checker::compare_gimple_call): Identify
18111         memory operands.
18112         (func_checker::compare_gimple_assign): Likewise.
18113         * ipa-icf-gimple.h: New function.
18114
18115 2015-01-09  Martin Liska  <mliska@suse.cz>
18116
18117         PR ipa/64503
18118         * sreal.c (sreal::dump): Change unsigned format to signed for
18119         m_exp value.
18120         (sreal::to_double): Replace exp2 with scalbln.
18121
18122 2015-01-09  Martin Liska  <mliska@suse.cz>
18123
18124         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
18125         * ipa-icf.c (sem_function::equals_private): Add support for target and
18126         (sem_item_optimizer::merge_classes): Remove redundant function
18127         optimization flags comparison.
18128         * tree.h (target_opts_for_fn): New function.
18129
18130 2015-01-09  Tom de Vries  <tom@codesourcery.com>
18131
18132         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
18133
18134 2015-01-09  Kito Cheng  <kito@0xlab.org>
18135
18136         PR rtl-optimization/64348
18137         * lra-constraints.c (split_reg): Fix caller-save store/restore
18138         instruction generation.
18139
18140 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
18141
18142         PR gcov-profile/61790
18143         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
18144         long long.  Fallback to int64_t if host doesn't have long long and
18145         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
18146
18147 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
18148
18149         PR tree-optimization/63989
18150         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
18151         from 1000 to 10000.
18152         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
18153         (get_stridx): If we don't have a record for certain SSA_NAME,
18154         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
18155         constant offset, call get_stridx_plus_constant.
18156         (get_stridx_plus_constant): New function.
18157         (zero_length_string): Don't use get_stridx here.
18158
18159         PR target/55023
18160         PR middle-end/64388
18161         * dse.c (struct insn_info): Mention frame_read set also
18162         before reload for tail calls on some targets.
18163         (scan_insn): Revert 2014-12-22 change.  Set frame_read
18164         also before reload for tail calls if
18165         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
18166         instead of add_non_frame_wild_read for non-const/memset
18167         tail calls after reload.
18168
18169 2015-01-08  Jason Merrill  <jason@redhat.com>
18170
18171         * ubsan.c (do_ubsan_in_current_function): New.
18172         (pass_ubsan::gate): Use it.
18173         * ubsan.h: Declare it.
18174         * convert.c (convert_to_integer): Use it.
18175
18176 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
18177
18178         PR target/64338
18179         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
18180         compare_code when it is unconditionally overwritten afterwards.
18181         Use ix86_reverse_condition instead of reverse_condition.  Don't
18182         change code if *reverse_condition* returned UNKNOWN and don't
18183         swap ct/cf and negate diff in that case.
18184
18185 2015-01-08  Mike Stump  <mikestump@comcast.net>
18186
18187         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
18188         (pass_tsan_O0::gate): Likewise.
18189         * extend.texi (Function Attributes): Add no_sanitize_thread
18190         documentation.
18191
18192 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
18193
18194         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
18195         for registering builtins.
18196         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
18197         add -fopenmp to the argv_obstack used when invoking
18198         compile_for_target.
18199
18200         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
18201         add "-m32" or "-m64" to argv_obstack.
18202         (generate_host_descr_file): Likewise, when invoking host_compiler.
18203         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
18204         ld.
18205
18206 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
18207
18208         * config/sh/sh-mem.cc: Use constant as second operand when emitting
18209         tstsi_t insns.
18210
18211 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
18212
18213         PR target/55212
18214         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
18215         constant load if constant operand fits into I08.
18216
18217 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
18218
18219         PR sanitizer/64336
18220         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
18221         and TREE_THIS_VOLATILE for MEM_REFs.
18222         (build5_stat): Fix up initialization of TREE_READONLY and
18223         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
18224
18225 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
18226
18227         PR target/64533
18228         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
18229         of r for the second alternative of the destination operand.
18230
18231 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
18232
18233         PR target/36557
18234         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
18235
18236 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
18237
18238         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
18239         keywords.
18240         ([-fivar-visibility], [-fvisibility]): Likewise.
18241
18242 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
18243
18244         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
18245         the file where @code, @command, etc is more appropriate.
18246
18247 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
18248
18249         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
18250         of -mrecip= documentation.
18251
18252 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
18253
18254         PR target/64505
18255         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
18256         correct reload handler if -m32 -mpowerpc64 is used.
18257
18258 2015-01-06  Tom de Vries  <tom@codesourcery.com>
18259
18260         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
18261
18262 2015-01-08  Christian Bruel  <christian.bruel@st.com>
18263
18264         PR target/64507
18265         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
18266
18267 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
18268
18269         PR tree-optimization/63259
18270         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
18271         if optab exists for 16bit byteswap.
18272
18273 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
18274
18275         * opts.c (common_handle_option): Add support for
18276         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
18277         * doc/invoke.texi: Document -fno-sanitize=all,
18278         -f{,no-}sanitize-recover=all.  Document that
18279         -fsanitize=float-cast-overflow is not enabled
18280         by -fsanitize=undefined.  Fix up documentation
18281         of -f{,no-}sanitize-recover.
18282
18283 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
18284
18285         * config.gcc: Add Visium support.
18286         * configure.ac: Likewise.
18287         * configure: Regenerate.
18288         * doc/extend.texi (interrupt attribute): Add Visium.
18289         * doc/invoke.texi: Document Visium options.
18290         * doc/install.texi: Document Visium target.
18291         * doc/md.texi: Document Visium constraints.
18292         * common/config/visium: New directory.
18293         * config/visium: Likewise.
18294
18295 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
18296
18297         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
18298         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
18299
18300 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
18301
18302         * combine.c (combine_validate_cost): Do not count the cost of a
18303         split I2 twice.  Do not display it twice in the dump, either.
18304
18305 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
18306
18307         Revert parts of r219199.
18308         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
18309         <inttypes.h>.
18310         ([-Wtraditional]): Restore markup on <limits.h>.
18311
18312 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
18313
18314         PR c++/31397
18315         * doc/invoke.texi: Document -Wsuggest-override.
18316
18317 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
18318
18319         PR rtl-optimization/64287
18320         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
18321         (process_options): Disable flag_ipa_ra if profiling.
18322
18323 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
18324
18325         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
18326
18327 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
18328
18329         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
18330         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
18331         put under #if TARGET_LOOPS guard.
18332
18333 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
18334
18335         * config/i386/i386.c (output_387_binary_op): Use std::swap.
18336
18337 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
18338
18339         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
18340         * rtl.h (refers_to_regno_p): Add overload.
18341         * cse.c: Use it.
18342         * bt-load.c: Likewise.
18343         * combine.c: Likewise.
18344         * df-scan.c: Likewise.
18345         * sched-deps.c: Likewise.
18346         * config/s390/s390.c: Likewise.
18347         * config/m32r/m32r.c: Likewise.
18348         * config/rs6000/spe.md: Likewise.
18349         * config/rs6000/rs6000.c: Likewise.
18350         * config/pa/pa.c: Likewise.
18351         * config/stormy16/stormy16.c: Likewise.
18352         * config/cris/cris.c: Likewise.
18353         * config/arc/arc.md: Likewise.
18354         * config/arc/arc.c: Likewise.
18355         * config/sh/sh.md: Likewise.
18356         * config/sh/sh.c: Likewise.
18357         * config/frv/frv.c: Likewise.
18358
18359 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
18360
18361         PR sanitizer/64265
18362         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
18363         call as cleanup of the whole body.
18364         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
18365         * tsan.c (replace_func_exit): New function.
18366         (instrument_func_exit): Moved earlier.
18367         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
18368         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
18369         been found.
18370         (tsan_pass): Don't call instrument_func_exit.
18371         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
18372         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
18373         inlining.
18374
18375         PR sanitizer/64344
18376         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
18377         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
18378         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
18379         if the result is integer_zerop, return NULL_TREE.
18380         * convert.c (convert_to_integer): Pass expr as ARG.
18381
18382         PR tree-optimization/64465
18383         * tree-inline.c (redirect_all_calls): During inlining
18384         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
18385         changed the stmt to a non-throwing call.
18386
18387 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
18388
18389         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
18390         etc markup throughout the file.
18391
18392 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18393
18394         Enable experimental TSAN support for Ada.
18395         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
18396
18397 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
18398
18399         PR tree-optimization/64494
18400         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
18401         clear SSA_NAME_ANTI_RANGE_P flag.
18402
18403 2015-01-05  Marek Polacek  <polacek@redhat.com>
18404
18405         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
18406
18407 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
18408
18409         Update copyright years.
18410
18411         * gcc.c (process_command): Update copyright notice dates.
18412         * gcov-dump.c: Ditto.
18413         * gcov.c: Ditto.
18414         * doc/cpp.texi: Bump @copying's copyright year.
18415         * doc/cppinternals.texi: Ditto.
18416         * doc/gcc.texi: Ditto.
18417         * doc/gccint.texi: Ditto.
18418         * doc/gcov.texi: Ditto.
18419         * doc/install.texi: Ditto.
18420         * doc/invoke.texi: Ditto.
18421
18422         * auto-profile.c, auto-profile.h: Fix up Copyright line.
18423
18424 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
18425
18426         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
18427         verb tense, etc.
18428         ([-fvtable-verify], [-fvtv-debug]): Likewise.
18429         ([-Wabi]): Likewise.
18430         ([-fmessage-length]): Likewise.
18431         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
18432         ([-Wno-discarded-qualifiers]): Likewise.
18433         ([-Wnodiscarded-array-qualifiers]): Likewise.
18434         ([-Wno-virtual-move-assign]): Likewise.
18435         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
18436         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
18437         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
18438         ([-fsanitize-undefined-trap-on-error]): Likewise.
18439         ([-floop-interchange]): Likewise.
18440         ([-ftree-coalesce-inlined-vars]): Likewise.
18441         ([-fvect-cost-model]): Likewise.
18442         ([-flto]): Likewise.
18443         ([--param]): Likewise.
18444         (Spec Files): Likewise.
18445         ([-mstrict-align]): Likewise.
18446         ([-mfix-cortex-a53-835769]): Likewise.
18447         ([-march], [-mtune]): Likewise.
18448         ([-mpic-register]): Likewise.
18449         ([-munaligned-access]): Likewise.
18450         ([-msp8]): Likewise.
18451         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
18452         (AVR Built-in Macros): Likewise.
18453         ([-mpreferred-stack-boundary]): Likewise.
18454         ([-mtune-crtl]): Likewise.
18455         ([-mashf]): Likewise.
18456         ([-mmcu=]): Likewise.
18457         ([-minrt]): Likewise.
18458         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
18459         ([-mupper-regs]): Likewise.
18460         ([-matomic-model]): Likewise.
18461         ([-mdiv]): Likewise.
18462         ([-mzdcbranch]): Likewise.
18463         ([-mdisable-callt]): Likewise.
18464         ([-msoft-float]): Likewise.
18465         ([-m8byte-align]): Likewise.
18466         ([-fstack-reuse]): Likewise.
18467
18468 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
18469
18470         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
18471         Fix markup, light copy-editing.
18472         ([-fauto-profile]): Rewrite to fix formatting and content
18473         problems.
18474
18475 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
18476
18477         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
18478         Copy-edit description.
18479         ([-fisolate-erroneous-paths-attribute]): Likewise.
18480         * common.opt (fisolate-erroneous-paths-dereference):
18481         Copy-edit description.
18482         (fisolate-erroneous-paths-attribute): Likewise.
18483
18484 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
18485
18486         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
18487         tidy grammar.
18488
18489 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
18490
18491         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
18492         ([-fvtv-debug]): Likewise.
18493         ([-Wc++-compat]): Likewise.
18494         ([-Wc++11-compat]): Likewise.
18495         ([-Wc++14-compat]): Likewise.
18496         ([-Wno-sized-deallocation]): Likewise.
18497         ([-femit-class-debug-always]): Likewise.
18498         ([-femit-struct-debug-detailed]): Likewise.
18499         ([-fno-keep-inline-dllexport]): Likewise.
18500         ([-fira-algorithm]): Likewise.
18501         ([-fira-region]): Likewise.
18502         ([-flra-remat]): Likewise.
18503         ([-fipa-ra]): Likewise.
18504         ([-fhoist-adjacent-loads]): Likewise.
18505         ([-fisolate-erroneous-paths-dereference]): Likewise.
18506         ([-fisolate-erroneous-paths-attribute]): Likewise.
18507         ([-ftree-switch-conversion]): Likewise.
18508         ([-ftree-tail-merge]): Likewise.
18509         ([-ftree-loop-if-convert]): Likewise.
18510         ([-ftree-loop-if-convert-stores]): Likewise.
18511         ([-ftree-loop-distribution]): Likewise.
18512         ([-ftree-loop-distribute-patterns]): Likewise.
18513         ([-flto-compression-level]): Likewise.
18514         ([-flto-report]): Likewise.
18515         ([-flto-report-wpa]): Likewise.
18516         ([-fuse-linker-plugin]): Likewise.
18517         ([-mfix-cortex-a53-835769]): Likewise.
18518         ([-mno-fix-cortex-a53-835769]): Likewise.
18519         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
18520         explicit listing; add a note to the discussion indicating they
18521         exist.  Reorder table to group similar options.  Add missing
18522         @opindex entries.  Add @need commands throughout the table to
18523         allow it to be split across multiple pages.
18524         ([-m8bit-idiv]): Fix @opindex.
18525         ([-mavx256-split-unaligned-load]): Likewise.
18526         ([-mavx256-split-unaligned-store]): Likewise.
18527         ([-mstack-protector-guard]): Likewise.
18528         ([-mcpu=]): Likewise.
18529         ([-mcpu]): Likewise.
18530         ([-mpointer-size=]): Likewise.
18531
18532 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
18533
18534         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
18535         instead of `m' constraint.  Likewise for unnamed movb comparison
18536         patterns using reg_before_reload_operand predicate.
18537         * config/pa/predicates.md (reg_before_reload_operand): Tighten
18538         predicate to reject register index and LO_SUM DLT memory forms
18539         after reload.
18540
18541 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
18542
18543         * doc/invoke.texi (Option Summary): Fix spelling of
18544         -fdevirtualize-at-ltrans.
18545         ([-fdevirtualize]): Fix markup.
18546         ([-fdevirtualize-speculatively]): Fix typo.
18547         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
18548         implementor-speaky.
18549         * common.opt (fdevirtualize-at-ltrans): Likewise.
18550         * ipa-devirt.c: Fix typos in comments throughout the file.
18551         (ipa_devirt): Fix typos in format strings for dump output.
18552
18553 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
18554
18555         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
18556         discussion of defaults, light copy-editing.
18557
18558 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18559
18560         * tsan.c (instrument_expr): corrected previous checkin.
18561
18562 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18563
18564         Instrument bit field and unaligned accesses for TSAN.
18565         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
18566         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
18567         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
18568         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
18569         unaligned memory regions.
18570
18571 2015-01-01  Anthony Green  <green@moxielogic.com>
18572
18573         * config/moxie/predicates.md (moxie_general_movsrc_operand):
18574         Restrict move source register offsets to 16 bits.
18575 \f
18576 Copyright (C) 2015 Free Software Foundation, Inc.
18577
18578 Copying and distribution of this file, with or without modification,
18579 are permitted in any medium without royalty provided the copyright
18580 notice and this notice are preserved.